:root {
  color-scheme: light;
  --bg: #f2f6f1;
  --surface: #ffffff;
  --surface-alt: #edf4ec;
  --surface-raised: #ffffff;
  --surface-tint: #f5faf4;
  --sidebar-bg: #e4eee2;
  --ink: #18231d;
  --muted: #5f6d63;
  --soft: #d5e1d3;
  --line: #ccd9ce;
  --green: #386c3c;
  --green-deep: #0f4632;
  --blue: #147b8c;
  --amber: #c8831e;
  --red: #b42318;
  --on-accent: #ffffff;
  --focus-ring: rgba(56, 108, 60, 0.18);
  --green-line: rgba(56, 108, 60, 0.34);
  --green-tint: rgba(56, 108, 60, 0.12);
  --blue-tint: rgba(20, 123, 140, 0.12);
  --warning-bg: rgba(200, 131, 30, 0.12);
  --danger-bg: rgba(180, 35, 24, 0.1);
  --status-green-bg: rgba(56, 108, 60, 0.14);
  --status-green-ink: #1f512b;
  --status-green-line: rgba(56, 108, 60, 0.28);
  --status-blue-bg: rgba(20, 123, 140, 0.13);
  --status-blue-ink: #0f6675;
  --status-blue-line: rgba(20, 123, 140, 0.28);
  --status-amber-bg: rgba(200, 131, 30, 0.14);
  --status-amber-ink: #70450d;
  --status-amber-line: rgba(200, 131, 30, 0.28);
  --status-neutral-bg: var(--surface-alt);
  --status-neutral-ink: var(--green-deep);
  --status-neutral-line: var(--soft);
  --progress-track: var(--surface-alt);
  --backdrop: rgba(17, 71, 52, 0.34);
  --focus-blue: #147b8c;
  --shadow: 0 18px 40px rgba(28, 37, 32, 0.09);
  --dispatch-flyout-bg: linear-gradient(180deg, #ffffff 0%, #f8fbf6 100%);
  --dispatch-flyout-header-bg: linear-gradient(135deg, rgba(56, 108, 60, 0.13), rgba(20, 123, 140, 0.08));
  --dispatch-field-bg: rgba(255, 255, 255, 0.84);
  --dispatch-field-border: rgba(56, 108, 60, 0.24);
  --dispatch-control-bg: #ffffff;
  --dispatch-control-shadow: 0 10px 24px rgba(28, 37, 32, 0.06);
  --dispatch-action-shadow: 0 16px 28px rgba(56, 108, 60, 0.24);
  --radius: 8px;
  --font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

:root[data-screen-scheme="mid"] {
  color-scheme: light;
  --bg: #edf2e8;
  --surface: #fbfcf7;
  --surface-alt: #e3ecdd;
  --surface-raised: #f6faf2;
  --surface-tint: #eef5ea;
  --sidebar-bg: #244b36;
  --ink: #14231d;
  --muted: #5d6b61;
  --soft: #cbd9c5;
  --line: #b8cbb2;
  --shadow: 0 18px 44px rgba(27, 50, 36, 0.14);
  --backdrop: rgba(17, 71, 52, 0.36);
  --dispatch-flyout-bg: linear-gradient(180deg, #fbfcf7 0%, #eef5ea 100%);
  --dispatch-flyout-header-bg: linear-gradient(135deg, rgba(36, 75, 54, 0.15), rgba(20, 123, 140, 0.11));
  --dispatch-field-bg: rgba(251, 252, 247, 0.82);
  --dispatch-field-border: rgba(36, 75, 54, 0.28);
  --dispatch-control-bg: #fbfcf7;
  --dispatch-control-shadow: 0 12px 28px rgba(27, 50, 36, 0.09);
  --dispatch-action-shadow: 0 16px 32px rgba(36, 75, 54, 0.25);
}

:root[data-screen-scheme="mid"] .sidebar {
  color: #f2f8ef;
  border-right-color: rgba(17, 71, 52, 0.42);
}

:root[data-screen-scheme="mid"] .sidebar span,
:root[data-screen-scheme="mid"] .sidebar .field-label {
  color: rgba(242, 248, 239, 0.76);
}

:root[data-screen-scheme="mid"] .sidebar__brand .is-active,
:root[data-screen-scheme="mid"] .side-summary .is-active {
  color: #ffffff;
}

:root[data-screen-scheme="mid"] .tool-tabs button span,
:root[data-screen-scheme="mid"] .tool-tabs a span {
  color: inherit;
}

:root[data-screen-scheme="dark"] .tool-tabs button,
:root[data-screen-scheme="dark"] .tool-tabs a,
:root[data-screen-scheme="dark"] .tool-tabs button span,
:root[data-screen-scheme="dark"] .tool-tabs a span {
  color: #ffffff;
}

:root[data-screen-scheme="dark"] .manual-dispatch-icon {
  color: var(--on-accent);
  box-shadow: 0 16px 30px rgba(159, 203, 132, 0.16);
}

:root[data-screen-scheme="dark"] .manual-dispatch-form .select-input,
:root[data-screen-scheme="dark"] .manual-dispatch-input,
:root[data-screen-scheme="dark"] .local-datetime-control input,
:root[data-screen-scheme="dark"] .local-datetime-control select,
:root[data-screen-scheme="dark"] .manual-dispatch-form textarea,
:root[data-screen-scheme="dark"] .manual-dispatch-header .icon-button {
  border-color: rgba(244, 248, 241, 0.14);
}

:root[data-screen-scheme="mid"] .hub-tabs,
:root[data-screen-scheme="mid"] .side-summary {
  border-color: rgba(242, 248, 239, 0.16);
}

:root[data-screen-scheme="dark"] {
  color-scheme: dark;
  --bg: #061611;
  --surface: #10251d;
  --surface-alt: #173326;
  --surface-raised: #142d23;
  --surface-tint: #1a3a2b;
  --sidebar-bg: #081d16;
  --ink: #f4f8f1;
  --muted: #b9c8ba;
  --soft: #294b3b;
  --line: #365c49;
  --green: #9fcb84;
  --green-deep: #bee3a5;
  --blue: #7bcbd3;
  --amber: #ffc545;
  --red: #ff8f7d;
  --on-accent: #071a16;
  --focus-ring: rgba(171, 214, 146, 0.22);
  --green-line: rgba(171, 214, 146, 0.38);
  --green-tint: rgba(171, 214, 146, 0.14);
  --blue-tint: rgba(130, 210, 217, 0.15);
  --warning-bg: rgba(255, 197, 69, 0.16);
  --danger-bg: rgba(255, 143, 125, 0.12);
  --status-green-bg: rgba(159, 203, 132, 0.16);
  --status-green-ink: #c9e7ad;
  --status-green-line: rgba(159, 203, 132, 0.34);
  --status-blue-bg: rgba(123, 203, 211, 0.16);
  --status-blue-ink: #9edfe5;
  --status-blue-line: rgba(123, 203, 211, 0.34);
  --status-amber-bg: rgba(255, 197, 69, 0.15);
  --status-amber-ink: #f7d77f;
  --status-amber-line: rgba(255, 197, 69, 0.34);
  --status-neutral-bg: rgba(244, 248, 241, 0.07);
  --status-neutral-ink: #d8e5d7;
  --status-neutral-line: rgba(244, 248, 241, 0.15);
  --progress-track: rgba(185, 200, 186, 0.1);
  --backdrop: rgba(1, 10, 8, 0.72);
  --focus-blue: #7bcbd3;
  --shadow: 0 20px 48px rgba(0, 0, 0, 0.42);
  --dispatch-flyout-bg: linear-gradient(180deg, #122a20 0%, #0b1f18 100%);
  --dispatch-flyout-header-bg: linear-gradient(135deg, rgba(159, 203, 132, 0.13), rgba(123, 203, 211, 0.11));
  --dispatch-field-bg: rgba(244, 248, 241, 0.045);
  --dispatch-field-border: rgba(159, 203, 132, 0.24);
  --dispatch-control-bg: rgba(244, 248, 241, 0.07);
  --dispatch-control-shadow: 0 16px 34px rgba(0, 0, 0, 0.22);
  --dispatch-action-shadow: 0 16px 34px rgba(159, 203, 132, 0.14);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font);
  letter-spacing: 0;
}

button,
input,
select {
  font: inherit;
}

button {
  cursor: pointer;
}

button:disabled,
select:disabled {
  cursor: not-allowed;
  opacity: 0.58;
}

svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.app-shell {
  min-height: 100vh;
}

.identity-screen,
.loading-screen {
  display: grid;
  min-height: 100vh;
  place-items: center;
  padding: 32px;
}

.identity-panel {
  width: min(920px, 100%);
  padding: 36px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.brand-mark {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  background: var(--green);
  color: var(--on-accent);
  border-radius: 8px;
  font-weight: 800;
}

.identity-panel h1,
.topbar h1 {
  margin: 18px 0 8px;
  font-size: clamp(28px, 4vw, 46px);
  line-height: 1.04;
}

.identity-panel p {
  max-width: 680px;
  margin: 0 0 28px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.6;
}

.identity-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
}

.identity-option {
  display: grid;
  gap: 10px;
  min-height: 128px;
  padding: 18px;
  color: var(--ink);
  text-align: left;
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.identity-option:hover,
.identity-option:focus-visible {
  border-color: var(--green);
  box-shadow: 0 0 0 3px var(--green-tint);
  outline: none;
}

.identity-option span {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  color: var(--green);
  background: var(--surface-alt);
  border-radius: 8px;
}

.identity-option small,
.sidebar span,
.metric-panel span,
td span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.identity-option.is-admin {
  background: var(--surface-tint);
  border-color: var(--green-line);
}

.auth-panel {
  width: min(560px, 100%);
}

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

.auth-form .primary-button {
  width: 100%;
}

.auth-account-card {
  display: grid;
  gap: 4px;
  padding: 12px;
  background: var(--surface-tint);
  border: 1px solid var(--focus-ring);
  border-radius: 7px;
}

.auth-account-card span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.loading-screen {
  gap: 12px;
  text-align: center;
}

.loading-screen strong {
  font-size: 24px;
}

.loading-panel {
  display: grid;
  gap: 16px;
  width: min(420px, 100%);
  padding: 28px;
  text-align: left;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

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

.loading-panel__brand span {
  color: var(--green-deep);
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
}

.loading-panel strong {
  display: block;
  margin: 0 0 6px;
  font-size: 26px;
  line-height: 1.08;
}

.loading-panel p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
}

.loading-quotes {
  position: relative;
  min-height: 96px;
  overflow: hidden;
}

.loading-quote {
  position: absolute;
  inset: 0;
  display: grid;
  align-content: start;
  gap: 6px;
  opacity: 0;
  transform: translateY(8px);
  animation: loading-quote-cycle var(--quote-duration, 16s) ease-in-out infinite;
  animation-delay: calc(var(--quote-index, 0) * var(--quote-duration, 16s) / var(--quote-count, 4));
}

.loading-quote span {
  color: var(--ink);
  font-size: 15px;
  font-weight: 850;
  line-height: 1.35;
}

.loading-quote small {
  color: var(--green-deep);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.loading-progress {
  position: relative;
  height: 8px;
  overflow: hidden;
  background: var(--surface-alt);
  border-radius: 999px;
}

.loading-progress span {
  position: absolute;
  inset: 0 auto 0 0;
  width: 42%;
  background: var(--green);
  border-radius: inherit;
  animation: loading-progress-slide 1.4s ease-in-out infinite;
}

.loading-skeleton {
  display: grid;
  gap: 8px;
}

.loading-skeleton span {
  display: block;
  height: 12px;
  overflow: hidden;
  background: var(--surface-alt);
  border-radius: 999px;
}

.loading-skeleton span:nth-child(1) {
  width: 92%;
}

.loading-skeleton span:nth-child(2) {
  width: 76%;
}

.loading-skeleton span:nth-child(3) {
  width: 58%;
}

.loading-panel__fallback {
  margin: -2px 0 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
  opacity: 0;
  animation: loading-fallback-in 0.2s ease 8s forwards;
}

@keyframes loading-progress-slide {
  0% {
    transform: translateX(-100%);
  }

  50% {
    transform: translateX(80%);
  }

  100% {
    transform: translateX(240%);
  }
}

@keyframes loading-quote-cycle {
  0%,
  20% {
    opacity: 1;
    transform: translateY(0);
  }

  25%,
  95% {
    opacity: 0;
    transform: translateY(-8px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes loading-fallback-in {
  to {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .loading-progress span {
    animation: none;
    width: 68%;
  }

  .loading-quote {
    animation: none;
    opacity: 0;
    transform: none;
  }

  .loading-quote:first-child {
    opacity: 1;
  }

  .loading-panel__fallback {
    animation: none;
    opacity: 1;
  }
}

.primary-button,
.ghost-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 40px;
  padding: 0 14px;
  border-radius: var(--radius);
}

.primary-button {
  color: var(--on-accent);
  background: var(--green);
  border: 1px solid var(--green);
}

.ghost-button {
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
  text-decoration: none;
}

.danger-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 40px;
  padding: 0 14px;
  color: var(--red);
  background: var(--danger-bg);
  border: 1px solid rgba(180, 35, 24, 0.3);
  border-radius: var(--radius);
  font-weight: 800;
}

.danger-button:hover,
.danger-button:focus-visible {
  color: var(--on-accent);
  background: var(--red);
  border-color: var(--red);
  outline: none;
}

.compact-button {
  height: 34px;
  padding: 0 10px;
  font-size: 13px;
  white-space: nowrap;
}

.icon-button {
  display: inline-grid;
  width: 38px;
  height: 38px;
  place-items: center;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.sidebar-button {
  width: 100%;
  margin-top: -4px;
}

.app-shell:has(.workspace) {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
}

.sidebar {
  position: sticky;
  top: 0;
  z-index: 19;
  display: flex;
  flex-direction: column;
  gap: 16px;
  height: 100vh;
  overflow: hidden;
  padding: 22px;
  background: var(--sidebar-bg);
  border-right: 1px solid var(--line);
}

.sidebar__brand {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.sidebar__scroll {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  flex-direction: column;
  gap: 16px;
  margin-right: -8px;
  padding-right: 8px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: var(--green-line) transparent;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
}

.sidebar__scroll::-webkit-scrollbar {
  width: 8px;
}

.sidebar__scroll::-webkit-scrollbar-track {
  background: transparent;
}

.sidebar__scroll::-webkit-scrollbar-thumb {
  background: var(--green-line);
  border-radius: 999px;
}

.sidebar__scroll::-webkit-scrollbar-thumb:hover {
  background: var(--green-line);
}

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

.sidebar__brand .is-active {
  color: var(--green-deep);
  font-weight: 700;
}

.field-label {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.select-input {
  width: 100%;
  height: 42px;
  padding: 0 12px;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.side-summary {
  display: grid;
  gap: 8px;
  padding: 14px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.side-summary span {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;
}

.side-summary .is-active {
  color: var(--green-deep);
  font-weight: 700;
}

.tool-tabs {
  display: grid;
  gap: 8px;
}

.tool-tabs button,
.tool-tabs a {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 0 12px;
  color: var(--muted);
  text-decoration: none;
  text-align: left;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.tool-tabs .is-selected {
  color: var(--green-deep);
  background: var(--surface-tint);
  border-color: var(--green-line);
  font-weight: 800;
}

.hub-tabs {
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

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

.topbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 22px;
}

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

.topbar-actions .coordinator-filter-control {
  display: grid;
  gap: 6px;
  min-width: 220px;
}

.crumb {
  color: var(--green-deep);
  font-size: 13px;
  font-weight: 800;
}

.topbar h1 {
  margin-top: 6px;
  font-size: clamp(30px, 4vw, 46px);
  line-height: 1.08;
}

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

.metric-panel {
  display: grid;
  gap: 8px;
  min-height: 118px;
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.metric-panel svg {
  color: var(--green);
}

.metric-panel strong {
  font-size: 28px;
}

.home-page {
  display: grid;
  gap: 16px;
}

.home-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
  gap: 18px;
  align-items: stretch;
  padding: 22px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 1px 0 rgba(28, 37, 32, 0.03);
}

.home-hero h2 {
  max-width: 760px;
  margin: 6px 0 10px;
  font-size: clamp(28px, 3.8vw, 44px);
  line-height: 1.06;
}

.home-hero p {
  max-width: 780px;
  margin: 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.55;
  font-weight: 650;
}

.home-hero__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  align-content: stretch;
}

.home-hero__stats div,
.home-action-card {
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.home-hero__stats div {
  display: grid;
  gap: 6px;
  align-content: center;
  min-height: 96px;
  padding: 14px;
}

.home-hero__stats span,
.home-action-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.home-hero__stats strong {
  font-size: 30px;
  line-height: 1;
}

.home-action-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

.home-action-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 16px;
}

.home-action-card .ghost-button {
  grid-column: 2;
  justify-self: start;
}

.home-action-card__icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  color: var(--green);
  background: var(--surface-alt);
  border-radius: 8px;
}

.home-action-card strong {
  display: block;
  margin-top: 3px;
  font-size: 24px;
  line-height: 1.1;
}

.home-action-card p {
  margin: 8px 0 14px;
  color: var(--muted);
  line-height: 1.45;
}

.home-action-card--pipeline {
  grid-template-columns: 42px minmax(0, 1fr);
}

.home-pipeline-mini {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0 14px;
}

.home-pipeline-mini div {
  display: grid;
  gap: 3px;
  min-height: 58px;
  align-content: center;
  padding: 9px;
  background: var(--surface);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.home-pipeline-mini span {
  font-size: 11px;
}

.home-pipeline-mini strong {
  margin: 0;
  font-size: 22px;
  line-height: 1;
}

.home-dispatch-tool {
  display: grid;
  gap: 14px;
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.home-dispatch-tool__header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
}

.home-dispatch-tool__header h2 {
  margin: 4px 0 8px;
  font-size: 28px;
  line-height: 1.15;
}

.home-dispatch-tool__header p,
.home-dispatch-empty {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
  font-weight: 700;
}

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

.home-dispatch-summary div {
  display: grid;
  gap: 5px;
  min-height: 78px;
  align-content: center;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.home-dispatch-summary span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
  text-transform: uppercase;
}

.home-dispatch-summary strong {
  font-size: 28px;
  line-height: 1;
}

.home-dispatch-queue {
  display: grid;
  gap: 8px;
  max-height: 540px;
  overflow: auto;
  padding-right: 2px;
}

.home-dispatch-task {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) minmax(180px, 300px);
  gap: 12px;
  align-items: start;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.home-dispatch-task.is-overdue {
  border-color: rgba(180, 35, 24, 0.38);
  box-shadow: inset 3px 0 0 var(--red);
}

.home-dispatch-task__icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  color: var(--blue);
  background: rgba(54, 93, 133, 0.1);
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 0;
}

.home-dispatch-task__icon--complete {
  color: var(--green-deep);
  background: var(--green-tint);
  border-color: var(--green-line);
  cursor: pointer;
}

.home-dispatch-task__icon--complete:hover,
.home-dispatch-task__icon--complete:focus-visible {
  background: var(--focus-ring);
  border-color: var(--green-line);
  outline: 3px solid var(--focus-ring);
}

.home-dispatch-task__body {
  display: grid;
  min-width: 0;
  gap: 6px;
}

.home-dispatch-task__body strong {
  font-size: 16px;
}

.home-dispatch-task__body p {
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--ink);
  font-weight: 800;
  line-height: 1.35;
}

.home-dispatch-task__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.home-dispatch-task__actions a {
  text-decoration: none;
}

.county-map-layout {
  display: grid;
  grid-template-columns: minmax(420px, 1fr) minmax(300px, 360px);
  gap: 16px;
  padding: 16px;
}

.county-map-stage {
  display: grid;
  min-height: 440px;
  place-items: center;
  padding: 10px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
  overflow: hidden;
}

.iowa-county-map {
  width: 100%;
  height: auto;
  max-height: 560px;
}

.county-shape {
  cursor: pointer;
  fill: #ffffff;
  stroke: #9da9a1;
  stroke-width: 1.25;
  vector-effect: non-scaling-stroke;
  transition: fill 140ms ease, stroke 140ms ease, stroke-width 140ms ease;
}

.county-shape:hover,
.county-shape:focus-visible,
.county-shape.is-selected {
  fill: var(--surface-alt);
  stroke: var(--ink);
  stroke-width: 2.25;
  outline: none;
}

.county-label {
  pointer-events: none;
  fill: #1c2520;
  font-size: 9.2px;
  font-weight: 850;
  letter-spacing: 0;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, 0.82);
  stroke-linejoin: round;
  stroke-width: 2.8px;
}

.county-label.is-small {
  font-size: 8.4px;
}

.county-label.is-tiny {
  font-size: 7.6px;
}

.county-detail-panel {
  display: grid;
  align-content: start;
  gap: 14px;
}

.county-detail-panel h3 {
  margin: -4px 0 0;
  font-size: 26px;
  line-height: 1.12;
}

.county-detail-list {
  display: grid;
  gap: 8px;
  margin: 0;
}

.county-detail-list div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.county-detail-list dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.county-detail-list dd {
  margin: 0;
  color: var(--ink);
  font-weight: 800;
  text-align: right;
}

.county-directory {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  max-height: 288px;
  overflow: auto;
  padding-right: 4px;
}

.county-directory button {
  min-height: 32px;
  padding: 0 9px;
  color: var(--ink);
  text-align: left;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 6px;
  font-size: 12px;
  font-weight: 800;
}

.county-directory button:hover,
.county-directory button:focus-visible,
.county-directory .is-selected {
  color: var(--on-accent);
  background: var(--green);
  border-color: var(--green);
  outline: none;
}

.county-map-source {
  padding: 0 16px 16px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.county-map-source a {
  color: var(--green-deep);
  font-weight: 800;
}

.campaign-board-page {
  display: grid;
  gap: 16px;
}

.campaign-board-intro {
  display: grid;
  gap: 8px;
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.campaign-board-intro h2 {
  margin: 4px 0 8px;
  font-size: 28px;
  line-height: 1.15;
}

.campaign-board-intro p {
  max-width: 920px;
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
  font-weight: 650;
}

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

.campaign-create-panel {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(140px, 170px) minmax(150px, 190px) max-content max-content;
  gap: 10px;
  align-items: end;
  padding: 16px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.campaign-checkbox-field {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
}

.campaign-checkbox-field input {
  width: 18px;
  height: 18px;
  accent-color: var(--green);
}

.campaign-board-toolbar {
  display: flex;
  justify-content: flex-end;
}

.campaign-toggle-button.is-selected {
  color: var(--on-accent);
  background: var(--green);
  border-color: var(--green);
}

.toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.notice-bar {
  margin-bottom: 12px;
  padding: 11px 12px;
  color: var(--green-deep);
  background: var(--surface-alt);
  border: 1px solid var(--green-line);
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 700;
}

.notice-bar.is-error {
  color: var(--red);
  background: var(--danger-bg);
  border-color: rgba(180, 35, 24, 0.25);
}

.add-panel {
  display: grid;
  gap: 14px;
  margin-bottom: 16px;
  padding: 16px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.add-panel.is-collapsed {
  display: none;
}

.add-panel.is-collapsed:target {
  display: grid;
}

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

.add-panel h2 {
  margin: 4px 0 0;
  font-size: 22px;
}

.add-panel__grid {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(180px, 260px) max-content;
  gap: 10px;
  align-items: end;
}

.add-panel__grid label {
  display: grid;
  gap: 6px;
}

.contacts-hub-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
  gap: 16px;
  align-items: start;
}

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

.panel-heading h2 {
  margin: 4px 0 0;
  font-size: 20px;
}

.panel-heading__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
}

.contact-name-list {
  display: grid;
  max-height: calc(100vh - 230px);
  overflow: auto;
}

.contact-name-row {
  width: 100%;
  padding: 13px 14px;
  color: var(--ink);
  text-align: left;
  appearance: none;
  background: transparent;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  border-bottom: 1px solid var(--soft);
  border-top: 0;
  border-right: 0;
  border-left: 0;
}

.contact-name-row:last-child {
  border-bottom: 0;
}

.contact-name-row:hover,
.contact-name-row:focus-visible {
  background: var(--surface-alt);
}

.claim-form {
  display: grid;
  gap: 10px;
  padding: 14px;
}

.sync-help-panel {
  display: grid;
  gap: 8px;
  padding: 12px 14px;
  background: var(--surface-tint);
  border-bottom: 1px solid var(--line);
}

.sync-help-panel strong,
.sync-help-panel span {
  display: block;
}

.sync-help-panel span {
  color: var(--muted);
  font-weight: 600;
  line-height: 1.35;
}

.sync-help-panel code {
  display: block;
  padding: 9px 10px;
  overflow-wrap: anywhere;
  color: var(--green-deep);
  background: var(--surface);
  border: 1px solid var(--soft);
  border-radius: 7px;
  font-family: inherit;
  font-weight: 800;
  line-height: 1.3;
}

.sync-help-panel .ghost-button {
  justify-self: start;
}

.contact-import-panel {
  display: grid;
  gap: 10px;
  padding: 14px;
  border-bottom: 1px solid var(--line);
}

.contact-import-preview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: 10px;
  align-items: center;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.contact-import-preview strong,
.contact-import-preview span {
  display: block;
}

.contact-import-preview span {
  color: var(--muted);
  font-weight: 600;
  overflow-wrap: anywhere;
}

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

.contact-create-panel {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.contact-create-mode {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.contact-create-mode .ghost-button.is-active {
  color: var(--green);
  background: var(--surface-tint);
  border-color: var(--green-line);
}

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

.contact-create-grid label,
.contact-create-panel label {
  display: grid;
  gap: 6px;
}

.contact-create-grid input {
  width: 100%;
  min-width: 0;
  padding: 11px 12px;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-weight: 700;
}

.contact-create-grid__wide {
  grid-column: 1 / -1;
}

.contact-create-dropzone {
  position: relative;
  display: grid;
  gap: 6px;
  justify-items: start;
  padding: 14px;
  color: var(--muted);
  background: var(--surface);
  border: 1px dashed var(--green-line);
  border-radius: 7px;
  cursor: pointer;
}

.contact-create-dropzone input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.contact-create-dropzone span {
  width: 24px;
  height: 24px;
  color: var(--green);
}

.contact-create-dropzone span svg {
  width: 24px;
  height: 24px;
}

.contact-create-dropzone strong {
  color: var(--ink);
}

.contact-create-dropzone small {
  overflow-wrap: anywhere;
  font-weight: 700;
}

.contact-create-dropzone img {
  max-width: 100%;
  max-height: 130px;
  object-fit: contain;
  border: 1px solid var(--line);
  border-radius: 6px;
}

.contact-create-status {
  padding: 9px 10px;
  color: var(--muted);
  background: var(--surface);
  border: 1px solid var(--soft);
  border-radius: 7px;
  font-weight: 700;
}

.contact-create-status.is-error {
  color: var(--red);
  background: var(--danger-bg);
  border-color: var(--red);
}

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

.claim-form label {
  display: grid;
  gap: 6px;
}

.contact-results {
  display: grid;
  gap: 8px;
}

.contact-result,
.empty-result {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(180px, auto) max-content;
  gap: 12px;
  align-items: center;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

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

.contact-result__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
}

.empty-result {
  grid-template-columns: minmax(180px, 1fr) max-content;
}

.empty-result--create {
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
}

.empty-result--single {
  grid-template-columns: 1fr;
}

.empty-result__copy {
  display: grid;
  gap: 2px;
}

.empty-result__copy span {
  color: var(--muted);
  font-weight: 600;
}

.empty-result--dispatch-create {
  grid-template-columns: minmax(0, 1fr);
}

.claim-panel .contact-results {
  padding: 0 14px 14px;
}

.claim-panel .contact-result,
.claim-panel .empty-result {
  grid-template-columns: minmax(160px, 1fr) max-content;
}

.claim-panel .empty-result--single {
  grid-template-columns: 1fr;
}

.claim-create-prompt {
  align-items: start;
}

.claim-create-prompt__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dispatch-create-status {
  display: grid;
  gap: 6px;
}

.dispatch-page {
  display: grid;
  gap: 16px;
}

.dispatch-panel {
  display: grid;
  gap: 16px;
  max-width: 1080px;
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 1px 0 rgba(28, 37, 32, 0.03);
}

.dispatch-panel header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.dispatch-panel h2 {
  margin: 4px 0 0;
  font-size: 26px;
  line-height: 1.15;
}

.dispatch-panel-actions {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.dispatch-form {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) max-content;
  gap: 10px;
  align-items: end;
}

.dispatch-form label {
  display: grid;
  gap: 6px;
}

.dispatch-results {
  display: grid;
  gap: 8px;
}

.manual-dispatch-flyout {
  gap: 20px;
  width: min(620px, 100vw);
  padding: 22px;
  background: var(--dispatch-flyout-bg);
  border-left-color: var(--dispatch-field-border);
  box-shadow: -22px 0 56px rgba(28, 37, 32, 0.2);
}

.manual-dispatch-header {
  position: relative;
  padding: 18px;
  overflow: hidden;
  background: var(--dispatch-flyout-header-bg);
  border: 1px solid var(--dispatch-field-border);
  border-radius: 12px;
  box-shadow: var(--dispatch-control-shadow);
}

.manual-dispatch-title-row {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.manual-dispatch-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  color: var(--on-accent);
  background: var(--green);
  border: 1px solid var(--green-line);
  border-radius: 12px;
  box-shadow: 0 12px 26px rgba(56, 108, 60, 0.18);
}

.manual-dispatch-icon svg {
  width: 21px;
  height: 21px;
}

.manual-dispatch-header .crumb {
  color: var(--green-deep);
  font-size: 12px;
  letter-spacing: 0.04em;
}

.manual-dispatch-header .status-pill {
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid var(--green-line);
  box-shadow: 0 10px 22px rgba(56, 108, 60, 0.12);
}

.manual-dispatch-header .icon-button {
  width: 40px;
  height: 40px;
  color: var(--green-deep);
  background: var(--dispatch-control-bg);
  border-color: var(--dispatch-field-border);
  box-shadow: var(--dispatch-control-shadow);
}

.manual-dispatch-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-items: stretch;
}

.manual-dispatch-field {
  display: grid;
  gap: 7px;
  min-width: 0;
  padding: 12px;
  background: var(--dispatch-field-bg);
  border: 1px solid var(--dispatch-field-border);
  border-radius: 12px;
  box-shadow: var(--dispatch-control-shadow);
}

.manual-dispatch-field .field-label {
  color: var(--green-deep);
  font-size: 11px;
  letter-spacing: 0.045em;
}

.manual-contact-picker {
  gap: 10px;
}

.manual-contact-picker > label {
  display: grid;
  gap: 7px;
}

.manual-contact-search {
  height: 48px;
  background: var(--dispatch-control-bg);
  border-color: var(--line);
  border-radius: 10px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.manual-contact-search input {
  font-weight: 750;
}

.manual-contact-empty,
.manual-selected-contact,
.manual-contact-create {
  padding: 12px;
  background: var(--dispatch-control-bg);
  border: 1px solid var(--line);
  border-radius: 10px;
}

.manual-contact-empty,
.manual-contact-create__copy {
  display: grid;
  gap: 3px;
}

.manual-contact-empty span,
.manual-contact-create__copy span,
.manual-selected-contact span,
.manual-contact-result span {
  color: var(--muted);
  font-weight: 700;
}

.manual-contact-results {
  display: grid;
  gap: 8px;
  max-height: 240px;
  overflow: auto;
}

.manual-contact-result,
.manual-selected-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.manual-contact-result {
  width: 100%;
  padding: 11px 12px;
  color: var(--ink);
  text-align: left;
  background: var(--dispatch-control-bg);
  border: 1px solid var(--line);
  border-radius: 10px;
}

.manual-contact-result:hover,
.manual-contact-result:focus-visible {
  border-color: var(--green);
  box-shadow: 0 0 0 3px var(--focus-ring);
  outline: 0;
}

.manual-contact-result div,
.manual-selected-contact div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.manual-contact-create {
  display: grid;
  gap: 10px;
}

.manual-contact-create__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 0.7fr);
  gap: 10px;
}

.manual-contact-create__grid label {
  display: grid;
  gap: 6px;
}

.manual-contact-create__grid input {
  width: 100%;
  min-width: 0;
  height: 42px;
  padding: 0 12px;
  color: var(--ink);
  background: var(--dispatch-control-bg);
  border: 1px solid var(--line);
  border-radius: 9px;
  font: inherit;
  font-weight: 750;
}

.manual-dispatch-form__wide {
  grid-column: 1 / -1;
}

.manual-dispatch-form .select-input,
.manual-dispatch-input,
.local-datetime-control input,
.local-datetime-control select {
  height: 48px;
  padding: 0 14px;
  color: var(--ink);
  background: var(--dispatch-control-bg);
  border: 1px solid var(--line);
  border-radius: 10px;
  color-scheme: inherit;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
  transition: border-color 140ms ease, box-shadow 140ms ease, background 140ms ease;
}

.manual-dispatch-form .select-input:focus,
.manual-dispatch-input:focus,
.local-datetime-control input:focus,
.local-datetime-control select:focus,
.manual-dispatch-form textarea:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px var(--focus-ring), var(--dispatch-control-shadow);
  outline: 0;
}

.manual-dispatch-form textarea {
  width: 100%;
  min-height: 128px;
  padding: 14px;
  resize: vertical;
  color: var(--ink);
  background: var(--dispatch-control-bg);
  border: 1px solid var(--line);
  border-radius: 10px;
  color-scheme: inherit;
  font: inherit;
  font-weight: 750;
  line-height: 1.35;
  transition: border-color 140ms ease, box-shadow 140ms ease, background 140ms ease;
}

.local-datetime-control {
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(140px, 1fr) minmax(132px, 1fr);
}

.time-select {
  color-scheme: light;
}

.manual-dispatch-form .primary-button {
  grid-column: 1 / -1;
  height: 50px;
  justify-content: center;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 850;
  box-shadow: var(--dispatch-action-shadow);
}

.manual-dispatch-form .primary-button:disabled {
  box-shadow: none;
}

.dispatch-triage-panel {
  display: grid;
  gap: 14px;
  max-width: 1080px;
  padding: 16px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 1px 0 rgba(28, 37, 32, 0.03);
}

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

.dispatch-triage-header h2 {
  margin: 3px 0 0;
  font-size: 22px;
}

.dispatch-triage-header > strong {
  display: grid;
  min-width: 38px;
  height: 32px;
  place-items: center;
  color: var(--on-accent);
  background: var(--green);
  border-radius: 999px;
}

.dispatch-checklist-expand-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  color: var(--ink);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 999px;
  font: inherit;
  cursor: pointer;
}

.dispatch-checklist-expand-button svg {
  width: 21px;
  height: 21px;
  color: var(--green-deep);
}

.dispatch-checklist-expand-button:hover,
.dispatch-checklist-expand-button:focus-visible {
  background: var(--green-tint);
  border-color: var(--green-line);
  outline: none;
}

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

.dispatch-triage-summary span {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 10px;
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.dispatch-triage-summary small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.dispatch-triage-summary strong {
  color: var(--ink);
  font-size: 20px;
}

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

.dispatch-triage-task {
  display: grid;
  grid-template-columns: minmax(92px, 0.18fr) minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.dispatch-triage-task.is-overdue {
  border-color: rgba(183, 121, 31, 0.28);
  background: var(--warning-bg);
}

.dispatch-triage-task__marker span {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  color: var(--green-deep);
  background: var(--green-tint);
  border: 1px solid var(--green-line);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.dispatch-triage-task__marker {
  padding-top: 36px;
}

.dispatch-triage-task__body {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.dispatch-triage-task__body strong,
.dispatch-triage-task__body p,
.dispatch-triage-task__body span {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.dispatch-triage-task__body p {
  color: var(--ink);
  font-weight: 800;
}

.dispatch-triage-task__actions {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  min-width: 0;
  gap: 8px;
  align-items: center;
  justify-content: flex-start;
  margin-top: -2px;
}

.dispatch-review-follow-up-form {
  grid-column: 2;
  display: grid;
  flex: 1 0 100%;
  gap: 10px;
  min-width: 0;
  padding: 12px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.dispatch-review-follow-up-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.dispatch-review-follow-up-form__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px;
}

.dispatch-review-follow-up-form select,
.dispatch-review-follow-up-form input,
.dispatch-review-follow-up-form textarea {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  color: var(--ink);
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-weight: 700;
}

.dispatch-review-follow-up-form select,
.dispatch-review-follow-up-form input {
  min-height: 44px;
  padding: 0 12px;
}

.dispatch-review-follow-up-form textarea {
  min-height: 86px;
  padding: 12px;
  resize: vertical;
}

.dispatch-review-follow-up-form select:focus,
.dispatch-review-follow-up-form input:focus,
.dispatch-review-follow-up-form textarea:focus {
  outline: 3px solid var(--focus-ring);
  border-color: var(--green-line);
}

.dispatch-review-follow-up-form__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.home-dispatch-task .dispatch-completion-note-form {
  grid-column: 2 / -1;
}

.dispatch-result {
  display: grid;
  grid-template-columns: minmax(200px, 1.1fr) minmax(260px, 1fr) minmax(190px, 0.75fr) max-content;
  gap: 12px;
  align-items: center;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

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

.dispatch-result__person,
.dispatch-result__summary {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.dispatch-result__person span,
.dispatch-result__summary strong,
.dispatch-result__attribute {
  color: var(--muted);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.dispatch-result__status {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.dispatch-result__summary {
  padding: 8px 10px;
  background: var(--surface);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.dispatch-table {
  max-width: 1080px;
}

.dispatch-table__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
}

.dispatch-table__header h2 {
  margin: 3px 0 0;
  font-size: 22px;
}

.dispatch-table__header strong {
  display: grid;
  min-width: 38px;
  height: 32px;
  place-items: center;
  color: var(--on-accent);
  background: var(--green);
  border-radius: 999px;
}

.dispatch-table .empty-note {
  padding: 14px 16px;
}

.dispatch-row {
  cursor: pointer;
}

.dispatch-row:hover td {
  background: var(--surface-tint);
}

.dispatch-task-row-label {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.dispatch-date {
  display: inline-block;
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

.dispatch-date.is-missing {
  color: var(--muted);
}

.flyout-backdrop {
  position: fixed;
  inset: 0;
  z-index: 20;
  background: var(--backdrop);
}

.detail-flyout {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 21;
  display: grid;
  align-content: start;
  gap: 18px;
  width: min(560px, 100vw);
  height: 100vh;
  padding: 24px;
  overflow: auto;
  background: var(--surface);
  border-left: 1px solid var(--line);
  box-shadow: -18px 0 40px rgba(28, 37, 32, 0.16);
}

.settings-flyout {
  width: min(640px, 100vw);
}

.claim-create-flyout {
  width: min(720px, 100vw);
}

.pipeline-dismissal-flycard {
  top: 50%;
  right: auto;
  left: 50%;
  gap: 16px;
  width: min(560px, calc(100vw - 48px));
  height: auto;
  max-height: calc(100vh - 64px);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 24px 70px rgba(28, 37, 32, 0.28);
  transform: translate(-50%, -50%);
}

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

.pipeline-dismissal-context {
  margin: 0;
  color: var(--muted);
  font-weight: 700;
  line-height: 1.45;
}

.pipeline-dismissal-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.time-log-flyout {
  top: 50%;
  right: auto;
  left: 50%;
  gap: 16px;
  width: min(1120px, calc(100vw - 64px));
  height: min(900px, calc(100vh - 64px));
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 24px 70px rgba(28, 37, 32, 0.28);
  transform: translate(-50%, -50%);
}

.time-log-flyout .schedule-builder-panel {
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.claim-create-context {
  display: grid;
  gap: 10px;
}

.claim-create-context label {
  display: grid;
  gap: 6px;
}

.detail-flyout header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.flyout-header-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.detail-flyout h2 {
  margin: 4px 0 0;
  font-size: 30px;
  line-height: 1.08;
}

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

.detail-status-row--dispatch {
  align-items: center;
  justify-content: space-between;
}

.detail-status-pills {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.dispatch-flyout-primary-actions {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.contact-action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 0 12px;
  color: var(--green-deep);
  text-decoration: none;
  background: var(--surface-alt);
  border: 1px solid var(--focus-ring);
  border-radius: var(--radius);
  font-weight: 800;
}

.contact-action--icon {
  width: 38px;
  justify-content: center;
  padding: 0;
}

.detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.detail-field,
.detail-notes {
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.detail-field span:not(.field-label),
.detail-field a,
.detail-notes p {
  margin: 0;
  color: var(--ink);
  overflow-wrap: anywhere;
  font-weight: 700;
}

.detail-field a {
  color: var(--green-deep);
}

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

.detail-import-panel {
  display: grid;
  gap: 8px;
}

.detail-import-dropzone {
  min-height: 112px;
}

.detail-edit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

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

.detail-edit-field--full {
  grid-column: 1 / -1;
}

.detail-edit-field input,
.detail-edit-field select,
.detail-edit-field textarea {
  width: 100%;
  min-width: 0;
  color: var(--ink);
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-weight: 700;
}

.detail-edit-field input,
.detail-edit-field select {
  height: 44px;
  padding: 0 12px;
}

.detail-edit-field textarea {
  min-height: 120px;
  padding: 12px;
  resize: vertical;
}

.detail-edit-field input:focus,
.detail-edit-field select:focus,
.detail-edit-field textarea:focus {
  outline: 3px solid var(--focus-ring);
  border-color: var(--green-line);
}

.settings-empty,
.settings-auth-card {
  display: grid;
  gap: 6px;
  padding: 14px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.settings-empty span,
.settings-auth-card span:not(.field-label) {
  color: var(--muted);
  font-weight: 600;
}

.settings-auth-card {
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: center;
}

.settings-tabs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 6px;
  padding: 5px;
  background: var(--surface-tint);
  border: 1px solid var(--soft);
  border-radius: 8px;
}

.settings-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
  min-height: 42px;
  padding: 0 12px;
  color: var(--muted);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 7px;
  font: inherit;
  font-weight: 900;
}

.settings-tab svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.settings-tab span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.settings-tab:hover,
.settings-tab:focus-visible,
.settings-tab.is-selected {
  color: var(--green-deep);
  background: var(--surface);
  border-color: var(--green-line);
  outline: none;
}

.settings-tab.is-selected {
  box-shadow: 0 0 0 3px var(--focus-ring);
}

.settings-page {
  display: grid;
  gap: 16px;
  min-width: 0;
}

.settings-admin-card {
  display: grid;
  gap: 14px;
  padding: 14px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

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

.screen-scheme-option {
  display: grid;
  min-width: 0;
  gap: 6px;
  align-content: start;
  padding: 12px;
  color: var(--ink);
  text-align: left;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.screen-scheme-option:hover,
.screen-scheme-option:focus-visible,
.screen-scheme-option.is-selected {
  border-color: var(--green-line);
  box-shadow: 0 0 0 3px var(--focus-ring);
  outline: none;
}

.screen-scheme-option.is-selected {
  background: var(--surface-tint);
}

.screen-scheme-option small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
}

.screen-scheme-note {
  margin: -4px 0 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 750;
}

.screen-scheme-swatch {
  display: block;
  width: 100%;
  height: 34px;
  border: 1px solid var(--line);
  border-radius: 6px;
}

.screen-scheme-swatch--light {
  background:
    linear-gradient(90deg, #ffffff 0 34%, #f5f7f4 34% 67%, #41693d 67% 100%);
}

.screen-scheme-swatch--mid {
  background:
    linear-gradient(90deg, #fbfcf7 0 34%, #edf2e8 34% 67%, #244b36 67% 100%);
}

.screen-scheme-swatch--dark {
  background:
    linear-gradient(90deg, #10251d 0 34%, #061611 34% 67%, #9fcb84 67% 100%);
}

.settings-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.settings-section-head div {
  display: grid;
  gap: 4px;
}

.settings-section-head strong {
  color: var(--ink);
  font-size: 18px;
}

.settings-audit-card {
  gap: 12px;
}

.settings-audit-intro {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
  font-weight: 650;
}

.capture-audit-list {
  display: grid;
  gap: 8px;
}

.capture-audit-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: 12px;
  align-items: start;
  padding: 12px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.capture-audit-item__main {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.capture-audit-item__main strong {
  color: var(--ink);
}

.capture-audit-item__main span {
  color: var(--muted);
  line-height: 1.4;
  font-size: 13px;
  font-weight: 650;
}

.capture-audit-item__main small {
  color: var(--green-deep);
  overflow-wrap: anywhere;
  font-size: 12px;
  font-weight: 800;
}

.user-create-form {
  display: grid;
  gap: 12px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--soft);
}

.email-requirement {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.email-requirement svg {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
}

.user-log {
  display: grid;
  gap: 8px;
  max-height: 320px;
  overflow: auto;
}

.user-log-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(138px, max-content);
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px;
  color: var(--ink);
  text-align: left;
  background: var(--surface);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.user-log-row:hover,
.user-log-row.is-selected,
.user-log-row:focus-within {
  border-color: var(--green-line);
  box-shadow: 0 0 0 3px var(--green-tint);
}

.user-log-row__profile {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) max-content;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 0;
  color: inherit;
  text-align: left;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.user-log-row__avatar {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  color: var(--green-deep);
  background: var(--green-tint);
  border-radius: 7px;
  font-size: 13px;
  font-weight: 900;
}

.user-log-row__main,
.user-log-row__meta {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.user-log-row__main strong,
.user-log-row__main small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.user-log-row__main small,
.user-log-row__meta {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.user-log-row__meta {
  justify-items: end;
}

.access-tier-control {
  display: grid;
  gap: 5px;
  min-width: 138px;
}

.access-tier-control .select-input {
  min-height: 36px;
  padding: 0 34px 0 10px;
}

.user-login-actions {
  display: flex;
  flex-wrap: wrap;
  grid-column: 1 / -1;
  gap: 8px;
  align-items: center;
  padding-top: 10px;
  border-top: 1px solid var(--soft);
}

.auth-link-preview {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) max-content max-content;
  gap: 8px;
  width: 100%;
}

.auth-link-preview input {
  min-width: 0;
  height: 34px;
  padding: 0 10px;
  color: var(--muted);
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
  font-size: 12px;
  font-weight: 700;
}

.visibility-admin-card {
  gap: 12px;
}

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

.visibility-user-card {
  display: grid;
  gap: 12px;
  padding: 12px;
  background: var(--surface);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.visibility-user-card header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, max-content);
  gap: 12px;
  align-items: start;
}

.visibility-user-card header div:first-child {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.visibility-user-card header strong {
  color: var(--ink);
}

.visibility-user-card header span,
.visibility-saving-note {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.visibility-status-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

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

.tool-visibility-toggle {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  min-width: 0;
  padding: 10px;
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.tool-visibility-toggle input {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--green);
}

.tool-visibility-toggle > span {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.tool-visibility-toggle svg {
  width: 18px;
  height: 18px;
  color: var(--green-deep);
}

.tool-visibility-toggle strong {
  color: var(--ink);
  font-size: 13px;
  line-height: 1.25;
}

.tool-visibility-toggle small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
}

.tool-visibility-toggle.is-locked {
  background: var(--green-tint);
}

.dispatch-task-log {
  display: grid;
  gap: 12px;
  padding: 14px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.dispatch-task-log__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.dispatch-task-log__header div {
  display: grid;
  gap: 4px;
}

.dispatch-task-log__header strong {
  color: var(--ink);
  font-size: 18px;
}

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

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

.dispatch-entry-choice {
  display: flex;
  min-height: 42px;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
  cursor: pointer;
  font-weight: 900;
}

.dispatch-entry-choice:has(input:checked) {
  color: var(--green-deep);
  background: var(--green-tint);
  border-color: var(--green-line);
}

.dispatch-entry-choice input {
  accent-color: var(--green-deep);
}

.dispatch-task-type-field {
  display: grid;
  gap: 6px;
}

.dispatch-task-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px;
}

.dispatch-task-type-field select,
.dispatch-task-type-field input {
  min-height: 44px;
  padding: 0 12px;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-weight: 800;
}

.dispatch-task-type-field select:focus,
.dispatch-task-type-field input:focus {
  outline: 3px solid var(--focus-ring);
  border-color: var(--green-line);
}

.dispatch-task-composer-trigger {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 48px;
  padding: 0 12px;
  color: var(--muted);
  text-align: left;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-weight: 800;
}

.dispatch-task-composer-trigger:focus,
.dispatch-task-composer-trigger:hover {
  outline: 3px solid var(--focus-ring);
  border-color: var(--green-line);
}

.dispatch-task-form textarea,
.dispatch-task-edit-form textarea,
.dispatch-task-due-form input {
  width: 100%;
  padding: 12px;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-weight: 700;
  resize: vertical;
}

.dispatch-task-form textarea,
.dispatch-task-edit-form textarea {
  min-height: 86px;
}

.dispatch-task-due-form input {
  min-height: 44px;
}

.dispatch-task-form textarea:focus,
.dispatch-task-edit-form textarea:focus,
.dispatch-task-due-form input:focus {
  outline: 3px solid var(--focus-ring);
  border-color: var(--green-line);
}

.dispatch-task-form__actions,
.dispatch-task-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.dispatch-task-list {
  display: grid;
  gap: 8px;
}

.dispatch-task-item {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 11px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.dispatch-task-item--auto {
  background: var(--green-tint);
  border-color: var(--green-line);
}

.dispatch-task-copy {
  display: grid;
  flex: 1 1 220px;
  min-width: 0;
  gap: 6px;
}

.dispatch-task-label-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.dispatch-task-kind,
.dispatch-task-status {
  display: inline-flex;
  width: fit-content;
  min-height: 22px;
  align-items: center;
  padding: 0 8px;
  color: var(--muted);
  background: var(--surface-alt);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.dispatch-task-kind.is-task {
  color: var(--green-deep);
  background: var(--green-tint);
}

.dispatch-task-kind.is-note {
  color: var(--blue);
  background: rgba(54, 93, 133, 0.1);
}

.dispatch-task-status.is-open {
  color: var(--amber);
  background: rgba(188, 122, 23, 0.14);
}

.dispatch-task-status.is-review {
  color: var(--blue);
  background: rgba(54, 93, 133, 0.13);
}

.dispatch-task-status.is-saved {
  color: var(--green-deep);
  background: var(--green-tint);
}

.dispatch-task-edit-form,
.dispatch-task-due-form {
  display: grid;
  width: 100%;
  gap: 10px;
}

.dispatch-task-item p,
.dispatch-task-empty {
  margin: 0;
}

.dispatch-task-item p {
  color: var(--ink);
  overflow-wrap: anywhere;
  font-weight: 800;
}

.dispatch-task-meta,
.dispatch-task-empty {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.dispatch-task-due {
  display: inline-flex;
  width: fit-content;
  min-height: 24px;
  align-items: center;
  padding: 0 9px;
  color: var(--green-deep);
  background: var(--green-tint);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
}

.dispatch-task-due.is-overdue {
  color: var(--on-accent);
  background: var(--red);
}

.dispatch-task-auto-pill,
.pipeline-lock-note {
  color: var(--green-deep);
  font-size: 12px;
  font-weight: 800;
}

.dispatch-task-auto-pill {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  padding: 0 9px;
  background: var(--green-tint);
  border-radius: 999px;
}

.pipeline-status-stack {
  display: grid;
  gap: 6px;
}

.pipeline-lock-note {
  display: block;
  color: var(--muted);
  line-height: 1.25;
}

.dispatch-pipeline-tracker {
  display: grid;
  gap: 14px;
  padding: 16px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.dispatch-pipeline-tracker header {
  display: grid;
  grid-template-columns: minmax(0, 420px) auto;
  align-items: start;
  gap: 16px;
}

.dispatch-pipeline-tracker header > .status-pill {
  justify-self: end;
}

.dispatch-pipeline-status-control {
  display: grid;
  gap: 7px;
  width: 100%;
  min-width: 0;
  padding: 9px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.dispatch-pipeline-status-control .field-label {
  text-align: left;
}

.dispatch-pipeline-status-control .pipeline-status-stack {
  width: 100%;
}

.dispatch-pipeline-status-control .pipeline-status-select {
  height: 38px;
  background: var(--surface-raised);
}

.dispatch-pipeline-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(142px, 1fr));
  gap: 8px;
}

.dispatch-pipeline-step {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  justify-content: flex-start;
  min-height: 38px;
  padding: 8px 10px;
  color: var(--muted);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.15;
}

.dispatch-pipeline-step i {
  display: block;
  width: 9px;
  height: 9px;
  background: var(--soft);
  border-radius: 999px;
}

.dispatch-pipeline-step.is-complete {
  color: var(--green-deep);
  border-color: var(--green-line);
}

.dispatch-pipeline-step.is-complete i {
  background: var(--green);
}

.dispatch-pipeline-step.is-current {
  color: var(--on-accent);
  background: var(--green);
  border-color: var(--green);
}

.dispatch-pipeline-step.is-current i {
  background: var(--surface);
}

.dispatch-pipeline-step.is-next {
  color: var(--amber);
  background: rgba(245, 196, 81, 0.18);
  border-color: rgba(188, 122, 23, 0.2);
}

.dispatch-pipeline-step.is-next i {
  background: var(--amber);
}

.dispatch-pipeline-step.is-off-track {
  color: var(--blue);
  border-color: rgba(54, 93, 133, 0.22);
}

.dispatch-pipeline-step.is-off-track i {
  background: var(--blue);
}

.dispatch-pipeline-tracker p {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin: 0;
  padding: 10px 12px;
  color: var(--muted);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
  font-size: 13px;
  font-weight: 800;
}

.dispatch-pipeline-tracker p strong {
  color: var(--ink);
}

.detail-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.search-box {
  display: flex;
  flex: 1;
  align-items: center;
  gap: 10px;
  height: 46px;
  padding: 0 12px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.search-box svg {
  color: var(--muted);
  flex: 0 0 auto;
}

.search-box input {
  width: 100%;
  min-width: 0;
  color: var(--ink);
  background: transparent;
  border: 0;
  caret-color: var(--green);
  outline: 0;
}

.search-box input::placeholder {
  color: var(--muted);
  opacity: 0.86;
}

.segmented-control {
  display: inline-flex;
  min-width: max-content;
  padding: 4px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.segmented-control button,
.segmented-control a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 0 12px;
  color: var(--muted);
  background: transparent;
  border: 0;
  border-radius: 6px;
  text-decoration: none;
}

.segmented-control .is-selected {
  color: var(--green-deep);
  background: var(--surface-alt);
  font-weight: 800;
}

.status-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  padding-bottom: 12px;
}

.status-strip button,
.status-strip a {
  flex: 0 0 auto;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  padding: 0 13px;
  color: var(--muted);
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 760;
  text-decoration: none;
}

.status-strip .is-selected {
  color: var(--on-accent);
  background: var(--green);
  border-color: var(--green);
}

.pipeline-dashboard {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(236px, 1fr));
  gap: 14px;
  align-items: start;
}

.pipeline-summary-card,
.table-panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 1px 0 rgba(28, 37, 32, 0.03);
}

.pipeline-summary-card {
  display: grid;
  gap: 14px;
  min-height: 138px;
  padding: 16px;
  background: var(--surface-raised);
  border-color: var(--soft);
  --pipeline-accent: var(--status-neutral-ink);
  --pipeline-pill-bg: var(--status-neutral-bg);
  --pipeline-pill-ink: var(--status-neutral-ink);
  --pipeline-pill-line: var(--status-neutral-line);
}

.pipeline-summary-card--button {
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  appearance: none;
  cursor: pointer;
}

.pipeline-summary-card--button:hover,
.pipeline-summary-card--button:focus-visible {
  border-color: var(--pipeline-pill-line);
  box-shadow: 0 0 0 3px var(--pipeline-pill-bg);
  outline: none;
}

.pipeline-summary-card--button.is-selected {
  border-color: var(--pipeline-accent);
  box-shadow:
    inset 0 0 0 1px var(--pipeline-accent),
    0 1px 0 rgba(28, 37, 32, 0.03);
}

.pipeline-summary-card header,
.pipeline-summary-card__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

.pipeline-summary-card header strong,
.pipeline-summary-card__header strong {
  justify-self: end;
  min-width: 2ch;
  font-size: 34px;
  line-height: 1;
  text-align: right;
}

.pipeline-summary-card .status-pill {
  max-width: 100%;
  min-height: 28px;
  min-width: 0;
  padding: 0 11px;
  overflow: hidden;
  color: var(--pipeline-pill-ink);
  text-overflow: ellipsis;
  white-space: nowrap;
  background: var(--pipeline-pill-bg);
  border: 1px solid var(--pipeline-pill-line);
}

.pipeline-summary-card.is-green {
  --pipeline-accent: var(--status-green-ink);
  --pipeline-pill-bg: var(--status-green-bg);
  --pipeline-pill-ink: var(--status-green-ink);
  --pipeline-pill-line: var(--status-green-line);
}

.pipeline-summary-card.is-blue {
  --pipeline-accent: var(--status-blue-ink);
  --pipeline-pill-bg: var(--status-blue-bg);
  --pipeline-pill-ink: var(--status-blue-ink);
  --pipeline-pill-line: var(--status-blue-line);
}

.pipeline-summary-card.is-amber {
  --pipeline-accent: var(--status-amber-ink);
  --pipeline-pill-bg: var(--status-amber-bg);
  --pipeline-pill-ink: var(--status-amber-ink);
  --pipeline-pill-line: var(--status-amber-line);
}

.pipeline-summary-card__bar {
  height: 9px;
  overflow: hidden;
  background: var(--progress-track);
  border-radius: 999px;
}

.pipeline-summary-card__bar span {
  display: block;
  height: 100%;
  background: var(--pipeline-accent);
  border-radius: inherit;
}

.pipeline-summary-card__meta {
  display: block;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.pipeline-status-select {
  width: 100%;
  height: 34px;
  padding: 0 9px;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 6px;
  font-size: 13px;
  font-weight: 700;
}

.pipeline-status-select:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px var(--green-tint);
  outline: none;
}

.icon-link {
  display: inline-grid;
  width: 30px;
  height: 30px;
  place-items: center;
  color: var(--green);
  background: var(--surface-alt);
  border-radius: 6px;
}

.status-pill,
td .status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 24px;
  padding: 0 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  text-align: center;
}

.status-pill.is-green {
  color: var(--on-accent);
  background: var(--green);
}

.status-pill.is-red {
  color: var(--on-accent);
  background: var(--red);
}

.status-pill.is-blue {
  color: var(--on-accent);
  background: var(--blue);
}

.status-pill.is-amber {
  color: var(--ink);
  background: #f6d778;
}

.status-pill.is-neutral {
  color: var(--ink);
  background: var(--surface-alt);
}

.table-panel {
  overflow: auto;
}

.table-panel--pipeline table {
  min-width: 720px;
}

.pipeline-info-heading,
.pipeline-info-cell {
  width: 58px;
  text-align: center;
}

.pipeline-info-cell {
  padding-right: 16px;
  padding-left: 6px;
}

.pipeline-info-button {
  width: 34px;
  height: 34px;
  color: var(--green-deep);
  background: var(--green-tint);
  border-color: var(--green-line);
  border-radius: 999px;
}

.pipeline-info-button:hover,
.pipeline-info-button:focus-visible {
  color: var(--on-accent);
  background: var(--green);
  border-color: var(--green);
  outline: none;
}

.pipeline-table-expand-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  color: var(--ink);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 999px;
  font: inherit;
  cursor: pointer;
}

.pipeline-table-expand-button svg {
  width: 21px;
  height: 21px;
  color: var(--green-deep);
}

.pipeline-table-expand-button:hover,
.pipeline-table-expand-button:focus-visible {
  background: var(--green-tint);
  border-color: var(--green-line);
  outline: none;
}

.pipeline-table-flycard {
  top: 50%;
  right: auto;
  left: 50%;
  gap: 14px;
  width: min(1280px, calc(100vw - 64px));
  height: min(840px, calc(100vh - 64px));
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 24px 70px rgba(28, 37, 32, 0.28);
  transform: translate(-50%, -50%);
}

.dispatch-checklist-flycard {
  top: 50%;
  right: auto;
  left: 50%;
  gap: 14px;
  width: min(1180px, calc(100vw - 64px));
  height: min(840px, calc(100vh - 64px));
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 24px 70px rgba(28, 37, 32, 0.28);
  transform: translate(-50%, -50%);
}

.dispatch-checklist-flycard__count {
  display: grid;
  min-width: 42px;
  height: 38px;
  place-items: center;
  color: var(--on-accent);
  background: var(--green);
  border-radius: 999px;
  font-size: 18px;
  font-weight: 900;
}

.dispatch-checklist-flycard__body {
  min-height: 0;
  overflow: auto;
  padding-right: 2px;
}

.dispatch-triage-list--flycard {
  gap: 12px;
}

.pipeline-table-flycard__count {
  display: grid;
  min-width: 42px;
  height: 38px;
  place-items: center;
  color: var(--on-accent);
  background: var(--green);
  border-radius: 999px;
  font-size: 18px;
  font-weight: 900;
}

.pipeline-table-flycard__body {
  min-height: 0;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.table-panel--flycard {
  overflow: visible;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.table-panel--flycard th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--surface);
}

.table-panel--embedded {
  max-height: min(46vh, 520px);
  margin-top: 14px;
}

.table-panel__heading {
  position: sticky;
  top: 0;
  z-index: 3;
  padding: 14px 16px;
  background: var(--surface);
  border-bottom: 1px solid var(--line);
}

.table-panel--embedded th {
  position: sticky;
  top: 70px;
  z-index: 2;
  background: var(--surface);
}

.offboarding-review-panel {
  display: grid;
  gap: 0;
}

.offboarding-review-list {
  display: grid;
  gap: 10px;
  padding: 14px;
}

.offboarding-review-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 14px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 8px;
}

.offboarding-review-item strong {
  display: block;
  margin-top: 8px;
  font-size: 18px;
}

.offboarding-review-item p {
  margin: 6px 0;
  color: var(--ink);
  font-weight: 700;
}

.offboarding-review-item small {
  display: block;
  color: var(--muted);
  font-weight: 700;
}

.pipeline-dismissal-review-note {
  margin: 4px 0;
}

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

.campaign-board-table table {
  min-width: 760px;
  border-collapse: separate;
  border-spacing: 0 10px;
}

.campaign-board-table th:nth-child(1),
.campaign-board-table td:nth-child(1) {
  width: 320px;
}

.campaign-board-table th:nth-child(2),
.campaign-board-table td:nth-child(2),
.campaign-board-table th:nth-child(3),
.campaign-board-table td:nth-child(3),
.campaign-board-table th:nth-child(4),
.campaign-board-table td:nth-child(4) {
  width: 150px;
}

.campaign-board-control,
.campaign-name-input {
  width: 100%;
  min-height: 34px;
  padding: 0 10px;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 6px;
  font-size: 13px;
  font-weight: 800;
}

.campaign-name-input {
  min-width: 220px;
}

.campaign-board-control:focus,
.campaign-name-input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px var(--green-tint);
  outline: none;
}

.campaign-board-main-row td {
  padding-bottom: 8px;
  background: var(--surface);
  border-top: 2px solid rgba(45, 113, 52, 0.35);
  border-bottom: 0;
  vertical-align: top;
}

.campaign-board-main-row td:first-child {
  border-left: 2px solid rgba(45, 113, 52, 0.35);
  border-top-left-radius: 8px;
}

.campaign-board-main-row td:last-child {
  border-right: 2px solid rgba(45, 113, 52, 0.35);
  border-top-right-radius: 8px;
}

.campaign-progress-row td {
  padding: 0 14px 14px;
  background: var(--surface-raised);
  border-right: 2px solid rgba(45, 113, 52, 0.35);
  border-bottom: 2px solid rgba(45, 113, 52, 0.35);
  border-left: 2px solid rgba(45, 113, 52, 0.35);
  border-bottom-right-radius: 8px;
  border-bottom-left-radius: 8px;
  box-shadow: 0 6px 14px rgba(28, 37, 32, 0.06);
}

.campaign-progress-dashboard {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  padding: 10px;
  background: var(--surface-tint);
  border: 2px solid rgba(45, 113, 52, 0.22);
  border-radius: 7px;
}

.campaign-dashboard-summary {
  display: grid;
  grid-template-columns: minmax(240px, 1.25fr) repeat(4, minmax(145px, 1fr));
  gap: 8px;
}

.campaign-dashboard-summary article {
  display: grid;
  gap: 5px;
  align-content: start;
  min-height: 74px;
  padding: 9px 10px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.campaign-summary-status {
  border-color: var(--green-line);
  background: var(--green-tint);
}

.campaign-summary-status small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.campaign-summary-status .status-pill {
  width: fit-content;
  margin-top: 2px;
}

.campaign-dashboard-summary article > span,
.campaign-progress-tracker header span,
.campaign-progress-table__header span,
.campaign-progress-table__metric strong {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
  text-transform: uppercase;
}

.campaign-dashboard-summary strong {
  color: var(--ink);
  font-size: 18px;
  line-height: 1.1;
}

.campaign-progress-value {
  display: grid;
  grid-template-columns: max-content max-content minmax(70px, 1fr);
  gap: 6px;
  align-items: center;
}

.campaign-progress-value > span {
  color: var(--muted);
  font-size: 15px;
  font-weight: 800;
  line-height: 1;
  text-transform: none;
}

.campaign-goal-input {
  width: 100%;
  min-width: 0;
  height: 30px;
  padding: 0 8px;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid rgba(45, 113, 52, 0.35);
  border-radius: 6px;
  font-size: 15px;
  font-weight: 800;
}

.campaign-goal-input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px var(--green-tint);
  outline: none;
}

.campaign-progress-tracker {
  display: grid;
  grid-column: 1 / -1;
  gap: 10px;
  padding: 12px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.campaign-progress-tracker header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.campaign-progress-tracker header > div {
  display: grid;
  gap: 3px;
}

.campaign-progress-tracker header strong {
  color: var(--ink);
  font-size: 18px;
  line-height: 1.1;
}

.campaign-progress-tracker header span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  text-transform: none;
}

.campaign-date-grid,
.campaign-pace-grid {
  display: grid;
  gap: 8px;
}

.campaign-date-grid {
  grid-template-columns: repeat(2, minmax(170px, 1fr));
}

.campaign-pace-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.campaign-date-control,
.campaign-date-readout {
  display: grid;
  gap: 5px;
}

.campaign-date-control span,
.campaign-date-readout small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}

.campaign-date-control input {
  width: 100%;
  min-height: 30px;
  padding: 0 8px;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid rgba(45, 113, 52, 0.35);
  border-radius: 6px;
  font-size: 13px;
  font-weight: 800;
}

.campaign-date-control input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px var(--green-tint);
  outline: none;
}

.campaign-date-readout strong {
  font-size: 14px;
}

.campaign-progress-table-shell {
  overflow-x: auto;
  scrollbar-gutter: stable;
}

.campaign-progress-table {
  display: grid;
  min-width: 940px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 7px;
}

.campaign-progress-table__row {
  display: grid;
  grid-template-columns: minmax(110px, 0.9fr) repeat(5, minmax(120px, 0.8fr));
  background: var(--surface);
}

.campaign-progress-table__row + .campaign-progress-table__row {
  border-top: 1px solid var(--line);
}

.campaign-progress-table__header {
  background: var(--surface-alt);
}

.campaign-progress-table__row > span {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 9px 10px;
  align-content: center;
  border-right: 1px solid var(--line);
}

.campaign-progress-table__row > span:last-child {
  border-right: 0;
}

.campaign-progress-table__row strong {
  color: var(--ink);
  font-size: 16px;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.campaign-progress-table__projected small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
}

.campaign-progress-table__row strong.is-negative {
  color: var(--red);
}

.campaign-progress-table__row strong.is-positive {
  color: var(--green);
}

.campaign-progress-bar {
  display: block;
  width: 100%;
  height: 6px;
  overflow: hidden;
  background: var(--progress-track);
  border-radius: 999px;
}

.campaign-progress-bar > span {
  display: block;
  height: 100%;
  background: var(--green);
  border-radius: inherit;
}

.campaign-pace-card {
  min-height: 0;
}

.campaign-pace-card dl {
  display: grid;
  gap: 6px;
  margin: 0;
}

.campaign-pace-card div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.campaign-pace-card dt {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.campaign-pace-card dd {
  margin: 0;
  color: var(--ink);
  font-size: 15px;
  font-weight: 900;
  line-height: 1.1;
}

.campaign-pace-card dd.is-negative {
  color: var(--red);
}

.campaign-pace-card dd.is-positive {
  color: var(--green);
}

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

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

th {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

td strong,
td span {
  display: block;
}

.empty-note,
.empty-row {
  color: var(--muted);
  font-size: 14px;
}

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

.time-management-tabs {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
  width: fit-content;
  max-width: 100%;
  padding: 4px;
  background: var(--surface-alt);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.time-management-tabs button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 12px;
  color: var(--muted);
  background: transparent;
  border: 0;
  border-radius: 6px;
  font-weight: 900;
  gap: 8px;
}

.time-management-tabs button svg {
  width: 17px;
  height: 17px;
}

.time-management-tabs button.is-selected {
  color: var(--green-deep);
  background: var(--surface);
  box-shadow: 0 1px 5px rgba(21, 41, 30, 0.08);
}

.time-management-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: end;
  max-width: 1180px;
  padding: 12px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 1px 0 rgba(28, 37, 32, 0.03);
}

.time-management-filter > label {
  display: grid;
  flex: 1 1 260px;
  max-width: none;
  gap: 6px;
}

.time-period-multi-control {
  position: relative;
  display: grid;
  flex: 1 1 260px;
  max-width: none;
  gap: 6px;
}

.time-management-filter--leaderboard > label {
  flex-basis: 180px;
}

.time-management-filter--leaderboard .time-period-multi-control {
  flex: 0 1 340px;
}

.time-management-filter--leaderboard .leaderboard-range-toggle {
  flex: 0 0 180px;
}

.leaderboard-date-range {
  display: grid;
  grid-template-columns: repeat(2, minmax(160px, 1fr));
  flex: 2 1 520px;
  gap: 10px;
  min-width: min(100%, 360px);
}

.leaderboard-date-range label {
  display: grid;
  min-width: 0;
  gap: 6px;
}

.time-management-filter select,
.time-management-filter input {
  width: 100%;
  min-width: 0;
  height: 42px;
  padding: 0 10px;
  color: var(--ink);
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-weight: 800;
}

.leaderboard-range-toggle {
  display: grid;
  flex: 0 1 180px;
  gap: 6px;
}

.leaderboard-range-toggle__control {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  min-height: 42px;
  padding: 0 11px;
  color: var(--ink);
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
  font-weight: 900;
}

.time-management-filter .leaderboard-range-toggle input {
  position: absolute;
  width: 1px;
  height: 1px;
  min-width: 0;
  margin: 0;
  padding: 0;
  opacity: 0;
  pointer-events: none;
}

.leaderboard-range-toggle__switch {
  position: relative;
  flex: 0 0 38px;
  width: 38px;
  height: 22px;
  background: var(--soft);
  border: 1px solid var(--line);
  border-radius: 999px;
  transition: background 160ms ease, border-color 160ms ease;
}

.leaderboard-range-toggle__switch::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  background: var(--surface);
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(21, 41, 30, 0.18);
  transition: transform 160ms ease;
}

.leaderboard-range-toggle input:checked + .leaderboard-range-toggle__switch {
  background: var(--green);
  border-color: var(--green);
}

.leaderboard-range-toggle input:checked + .leaderboard-range-toggle__switch::after {
  transform: translateX(16px);
}

.leaderboard-range-toggle input:focus-visible + .leaderboard-range-toggle__switch {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}

.time-period-picker {
  position: relative;
  min-width: 0;
}

.time-period-picker__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  cursor: pointer;
  list-style: none;
  font-size: 1rem;
  line-height: 1.15;
}

.time-period-picker__summary::-webkit-details-marker {
  display: none;
}

.time-period-picker__summary::after {
  content: "";
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  transform: translateY(-2px) rotate(45deg);
  transition: transform 160ms ease;
}

.time-period-picker[open] .time-period-picker__summary::after {
  transform: translateY(2px) rotate(225deg);
}

.time-period-picker__menu {
  position: absolute;
  z-index: 30;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  max-height: 260px;
  overflow: auto;
  padding: 6px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(21, 41, 30, 0.14);
}

.time-period-picker__option {
  display: flex;
  align-items: center;
  gap: 9px;
  flex: none;
  width: 100%;
  min-height: 34px;
  max-width: none;
  padding: 6px 8px;
  color: var(--ink);
  border-radius: 6px;
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1.2;
  box-sizing: border-box;
}

.time-period-picker__option:hover {
  background: var(--green-soft);
}

.time-period-picker__option input {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  accent-color: var(--green);
}

.time-period-picker__option span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.time-period-picker__group {
  padding: 7px 8px 4px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.time-management-filter .status-pill {
  flex: 0 0 auto;
  min-height: 42px;
}

.scheduler-status-board {
  display: grid;
  grid-template-columns: repeat(6, minmax(118px, 1fr));
  gap: 10px;
  width: min(100%, 1380px);
}

.scheduler-status-card {
  display: grid;
  gap: 10px;
  min-width: 0;
  min-height: 92px;
  padding: 13px;
  color: var(--ink);
  text-align: left;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 1px 0 rgba(28, 37, 32, 0.03);
}

.scheduler-status-card:hover,
.scheduler-status-card:focus-visible,
.scheduler-status-card.is-selected {
  border-color: var(--status-blue-line);
  box-shadow: 0 0 0 3px var(--blue-tint);
  outline: 0;
}

.scheduler-status-card.is-selected {
  background: linear-gradient(180deg, var(--surface), var(--surface-tint));
}

.scheduler-status-card .status-pill {
  justify-self: start;
  min-width: 0;
  min-height: 28px;
  white-space: normal;
}

.scheduler-status-card strong {
  font-size: 28px;
  line-height: 1;
}

.scheduler-expansion-panel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: min(100%, 1380px);
  min-height: 72px;
  padding: 13px 14px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.scheduler-expansion-panel__copy {
  display: grid;
  min-width: 180px;
  gap: 2px;
}

.scheduler-expansion-panel h2 {
  margin: 0;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.2;
}

.scheduler-expansion-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.scheduler-expansion-button {
  min-width: 112px;
}

.scheduler-expansion-button.is-selected {
  color: var(--on-accent);
  background: var(--green);
  border-color: var(--green);
}

.scheduler-expansion-button.is-selected svg {
  stroke: currentColor;
}

.scheduler-page {
  display: grid;
  grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  width: min(100%, 1380px);
  max-width: none;
}

.ga-time-workspace,
.schedule-approval-page {
  display: grid;
  gap: 16px;
  width: min(100%, 1380px);
  max-width: none;
}

.approved-schedules-page {
  max-width: 1180px;
}

.schedule-approval-page {
  max-width: 1380px;
}

.scheduler-roster,
.ga-time-picker,
.schedule-builder-panel,
.schedule-queue,
.schedule-form-shell {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 1px 0 rgba(28, 37, 32, 0.03);
}

.ga-time-picker {
  display: grid;
  grid-template-columns: minmax(170px, 0.42fr) minmax(360px, 1fr) minmax(130px, auto);
  gap: 16px;
  align-items: center;
  padding: 14px 16px;
}

.ga-time-picker--manual {
  grid-template-columns: minmax(170px, 1fr) minmax(220px, max-content) minmax(130px, auto);
}

.ga-time-picker__copy,
.ga-time-picker__status {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.ga-time-picker__copy h2,
.ga-time-empty-state h2 {
  margin: 0;
  font-size: 21px;
  line-height: 1.15;
}

.ga-time-picker__copy p {
  margin: 0;
  color: var(--muted);
  font-weight: 800;
  line-height: 1.4;
}

.ga-time-picker__controls {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(190px, 0.72fr);
  gap: 10px;
  align-items: end;
}

.ga-time-picker__controls--action {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.ga-time-picker__button {
  min-height: 42px;
}

.ga-time-picker__controls label,
.ga-time-search-control {
  display: grid;
  gap: 6px;
}

.ga-time-search-control {
  position: relative;
}

.ga-time-search-control svg {
  position: absolute;
  top: 50%;
  left: 11px;
  width: 17px;
  height: 17px;
  color: var(--muted);
  transform: translateY(-50%);
  pointer-events: none;
}

.ga-time-search-control input,
.ga-time-picker__controls select {
  width: 100%;
  height: 42px;
  min-width: 0;
  padding: 0 11px;
  color: var(--ink);
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-weight: 800;
}

.ga-time-search-control input {
  padding-left: 36px;
}

.ga-time-picker__status {
  min-height: 0;
  justify-content: center;
  padding-left: 14px;
  border-left: 1px solid var(--soft);
}

.ga-time-picker__status.is-selected {
  border-left-color: var(--green-line);
}

.ga-time-picker__status strong,
.ga-time-picker__status span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.ga-time-picker__status span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.ga-time-empty-state {
  display: grid;
  gap: 6px;
  padding: 18px;
}

.ga-time-queue {
  gap: 14px;
}

.ga-time-queue > header strong {
  display: grid;
  min-width: 34px;
  height: 30px;
  place-items: center;
  color: var(--on-accent);
  background: var(--green);
  border-radius: 999px;
}

.ga-time-queue-list {
  display: grid;
  gap: 10px;
}

.ga-time-queue-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 164px;
  gap: 14px;
  align-items: center;
  width: 100%;
  min-height: 64px;
  padding: 12px 14px;
  color: var(--ink);
  text-align: left;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.ga-time-queue-card:hover,
.ga-time-queue-card:focus-visible {
  border-color: var(--green-line);
  box-shadow: 0 0 0 3px var(--green-tint);
  outline: 0;
}

.ga-time-queue-card > span:not(.ga-time-queue-card__meta),
.ga-time-queue-card strong,
.ga-time-queue-card small {
  display: block;
  min-width: 0;
}

.ga-time-queue-card strong {
  font-size: 17px;
}

.ga-time-queue-card small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.ga-time-queue-card__meta {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-self: end;
  justify-content: center;
  gap: 5px;
  width: 164px;
  min-width: 0;
}

.ga-time-queue-card__meta .status-pill {
  display: inline-flex;
  width: 132px;
  min-width: 132px;
  min-height: 28px;
  padding: 0 14px;
  line-height: 1.1;
  white-space: nowrap;
}

.ga-time-queue-card__meta small {
  width: 100%;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}

.ga-time-pace-overview {
  margin: 12px 0;
}

.ga-time-pace-list {
  display: grid;
  gap: 12px;
}

.ga-time-pace-campaign {
  display: grid;
  gap: 12px;
  padding: 14px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.ga-time-pace-campaign > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.ga-time-pace-campaign > header > div {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.ga-time-pace-campaign > header strong {
  font-size: 18px;
  overflow-wrap: anywhere;
}

.scheduler-roster {
  display: grid;
  gap: 10px;
  padding: 14px;
}

.scheduler-roster header,
.schedule-builder-panel header,
.schedule-queue header,
.schedule-request-card header,
.schedule-form-shell header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.schedule-request-card header > div,
.schedule-builder-panel header > div,
.schedule-queue header > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.scheduler-roster > header strong,
.schedule-queue > header strong {
  display: grid;
  min-width: 34px;
  height: 30px;
  place-items: center;
  color: var(--on-accent);
  background: var(--green);
  border-radius: 999px;
}

.scheduler-roster-list,
.scheduler-main,
.schedule-request-list,
.schedule-request-form,
.schedule-direct-form,
.schedule-public-form,
.submitted-time-form {
  display: grid;
  gap: 12px;
}

.scheduler-roster-list {
  max-height: 520px;
  overflow: auto;
}

.scheduler-roster-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: 10px;
  align-items: center;
  width: 100%;
  min-height: 58px;
  padding: 10px;
  color: var(--ink);
  text-align: left;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.scheduler-roster-row:hover,
.scheduler-roster-row.is-selected {
  border-color: var(--green-line);
  box-shadow: 0 0 0 3px var(--green-tint);
}

.scheduler-roster-row span,
.scheduler-roster-row strong,
.scheduler-roster-row small {
  display: block;
  min-width: 0;
}

.scheduler-roster-row small {
  color: var(--muted);
  overflow: hidden;
  font-size: 12px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.time-contacts-page {
  width: min(100%, 1180px);
}

.time-contacts-tool {
  max-width: 100%;
}

.time-contacts-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.time-contacts-summary span {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.time-contacts-summary small,
.ga-contact-row small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.time-contacts-summary strong {
  color: var(--ink);
  font-size: 18px;
  line-height: 1.15;
}

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

.ga-contact-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(160px, max-content) max-content;
  gap: 12px;
  align-items: center;
  min-height: 64px;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.ga-contact-row__person,
.ga-contact-row__methods {
  min-width: 0;
}

.ga-contact-row__person {
  display: grid;
  gap: 3px;
}

.ga-contact-row__methods {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.ga-contact-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 36px;
  padding: 0 11px;
  color: var(--green-deep);
  text-decoration: none;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
  font-size: 13px;
  font-weight: 900;
}

.ga-contact-action:hover,
.ga-contact-action:focus-visible {
  border-color: var(--green-line);
  box-shadow: 0 0 0 3px var(--green-tint);
}

.ga-contact-action svg {
  width: 16px;
  height: 16px;
}

.schedule-builder-panel,
.schedule-queue {
  display: grid;
  gap: 16px;
  padding: 16px;
}

.schedule-review-panel {
  gap: 0;
  overflow: hidden;
  padding: 0;
}

.schedule-review-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: 14px;
  align-items: center;
  min-height: 86px;
  padding: 18px 20px;
  cursor: pointer;
  list-style: none;
}

.schedule-review-summary > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.schedule-review-summary::marker,
.schedule-review-summary::-webkit-details-marker {
  display: none;
  content: "";
}

.schedule-review-summary:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: -3px;
}

.schedule-review-summary__meta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.schedule-review-summary__meta strong {
  display: grid;
  min-width: 42px;
  height: 42px;
  place-items: center;
  color: var(--on-accent);
  background: var(--green);
  border-radius: 999px;
}

.schedule-review-summary__toggle,
.schedule-log-summary__toggle {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 999px;
}

.schedule-review-summary__toggle::before,
.schedule-log-summary__toggle::before {
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--green-deep);
  border-bottom: 2px solid var(--green-deep);
  content: "";
  transform: rotate(45deg) translate(-1px, -1px);
  transition: transform 0.16s ease;
}

.schedule-review-panel[open] .schedule-review-summary {
  background: var(--surface-tint);
  border-bottom: 1px solid var(--line);
}

.schedule-review-panel:not([open]) > .schedule-review-window {
  display: none;
}

.schedule-review-panel[open] .schedule-review-summary__toggle::before,
.schedule-log-panel[open] .schedule-log-summary__toggle::before {
  transform: rotate(225deg) translate(-1px, -1px);
}

.schedule-review-window {
  max-height: min(44vh, 430px);
  overflow: auto;
  padding: 16px 20px 18px;
  overscroll-behavior: contain;
  scrollbar-gutter: stable both-edges;
}

.schedule-review-window .schedule-period-list {
  min-width: min(920px, 100%);
}

.schedule-builder-panel h2,
.schedule-queue h2 {
  margin: 4px 0 0;
  font-size: 24px;
  line-height: 1.15;
}

.time-log-compact-panel {
  gap: 14px;
}

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

.time-log-compact-grid article {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.time-log-compact-grid small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.time-log-compact-grid strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 18px;
  line-height: 1.15;
}

.time-log-compact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

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

.schedule-builder-panel > header {
  flex-wrap: wrap;
}

.schedule-builder-panel > header .status-pill {
  max-width: 100%;
  justify-content: center;
  text-align: center;
  white-space: normal;
}

.schedule-control-grid label,
.schedule-instructions-field {
  display: grid;
  gap: 7px;
}

.schedule-control-grid input,
.schedule-control-grid select,
.schedule-instructions-field textarea,
.schedule-entry-row input,
.schedule-entry-row select,
.actual-import-row input,
.actual-import-row select,
.submitted-time-entry-row input,
.submitted-time-entry-row select,
.schedule-link-row input {
  width: 100%;
  min-width: 0;
  color: var(--ink);
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-weight: 700;
}

.schedule-control-grid input,
.schedule-control-grid select,
.schedule-entry-row input,
.schedule-entry-row select,
.actual-import-row input,
.actual-import-row select,
.submitted-time-entry-row input,
.submitted-time-entry-row select,
.schedule-link-row input {
  height: 42px;
  padding: 0 10px;
}

.schedule-instructions-field textarea {
  min-height: 82px;
  padding: 12px;
  resize: vertical;
}

.schedule-action-row,
.schedule-review-actions,
.schedule-link-row,
.schedule-share-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.schedule-action-row {
  justify-content: space-between;
}

.schedule-log-form {
  gap: 0;
}

.schedule-log-panel {
  overflow: hidden;
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.schedule-log-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content 32px;
  gap: 14px;
  align-items: center;
  min-height: 68px;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
}

.schedule-log-summary::marker,
.schedule-log-summary::-webkit-details-marker {
  display: none;
  content: "";
}

.schedule-log-summary:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: -3px;
}

.schedule-log-summary__copy,
.schedule-log-summary__meta {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.schedule-log-summary__copy strong {
  color: var(--ink);
  font-size: 21px;
  line-height: 1.15;
}

.schedule-log-summary__meta {
  justify-items: end;
}

.schedule-log-summary__meta small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.schedule-log-summary__meta strong {
  color: var(--green-deep);
  font-size: 18px;
  white-space: nowrap;
}

.schedule-log-panel[open] .schedule-log-summary {
  background: var(--surface-tint);
  border-bottom: 1px solid var(--line);
}

.schedule-log-panel:not([open]) > .schedule-log-panel__body {
  display: none;
}

.schedule-log-panel__body {
  display: grid;
  gap: 12px;
  padding: 14px;
}

.schedule-log-actions {
  position: sticky;
  right: 0;
  bottom: -14px;
  z-index: 2;
  justify-content: flex-end;
  margin: 0 -14px -14px;
  padding: 12px 14px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.72), var(--surface));
  border-top: 1px solid var(--line);
}

.schedule-entry-window {
  max-height: min(46vh, 430px);
  overflow: auto;
  padding-right: 4px;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.schedule-entry-window:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 2px;
}

.schedule-entry-window .schedule-entry-grid {
  min-width: min(760px, 100%);
  padding-bottom: 2px;
}

.schedule-link-row {
  min-width: min(480px, 100%);
}

.schedule-link-row input {
  flex: 1 1 260px;
  color: var(--muted);
  font-size: 13px;
}

.schedule-link-row.is-inactive input {
  background: var(--surface-alt);
}

.schedule-link-row.is-inline {
  flex: 1 1 420px;
}

.schedule-share-actions {
  flex: 0 1 auto;
}

.schedule-share-button {
  color: var(--green-deep);
  text-decoration: none;
}

.schedule-share-button.is-disabled {
  color: var(--muted);
  background: var(--surface-alt);
}

.schedule-entry-grid {
  display: grid;
  gap: 12px;
}

.schedule-day-group {
  display: grid;
  gap: 10px;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.schedule-day-group.is-not-working {
  background: var(--green-tint);
  border-color: var(--focus-ring);
}

.schedule-day-group > header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.schedule-day-group > header > div:first-child {
  display: grid;
  gap: 2px;
}

.schedule-day-group > header strong {
  color: var(--ink);
  font-size: 16px;
  line-height: 1.2;
}

.schedule-day-group > header span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.schedule-day-actions,
.schedule-not-working-toggle {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.schedule-not-working-toggle {
  min-height: 36px;
  padding: 0 10px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--ink);
  font-weight: 900;
}

.schedule-not-working-toggle:has(input:disabled) {
  color: var(--muted);
  background: var(--surface-alt);
}

.schedule-not-working-toggle input {
  width: 16px;
  height: 16px;
  accent-color: var(--green);
}

.schedule-period-list {
  display: grid;
  gap: 16px;
}

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

.schedule-period-group:first-child {
  padding-top: 0;
  border-top: 0;
}

.schedule-period-group__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.schedule-period-group__header > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.schedule-period-group__header h3 {
  margin: 0;
  color: var(--ink);
  font-size: 19px;
  line-height: 1.15;
}

.schedule-period-group__header > strong {
  display: grid;
  min-width: 32px;
  height: 28px;
  padding: 0 10px;
  place-items: center;
  color: var(--green-deep);
  background: var(--green-tint);
  border: 1px solid var(--focus-ring);
  border-radius: 999px;
}

.schedule-period-range {
  display: block;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
}

.schedule-total {
  display: grid;
  grid-template-columns: minmax(120px, max-content) max-content minmax(180px, 1fr);
  gap: 10px;
  align-items: center;
  padding: 11px 12px;
  color: var(--green-deep);
  background: var(--green-tint);
  border: 1px solid var(--focus-ring);
  border-radius: 7px;
}

.schedule-total span {
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.schedule-total strong {
  color: var(--ink);
  font-size: 18px;
  white-space: nowrap;
}

.schedule-total small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.schedule-entry-row {
  display: grid;
  grid-template-columns: minmax(110px, 0.7fr) minmax(110px, 0.7fr) minmax(220px, 1.4fr) max-content;
  gap: 8px;
  align-items: end;
}

.schedule-entry-row--head {
  align-items: center;
  padding: 0 2px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.schedule-entry-row label {
  display: grid;
  gap: 6px;
}

.schedule-entry-grid .schedule-entry-row:not(.schedule-entry-row--head) .field-label {
  display: block;
}

.schedule-entry-remove {
  align-self: end;
}

.submitted-time-segments {
  display: grid;
  gap: 10px;
  padding: 12px;
  background: var(--surface-alt);
  border: 1px solid var(--focus-ring);
  border-radius: 8px;
}

.submitted-time-entry-grid {
  display: grid;
  gap: 8px;
}

.submitted-time-entry-row {
  display: grid;
  grid-template-columns: minmax(110px, 1fr) minmax(110px, 1fr) minmax(92px, 0.7fr) minmax(110px, 0.8fr) max-content;
  gap: 8px;
  align-items: end;
}

.submitted-time-entry-grid.is-readonly .submitted-time-entry-row {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: center;
}

.submitted-time-entry-row--head {
  align-items: center;
  padding: 0 2px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.submitted-time-entry-row label {
  display: grid;
  gap: 6px;
}

.submitted-time-entry-row .field-label {
  display: none;
}

.submitted-time-entry-total,
.submitted-time-entry-grid.is-readonly .submitted-time-entry-row > span,
.submitted-time-entry-grid.is-readonly .submitted-time-entry-row > strong {
  min-height: 42px;
  padding: 10px 11px;
  color: var(--ink);
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
  font-weight: 800;
}

.submitted-time-entry-total {
  display: grid;
  align-items: center;
}

.actual-import-page {
  display: grid;
  gap: 16px;
  max-width: 1180px;
}

.actual-import-panels {
  display: grid;
  gap: 16px;
}

.actual-import-grid {
  display: grid;
  gap: 8px;
  overflow-x: auto;
}

.actual-import-row {
  display: grid;
  grid-template-columns: minmax(180px, 1.1fr) minmax(190px, 1.3fr) minmax(130px, 0.9fr) minmax(96px, 0.7fr) minmax(96px, 0.7fr) minmax(180px, 1.1fr) minmax(82px, 0.6fr) max-content;
  gap: 8px;
  align-items: end;
  min-width: 1120px;
}

.actual-import-row--head {
  align-items: center;
  padding: 0 2px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.actual-import-row label {
  display: grid;
  gap: 6px;
}

.actual-import-row .field-label,
.actual-import-source .field-label {
  display: none;
}

.actual-import-source {
  display: grid;
  gap: 3px;
  min-height: 42px;
  align-content: center;
  padding: 8px 10px;
  color: var(--ink);
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.actual-import-source strong {
  font-size: 14px;
  line-height: 1.15;
}

.actual-import-source span:not(.field-label) {
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.actual-import-duration {
  display: grid;
  min-height: 42px;
  align-items: center;
  padding: 10px 11px;
  color: var(--ink);
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
  font-weight: 800;
}

.schedule-instructions-field textarea[readonly] {
  color: var(--muted);
  background: var(--surface-tint);
}

.actual-import-skipped {
  display: grid;
  gap: 10px;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px dashed var(--line);
  border-radius: 8px;
}

.actual-import-skipped > div:first-child,
.actual-import-skipped-row {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
}

.actual-import-skipped > div:first-child span,
.actual-import-skipped-row span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.actual-import-skipped-list {
  display: grid;
  gap: 8px;
}

.actual-import-skipped-row {
  padding: 8px 10px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.actual-import-skipped-row strong {
  color: var(--ink);
}

.schedule-request-card {
  display: grid;
  gap: 10px;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.approved-schedule-card {
  gap: 0;
  padding: 0;
  overflow: hidden;
}

.approved-schedule-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, max-content);
  gap: 12px;
  align-items: center;
  min-height: 64px;
  padding: 12px;
  cursor: pointer;
  list-style: none;
}

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

.approved-schedule-summary > span,
.approved-schedule-total {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.approved-schedule-summary small {
  color: var(--muted);
  overflow: hidden;
  font-size: 12px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.approved-schedule-total {
  justify-items: end;
}

.approved-schedule-campaigns {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  justify-content: flex-end;
  max-width: 420px;
}

.approved-schedule-campaigns small {
  max-width: 100%;
  padding: 3px 7px;
  color: var(--green-deep);
  background: var(--surface-tint);
  border: 1px solid var(--focus-ring);
  border-radius: 999px;
  text-overflow: clip;
  white-space: normal;
}

.approved-schedule-total strong {
  color: var(--green-deep);
}

.approved-schedule-card[open] .approved-schedule-summary {
  background: var(--surface-tint);
  border-bottom: 1px solid var(--line);
}

.approved-schedule-detail-body {
  display: grid;
  gap: 10px;
  padding: 12px;
}

.submitted-time-card-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.quickbooks-dropzone {
  display: grid;
  gap: 10px;
  padding: 14px;
  background: var(--surface-raised);
  border: 1px dashed var(--green-line);
  border-radius: 8px;
}

.quickbooks-dropzone input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.quickbooks-dropzone label {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 3px 10px;
  align-items: center;
  cursor: pointer;
}

.quickbooks-dropzone label svg {
  grid-row: 1 / span 2;
  width: 38px;
  height: 38px;
  padding: 8px;
  color: var(--green-deep);
  background: var(--green-tint);
  border-radius: 8px;
}

.quickbooks-dropzone label strong,
.quickbooks-dropzone label span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.quickbooks-dropzone label span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.quickbooks-dropzone img {
  width: min(340px, 100%);
  max-height: 180px;
  object-fit: contain;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.door-performance-panel {
  display: grid;
  gap: 12px;
  padding: 12px;
  background: var(--surface-alt);
  border: 1px solid var(--focus-ring);
  border-radius: 8px;
}

.door-performance-page,
.door-agent-panel,
.door-agent-review-list,
.door-agent-row {
  display: grid;
  gap: 12px;
}

.door-performance-page {
  align-items: start;
}

.door-agent-panel {
  margin-bottom: 4px;
}

.door-agent-summary,
.door-agent-row__metrics {
  display: grid;
  gap: 10px;
}

.door-agent-summary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

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

.smart-match-summary {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.door-agent-summary span,
.door-agent-row__metrics span {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 10px;
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.door-agent-summary small,
.door-agent-row__metrics small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.door-agent-summary strong,
.door-agent-row__metrics strong {
  color: var(--ink);
  font-size: 18px;
  overflow-wrap: anywhere;
}

.door-agent-row {
  padding: 12px;
  background: var(--surface-alt);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.door-agent-row.is-muted {
  opacity: 0.7;
}

.door-agent-row header,
.door-agent-row footer,
.door-agent-row__match {
  display: grid;
  gap: 10px;
}

.door-agent-row header,
.door-agent-row footer {
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: center;
}

.door-agent-row header strong,
.door-agent-row header small,
.door-agent-row footer small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.door-agent-row header small,
.door-agent-row footer small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.door-agent-row__match {
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
}

.actual-time-agent-row__match {
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.25fr) minmax(0, 1fr);
}

.smart-match-row__match {
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.2fr) minmax(0, 1.35fr) minmax(0, 0.9fr);
}

.door-agent-row__match label,
.door-agent-row__metrics label {
  display: grid;
  gap: 7px;
}

.door-agent-row__metrics {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.door-agent-row__metrics input {
  width: 100%;
  height: 42px;
  min-width: 0;
  padding: 0 10px;
  color: var(--ink);
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-weight: 800;
}

.door-performance-context {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(180px, 0.8fr);
  gap: 10px;
}

.door-performance-context > div,
.door-performance-entry {
  min-width: 0;
  padding: 11px 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.door-performance-context > div {
  display: grid;
  gap: 4px;
}

.door-performance-empty {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 14px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.door-performance-empty svg {
  width: 42px;
  height: 42px;
  padding: 9px;
  color: var(--green-deep);
  background: var(--green-tint);
  border-radius: 8px;
}

.door-performance-empty strong,
.door-performance-empty p {
  margin: 0;
}

.door-performance-empty p {
  margin-top: 5px;
  color: var(--muted);
  font-weight: 800;
  line-height: 1.45;
}

.door-performance-context small,
.door-performance-entry small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
}

.door-performance-entry-list {
  display: grid;
  gap: 8px;
}

.door-performance-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: 10px;
  align-items: center;
  width: 100%;
  color: var(--ink);
  text-align: left;
}

.door-performance-entry:hover,
.door-performance-entry.is-selected {
  border-color: var(--green-line);
  box-shadow: 0 0 0 3px var(--green-tint);
}

.door-performance-entry span,
.door-performance-entry strong,
.door-performance-entry small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.door-performance-grid,
.door-performance-metrics,
.comparison-summary-strip,
.comparison-metrics {
  display: grid;
  gap: 10px;
}

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

.door-performance-grid label {
  display: grid;
  gap: 7px;
}

.door-performance-grid input {
  width: 100%;
  height: 42px;
  min-width: 0;
  padding: 0 10px;
  color: var(--ink);
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-weight: 800;
}

.door-performance-metrics,
.comparison-summary-strip {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.door-performance-metrics article,
.comparison-summary-strip span,
.comparison-metrics span,
.door-performance-summary span {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 10px;
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.door-performance-metrics small,
.comparison-summary-strip small,
.comparison-metrics small,
.door-performance-summary small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.door-performance-metrics strong,
.comparison-summary-strip strong,
.comparison-metrics strong,
.door-performance-summary strong {
  color: var(--ink);
  font-size: 18px;
  overflow-wrap: anywhere;
}

.door-performance-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.projection-summary-strip {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.projection-page > header {
  align-items: center;
}

.schedule-queue.projection-page > header .projection-period-chip {
  display: inline-flex;
  width: fit-content;
  max-width: min(100%, 420px);
  height: auto;
  min-height: 0;
  padding: 6px 12px;
  text-align: center;
  line-height: 1.15;
  font-size: 16px;
  overflow-wrap: anywhere;
  white-space: normal;
}

.projection-table-shell {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.projection-table {
  width: 100%;
  min-width: 780px;
  border-collapse: collapse;
}

.projection-table th,
.projection-table td {
  padding: 12px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--line);
}

.projection-table th {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.projection-table tbody tr:last-child td {
  border-bottom: 0;
}

.projection-table__campaign strong {
  color: var(--ink);
}

.projection-status-breakdown {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.projection-status-breakdown .status-pill {
  min-height: 0;
  padding: 5px 8px;
  font-size: 12px;
}

.projection-muted {
  color: var(--muted);
  font-weight: 800;
}

.submitted-time-row {
  display: grid;
  grid-template-columns: minmax(130px, max-content) minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.submitted-time-row span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 900;
}

.comparison-page {
  max-width: 1180px;
}

.leaderboard-page {
  max-width: 1380px;
}

.time-performance-page > header {
  align-items: center;
}

.time-performance-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  min-width: 0;
}

.time-performance-header-actions .projection-period-chip {
  max-width: min(100%, 420px);
  text-align: center;
  line-height: 1.15;
  white-space: normal;
}

.time-performance-metric-control {
  display: grid;
  gap: 5px;
  min-width: 220px;
}

.time-performance-summary-strip {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.time-performance-chart {
  display: grid;
  gap: 10px;
}

.time-performance-row {
  display: grid;
  grid-template-columns: minmax(190px, 0.8fr) minmax(180px, 2fr) minmax(110px, max-content);
  gap: 12px;
  align-items: center;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.time-performance-row.is-selected {
  border-color: var(--green-line);
  box-shadow: 0 0 0 3px var(--green-tint);
}

.time-performance-row--total {
  background: var(--green-tint);
  border-color: var(--green-line);
  box-shadow: inset 0 0 0 1px rgba(59, 112, 61, 0.12);
}

.time-performance-row--total .time-performance-row__track {
  height: 22px;
  background: var(--surface-raised);
  border-color: var(--green-line);
}

.time-performance-row--total .time-performance-row__value {
  font-size: 20px;
}

.time-performance-row__period {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.time-performance-row__period strong,
.time-performance-row__period small,
.time-performance-row__value {
  min-width: 0;
  overflow-wrap: anywhere;
}

.time-performance-row__period small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.time-performance-row__track {
  height: 18px;
  overflow: hidden;
  background: var(--surface-alt);
  border: 1px solid var(--line);
  border-radius: 999px;
}

.time-performance-row__bar {
  display: block;
  height: 100%;
  min-width: 0;
  background: var(--green);
  border-radius: inherit;
}

.time-performance-row__value {
  justify-self: end;
  color: var(--ink);
  font-size: 18px;
}

.time-performance-table td:first-child {
  display: grid;
  gap: 3px;
}

.time-performance-table td:first-child span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.time-performance-table tr.is-selected-period td {
  background: var(--green-tint);
}

.today-schedule-page {
  max-width: min(100%, 1500px);
}

.today-schedule-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.today-schedule-summary span {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 10px;
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.today-schedule-summary small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.today-schedule-summary strong {
  color: var(--ink);
  font-size: 18px;
  overflow-wrap: anywhere;
}

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

.today-schedule-row {
  display: grid;
  grid-template-columns:
    minmax(190px, 0.78fr)
    minmax(180px, 0.85fr)
    minmax(280px, 1.25fr)
    minmax(420px, max-content);
  column-gap: 16px;
  row-gap: 10px;
  align-items: center;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.today-schedule-row__time,
.today-schedule-row__person,
.today-schedule-row__campaign {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.today-schedule-row strong,
.today-schedule-row span,
.today-schedule-row small {
  min-width: 0;
  overflow-wrap: anywhere;
}

.today-schedule-row small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.today-schedule-row__time strong {
  white-space: nowrap;
}

.today-schedule-row__campaign span {
  color: var(--ink);
  font-weight: 900;
}

.today-schedule-row__controls {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
}

.today-schedule-row__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
}

.today-schedule-row__actions .ga-contact-action,
.today-schedule-row__actions .compact-button {
  min-height: 34px;
}

.today-schedule-row__actions .compact-button {
  margin-left: 0;
}

@media (max-width: 1180px) {
  .today-schedule-row {
    grid-template-columns: minmax(190px, 0.8fr) minmax(180px, 1fr) minmax(240px, 1.15fr);
  }

  .today-schedule-row__controls {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }
}

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

.comparison-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(0, 2fr);
  gap: 12px;
  align-items: center;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.comparison-row > div:first-child {
  display: grid;
  gap: 4px;
}

.comparison-row > div:first-child span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

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

.comparison-metrics .is-green {
  color: var(--green-deep);
}

.comparison-metrics .is-blue {
  color: var(--blue);
}

.comparison-metrics .is-amber {
  color: var(--amber);
}

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

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

.leaderboard-row {
  display: grid;
  grid-template-columns: 48px minmax(170px, 0.8fr) minmax(0, 2.6fr);
  gap: 12px;
  align-items: center;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

.leaderboard-rank {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  color: var(--on-accent);
  background: var(--green);
  border-radius: 999px;
}

.leaderboard-rank strong {
  font-size: 17px;
}

.leaderboard-person {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.leaderboard-person strong,
.leaderboard-person span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.leaderboard-person span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

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

.leaderboard-metrics span {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 10px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.leaderboard-metrics small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.leaderboard-metrics strong {
  color: var(--ink);
  font-size: 17px;
  overflow-wrap: anywhere;
}

.leaderboard-metrics .is-green {
  color: var(--green-deep);
}

.leaderboard-metrics .is-blue {
  color: var(--blue);
}

.leaderboard-metrics .is-amber {
  color: var(--amber);
}

.schedule-request-card strong,
.schedule-form-summary strong {
  color: var(--ink);
  font-size: 17px;
  overflow-wrap: anywhere;
}

.schedule-meta,
.schedule-empty,
.schedule-note {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
}

.schedule-note {
  margin: 0;
  padding: 10px 12px;
  color: var(--ink);
  background: var(--surface-alt);
  border: 1px solid var(--focus-ring);
  border-radius: 7px;
}

.schedule-note.is-review-note {
  color: var(--amber);
  background: var(--warning-bg);
  border-color: rgba(183, 121, 31, 0.24);
}

.schedule-summary-list {
  display: grid;
  gap: 6px;
}

.schedule-summary-row {
  display: grid;
  grid-template-columns: minmax(140px, 1fr) minmax(120px, 0.7fr) minmax(180px, 1.2fr);
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 7px;
}

.schedule-summary-row span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.schedule-form-page {
  min-height: 100vh;
  padding: 32px;
  background: var(--bg);
}

.schedule-form-shell {
  display: grid;
  gap: 18px;
  width: min(860px, 100%);
  margin: 0 auto;
  padding: 22px;
}

.schedule-form-shell h1 {
  margin: 4px 0 0;
  font-size: clamp(28px, 5vw, 42px);
  line-height: 1.08;
}

.schedule-form-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.schedule-form-summary div {
  display: grid;
  gap: 5px;
  padding: 12px;
  background: var(--surface-raised);
  border: 1px solid var(--soft);
  border-radius: 7px;
}

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

  .sidebar {
    position: static;
    height: auto;
    overflow: visible;
  }

  .sidebar__scroll {
    margin-right: 0;
    padding-right: 0;
    overflow: visible;
  }

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

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

  .campaign-create-panel {
    grid-template-columns: 1fr 1fr;
  }

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

  .campaign-pace-grid {
    grid-template-columns: 1fr;
  }

  .home-hero,
  .county-map-layout {
    grid-template-columns: 1fr;
  }

  .county-map-layout {
    padding: 14px;
  }

  .county-map-stage {
    min-height: 360px;
  }

  .contacts-hub-grid {
    grid-template-columns: 1fr;
  }

  .claim-panel {
    order: -1;
  }

  .scheduler-page {
    grid-template-columns: 1fr;
  }

  .scheduler-status-board {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ga-time-picker {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .ga-time-picker__status {
    padding-top: 10px;
    padding-left: 0;
    border-top: 1px solid var(--soft);
    border-left: 0;
  }

  .ga-time-picker__controls {
    grid-template-columns: 1fr;
  }

  .scheduler-expansion-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
  }

  .scheduler-expansion-button {
    min-width: 0;
    width: 100%;
  }

  .leaderboard-row {
    grid-template-columns: 48px minmax(0, 1fr);
  }

  .leaderboard-metrics {
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ga-time-picker__controls--action,
  .ga-time-picker__button {
    width: 100%;
  }

  .ga-time-queue-card {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .ga-time-queue-card__meta {
    align-items: flex-start;
    justify-self: start;
    width: auto;
  }

  .ga-time-queue-card__meta small {
    width: auto;
    text-align: left;
  }

  .time-log-compact-grid {
    grid-template-columns: 1fr;
  }

  .schedule-entry-window .schedule-entry-grid {
    min-width: min(760px, 100%);
  }

  .schedule-review-window .schedule-period-list {
    min-width: min(820px, 100%);
  }

  .dispatch-triage-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .dispatch-triage-task {
    grid-template-columns: minmax(82px, 0.32fr) minmax(0, 1fr);
  }

  .dispatch-triage-task__actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .offboarding-review-item {
    grid-template-columns: 1fr;
  }

  .offboarding-review-actions {
    justify-content: flex-start;
  }

  .dispatch-review-follow-up-form {
    grid-column: 1 / -1;
  }

  .today-schedule-summary,
  .projection-summary-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .projection-page > header {
    align-items: flex-start;
    flex-direction: column;
  }

  .leaderboard-page > header {
    align-items: stretch;
    flex-direction: column;
  }

  .leaderboard-page .time-performance-header-actions {
    justify-content: flex-start;
  }

  .schedule-queue.projection-page > header .projection-period-chip {
    max-width: 100%;
    text-align: left;
  }

  .today-schedule-row {
    grid-template-columns: minmax(190px, 0.8fr) minmax(0, 1fr);
  }

  .today-schedule-row__campaign {
    grid-column: 1 / -1;
  }

  .today-schedule-row__controls {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

@media (max-width: 680px) {
  .identity-screen,
  .loading-screen,
  .workspace,
  .sidebar {
    padding: 18px;
  }

  .identity-panel {
    padding: 22px;
  }

  .topbar,
  .toolbar,
  .dispatch-panel header,
  .time-management-filter,
  .detail-status-row--dispatch,
  .dispatch-triage-header,
  .dispatch-pipeline-tracker header,
  .home-dispatch-tool__header {
    align-items: stretch;
    flex-direction: column;
  }

  .dispatch-pipeline-tracker header {
    grid-template-columns: 1fr;
  }

  .dispatch-pipeline-tracker header > .status-pill {
    justify-self: start;
  }

  .dispatch-pipeline-steps {
    grid-template-columns: 1fr;
  }

  .time-management-filter > label,
  .leaderboard-range-toggle,
  .leaderboard-date-range,
  .time-period-multi-control {
    flex: 0 1 auto;
    width: 100%;
  }

  .leaderboard-date-range {
    grid-template-columns: 1fr;
  }

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

  .scheduler-status-card {
    min-height: 78px;
  }

  .ga-time-pace-campaign > header {
    align-items: stretch;
    flex-direction: column;
  }

  .claim-panel .panel-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .contact-import-preview {
    grid-template-columns: 1fr;
  }

  .contact-import-actions {
    justify-content: stretch;
  }

  .contact-create-grid {
    grid-template-columns: 1fr;
  }

  .contact-create-actions {
    justify-content: stretch;
  }

  .claim-create-prompt__actions {
    justify-content: stretch;
  }

  .topbar-actions,
  .add-panel__grid,
  .home-action-grid,
  .home-hero__stats,
  .home-dispatch-summary,
  .home-dispatch-task,
  .time-contacts-summary,
  .ga-contact-row,
  .campaign-create-panel,
  .dispatch-form,
  .manual-dispatch-form,
  .dispatch-result,
  .dispatch-triage-summary,
  .dispatch-triage-task,
  .dispatch-task-detail-grid,
  .contact-result,
  .empty-result,
  .empty-result--dispatch-create,
  .ga-time-pace-campaign > header,
  .schedule-control-grid,
  .schedule-entry-row,
  .actual-import-row,
  .submitted-time-entry-row,
  .schedule-summary-row,
  .submitted-time-card-actions,
  .submitted-time-row,
  .door-performance-context,
  .door-performance-empty,
  .door-performance-entry,
  .door-performance-grid,
  .door-performance-metrics,
  .door-performance-summary,
  .door-agent-summary,
  .door-agent-row header,
  .door-agent-row footer,
  .door-agent-row__match,
  .smart-match-row__match,
  .door-agent-row__metrics,
  .today-schedule-summary,
  .projection-summary-strip,
  .time-performance-summary-strip,
  .time-performance-row,
  .today-schedule-row,
  .comparison-summary-strip,
  .comparison-row,
  .comparison-metrics,
  .leaderboard-summary-strip,
  .leaderboard-row,
  .leaderboard-metrics,
  .schedule-total,
  .schedule-form-summary {
    grid-template-columns: 1fr;
  }

  .actual-import-row {
    min-width: 0;
  }

  .manual-dispatch-form__wide {
    grid-column: auto;
  }

  .manual-dispatch-form .primary-button {
    justify-content: center;
  }

  .manual-dispatch-header {
    padding: 14px;
  }

  .manual-dispatch-header {
    align-items: stretch;
    flex-direction: column;
  }

  .manual-dispatch-title-row {
    align-items: center;
  }

  .manual-dispatch-header .flyout-header-actions {
    align-items: center;
    flex-direction: row;
    justify-content: space-between;
  }

  .manual-dispatch-header .status-pill {
    flex: 1 1 auto;
  }

  .manual-dispatch-header .icon-button {
    width: 40px;
    flex: 0 0 40px;
  }

  .manual-contact-result,
  .manual-selected-contact {
    align-items: stretch;
    flex-direction: column;
  }

  .manual-contact-create__grid {
    grid-template-columns: 1fr;
  }

  .today-schedule-row__actions {
    justify-content: stretch;
  }

  .today-schedule-row__controls {
    align-items: stretch;
    flex-direction: column;
  }

  .today-schedule-row__actions .compact-button {
    margin-left: 0;
  }

  .dispatch-panel-actions {
    justify-content: flex-start;
  }

  .dispatch-triage-task__actions {
    grid-column: auto;
    justify-content: stretch;
  }

  .dispatch-triage-task__marker {
    padding-top: 0;
  }

  .dispatch-review-follow-up-form,
  .dispatch-review-follow-up-form__grid {
    grid-template-columns: 1fr;
  }

  .home-dispatch-task .dispatch-completion-note-form {
    grid-column: auto;
  }

  .dispatch-triage-task__actions .compact-button {
    flex: 1 1 130px;
    justify-content: center;
  }

  .today-schedule-row__actions .ga-contact-action,
  .today-schedule-row__actions .compact-button {
    flex: 1 1 130px;
    justify-content: center;
  }

  .actual-import-source .field-label {
    display: block;
  }

  .actual-import-skipped > div:first-child,
  .actual-import-skipped-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .contact-name-list {
    max-height: none;
  }

  .topbar-actions {
    justify-content: stretch;
  }

  .dispatch-flyout-primary-actions {
    justify-content: stretch;
  }

  .topbar-actions .coordinator-filter-control {
    width: 100%;
  }

  .topbar-actions .ghost-button,
  .panel-heading__actions .ghost-button,
  .sync-help-panel .ghost-button,
  .contact-import-actions .primary-button,
  .contact-import-actions .ghost-button,
  .contact-create-actions .primary-button,
  .contact-create-actions .ghost-button,
  .contact-create-mode .ghost-button,
  .claim-create-prompt__actions .ghost-button,
  .add-panel__grid .primary-button,
  .home-dispatch-tool__header .ghost-button,
  .dispatch-form .primary-button,
  .campaign-board-toolbar .ghost-button,
  .campaign-create-panel .primary-button,
  .dispatch-result .primary-button,
  .contact-result .ghost-button,
  .empty-result .primary-button {
    width: 100%;
  }

  .metrics-grid {
    grid-template-columns: 1fr;
  }

  .home-action-card,
  .county-directory {
    grid-template-columns: 1fr;
  }

  .home-action-card .ghost-button {
    grid-column: 1;
  }

  .home-dispatch-task__actions {
    justify-content: stretch;
  }

  .home-dispatch-task__actions .compact-button {
    width: 100%;
  }

  .county-map-stage {
    min-height: 280px;
    padding: 6px;
  }

  .campaign-metrics {
    grid-template-columns: 1fr;
  }

  .campaign-dashboard-summary {
    grid-template-columns: 1fr;
  }

  .campaign-date-grid {
    grid-template-columns: 1fr;
  }

  .segmented-control {
    width: 100%;
  }

  .segmented-control button,
  .segmented-control a {
    flex: 1;
    justify-content: center;
  }

  .time-management-tabs {
    width: 100%;
  }

  .time-management-tabs button {
    flex: 1 1 160px;
  }

  .schedule-log-summary {
    grid-template-columns: minmax(0, 1fr) 32px;
  }

  .schedule-review-summary {
    grid-template-columns: minmax(0, 1fr);
    min-height: 74px;
  }

  .schedule-review-summary__meta {
    justify-content: space-between;
    width: 100%;
  }

  .schedule-review-window {
    max-height: 52vh;
    padding: 12px;
    scrollbar-gutter: stable;
  }

  .schedule-review-window .schedule-period-list {
    min-width: 0;
  }

  .schedule-log-summary__meta {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-items: start;
  }

  .schedule-log-summary__toggle {
    grid-column: 2;
    grid-row: 1;
  }

  .schedule-entry-window {
    max-height: 60vh;
    padding-right: 0;
  }

  .schedule-entry-window .schedule-entry-grid {
    min-width: 0;
  }

  .detail-flyout {
    width: 100vw;
    padding: 18px;
  }

  .time-log-flyout {
    inset: 0;
    transform: none;
    width: 100vw;
    height: 100vh;
    border-width: 0;
    border-radius: 0;
  }

  .pipeline-dismissal-flycard {
    inset: 0;
    transform: none;
    width: 100vw;
    max-height: none;
    height: 100vh;
    border-width: 0;
    border-radius: 0;
  }

  .pipeline-table-flycard {
    inset: 0;
    transform: none;
    width: 100vw;
    height: 100vh;
    border-width: 0;
    border-radius: 0;
  }

  .dispatch-checklist-flycard {
    inset: 0;
    transform: none;
    width: 100vw;
    height: 100vh;
    border-width: 0;
    border-radius: 0;
  }

  .settings-auth-card {
    grid-template-columns: 1fr;
  }

  .settings-section-head {
    align-items: stretch;
    flex-direction: column;
  }

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

  .user-log-row,
  .user-log-row__profile {
    justify-items: start;
  }

  .user-log-row__profile {
    grid-template-columns: 40px minmax(0, 1fr);
  }

  .user-log-row__meta {
    grid-column: 1 / -1;
    justify-items: start;
  }

  .access-tier-control {
    width: 100%;
  }

  .auth-link-preview {
    grid-template-columns: 1fr;
  }

  .visibility-user-card header,
  .tool-visibility-grid {
    grid-template-columns: 1fr;
  }

  .visibility-status-row {
    justify-content: flex-start;
  }

  .detail-grid {
    grid-template-columns: 1fr;
  }

  .detail-edit-grid {
    grid-template-columns: 1fr;
  }

  .detail-form-actions {
    flex-direction: column-reverse;
  }

  .submitted-time-card-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .submitted-time-card-actions .status-pill {
    justify-content: center;
    width: 100%;
  }

  .detail-form-actions .primary-button,
  .detail-form-actions .ghost-button,
  .submitted-time-card-actions .ghost-button,
  .submitted-time-card-actions .danger-button {
    width: 100%;
    justify-content: center;
  }

  .dispatch-task-item {
    flex-direction: column;
  }

  .dispatch-task-item .compact-button {
    width: 100%;
    justify-content: center;
  }

  .schedule-entry-row--head {
    display: none;
  }

  .submitted-time-entry-grid.is-readonly .submitted-time-entry-row {
    grid-template-columns: 1fr;
  }

  .schedule-entry-row .field-label,
  .submitted-time-entry-row .field-label {
    display: block;
  }

  .schedule-action-row,
  .schedule-day-actions,
  .schedule-link-row,
  .schedule-review-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .schedule-link-row input {
    flex: 0 0 auto;
    width: 100%;
  }

  .schedule-link-row.is-inline {
    flex: 0 0 auto;
  }

  .schedule-action-row .primary-button,
  .schedule-day-actions .ghost-button,
  .schedule-not-working-toggle,
  .schedule-link-row .ghost-button,
  .schedule-share-actions,
  .schedule-share-actions .ghost-button,
  .schedule-review-actions .primary-button,
  .schedule-review-actions .ghost-button {
    width: 100%;
  }

  .schedule-form-page {
    padding: 18px;
  }
}
