:root {
  --bg: #f4f6f8;
  --panel: #ffffff;
  --panel-2: #eef3f5;
  --line: #d8e0e5;
  --text: #172027;
  --muted: #61717c;
  --accent: #0b6e69;
  --accent-2: #48657a;
  --warn: #9a5b12;
  --good: #1c6f3e;
  --bad: #9f2b2b;
  --shadow: 0 16px 40px rgba(18, 32, 40, 0.12);
  --division-service-fg: #123b50;
  --division-service-bg: #dceeff;
  --division-tab-fg: #594100;
  --division-tab-bg: #fff0c9;
  --division-contracting-fg: #3f2a67;
  --division-contracting-bg: #e8e0fb;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: 0;
}

button,
input,
select,
textarea {
  font: inherit;
}

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

.sidebar {
  background: #18242b;
  color: #f5f8fa;
  padding: 22px 18px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.brand {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.brand-icon {
  border-radius: 8px;
  display: block;
  height: 52px;
  width: 52px;
}

.brand-logo {
  display: block;
  height: auto;
  max-width: 190px;
  width: 100%;
}

.brand-mark {
  width: 52px;
  height: 52px;
  border-radius: 8px;
  background: #d9f0ec;
  color: #12363a;
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 15px;
}

.brand h1,
.topbar h2,
.section-heading h3,
.detail-head h3 {
  margin: 0;
}

.brand h1 {
  font-size: 16px;
  line-height: 1.2;
}

.brand p,
.section-heading p,
.eyebrow {
  margin: 4px 0 0;
  color: var(--muted);
}

.brand p {
  color: #b8c6ce;
  font-size: 12px;
}

.user-switcher {
  display: grid;
  gap: 6px;
  padding: 10px;
  border: 1px solid #31434c;
  border-radius: 8px;
  background: #111c22;
}

.user-pill {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.user-pill-main {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.user-switcher span,
.user-switcher small {
  font-size: 11px;
  color: #b8c6ce;
}

.user-switcher span {
  text-transform: uppercase;
  font-weight: 800;
}

.user-pill #user-display-name {
  color: #f5f8fa;
  font-size: 14px;
  overflow: hidden;
  text-overflow: ellipsis;
  text-transform: none;
  white-space: nowrap;
}

.user-pill #user-role {
  justify-self: start;
  border: 1px solid #3c515c;
  border-radius: 999px;
  padding: 3px 8px;
  text-transform: capitalize;
}

.user-logout-button {
  min-height: 34px;
  border: 1px solid #3c515c;
  border-radius: 6px;
  background: #26343c;
  color: #f5f8fa;
  padding: 6px 8px;
  cursor: pointer;
  font-weight: 800;
}

.user-logout-button:hover {
  border-color: #5f7885;
  background: #31434c;
}

.sidebar-action {
  display: block;
  margin-top: -18px;
  border: 1px solid #31434c;
  border-radius: 8px;
  background: #111c22;
  color: #e8eef2;
  padding: 10px 12px;
  text-align: center;
  text-decoration: none;
  font-weight: 700;
}

.sidebar-action:hover {
  border-color: #3c515c;
  background: #26343c;
}

.nav {
  display: grid;
  gap: 6px;
}

.nav-item,
.tool-button {
  border: 1px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  transition: background 140ms ease, border-color 140ms ease, color 140ms ease;
}

.nav-item {
  width: 100%;
  text-align: left;
  padding: 11px 12px;
  color: #e8eef2;
  background: transparent;
}

.nav-item:hover,
.nav-item.active {
  background: #26343c;
  border-color: #3c515c;
}

.main {
  padding: 26px;
  min-width: 0;
}

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

.topbar h2 {
  font-size: 28px;
  line-height: 1.1;
}

.eyebrow {
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0;
}

.tool-button {
  background: var(--panel);
  color: var(--text);
  border-color: var(--line);
  padding: 9px 12px;
  min-height: 38px;
}

.tool-button:hover {
  border-color: #a9b9c3;
}

.tool-button.active {
  border-color: #8ac5bd;
  background: #e5f4f2;
  color: #0b4e4a;
}

.tool-button.mini {
  font-size: 11px;
  min-height: 30px;
  padding: 5px 8px;
}

.tool-button.danger {
  border-color: #d6a2a2;
  color: #8a1f1f;
}

.tool-button.danger:hover {
  background: #fff1f1;
  border-color: #b95f5f;
}

.primary-button {
  min-height: 40px;
  border: 1px solid #095c57;
  border-radius: 8px;
  background: var(--accent);
  color: #ffffff;
  cursor: pointer;
  padding: 9px 12px;
  font-weight: 700;
}

.primary-button:hover {
  background: #095c57;
}

.navigate-address-link {
  align-items: center;
  color: inherit;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  min-height: 44px;
  text-decoration: none;
}

.navigate-address-text {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.navigate-address-action {
  align-items: center;
  background: #0b6b63;
  border-radius: 999px;
  color: #ffffff;
  display: inline-flex;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .02em;
  min-height: 28px;
  padding: 3px 9px;
  text-decoration: none;
}

.navigate-address-link:hover .navigate-address-action,
.navigate-address-link:focus-visible .navigate-address-action {
  background: #073f3b;
}

.detail-actions {
  margin-bottom: 14px;
}

.primary-link-button {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  border: 1px solid #095c57;
  border-radius: 8px;
  background: var(--accent);
  color: #ffffff;
  cursor: pointer;
  padding: 9px 12px;
  font-weight: 700;
  text-decoration: none;
}

.primary-link-button:hover {
  background: #095c57;
}

.tool-link-button {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  display: inline-flex;
  font-size: 12px;
  font-weight: 800;
  min-height: 34px;
  padding: 7px 10px;
  text-decoration: none;
  white-space: nowrap;
}

.tool-link-button:hover {
  border-color: #a9b9c3;
}

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

.detail-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.detail-tab {
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f8fafb;
  color: var(--text);
  cursor: pointer;
  padding: 7px 10px;
  font-size: 12px;
  font-weight: 800;
}

.detail-tab:hover,
.detail-tab.active {
  background: #e6f4ee;
  border-color: #93c7b9;
  color: #084f4b;
}

.inline-link {
  color: var(--accent);
  font-weight: 700;
  text-decoration: none;
}

.inline-link:hover {
  text-decoration: underline;
}

.inline-action {
  min-height: 26px;
  border: 1px solid #b7c5cd;
  border-radius: 6px;
  background: #ffffff;
  color: var(--accent-2);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 800;
  text-decoration: none;
}

.inline-action:hover {
  border-color: #78909c;
  background: #f0f5f7;
}

.alert {
  border: 1px solid #e1b4b4;
  background: #fff4f4;
  color: var(--bad);
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 16px;
}

.hidden {
  display: none !important;
}

.view {
  display: none;
}

.view.active {
  display: block;
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.metric {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  min-height: 96px;
}

.metric span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
  font-weight: 700;
}

.metric strong {
  display: block;
  margin-top: 10px;
  font-size: 30px;
  line-height: 1;
}

.section-band {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.section-heading {
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
  background: #fbfcfd;
}

.section-heading h3 {
  font-size: 17px;
}

.section-heading p {
  font-size: 13px;
}

.ops-stack {
  display: grid;
  gap: 16px;
}

.ops-summary-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(110px, 1fr));
  gap: 10px;
  padding: 14px 16px 0;
}

.metric.compact {
  min-height: 72px;
  padding: 11px;
}

.metric.compact strong {
  font-size: 24px;
}

.job-control-job-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(110px, 1fr));
  gap: 8px;
  padding: 10px 0;
}

.job-control-job-summary article,
.job-control-job-summary button {
  min-width: 0;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #f8fbfe;
  color: inherit;
  font: inherit;
  text-align: left;
}

.job-control-job-summary button {
  cursor: pointer;
}

.job-control-job-summary button:hover,
.job-control-job-summary button:focus-visible {
  background: #e9f5fc;
  border-color: #2587bd;
  box-shadow: 0 0 0 2px rgba(37, 135, 189, 0.12);
  outline: none;
}

.job-control-job-summary span {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.job-control-job-summary strong {
  display: block;
  margin-top: 4px;
  font-size: 20px;
  line-height: 1.1;
}

.job-control-job-summary small {
  color: #16729f;
  display: block;
  font-size: 10px;
  font-weight: 800;
  margin-top: 3px;
}

@media (max-width: 1100px) {
  .job-control-job-summary { grid-template-columns: repeat(3, minmax(110px, 1fr)); }
}

.ops-alert-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(210px, 1fr));
  gap: 12px;
  padding: 14px 16px 16px;
}

.ops-mini-list {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
  overflow: hidden;
}

.ops-mini-list h4 {
  margin: 0;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}

.operations-form-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(220px, 1fr));
  gap: 0;
  border-top: 1px solid var(--line);
}

.operations-form-grid .form-panel {
  border-top: 0;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(240px, 1fr));
  gap: 0;
  border-bottom: 1px solid var(--line);
}

.form-panel {
  padding: 16px 18px 18px;
  border-right: 1px solid var(--line);
  display: grid;
  align-content: start;
  gap: 12px;
}

.form-panel:last-child {
  border-right: 0;
}

.form-panel h4 {
  margin: 0 0 2px;
  font-size: 15px;
}

label {
  display: grid;
  gap: 5px;
  min-width: 0;
}

label span {
  color: var(--muted);
  font-size: 11px;
  text-transform: uppercase;
  font-weight: 700;
}

input,
select,
textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--text);
  min-height: 38px;
  padding: 8px 10px;
}

textarea {
  resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--accent);
  outline: 2px solid rgba(11, 110, 105, 0.14);
}

.field-row {
  display: grid;
  grid-template-columns: 1fr 72px 100px;
  gap: 8px;
}

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

.dispatch-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.dispatch-tools {
  display: flex;
  align-items: end;
  gap: 10px;
}

.dispatch-date-stepper {
  display: inline-flex;
  align-items: end;
  gap: 6px;
}

.dispatch-date-stepper .inline-field {
  min-width: 150px;
}

.dispatch-team-field {
  min-width: 130px;
}

.dispatch-period-nav {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) auto minmax(150px, 1fr);
  align-items: center;
  gap: 10px;
  margin: 10px 0 12px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbfc;
}

.dispatch-period-button {
  justify-self: end;
  min-width: 138px;
}

.dispatch-period-button:last-child {
  justify-self: start;
}

.dispatch-period-current {
  display: grid;
  justify-items: center;
  gap: 4px;
  min-width: 240px;
  text-align: center;
}

.dispatch-period-current span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.dispatch-period-current strong {
  color: var(--ink);
  font-size: 17px;
  line-height: 1.2;
}

.dispatch-period-today {
  min-height: 26px;
  padding: 3px 10px;
  font-size: 12px;
  border-color: #b42318;
  background: #c62828;
  color: #ffffff;
  font-weight: 800;
}

.dispatch-period-today:hover,
.dispatch-period-today:focus-visible {
  border-color: #8f1d16;
  background: #a82020;
  color: #ffffff;
}

.mode-tabs {
  display: inline-flex;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  background: #ffffff;
  min-height: 38px;
}

.mode-tab {
  border: 0;
  border-right: 1px solid var(--line);
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  padding: 8px 10px;
  font-size: 13px;
  min-width: 58px;
}

.mode-tab:last-child {
  border-right: 0;
}

.mode-tab:hover,
.mode-tab.active {
  background: #e8f4f2;
  color: #084f4b;
}

.inline-field {
  min-width: 180px;
}

.dispatch-command-panel {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #f7fafb;
  padding: 14px 16px;
  display: grid;
  gap: 12px;
}

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

.dispatch-command-head h4 {
  margin: 0;
  font-size: 15px;
}

.dispatch-command-head p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.dispatch-command-form {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) 190px 220px;
  gap: 12px;
  align-items: end;
}

.dispatch-extend-command-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
  align-items: end;
}

.dispatch-assign-command-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
  align-items: end;
}

.dispatch-assign-command-form label:first-child {
  grid-column: span 2;
}

.dispatch-assign-command-form .primary-button {
  min-height: 44px;
}

.dispatch-extend-command-form label:first-child {
  grid-column: span 2;
}

.dispatch-extend-command-form .extend-notes-field {
  grid-column: span 2;
}

.dispatch-extend-command-form .primary-button {
  min-height: 44px;
}

.dispatch-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-height: 560px;
  position: relative;
  overflow: hidden;
}

.dispatch-layout.sheet-layout {
  grid-template-columns: minmax(0, 1fr);
}

.dispatch-layout.sheet-layout .dispatch-side {
  display: grid;
}

.dispatch-main {
  overflow-x: hidden;
  padding: 16px;
  min-width: 0;
}

.dispatch-layout.sheet-layout .dispatch-main {
  overflow-x: auto;
}

.dispatch-side-togglebar {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 8px;
  margin-bottom: 10px;
}

.dispatch-year-filter-host {
  margin-right: auto;
  min-width: 0;
}

.dispatch-year-filter {
  position: relative;
}

.dispatch-year-filter > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: 8px;
  list-style: none;
  white-space: nowrap;
}

.dispatch-year-filter > summary::-webkit-details-marker {
  display: none;
}

.dispatch-year-filter > summary::after {
  content: "\25BE";
  font-size: 11px;
}

.dispatch-year-filter[open] > summary {
  background: #dff2ff;
  border-color: #3d9ad1;
}

.dispatch-year-filter > summary span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.dispatch-year-filter > summary strong {
  color: var(--text);
}

.dispatch-year-filter-panel {
  background: #ffffff;
  border: 1px solid #8bb9d4;
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(17, 49, 67, 0.2);
  display: grid;
  gap: 10px;
  left: 0;
  max-height: min(520px, 70vh);
  min-width: 430px;
  overflow-y: auto;
  padding: 12px;
  position: absolute;
  top: calc(100% + 5px);
  width: min(620px, calc(100vw - 290px));
  z-index: 30;
}

.dispatch-year-filter-head {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.dispatch-year-filter-head > span,
.dispatch-year-filter-panel small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.dispatch-year-filter-head > div {
  display: flex;
  flex: 0 0 auto;
  gap: 6px;
}

.dispatch-year-filter-options {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
}

.dispatch-year-filter-options label {
  align-items: center;
  background: #f4f9fc;
  border: 1px solid #d6e4ec;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  gap: 7px;
  min-height: 36px;
  padding: 6px 8px;
}

.dispatch-year-filter-options label:has(input:checked) {
  background: #e1f4ff;
  border-color: #4d9fcd;
}

.dispatch-year-filter-options input {
  height: 16px;
  margin: 0;
  width: 16px;
}

.dispatch-year-filter-options span {
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.dispatch-drawer-button {
  min-height: 32px;
  padding: 6px 10px;
}

.dispatch-drawer-button.has-count .heading-count {
  background: #d7f2e8;
  color: #106342;
}

.dispatch-workload-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr));
  gap: 10px;
  margin-bottom: 14px;
  min-width: 0;
}

.dispatch-workload-strip.hidden {
  display: none;
}

.workload-chip {
  border: 1px solid var(--line);
  border-left: 4px solid var(--tech-color);
  border-radius: 8px;
  background: #ffffff;
  padding: 10px;
  display: grid;
  gap: 8px;
}

.workload-chip-head,
.workload-line,
.tech-workload-line {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
}

.workload-chip-head strong {
  font-size: 13px;
}

.workload-meter {
  height: 8px;
  border-radius: 999px;
  background: #e8edf1;
  overflow: hidden;
}

.workload-meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--good);
}

.workload-line,
.workload-note,
.tech-workload-line,
.tech-availability-line {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.workload-note.warning,
.tech-availability-line.warning {
  color: var(--bad);
  font-weight: 800;
}

.technician-availability-board {
  background: #f7fafb;
  border-bottom: 1px solid var(--line);
  padding: 18px;
}

.technician-availability-head,
.technician-availability-editor-title,
.technician-availability-save-row {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.technician-availability-head h4,
.technician-availability-editor-title h5 {
  margin: 2px 0 4px;
}

.technician-availability-head p,
.technician-availability-save-row p {
  color: var(--muted);
  font-size: 12px;
  margin: 0;
}

.technician-availability-filters {
  align-items: end;
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(5, minmax(140px, 1fr)) auto;
  margin-top: 16px;
}

.technician-availability-filters label {
  min-width: 0;
}

.technician-availability-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0;
}

.technician-availability-metrics span {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-size: 12px;
  padding: 7px 10px;
}

.technician-availability-metrics span b {
  color: var(--text);
  font-size: 14px;
}

.technician-availability-metrics span.conflict {
  background: #fff1f1;
  border-color: #d99a9a;
  color: #8f2424;
}

.technician-availability-metrics span.conflict b {
  color: #a91f1f;
}

.technician-availability-editor {
  background: #ffffff;
  border: 2px solid #a82727;
  border-radius: 10px;
  box-shadow: 0 10px 30px rgba(29, 47, 59, .09);
  margin: 14px 0;
  overflow: hidden;
}

.technician-availability-editor-title,
.technician-availability-save-row {
  padding: 14px 16px;
}

.technician-availability-editor-title {
  background: #fff7f7;
  border-bottom: 1px solid #e4bcbc;
}

.technician-availability-editor .command-grid {
  padding: 14px 16px;
}

.technician-availability-save-row {
  border-top: 1px solid var(--line);
}

.technician-availability-save-row p {
  max-width: 720px;
}

.technician-availability-list {
  display: grid;
  gap: 8px;
}

.technician-availability-card {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--line);
  border-left: 5px solid #466879;
  border-radius: 8px;
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(140px, .8fr) minmax(240px, 1.4fr) minmax(220px, 1.25fr) auto;
  padding: 12px 14px;
}

.technician-availability-card.has-conflict {
  background: #fff8f8;
  border-color: #d99494;
  border-left-color: #aa2020;
}

.technician-availability-card.cancelled {
  opacity: .62;
}

.technician-availability-identity,
.technician-availability-window,
.technician-availability-conflicts {
  display: grid;
  gap: 4px;
}

.technician-availability-identity span,
.technician-availability-window small,
.technician-availability-conflicts span {
  color: var(--muted);
  font-size: 11px;
}

.technician-availability-window > span {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.technician-availability-conflicts strong {
  color: #a51f1f;
  font-size: 12px;
}

.technician-availability-conflicts button {
  background: transparent;
  border: 0;
  color: #8c2424;
  cursor: pointer;
  font-size: 11px;
  padding: 0;
  text-align: left;
  text-decoration: underline;
}

.technician-availability-actions {
  display: flex;
  gap: 6px;
  justify-content: flex-end;
}

@media (max-width: 1180px) {
  .technician-availability-filters {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
  }

  .technician-availability-card {
    grid-template-columns: minmax(140px, .8fr) minmax(220px, 1.3fr) minmax(220px, 1fr);
  }

  .technician-availability-actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .technician-availability-board {
    padding: 12px;
  }

  .technician-availability-head,
  .technician-availability-editor-title,
  .technician-availability-save-row {
    align-items: stretch;
    flex-direction: column;
  }

  .technician-availability-filters,
  .technician-availability-card {
    grid-template-columns: 1fr;
  }

  .technician-availability-actions {
    grid-column: auto;
    justify-content: stretch;
  }

  .technician-availability-actions .tool-button {
    flex: 1;
  }
}

.workload-full .workload-meter span {
  background: var(--warn);
}

.workload-overloaded .workload-meter span,
.workload-conflict .workload-meter span {
  background: var(--bad);
}

.workload-unavailable .workload-meter span,
.workload-not_dispatchable .workload-meter span {
  background: #82919c;
}

.dispatch-board-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
  gap: 12px;
  min-width: 0;
}

.dispatch-schedule.day-mode {
  display: grid;
  gap: 18px;
  min-width: 0;
  width: 100%;
}

.technician-presence-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(440px, 100%), 1fr));
  gap: 8px;
  margin-bottom: 8px;
  min-width: 0;
}

.technician-presence-group {
  border: 1px solid #596b77;
  border-radius: 6px;
  min-width: 0;
  overflow: hidden;
}

.technician-presence-group.unscheduled {
  background: repeating-linear-gradient(
    90deg,
    #f3f6f8 0,
    #f3f6f8 26px,
    #dce4e9 27px,
    #dce4e9 29px
  );
}

.technician-presence-group.time-off {
  background: linear-gradient(180deg, #dff5f2 0 56%, #f3dda0 56% 100%);
  border-color: #6d9b91;
}

.technician-presence-heading {
  align-items: center;
  background: #223b49;
  color: #ffffff;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  min-height: 32px;
  padding: 6px 9px;
}

.technician-presence-group.time-off .technician-presence-heading {
  background: #176f69;
}

.technician-presence-heading strong {
  font-size: 12px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.technician-presence-heading span {
  font-size: 11px;
  opacity: 0.9;
}

.technician-presence-list {
  display: flex;
  gap: 6px;
  min-height: 64px;
  overflow-x: auto;
  padding: 7px;
}

.technician-presence-card {
  align-items: center;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid #aab7bf;
  border-left: 5px solid var(--tech-color);
  border-radius: 5px;
  display: grid;
  flex: 0 0 205px;
  gap: 7px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-width: 0;
  padding: 6px 7px;
}

.technician-presence-card.time-off {
  border-color: #7eb3a7;
}

.technician-clockify-activity {
  background: #fff8d6;
  border: 1px solid #d9a400;
  border-left: 5px solid #f4b400;
  border-radius: 4px;
  color: #3f3100;
  font-size: 10px;
  line-height: 1.25;
  margin-top: 4px;
  overflow-wrap: anywhere;
  padding: 4px 5px;
}

.technician-clockify-activity > span {
  animation: attendance-live-pulse 1.1s ease-in-out infinite;
  background: #e11d48;
  border-radius: 999px;
  display: inline-block;
  height: 7px;
  margin-right: 4px;
  width: 7px;
}

.technician-clockify-activity small {
  display: block;
  margin-left: 11px;
  opacity: 0.78;
}

.technician-presence-card.unscheduled[draggable="true"] {
  cursor: grab;
}

.technician-presence-card.unscheduled[draggable="true"]:hover,
.technician-presence-card.unscheduled[draggable="true"]:focus-within {
  box-shadow: 0 0 0 3px rgba(255, 191, 0, 0.48);
  transform: translateY(-1px);
}

.technician-presence-card.unscheduled.dragging {
  cursor: grabbing;
  opacity: 0.52;
}

.technician-presence-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.technician-presence-copy strong,
.technician-presence-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.technician-presence-copy strong {
  color: #172027;
  font-size: 12px;
}

.technician-presence-copy small {
  color: #566771;
  font-size: 10px;
}

.technician-presence-mood {
  font-size: 17px;
}

.technician-avatar {
  align-items: center;
  background: var(--technician-avatar-color, #48657a);
  border: 2px solid rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(23, 32, 39, 0.26);
  color: #ffffff;
  display: inline-flex;
  flex: 0 0 34px;
  font-size: 11px;
  font-weight: 900;
  height: 34px;
  justify-content: center;
  letter-spacing: -0.02em;
  line-height: 1;
  width: 34px;
}

.technician-avatar.compact {
  border-width: 1px;
  flex-basis: 22px;
  font-size: 8px;
  height: 22px;
  width: 22px;
}

.technician-avatar.selected-avatar {
  font-size: 17px;
  letter-spacing: 0;
}

.technician-avatar.compact.selected-avatar {
  font-size: 12px;
}

.technician-identity-inline,
.division-identity {
  align-items: center;
  display: inline-flex;
  gap: 5px;
}

.division-identity {
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.division-identity.compact {
  font-size: 9px;
}

.division-icon-glyph,
.division-icon-image {
  align-items: center;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid currentColor;
  border-radius: 4px;
  display: inline-flex;
  flex: 0 0 22px;
  height: 22px;
  justify-content: center;
  object-fit: contain;
  width: 22px;
}

.division-identity.compact .division-icon-glyph,
.division-identity.compact .division-icon-image {
  flex-basis: 17px;
  height: 17px;
  width: 17px;
}

.technician-card-identity {
  align-items: center;
  display: flex;
  gap: 5px;
  min-width: 0;
}

.technician-card-identity > span:last-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 760px) {
  .technician-presence-strip {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Job Control Center: one spreadsheet line per job, with adjustable columns. */
.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-table tbody tr[data-job-control-row] > td {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-panel.density-compact .job-control-table tbody tr[data-job-control-row] > td {
  height: 34px;
  padding-block: 3px;
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-table th[data-jcc-column] {
  position: sticky;
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-resize-handle {
  bottom: 0;
  cursor: col-resize;
  position: absolute;
  right: -4px;
  top: 0;
  touch-action: none;
  width: 9px;
  z-index: 5;
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-resize-handle:hover,
.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-resize-handle:focus-visible {
  background: rgba(23, 111, 193, 0.22);
  outline: 1px solid #176fc1;
}

.attendance-layout {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(280px, 420px) minmax(360px, 1fr);
}
.attendance-form,
.attendance-list-panel {
  background: #fff;
  border: 1px solid var(--border-default);
  border-radius: 7px;
  padding: 18px;
}
.attendance-form { display: grid; gap: 14px; }
.attendance-form label { display: grid; font-weight: 600; gap: 6px; }
.attendance-identity {
  background: var(--surface-subtle);
  border-left: 4px solid var(--mac-blue-500);
  display: grid;
  gap: 2px;
  padding: 10px 12px;
}
.attendance-identity span,
.attendance-help { color: var(--text-muted); font-size: 12px; }
.attendance-status-options { border: 0; display: grid; gap: 8px; margin: 0; padding: 0; }
.attendance-status-options label { align-items: center; display: flex; font-weight: 500; }
.attendance-report-list { display: grid; gap: 8px; }
.attendance-report {
  align-items: center;
  border: 1px solid var(--border-default);
  border-left: 5px solid #d97706;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(150px, .7fr) minmax(220px, 1fr) auto;
  padding: 12px;
}
.attendance-report.attendance-absent { border-left-color: #b42318; }
.attendance-report div { display: grid; gap: 3px; }
.attendance-report p { margin: 0; }
.attendance-acknowledged { color: #17633a; font-size: 12px; }
.attendance-pending { color: #9a6700; font-size: 12px; }
.attendance-result { background: #edf8f1; border: 1px solid #8cc7a4; color: #17633a; padding: 10px; }
.attendance-result.error { background: #fff1f0; border-color: #f1a7a1; color: #8f1d18; }
.schedule-attendance-card {
  background: #feeceb;
  border: 2px solid #d92d20;
  border-left-width: 7px;
  border-radius: 8px;
  box-shadow: 0 3px 10px rgba(180, 35, 24, 0.18);
  color: #8f1d18;
  display: grid;
  font-size: 11px;
  gap: 5px;
  margin: 6px;
  padding: 8px;
  text-align: left;
}
.schedule-availability-card {
  background: #b42318;
  border: 2px solid #7a1710;
  border-left-width: 7px;
  border-radius: 8px;
  box-shadow: 0 3px 10px rgba(122, 23, 16, 0.25);
  color: #fff;
  display: grid;
  font-size: 12px;
  gap: 5px;
  margin: 6px;
  padding: 9px;
  text-align: left;
  text-transform: uppercase;
}
.schedule-availability-card-head { align-items: center; display: flex; gap: 7px; }
.schedule-availability-card-head span {
  background: #fff;
  border-radius: 50%;
  flex: 0 0 9px;
  height: 9px;
  width: 9px;
}
.schedule-attendance-card-head { align-items: center; display: flex; gap: 7px; }
.schedule-attendance-card span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-attendance-card small { color: #6e211b; font-weight: 700; }
.attendance-live-dot {
  background: #d92d20;
  border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(217, 45, 32, .58);
  flex: 0 0 9px;
  height: 9px;
  width: 9px;
}
.schedule-attendance-card.pending .attendance-live-dot { animation: attendance-pulse 1.5s ease-out infinite; }
.schedule-attendance-card.acknowledged { background: #fff5f4; box-shadow: none; }
.attendance-card-acknowledge {
  background: #9f2118;
  border: 0;
  border-radius: 5px;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
  justify-self: start;
  padding: 5px 9px;
}
.tech-availability-line.attendance-impact { color: #9f2118; font-weight: 900; }
.tech-availability-line.attendance-impact.pending { color: #9a6700; }
@keyframes attendance-pulse {
  0% { box-shadow: 0 0 0 0 rgba(217, 45, 32, .58); }
  70%, 100% { box-shadow: 0 0 0 8px rgba(217, 45, 32, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .schedule-attendance-card.pending .attendance-live-dot { animation: none; }
}

@media (max-width: 900px) {
  .attendance-layout { grid-template-columns: 1fr; }
  .attendance-report { grid-template-columns: 1fr; }
}

.visual-placement-toggle {
  border-color: #c8322b;
  color: #a61f1a;
  font-weight: 900;
}

.dispatch-advanced-tools {
  position: relative;
}

.dispatch-advanced-tools > summary {
  background: #edf2f5;
  border: 1px solid #a9bac4;
  color: #17384a;
  cursor: pointer;
  font-size: 11px;
  font-weight: 850;
  list-style: none;
  min-height: 34px;
  padding: 8px 10px;
}

.dispatch-advanced-tools > summary::-webkit-details-marker {
  display: none;
}

.dispatch-advanced-tools[open] > summary {
  background: #263e4a;
  color: #fff;
}

.dispatch-advanced-tools > .visual-placement-toggle {
  display: block;
  margin-top: 4px;
  width: 100%;
}

.visual-placement-toggle.active {
  background: #b42318;
  border-color: #8f1c14;
  color: #ffffff;
}

.visual-placement-guidance {
  align-items: center;
  background: #fff2f0;
  border: 1px solid #e7aaa5;
  border-left: 5px solid #b42318;
  border-radius: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  padding: 10px 12px;
}

.visual-placement-guidance strong {
  color: #8f1c14;
  font-size: 14px;
}

.visual-placement-guidance span {
  color: #6f3b37;
  font-size: 12px;
  font-weight: 700;
}

.visual-placement-list {
  align-content: start;
  display: grid;
  min-height: 140px;
  padding: 8px;
}

.visual-placement-list.saving {
  opacity: 0.62;
  pointer-events: none;
}

.visual-placement-mode .tech-column {
  min-height: 260px;
}

.visual-placement-mode .dispatch-card {
  height: auto;
  min-height: 126px;
  position: relative;
}

.visual-placement-mode .dispatch-card-resize {
  display: none;
}

.visual-placement-drop-zone {
  align-items: center;
  border: 1px dashed transparent;
  border-radius: 6px;
  color: transparent;
  display: flex;
  font-size: 10px;
  font-weight: 900;
  justify-content: center;
  min-height: 22px;
  text-transform: uppercase;
  transition: background 120ms ease, border-color 120ms ease, color 120ms ease;
}

.visual-placement-drop-zone:hover,
.visual-placement-drop-zone.drag-over {
  background: #fff2f0;
  border-color: #c8322b;
  color: #a61f1a;
}

.visual-placement-empty {
  color: var(--muted);
  font-size: 12px;
  padding: 18px 8px;
  text-align: center;
}

.visual-placement-card-tools {
  align-items: center;
  display: flex;
  gap: 4px;
  justify-content: flex-end;
}

.visual-placement-card-tools span {
  color: #8f1c14;
  font-size: 10px;
  font-weight: 900;
  margin-right: auto;
  text-transform: uppercase;
}

.visual-placement-card-tools button {
  align-items: center;
  background: #ffffff;
  border: 1px solid #cf9b97;
  border-radius: 5px;
  color: #8f1c14;
  cursor: pointer;
  display: inline-flex;
  font-size: 15px;
  font-weight: 900;
  height: 26px;
  justify-content: center;
  padding: 0;
  width: 30px;
}

.visual-placement-card-tools button:disabled {
  cursor: not-allowed;
  opacity: 0.35;
}

.dispatch-day-section {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  min-width: 0;
  overflow: hidden;
  position: relative;
}

.dispatch-day-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  background: #eef5f4;
}

.dispatch-day-head strong {
  font-size: 14px;
}

.dispatch-day-head span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.dispatch-technician-group {
  border-top: 4px solid var(--department-group-color, #526777);
  background: #f5f8fa;
}

.dispatch-technician-group + .dispatch-technician-group {
  border-top-width: 5px;
}

.dispatch-technician-group-head {
  align-items: center;
  background: color-mix(in srgb, var(--department-group-color, #526777) 14%, white);
  border-bottom: 1px solid color-mix(in srgb, var(--department-group-color, #526777) 35%, white);
  cursor: grab;
  display: flex;
  gap: 9px;
  min-height: 42px;
  padding: 6px 10px;
}

.dispatch-technician-group-head:active {
  cursor: grabbing;
}

.dispatch-technician-group-head strong {
  color: #173646;
  font-size: 14px;
  text-transform: uppercase;
}

.dispatch-technician-group-head > span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.dispatch-technician-group-head .dispatch-group-drag-hint {
  margin-left: auto;
}

.dispatch-technician-group-head button {
  background: #ffffff;
  border: 1px solid color-mix(in srgb, var(--department-group-color, #526777) 45%, white);
  border-radius: 5px;
  color: #173646;
  cursor: pointer;
  font-weight: 900;
  height: 28px;
  min-width: 30px;
}

.dispatch-technician-group-head button:disabled {
  cursor: default;
  opacity: 0.35;
}

.dispatch-technician-group.collapsed .dispatch-technician-group-body {
  display: none;
}

.dispatch-technician-group-body {
  min-width: 0;
  position: relative;
}

.tech-column.dispatch-department-ghost {
  background: repeating-linear-gradient(135deg, #f3f6f8, #f3f6f8 12px, #e8eef2 12px, #e8eef2 24px);
  border: 2px dashed #8ba0ad;
  cursor: not-allowed;
  opacity: 0.72;
  pointer-events: none;
}

.dispatch-department-ghost .tech-column-head {
  background: #667985;
  color: #ffffff;
}

.dispatch-department-ghost-message {
  align-items: center;
  color: #425966;
  display: flex;
  font-size: 15px;
  justify-content: center;
  min-height: 430px;
  padding: 18px;
  text-align: center;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.dispatch-day-columns {
  --dispatch-tech-column-min: 260px;
  display: grid;
  grid-template-columns: repeat(var(--dispatch-tech-count, 3), minmax(var(--dispatch-tech-column-min), 1fr));
  gap: 12px;
  padding: 12px;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.dispatch-day-columns {
  scrollbar-color: #63849a #dce7ed;
}

.dispatch-day-edge-scroll {
  display: flex;
  justify-content: space-between;
  pointer-events: none;
  position: sticky;
  top: 8px;
  height: 0;
  margin: 0 5px;
  z-index: 12;
}

.dispatch-day-edge-scroll button {
  align-items: center;
  background: #006b9b;
  border: 2px solid #ffffff;
  border-radius: 999px;
  box-shadow: 0 2px 7px rgba(15, 42, 58, 0.3);
  color: #ffffff;
  cursor: pointer;
  display: inline-flex;
  font-size: 26px;
  font-weight: 900;
  height: 42px;
  justify-content: center;
  pointer-events: auto;
  transform: translateY(10px);
  width: 42px;
}

.dispatch-day-edge-scroll button:disabled {
  cursor: default;
  opacity: 0.28;
}

.dispatch-schedule.sheet-mode {
  min-width: 1120px;
}

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

.job-control-toolbar,
.job-control-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
}

.job-control-quick {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.job-control-toolbar {
  justify-content: space-between;
}

.job-control-saved-views {
  border: 1px solid #d5e0e5;
  border-radius: 8px;
  background: #fbfcfd;
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 8px;
  padding: 8px;
}

.job-control-saved-views label {
  display: grid;
  gap: 4px;
}

.job-control-saved-views select {
  min-width: 190px;
}

.job-control-saved-views input {
  min-width: 210px;
}

.job-control-format-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.job-control-format-panel {
  border: 1px solid #cbd8df;
  border-radius: 8px;
  background: #f7fafb;
  display: grid;
  gap: 10px;
  padding: 10px;
}

.job-control-format-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px;
  color: var(--muted);
  font-size: 12px;
}

.job-control-format-head strong {
  color: var(--text);
  font-size: 13px;
}

.job-control-density {
  display: flex;
  gap: 6px;
}

.job-control-column-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 6px;
}

.job-control-card-format {
  border-top: 1px solid #d7e1e6;
  display: grid;
  gap: 7px;
  padding-top: 9px;
}

.job-control-card-field-list {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.job-control-column-option {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 5px 6px;
}

.job-control-column-option .check-row {
  padding: 0;
}

.job-control-column-move {
  display: flex;
  gap: 4px;
}

.icon-button {
  min-width: 32px;
  min-height: 30px;
  padding: 4px 8px;
}

.job-control-filters label,
.sheet-search {
  display: grid;
  gap: 4px;
}

.job-control-filter-row {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) auto;
  gap: 6px;
  align-items: center;
}

.job-control-filter-row.wide {
  grid-template-columns: minmax(240px, 1fr) auto;
}

.filter-mode-toggle {
  min-width: 86px;
  padding-right: 9px;
  padding-left: 9px;
}

.filter-mode-toggle.exclude {
  border-color: #c9933d;
  background: #fff4de;
  color: #6f4300;
}

.job-control-filters span,
.job-control-saved-views span,
.sheet-search span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.job-control-filters select,
.job-control-filters input,
.job-control-saved-views select,
.job-control-saved-views input,
.sheet-search input {
  min-height: 38px;
}

.sheet-search {
  min-width: min(340px, 100%);
}

.sheet-search-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto auto;
  gap: 6px;
}

.job-control-count {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.job-control-count strong {
  color: var(--text);
  font-size: 18px;
}

.job-control-pagination {
  align-items: center;
  background: #e8f2ff;
  border-top: 1px solid #c3d9e7;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
  padding: 5px 8px;
}

.job-control-page-range {
  color: #244452;
  font-size: 13px;
  font-weight: 700;
  margin-right: auto;
}

.job-control-page-size {
  align-items: center;
  display: inline-flex;
  flex-direction: row;
  gap: 5px;
}

.job-control-page-size span {
  color: #244452;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.job-control-page-size select {
  min-width: 68px;
}

.visually-hidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.skip-link {
  background: #123543;
  border: 2px solid #ffffff;
  border-radius: 4px;
  color: #ffffff;
  font-size: 14px;
  font-weight: 900;
  left: 10px;
  padding: 10px 14px;
  position: fixed;
  top: 10px;
  transform: translateY(-150%);
  transition: transform 120ms ease-out;
  z-index: 10000;
}

.skip-link:focus {
  transform: translateY(0);
}

.job-control-wrap {
  max-height: 680px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.job-control-table {
  min-width: 100%;
  width: max-content;
  border-collapse: separate;
  border-spacing: 0;
}

.job-control-table th {
  position: sticky;
  top: 0;
  z-index: 3;
  padding: 0;
  background: #dce7ed;
  border-bottom: 1px solid #c4d1d8;
}

.job-control-expand-head,
.job-control-expand-cell {
  box-sizing: border-box;
  min-width: 42px;
  width: 42px;
  text-align: center;
}

.job-control-expand-button {
  width: 24px;
  height: 24px;
  border: 1px solid #9fb0ba;
  border-radius: 6px;
  background: #eef5f4;
  color: #172027;
  cursor: pointer;
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
  padding: 0;
}

.job-control-expand-button:hover {
  border-color: #0b6e69;
  background: #dff3ef;
}

.job-control-table td {
  padding: 5px 8px;
  border-bottom: 1px solid var(--line);
  border-right: 1px solid #edf1f3;
  font-size: 12px;
  vertical-align: middle;
}

.job-control-panel.density-compact .job-control-table td {
  height: 36px;
}

.job-control-panel.density-comfortable .job-control-table td {
  height: 50px;
  padding-top: 8px;
  padding-bottom: 8px;
}

.job-control-table tbody tr:nth-child(even) td {
  background: #fbfcfd;
}

.job-control-expanded-row td {
  background: #f5f9fb !important;
  border-top: 1px solid #cfdde5;
  border-bottom: 1px solid #cfdde5;
  height: auto !important;
  padding: 10px;
}

.job-control-expanded-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 10px;
}

.job-control-expanded-block {
  border: 1px solid #d5e0e5;
  border-radius: 8px;
  background: #ffffff;
  display: grid;
  gap: 8px;
  padding: 10px;
}

.job-control-expanded-block.wide {
  grid-column: 1 / -1;
}

.job-control-expanded-block h4 {
  margin: 0;
  color: #516876;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.job-control-expanded-head {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  justify-content: space-between;
  gap: 10px;
}

.job-control-expanded-head > div {
  display: grid;
  gap: 3px;
}

.job-control-expanded-head strong {
  font-size: 14px;
}

.job-control-expanded-head span,
.job-control-expanded-item span,
.job-control-description p {
  color: var(--muted);
  font-size: 12px;
}

.job-control-mini-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 6px;
}

.job-control-mini-value {
  border: 1px solid #e2e9ed;
  border-radius: 6px;
  background: #fbfcfd;
  display: grid;
  gap: 2px;
  padding: 7px;
}

.job-control-mini-value span,
.job-control-description span {
  color: #516876;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.job-control-mini-value strong {
  font-size: 12px;
}

.job-control-description {
  display: grid;
  gap: 4px;
}

.job-control-description p {
  margin: 0;
}

.job-control-quick-actions {
  display: grid;
  grid-template-columns: minmax(320px, 780px);
  gap: 10px;
  align-items: start;
}

.job-control-quick-actions form {
  display: grid;
  gap: 7px;
}

.job-control-quick-status-form {
  grid-template-columns: minmax(180px, 1fr) auto;
}

.job-control-quick-note-form {
  grid-template-columns: minmax(260px, 1fr);
}

.job-control-quick-note-form button {
  justify-self: start;
}

.job-control-quick-actions label {
  display: grid;
  gap: 4px;
}

.job-control-quick-actions span,
.job-control-latest-note span {
  color: #516876;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.job-control-quick-actions select,
.job-control-quick-actions textarea {
  min-height: 38px;
}

.job-control-quick-actions textarea {
  resize: vertical;
}

.wip-process-card {
  border-color: #b8ccd7;
}

.wip-process-form {
  align-items: end;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(190px, 260px) minmax(220px, 1fr) auto;
}

.wip-process-form label {
  display: grid;
  gap: 4px;
}

.wip-process-form span {
  color: #516876;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.wip-process-form select,
.wip-process-form input {
  min-height: 38px;
}

@media (max-width: 900px) {
  .wip-process-form {
    grid-template-columns: 1fr;
  }

  .wip-process-form .primary-button {
    justify-self: start;
  }
}

.job-control-latest-note {
  border-top: 1px solid #edf1f3;
  display: grid;
  gap: 4px;
  padding-top: 8px;
}

.job-control-latest-note p {
  color: var(--muted);
  font-size: 12px;
  margin: 0;
  white-space: pre-wrap;
}

.job-control-expanded-list {
  display: grid;
  gap: 6px;
}

.job-control-expanded-item {
  border-top: 1px solid #edf1f3;
  display: grid;
  gap: 3px;
  padding-top: 6px;
}

.job-control-expanded-item:first-child {
  border-top: 0;
  padding-top: 0;
}

.job-control-expanded-loading {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  padding: 8px;
}

.sheet-sort-button {
  width: 100%;
  min-height: 36px;
  border: 0;
  background: transparent;
  color: #516876;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0;
  text-align: left;
  text-transform: uppercase;
}

.sheet-sort-button:hover,
.sheet-sort-button.active {
  background: #cfe2ea;
  color: #16242c;
}

.sheet-cell-control {
  width: 100%;
  min-width: 120px;
  min-height: 32px;
  border-radius: 6px;
  padding: 5px 7px;
  font-size: 12px;
}

.sheet-cell-control.compact,
.sheet-cell-control.time {
  min-width: 92px;
}

.sheet-cell-control.date {
  min-width: 132px;
}

.tech-column {
  --tech-head-bg: #ffffff;
  --tech-head-fg: var(--text);
  --tech-head-muted: var(--muted);
  --tech-head-warning: var(--bad);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
  min-height: 520px;
  overflow: hidden;
}

.tech-column.workload-available,
.tech-column.workload-open {
  --tech-head-bg: #0b6e69;
  --tech-head-fg: #ffffff;
  --tech-head-muted: #d7fff4;
  --tech-head-warning: #ffffff;
}

.tech-column.workload-full {
  --tech-head-bg: #9a5b12;
  --tech-head-fg: #ffffff;
  --tech-head-muted: #fff0d6;
  --tech-head-warning: #ffffff;
}

.tech-column.workload-overloaded,
.tech-column.workload-conflict {
  --tech-head-bg: #9f2b2b;
  --tech-head-fg: #ffffff;
  --tech-head-muted: #ffe2df;
  --tech-head-warning: #ffffff;
}

.tech-column.workload-unavailable,
.tech-column.workload-not_dispatchable {
  --tech-head-bg: #5b6974;
  --tech-head-fg: #ffffff;
  --tech-head-muted: #e5edf2;
  --tech-head-warning: #ffffff;
}

.technician-punch-timeline {
  display: grid;
  gap: 3px;
  grid-template-columns: repeat(4, minmax(38px, 1fr));
  margin-top: 6px;
  width: 100%;
}

.technician-punch-timeline span {
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 4px;
  display: grid;
  padding: 3px 4px;
  text-align: center;
}

.technician-punch-timeline small {
  color: var(--tech-head-muted);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.technician-punch-timeline strong {
  color: var(--tech-head-fg);
  font-size: 10px;
  white-space: nowrap;
}

.tech-column.workload-overloaded,
.tech-column.workload-conflict {
  box-shadow: inset 0 0 0 2px rgba(180, 52, 45, 0.14);
}

.tech-column.workload-unavailable,
.tech-column.workload-not_dispatchable {
  opacity: 1;
}

.tech-column-head {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  box-sizing: border-box;
  height: 164px;
  padding: 12px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.16);
  background: var(--tech-head-bg);
  color: var(--tech-head-fg);
  overflow: hidden;
  box-shadow: inset 6px 0 0 var(--primary-team-color, #526777);
}

.technician-team-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 5px;
}

.technician-team-badges span {
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 999px;
  background: var(--team-color);
  color: #ffffff;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  padding: 3px 6px;
  text-transform: uppercase;
}

.technician-clock-status {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 5px;
  font-size: 11px;
  font-weight: 900;
  color: var(--tech-head-fg);
}

.technician-clock-status > span {
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border-radius: 50%;
  background: #4ade80;
  box-shadow: 0 0 0 3px rgba(74, 222, 128, 0.22);
  animation: attendance-status-pulse 1.6s ease-out infinite;
}

.technician-clock-status.mty > span {
  background: #67e8f9;
  box-shadow: 0 0 0 3px rgba(103, 232, 249, 0.2);
}

.technician-scheduled-summary {
  display: grid;
  gap: 2px;
  margin-top: 5px;
  color: var(--tech-head-fg);
  font-size: 10px;
  line-height: 1.2;
}

.technician-scheduled-summary > span {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 4px;
  align-items: baseline;
  min-width: 0;
}

.technician-scheduled-summary > span:not(:first-child) {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding-top: 2px;
}

.technician-scheduled-summary > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.technician-scheduled-summary small,
.technician-scheduled-summary em {
  color: var(--tech-head-muted);
  font-size: 9px;
  font-style: normal;
  white-space: nowrap;
}

.technician-scheduled-summary.empty {
  color: var(--tech-head-muted);
}

@keyframes attendance-status-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.55; transform: scale(0.76); }
}

.tech-workload-summary {
  grid-column: 1 / -1;
  display: grid;
  gap: 6px;
  padding-top: 2px;
}

.tech-column-head h4,
.dispatch-side h4,
.dispatch-form h4 {
  margin: 0;
  font-size: 14px;
}

.tech-column-head h4 {
  color: var(--tech-head-fg);
}

.tech-column-head p {
  margin: 3px 0 0;
  color: var(--tech-head-muted);
  font-size: 12px;
  line-height: 1.35;
}

.tech-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--tech-head-fg);
  border: 2px solid rgba(255, 255, 255, 0.42);
  margin-top: 4px;
}

.tech-column-head .workload-meter {
  background: rgba(255, 255, 255, 0.26);
}

.tech-column-head .workload-meter span {
  background: rgba(255, 255, 255, 0.92);
}

.tech-column-head .tech-workload-line,
.tech-column-head .tech-availability-line {
  color: var(--tech-head-muted);
}

.tech-column-head .tech-availability-line.warning {
  color: var(--tech-head-warning);
}

.day-slot-list {
  --dispatch-hour-height: 112px;
  --time-label-width: 72px;
  display: grid;
  position: relative;
}

.time-slot {
  display: grid;
  grid-template-columns: var(--time-label-width) minmax(0, 1fr);
  gap: 8px;
  height: var(--dispatch-hour-height);
  min-height: 0;
  padding: 10px;
  border-bottom: 1px solid var(--line);
  background: #ffffff;
}

.time-slot.after-hours {
  background: #eef1f3;
}

.time-slot.after-hours .time-label {
  color: #6e7d86;
}

.time-slot.after-hours-start {
  box-shadow: inset 0 2px 0 rgba(91, 105, 116, 0.28);
}

.time-slot.after-hours-start .slot-drop-zone::before {
  color: #6e7d86;
  content: attr(data-after-hours-label);
  display: inline-block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0;
  margin-top: 4px;
  text-transform: uppercase;
}

.time-slot:last-child {
  border-bottom: 0;
}

.time-slot.drag-over,
.calendar-day.drag-over,
.month-day.drag-over {
  outline: 2px solid rgba(11, 110, 105, 0.3);
  outline-offset: -2px;
  background: #edf8f5;
}

.time-label {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  padding-top: 4px;
}

.slot-drop-zone {
  min-width: 0;
}

.timeline-card-layer {
  position: absolute;
  top: 0;
  right: 10px;
  bottom: 0;
  left: calc(var(--time-label-width) + 8px);
  pointer-events: none;
}

.timeline-card-layer .dispatch-card {
  position: absolute;
  top: calc(var(--card-top) * var(--dispatch-hour-height) + 8px);
  left: calc(var(--card-lane-left) + 4px);
  width: calc(var(--card-lane-width) - 8px);
  height: max(92px, calc(var(--card-span) * var(--dispatch-hour-height) - 12px));
  min-height: 0;
  align-content: start;
  overflow: hidden;
  pointer-events: auto;
}

.timeline-card-layer .dispatch-card strong,
.timeline-card-layer .dispatch-card span {
  min-width: 0;
}

.slot-card-stack,
.calendar-card-stack,
.month-card-stack {
  display: grid;
  gap: 8px;
  align-content: start;
}

.dispatch-card-list,
.unassigned-list {
  display: grid;
  gap: 6px;
}

.dispatch-card-list {
  padding: 12px;
}

.dispatch-card,
.unassigned-card {
  position: relative;
  width: 100%;
  border: 1px solid var(--wo-border, var(--line));
  border-radius: 8px;
  background: var(--wo-bg, #ffffff);
  color: var(--wo-fg, var(--text));
  cursor: pointer;
  display: grid;
  gap: 5px;
  padding: 10px;
  text-align: left;
  min-height: 116px;
}

.dispatch-card[draggable="true"],
.unassigned-card[draggable="true"],
.calendar-card[draggable="true"],
.month-card[draggable="true"] {
  cursor: grab;
}

.dispatch-card.locked,
.unassigned-card.locked,
.calendar-card.locked,
.month-card.locked {
  cursor: pointer;
  background: var(--wo-bg, #f7f9fa);
}

.dispatch-card[draggable="true"]:active,
.unassigned-card[draggable="true"]:active,
.calendar-card[draggable="true"]:active,
.month-card[draggable="true"]:active {
  cursor: grabbing;
}

.dispatch-card:hover,
.unassigned-card:hover {
  border-color: var(--wo-hover-border, #a9b9c3);
  filter: brightness(0.98);
}

.dispatch-card:focus-visible {
  outline: 2px solid rgba(11, 110, 105, 0.45);
  outline-offset: 2px;
}

.dispatch-card-resize {
  position: absolute;
  right: 10px;
  bottom: 5px;
  left: 10px;
  height: 10px;
  cursor: ns-resize;
}

.dispatch-card-resize::after {
  content: "";
  display: block;
  width: 34px;
  height: 3px;
  margin: 4px auto 0;
  border-radius: 999px;
  background: var(--wo-badge-fg, currentColor);
  opacity: 0.5;
}

.dispatch-card.resizing {
  outline: 2px solid rgba(23, 32, 39, 0.28);
  outline-offset: 2px;
}

.dispatch-resizing,
.dispatch-resizing * {
  cursor: ns-resize !important;
  user-select: none;
}

.dispatch-card strong,
.unassigned-card strong {
  font-size: 13px;
  line-height: 1.3;
}

.dispatch-card span,
.unassigned-card span {
  font-size: 12px;
}

.dispatch-card-time {
  color: var(--wo-strong, var(--accent));
  font-weight: 800;
}

.rolling-day-date-badge,
.rolling-day-date-label {
  color: #8a4b08 !important;
  font-weight: 800;
}

.rolling-day-date-badge {
  background: #fff4d6;
  border: 1px solid #e3b64e;
  border-radius: 999px;
  display: inline-flex;
  padding: 2px 7px;
  width: max-content;
}

.dispatch-card-ref {
  display: inline-block;
  margin: 0 3px;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--wo-muted, var(--muted));
}

.dispatch-card .muted,
.unassigned-card .muted,
.calendar-card .muted,
.month-card .muted {
  color: var(--wo-muted, var(--muted));
}

.dispatch-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 2px;
}

.dispatch-card-status-control {
  display: inline-grid;
  gap: 2px;
  min-width: 92px;
  position: relative;
}

.dispatch-card-status-control span {
  color: var(--wo-muted, currentColor);
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}

.dispatch-card-status-button {
  appearance: none;
  border: 1px solid var(--wo-badge-border, rgba(255, 255, 255, 0.32));
  border-radius: 999px;
  background: var(--wo-badge-bg, rgba(255, 255, 255, 0.8));
  color: var(--wo-badge-fg, currentColor);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  max-width: 124px;
  min-height: 24px;
  overflow: hidden;
  padding: 3px 9px 3px 8px;
  text-align: left;
  white-space: nowrap;
}

.dispatch-card-status-button span {
  color: inherit;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dispatch-card-status-button::after {
  content: "v";
  font-size: 9px;
  font-weight: 900;
  line-height: 1;
  opacity: 0.8;
}

.dispatch-card-status-button:hover,
.dispatch-card-status-button[aria-expanded="true"] {
  filter: brightness(0.96);
}

.dispatch-status-popover {
  position: fixed;
  z-index: 10000;
  width: 190px;
  max-height: 280px;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 16px 38px rgba(23, 32, 39, 0.24);
  display: grid;
  gap: 2px;
  padding: 5px;
}

.dispatch-status-menu-item {
  width: 100%;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  padding: 8px;
  text-align: left;
}

.dispatch-status-menu-item:hover,
.dispatch-status-menu-item.selected {
  background: #edf6f4;
}

.dispatch-status-color-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--status-color);
  box-shadow: inset 0 0 0 1px rgba(23, 32, 39, 0.12);
}

.dispatch-drop-dialog {
  position: fixed;
  inset: 0;
  z-index: 11000;
  display: grid;
  place-items: center;
  background: rgba(23, 32, 39, 0.28);
  padding: 20px;
}

.dispatch-drop-dialog.hidden {
  display: none;
}

.dispatch-drop-card {
  width: min(460px, 100%);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 18px 50px rgba(23, 32, 39, 0.28);
  display: grid;
  gap: 12px;
  padding: 14px;
}

.dispatch-drop-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.dispatch-side {
  border-left: 1px solid var(--line);
  background: #f8fafb;
  display: grid;
  align-content: start;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 8;
  width: min(380px, calc(100% - 36px));
  box-shadow: -18px 0 34px rgba(16, 42, 66, 0.14);
  opacity: 0;
  pointer-events: none;
  transform: translateX(calc(100% + 20px));
  transition: transform 150ms ease, opacity 150ms ease;
  overflow-y: auto;
}

.dispatch-side.open {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0);
}

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

.dispatch-side-head div {
  display: grid;
  gap: 2px;
}

.dispatch-side-head strong {
  font-size: 15px;
}

.dispatch-side-head span {
  color: var(--muted);
  font-size: 12px;
}

.dispatch-side-section,
.dispatch-form {
  padding: 16px;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 12px;
}

.dispatch-technician-job-picker {
  display: grid;
  gap: 12px;
  padding: 14px;
}

.dispatch-technician-job-picker.hidden {
  display: none;
}

.technician-job-picker-intro {
  background: #edf7f6;
  border: 1px solid #9bc9c3;
  border-left: 5px solid #08786f;
  border-radius: 6px;
  display: grid;
  gap: 3px;
  padding: 10px;
}

.technician-job-picker-intro h3,
.technician-job-picker-intro p {
  margin: 0;
}

.technician-job-picker-tabs {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.technician-job-picker-tabs .tool-button {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.technician-job-picker-tabs .tool-button.active {
  background: #08786f;
  border-color: #065d56;
  color: #ffffff;
}

.technician-job-picker-tabs .tool-button span {
  background: rgba(255, 255, 255, 0.86);
  border-radius: 999px;
  color: #173c3a;
  min-width: 24px;
  padding: 1px 6px;
  text-align: center;
}

.technician-job-picker-unlock {
  align-items: start;
  background: #fff8df;
  border: 1px solid #d9b74a;
  border-radius: 6px;
  cursor: pointer;
  display: grid;
  gap: 8px;
  grid-template-columns: auto minmax(0, 1fr);
  padding: 9px;
}

.technician-job-picker-unlock span {
  display: grid;
  gap: 2px;
}

.technician-job-picker-unlock small {
  color: #6e5b22;
  line-height: 1.3;
}

.technician-job-picker-search {
  align-items: end;
  display: grid;
  gap: 6px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.technician-job-picker-search label,
.technician-job-picker-time-grid label {
  display: grid;
  gap: 3px;
}

.technician-job-picker-search label > span,
.technician-job-picker-time-grid label > span {
  color: #3a505c;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.technician-job-picker-list {
  display: grid;
  gap: 6px;
}

.technician-job-picker-list.loading {
  opacity: 0.6;
  pointer-events: none;
}

.technician-job-choice {
  background: #ffffff;
  border: 1px solid #a8bac4;
  border-left: 5px solid var(--wo-color, #4b6878);
  border-radius: 5px;
  color: #172027;
  cursor: pointer;
  display: grid;
  gap: 4px;
  padding: 8px;
  text-align: left;
  width: 100%;
}

.technician-job-choice:hover,
.technician-job-choice:focus-visible,
.technician-job-choice.selected {
  background: #e8f6f4;
  border-color: #08786f;
  box-shadow: 0 0 0 2px rgba(8, 120, 111, 0.2);
  outline: none;
}

.technician-job-choice > small {
  color: #526671;
}

.technician-job-choice-footer,
.technician-job-picker-pagination {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: space-between;
}

.technician-job-picker-pagination {
  color: #526671;
  font-size: 11px;
}

.technician-job-picker-selected {
  background: #e8f6f4;
  border: 1px solid #80bbb5;
  border-radius: 5px;
  display: grid;
  gap: 2px;
  padding: 8px;
}

.technician-job-picker-selected span,
.technician-job-picker-guidance {
  color: #526671;
  font-size: 11px;
}

.technician-job-picker-confirm {
  border-top: 2px solid #08786f;
  display: grid;
  gap: 10px;
  padding-top: 12px;
}

.technician-job-picker-time-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dispatch-side-section h4,
.dispatch-form h4 {
  margin-bottom: 2px;
}

.heading-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 26px;
  min-height: 20px;
  margin-left: 6px;
  padding: 1px 7px;
  border-radius: 999px;
  background: #e7eef2;
  color: var(--accent-2);
  font-size: 12px;
  font-weight: 800;
}

.unassigned-card {
  min-height: 58px;
  gap: 3px;
  padding: 7px 8px;
}

.unassigned-title,
.unassigned-meta {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.unassigned-meta {
  color: var(--wo-muted, var(--muted));
}

.unassigned-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

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

.dispatch-warning-card {
  border: 1px solid var(--line);
  border-left: 4px solid var(--tech-color);
  border-radius: 8px;
  background: #ffffff;
  color: var(--text);
  display: grid;
  gap: 6px;
  padding: 9px;
}

.dispatch-warning-card.warning-conflict {
  border-color: rgba(180, 52, 45, 0.35);
  background: #fff7f6;
}

.dispatch-warning-card.warning-warning {
  border-color: rgba(175, 116, 30, 0.36);
  background: #fff9ec;
}

.warning-head,
.warning-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.warning-head strong {
  font-size: 13px;
}

.dispatch-warning-card span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.warning-link {
  appearance: none;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  color: var(--accent);
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  padding: 4px 7px;
}

.warning-link:hover {
  border-color: var(--accent);
}

.reschedule-list {
  display: grid;
  gap: 8px;
  max-height: 260px;
  overflow: auto;
}

.reschedule-option {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 9px;
}

.reschedule-option input {
  width: 16px;
  height: 16px;
  margin-top: 2px;
  accent-color: var(--accent);
}

.status-setup-list {
  display: grid;
  gap: 8px;
  max-height: 430px;
  overflow: auto;
}

.status-setup-row {
  display: grid;
  grid-template-columns: 88px minmax(120px, 1fr) minmax(180px, 1.4fr) 76px 76px 76px 86px 82px 72px;
  gap: 8px;
  align-items: end;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 8px;
}

.status-color-preview {
  min-height: 52px;
  border-radius: 6px;
  border: 1px solid rgba(20, 33, 43, 0.16);
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 1px;
  padding: 5px;
}

.status-color-preview strong {
  font-size: 15px;
  line-height: 1;
}

.status-color-preview span {
  font-size: 10px;
  font-weight: 800;
  opacity: 0.82;
  text-transform: uppercase;
}

.status-setup-row input[type="color"] {
  min-height: 34px;
  padding: 3px;
}

.status-division-editor {
  background: #f5f8fa;
  border: 1px solid #c9d5dc;
  border-radius: 7px;
  display: grid;
  gap: 8px;
  grid-column: 1 / -1;
  padding: 9px;
}

.status-division-editor > p {
  color: #536773;
  font-size: 12px;
  margin: 0;
}

.status-division-scope {
  max-width: 260px;
}

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

.status-division-choice {
  background: #ffffff;
  border: 1px solid #d5dfe4;
  border-radius: 6px;
  display: grid;
  gap: 6px;
  grid-template-columns: 1fr;
  padding: 8px;
}

.status-division-toggle {
  color: #174c5b;
  font-weight: 900;
}

.division-status-guidance {
  color: #8a5d00;
  display: block;
  font-size: 11px;
  margin-top: 3px;
}

.reschedule-option strong,
.reschedule-option span {
  display: block;
  font-size: 12px;
  line-height: 1.35;
}

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

.reschedule-actions .primary-button {
  grid-column: 1 / -1;
}

.calendar-strip {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 10px;
  min-width: 0;
}

.calendar-day,
.month-day {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  min-width: 0;
  min-height: 220px;
  overflow: hidden;
}

.calendar-day.selected,
.month-day.selected {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px rgba(11, 110, 105, 0.25);
}

.calendar-day-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px;
  background: #f4f8f9;
  border-bottom: 1px solid var(--line);
}

.calendar-day-head strong,
.calendar-day-head span {
  font-size: 13px;
}

.calendar-card-stack {
  padding: 10px;
}

.calendar-card,
.month-card {
  width: 100%;
  border: 1px solid var(--wo-border, var(--line));
  border-radius: 8px;
  background: var(--wo-bg, #ffffff);
  color: var(--wo-fg, var(--text));
  cursor: pointer;
  display: grid;
  gap: 4px;
  padding: 8px;
  text-align: left;
}

.calendar-card:hover,
.month-card:hover {
  border-color: var(--wo-hover-border, #a9b9c3);
  filter: brightness(0.98);
}

.calendar-card strong,
.month-card strong {
  font-size: 12px;
  line-height: 1.3;
}

.calendar-card span,
.month-card span {
  font-size: 12px;
}

.dispatch-card .status,
.unassigned-card .status,
.calendar-card .status,
.month-card .status {
  min-height: 20px;
  padding: 2px 7px;
  border: 1px solid var(--wo-badge-border, rgba(255, 255, 255, 0.32));
  background: var(--wo-badge-bg, rgba(255, 255, 255, 0.22));
  color: var(--wo-badge-fg, currentColor);
}

.wo-tone-normal {
  --wo-bg: #f4f7f9;
  --wo-fg: #14212b;
  --wo-muted: #4e6472;
  --wo-strong: #0b5e5a;
  --wo-border: #b8c7cf;
  --wo-hover-border: #7f99a7;
  --wo-badge-bg: rgba(255, 255, 255, 0.68);
  --wo-badge-border: rgba(78, 100, 114, 0.25);
}

.wo-tone-draft {
  --wo-bg: #d9ecff;
  --wo-fg: #102a42;
  --wo-muted: #365875;
  --wo-strong: #174f84;
  --wo-border: #84b9ea;
  --wo-hover-border: #477fac;
  --wo-badge-bg: rgba(255, 255, 255, 0.7);
  --wo-badge-border: rgba(23, 79, 132, 0.24);
}

.wo-tone-scheduled {
  --wo-bg: #117864;
  --wo-fg: #ffffff;
  --wo-muted: #d7fff4;
  --wo-strong: #ffffff;
  --wo-border: #075244;
  --wo-hover-border: #063c33;
}

.wo-tone-dispatched {
  --wo-bg: #285fae;
  --wo-fg: #ffffff;
  --wo-muted: #e4efff;
  --wo-strong: #ffffff;
  --wo-border: #153f78;
  --wo-hover-border: #0f315f;
}

.wo-tone-in-progress {
  --wo-bg: #ffdc65;
  --wo-fg: #332600;
  --wo-muted: #604900;
  --wo-strong: #332600;
  --wo-border: #c69a00;
  --wo-hover-border: #8f7000;
  --wo-badge-bg: rgba(255, 255, 255, 0.54);
  --wo-badge-border: rgba(51, 38, 0, 0.18);
}

.wo-tone-high {
  --wo-bg: #f7a23b;
  --wo-fg: #2d1800;
  --wo-muted: #5a3000;
  --wo-strong: #2d1800;
  --wo-border: #b56512;
  --wo-hover-border: #82440a;
  --wo-badge-bg: rgba(255, 255, 255, 0.5);
  --wo-badge-border: rgba(45, 24, 0, 0.18);
}

.wo-tone-urgent {
  --wo-bg: #b92f2a;
  --wo-fg: #ffffff;
  --wo-muted: #ffe2df;
  --wo-strong: #ffffff;
  --wo-border: #7e1d1a;
  --wo-hover-border: #5f1412;
}

.wo-tone-completed,
.wo-tone-cancelled {
  --wo-bg: #d7dde1;
  --wo-fg: #27323a;
  --wo-muted: #5c6971;
  --wo-strong: #27323a;
  --wo-border: #a7b2ba;
  --wo-hover-border: #74828c;
  --wo-badge-bg: rgba(255, 255, 255, 0.62);
  --wo-badge-border: rgba(39, 50, 58, 0.18);
}

.month-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
  min-width: 0;
}

.month-weekday {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  padding: 0 4px 4px;
}

.month-day {
  min-height: 150px;
  padding: 8px;
}

.month-day.outside {
  background: #f5f7f8;
}

.month-day-number {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 8px;
}

.empty-state.small {
  font-size: 13px;
  padding: 10px;
}

.result-panel {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 14px 18px 18px;
  border: 1px solid #b8d8cd;
  background: #f0faf6;
  color: #164d38;
  border-radius: 8px;
  padding: 12px 14px;
  font-size: 13px;
}

.result-panel.error {
  border-color: #e1b4b4;
  background: #fff4f4;
  color: var(--bad);
}

.legacy-data-badge {
  display: inline-flex;
  align-items: center;
  border: 1px solid #c17b13;
  border-radius: 999px;
  background: #fff5d9;
  color: #7a4300;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.04em;
  line-height: 1;
  padding: 4px 6px;
  white-space: nowrap;
}

.legacy-data-warning {
  display: grid;
  gap: 4px;
  border: 1px solid #c17b13;
  border-radius: 8px;
  background: #fff8e8;
  color: #6e3d00;
  margin: 12px 0;
  padding: 12px 14px;
}

.legacy-data-warning strong {
  color: #5c3200;
}

.table-wrap {
  width: 100%;
  overflow-x: auto;
}

.equipment-filter-panel {
  display: grid;
  grid-template-columns: minmax(220px, 2fr) repeat(3, minmax(140px, 1fr)) auto auto;
  gap: 8px;
  align-items: end;
  border: 1px solid var(--line);
  border-top: 0;
  background: #f7fbfd;
  padding: 10px 12px;
}

.equipment-filter-panel label {
  display: grid;
  gap: 3px;
}

.equipment-filter-panel span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.equipment-filter-panel input,
.equipment-filter-panel select {
  width: 100%;
  min-height: 30px;
  border: 1px solid #b9c8cf;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 13px;
  padding: 5px 7px;
}

.equipment-filter-count {
  align-self: center;
  min-width: 96px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  padding: 7px 8px;
  text-align: center;
}

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

th,
td {
  padding: 11px 12px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
  text-align: left;
}

th {
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
  background: var(--panel-2);
}

td {
  font-size: 13px;
}

tr.clickable {
  cursor: pointer;
}

tr.clickable:hover td {
  background: #f3f8f8;
}

tr.clickable.selected td {
  background: #e8f4f2;
}

.table-link {
  border: 0;
  background: transparent;
  color: var(--accent);
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  padding: 0;
  text-align: left;
}

.table-link:hover {
  text-decoration: underline;
}

.table-subline {
  display: block;
  margin-top: 3px;
}

.mini-pill {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  border: 1px solid #b8d8cd;
  border-radius: 999px;
  background: #f0faf6;
  color: #164d38;
  font-size: 11px;
  font-weight: 800;
  padding: 2px 7px;
  white-space: nowrap;
}

.mini-pill.off {
  border-color: #d8c4b8;
  background: #fff7ed;
  color: #8b4a17;
}

.command-center-band {
  border-color: #aebbc2;
}

.command-table {
  min-width: 1220px;
}

.command-table th {
  background: #dfe6ea;
  color: #2f414b;
  border-bottom-color: #b9c6cd;
  font-size: 11px;
  padding: 8px 9px;
}

.command-table td {
  padding: 8px 9px;
  font-size: 12px;
  border-bottom-color: #e0e6ea;
}

.command-table tbody tr:nth-child(even) td {
  background: #fbfcfd;
}

.mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.status {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  background: #e8edf1;
  color: var(--accent-2);
}

.status.scheduled,
.status.accepted,
.status.active,
.status.converted,
.status.available,
.status.open {
  background: #e6f4ee;
  color: var(--good);
}

.status.draft,
.status.planned {
  background: #eef3f5;
  color: var(--accent-2);
}

.status.urgent,
.status.ready_to_bill,
.status.full {
  background: #fff3df;
  color: var(--warn);
}

.status.overloaded,
.status.conflict {
  background: #fdebea;
  color: var(--bad);
}

.status.unavailable,
.status.off_board {
  background: #e8edf1;
  color: #53636f;
}

.detail-panel {
  position: fixed;
  top: 0;
  right: 0;
  width: min(780px, 100vw);
  height: 100vh;
  background: var(--panel);
  border-left: 1px solid var(--line);
  box-shadow: var(--shadow);
  transform: translateX(105%);
  transition: transform 180ms ease;
  z-index: 10;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}

.detail-panel.open {
  transform: translateX(0);
}

.dispatch-preview {
  display: grid;
  gap: 14px;
}

.dispatch-preview-list .detail-body {
  display: grid;
  gap: 8px;
}

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

.wip-writer-browser,
.wip-writer-stage {
  min-width: 0;
}

.wip-writer-browser {
  position: sticky;
  top: 16px;
}

.wip-create-form {
  border-bottom: 1px solid var(--line);
  margin-bottom: 14px;
  padding-bottom: 14px;
}

.wip-browse-head {
  align-items: center;
  color: var(--muted);
  display: flex;
  font-size: 11px;
  font-weight: 800;
  justify-content: space-between;
  letter-spacing: 0;
  margin-bottom: 8px;
  text-transform: uppercase;
}

.wip-browse-tools {
  display: grid;
  gap: 8px;
  margin-bottom: 10px;
}

.wip-browse-tools label {
  display: grid;
  gap: 4px;
}

.wip-browse-tools span {
  color: #516876;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.wip-browse-tools input {
  min-height: 38px;
}

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

.wip-restore-selected {
  grid-column: 1 / -1;
}

.wip-grid-actions {
  display: flex;
  gap: 6px;
  justify-content: flex-end;
  white-space: nowrap;
}

.tool-button.restore {
  border-color: #b55d00;
  color: #8a3d00;
}

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

.wip-browse-grid-wrap {
  max-height: calc(100vh - 410px);
  overflow: auto;
}

.wip-browse-grid th,
.wip-browse-grid td {
  font-size: 11px;
  padding: 7px 6px;
  white-space: nowrap;
}

.wip-browse-grid td:nth-child(5),
.wip-browse-grid td:nth-child(6) {
  white-space: normal;
  min-width: 140px;
}

.wip-browse-list {
  display: grid;
  gap: 8px;
  max-height: calc(100vh - 410px);
  min-height: 180px;
  overflow: auto;
  padding-right: 2px;
}

.wip-browse-row {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  cursor: pointer;
  display: grid;
  gap: 4px;
  padding: 10px;
  text-align: left;
}

.wip-browse-card-main {
  display: grid;
  gap: 4px;
}

.wip-browse-card-actions {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: flex-end;
  margin-top: 6px;
  padding-top: 6px;
}

.wip-browse-row:hover,
.wip-browse-row.selected {
  border-color: #86aab4;
  background: #f4faf9;
}

.wip-browse-row strong,
.wip-browse-row span {
  font-size: 12px;
}

.wip-writer-content {
  min-height: 680px;
}

.wip-writer-record-head {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin: -4px 0 14px;
  padding-bottom: 14px;
}

.wip-writer-record-head h3 {
  margin: 0;
  font-size: 22px;
}

.wip-writer-tabs {
  margin-bottom: 12px;
}

.wip-process-menu-wrap {
  position: relative;
}

.billing-quick-actions {
  margin-bottom: 12px;
}

.billing-quick-actions form {
  margin: 0;
}

.document-action-form {
  border-top: 1px solid var(--line);
  margin: 8px 0 16px;
  padding-top: 10px;
}

.document-sync-form {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: space-between;
  margin: -8px 0 16px;
}

.wip-process-dialog {
  align-items: center;
  background: rgba(18, 30, 36, 0.34);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 20px;
  position: fixed;
  z-index: 20;
}

.wip-process-dialog[hidden] {
  display: none;
}

.wip-process-dialog-panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
  max-width: min(680px, 100%);
  padding: 16px;
  width: 680px;
}

.wintac-process-menu-form .wip-process-choice-grid {
  grid-template-columns: 1fr;
}

.wintac-process-menu-form .wip-process-choice {
  background: #f4f1ed;
  border-color: #b8b8b8;
  border-radius: 0;
  box-shadow: inset 1px 1px 0 #ffffff, inset -1px -1px 0 #8e8e8e;
  min-height: 42px;
  text-align: center;
}

.wintac-process-menu-form .wip-process-choice.active {
  background: #ffffff;
  border-color: #8e8e8e;
  color: #222222;
  outline: 1px dotted #222222;
  outline-offset: -5px;
}

.wip-process-dialog-head,
.wip-process-dialog-foot {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.wip-process-dialog-head {
  border-bottom: 1px solid var(--line);
  margin-bottom: 14px;
  padding-bottom: 12px;
}

.wip-process-dialog-head h4 {
  font-size: 20px;
  margin: 0;
}

.wip-process-menu-form {
  display: grid;
  gap: 12px;
}

.wip-process-menu-form label {
  display: grid;
  gap: 4px;
}

.wip-process-menu-form label > span {
  color: #516876;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.wip-process-menu-form select,
.wip-process-menu-form input {
  min-height: 38px;
}

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

.wip-process-choice {
  background: #f8fafb;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  cursor: pointer;
  min-height: 48px;
  padding: 10px;
  text-align: left;
}

.wip-process-choice:hover,
.wip-process-choice.active {
  background: #e6f4ee;
  border-color: #93c7b9;
  color: #084f4b;
}

.wip-process-choice strong {
  display: block;
  font-size: 13px;
}

.wip-print-options {
  background: #f8fafb;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  padding: 12px;
}

.wip-print-options h5 {
  font-size: 13px;
  margin: 0;
}

.wip-process-dialog-foot {
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.wip-process-dialog-foot span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.wip-print-dialog-panel {
  background: #e7f4ff;
  border-color: #8fa4b0;
  border-radius: 0;
  box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.22);
  max-width: min(620px, 100%);
  width: 520px;
}

.wip-print-dialog-body {
  display: grid;
  gap: 10px;
}

.wip-print-radio-box {
  background: #dfeefb;
  border: 2px inset #9aaab4;
  display: grid;
  gap: 4px;
  margin: 0 auto;
  padding: 10px 16px;
  width: min(320px, 100%);
}

.wip-print-radio-row {
  align-items: center;
  display: grid;
  gap: 8px;
  grid-template-columns: auto 1fr;
}

.wip-print-radio-row span {
  color: #222222;
  font-weight: 700;
}

.wip-print-dialog-fields {
  display: grid;
  gap: 8px;
  grid-template-columns: 1fr;
}

.wip-print-dialog-fields label {
  align-items: center;
  display: grid;
  gap: 8px;
  grid-template-columns: 140px 1fr;
}

.wip-print-dialog-fields span {
  color: #333333;
  font-weight: 700;
  text-align: right;
}

.wip-print-checkboxes {
  display: grid;
  gap: 6px;
  padding-left: 150px;
}

.wip-print-checkboxes [data-wip-print-checkbox-list] {
  display: grid;
  gap: 6px;
}

.wip-print-inline-date,
.wip-print-inline-number {
  align-items: center;
  display: flex;
  gap: 8px;
}

.wip-print-inline-date span {
  min-width: 96px;
}

.wip-print-inline-date input {
  width: 132px;
}

.wip-print-inline-number input[type="number"] {
  width: 56px;
}

.wip-print-dialog-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.wintac-message-panel,
.wip-flat-rate-panel {
  background: #ffffff;
  border-color: #8fa4b0;
  border-radius: 0;
  max-width: min(620px, 100%);
  width: 460px;
}

.wintac-message-dialog {
  z-index: 40;
}

.wintac-message-body {
  align-items: center;
  display: grid;
  gap: 18px;
  grid-template-columns: auto 1fr;
  padding: 18px 8px;
}

.wintac-message-body p {
  white-space: pre-line;
}

.wintac-info-icon {
  align-items: center;
  background: #0a95d1;
  border-radius: 50%;
  color: #ffffff;
  display: inline-flex;
  font-size: 28px;
  font-weight: 700;
  height: 48px;
  justify-content: center;
  width: 48px;
}

.wip-flat-rate-body {
  display: grid;
  gap: 10px;
  padding: 10px 4px;
}

.wip-flat-rate-body p {
  font-size: 15px;
  margin: 0;
}

.wip-flat-rate-body input {
  border: 2px inset #8fa4b0;
  min-height: 34px;
}

.wip-line-grid {
  display: grid;
  gap: 8px;
}

.wip-line-row {
  align-items: start;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1.4fr) minmax(210px, .8fr) auto;
  padding-bottom: 8px;
}

.wip-line-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.wip-line-row > div {
  display: grid;
  gap: 3px;
}

.wip-line-row > .wip-line-actions {
  align-items: center;
  display: flex;
  gap: 6px;
  justify-content: end;
}

.wip-line-actions form {
  margin: 0;
}

.wip-line-edit-form {
  background: #f8fafb;
  border-top: 1px solid var(--line);
  grid-column: 1 / -1;
  margin-top: 2px;
  padding-top: 10px;
}

.wip-line-row.declined {
  color: #687782;
}

.line-flags {
  color: #6f4d11;
  font-size: 11px;
  font-weight: 900;
}

.document-row {
  align-items: start;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.document-row > div {
  display: grid;
  gap: 3px;
}

@media (max-width: 1120px) {
  .wip-writer-layout {
    grid-template-columns: 1fr;
  }

  .wip-writer-browser {
    position: static;
  }

  .wip-browse-list {
    max-height: 360px;
  }
}

@media (max-width: 760px) {
  .wip-writer-record-head {
    align-items: stretch;
    display: grid;
  }

  .wip-writer-record-head .command-actions {
    justify-content: start;
  }

  .wip-process-choice-grid {
    grid-template-columns: 1fr;
  }

  .wip-process-dialog-foot {
    align-items: stretch;
    display: grid;
  }

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

/* Account and Team Access are supporting controls, not a sixth app surface. */
.user-pill-actions {
  display: grid;
  gap: 5px;
}

.user-account-button,
.user-logout-button {
  min-width: 70px;
}

.user-account-button {
  min-height: 34px;
  border: 1px solid #47707a;
  border-radius: 6px;
  background: #0f5d62;
  color: #f5f8fa;
  padding: 6px 8px;
  cursor: pointer;
  font-weight: 800;
}

.user-account-button:hover {
  border-color: #72a2ac;
  background: #147078;
}

.top-bar-account {
  min-height: 38px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  color: #ffffff;
  padding: 0 12px;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
}

body.account-open {
  overflow: hidden;
}

.impersonation-banner {
  position: sticky;
  top: 0;
  z-index: 2600;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 3px solid #f4c64e;
  background: #102f39;
  color: #ffffff;
  padding: 10px 18px;
  box-shadow: 0 5px 18px rgba(5, 18, 25, 0.3);
}

.impersonation-banner > div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.impersonation-banner-label {
  border-radius: 999px;
  background: #f4c64e;
  color: #172027;
  padding: 4px 9px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.impersonation-return-button {
  min-height: 38px;
  border: 1px solid #ffffff;
  border-radius: 999px;
  background: #ffffff;
  color: #102f39;
  padding: 7px 14px;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
  white-space: nowrap;
}

.impersonation-return-button:hover,
.impersonation-return-button:focus-visible {
  background: #f4c64e;
  outline: 3px solid rgba(244, 198, 78, 0.35);
}

.account-modal {
  position: fixed;
  inset: 0;
  z-index: 2500;
  display: grid;
  place-items: center;
  padding: 24px;
}

.account-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 20, 27, 0.68);
  backdrop-filter: blur(2px);
}

.account-panel {
  position: relative;
  width: min(920px, 100%);
  max-height: min(900px, calc(100vh - 48px));
  overflow: auto;
  border: 1px solid var(--border, #d7e0e5);
  border-radius: 14px;
  background: var(--surface, #ffffff);
  box-shadow: 0 28px 80px rgba(5, 18, 25, 0.3);
  color: var(--text, #172027);
  outline: none;
}

.account-panel-head {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid var(--border, #d7e0e5);
  background: rgba(255, 255, 255, 0.97);
  padding: 20px 24px;
}

.account-panel-head h2,
.account-section h3 {
  margin: 0;
}

.issue-report-panel {
  width: min(720px, calc(100vw - 32px));
}

.dispatch-hub-v0 .tool-button.report-problem-button {
  min-height: 44px;
  padding: 10px 18px;
  border: 2px solid #991b1b;
  border-radius: 8px;
  background: #b91c1c;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  box-shadow: 0 2px 5px rgb(127 29 29 / 18%);
}

.dispatch-hub-v0 .tool-button.report-problem-button:hover,
.dispatch-hub-v0 .tool-button.report-problem-button:focus-visible {
  background: #991b1b;
  border-color: #7f1d1d;
  color: #fff;
}

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

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

.issue-inbox-toolbar {
  display: grid;
  grid-template-columns: minmax(150px, 0.5fr) minmax(260px, 1.5fr) auto auto;
  gap: 12px;
  align-items: end;
  margin-bottom: 16px;
}

.issue-inbox-count {
  margin: 0 0 9px;
  white-space: nowrap;
}

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

.issue-card {
  border: 1px solid var(--border-color, #cbd9e4);
  border-left: 5px solid #67839a;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}

.issue-card.issue-severity-high { border-left-color: #d97706; }
.issue-card.issue-severity-blocking { border-left-color: #b91c1c; }
.issue-card.issue-severity-low { border-left-color: #3b82a0; }

.issue-card-head,
.issue-card-body,
.issue-triage-form {
  padding: 14px 16px;
}

.issue-card-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  background: #f7fafc;
  cursor: pointer;
  list-style: none;
  align-items: center;
}

.issue-card-head::-webkit-details-marker { display: none; }
.issue-card-head::after { content: "Expand ▾"; color: #315c78; font-weight: 700; white-space: nowrap; }
.issue-card-details[open] > .issue-card-head { border-bottom: 1px solid #dce6ed; }
.issue-card-details[open] > .issue-card-head::after { content: "Collapse ▴"; }
.issue-card-head:focus-visible { outline: 3px solid #3483bd; outline-offset: -3px; }

.issue-card-head h4,
.issue-card-head p,
.issue-card-body p,
.issue-card-body h5 {
  margin: 5px 0;
}

.issue-card-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.issue-card-badges span {
  border-radius: 999px;
  background: #e7f1f7;
  color: #173d56;
  padding: 3px 8px;
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: capitalize;
}

.issue-card-number {
  color: #526a7b;
  white-space: nowrap;
}

.issue-card-body {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px 20px;
}

.issue-screenshot {
  grid-column: 1 / -1;
}

.issue-screenshot img {
  display: block;
  width: min(100%, 720px);
  max-height: 440px;
  object-fit: contain;
  object-position: left top;
  border: 1px solid #cbd9e4;
  border-radius: 8px;
  background: #f4f7f9;
}

.issue-context {
  grid-column: 1 / -1;
}

.issue-context pre {
  max-height: 180px;
  overflow: auto;
  padding: 10px;
  border-radius: 6px;
  background: #edf3f7;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.issue-triage-form {
  display: grid;
  gap: 10px;
  border-top: 1px solid #dce6ed;
  background: #fbfdfe;
}

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

.issue-triage-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

@media (max-width: 760px) {
  .issue-report-grid,
  .issue-triage-grid,
  .issue-inbox-toolbar {
    grid-template-columns: 1fr;
  }

  .issue-card-head {
    flex-direction: column;
  }
}

.account-close-button {
  min-height: 38px;
  border: 1px solid var(--border, #d7e0e5);
  border-radius: 8px;
  background: #f4f7f8;
  color: var(--text, #172027);
  padding: 7px 12px;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
}

.account-section {
  display: grid;
  gap: 16px;
  padding: 24px;
}

.account-section + .account-section {
  border-top: 1px solid var(--border, #d7e0e5);
}

.account-impersonation-section {
  background: #fff9e7;
}

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

.user-impersonation-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  border: 1px solid var(--border, #d7e0e5);
  border-radius: 10px;
  background: #ffffff;
  padding: 12px;
}

.user-impersonation-card-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.user-impersonation-card-copy strong,
.user-impersonation-card-copy span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.user-impersonation-card-copy span {
  color: var(--muted, #60717b);
  font-size: 12px;
}

.user-impersonation-button {
  min-height: 38px;
  border: 1px solid #0d6f6b;
  border-radius: 8px;
  background: #0d6f6b;
  color: #ffffff;
  padding: 7px 11px;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  white-space: nowrap;
}

.user-impersonation-button:hover,
.user-impersonation-button:focus-visible {
  background: #095652;
  outline: 3px solid rgba(13, 111, 107, 0.2);
}

.section-heading.compact {
  margin: 0;
}

.account-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: end;
  gap: 12px;
}

.account-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.account-form label > span {
  color: var(--muted, #60717b);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.account-form input,
.account-form select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--border, #cbd7dd);
  border-radius: 8px;
  background: #ffffff;
  color: var(--text, #172027);
  padding: 8px 10px;
  font: inherit;
  text-transform: none;
}

.account-form > button {
  min-height: 42px;
}

.team-create-panel,
.team-password-reset {
  border: 1px solid var(--border, #d7e0e5);
  border-radius: 10px;
  background: #f7f9fa;
}

.team-create-panel > summary,
.team-password-reset > summary {
  padding: 13px 15px;
  cursor: pointer;
  font-weight: 800;
}

.team-create-panel[open] > summary,
.team-password-reset[open] > summary {
  border-bottom: 1px solid var(--border, #d7e0e5);
}

.team-create-form,
.team-password-reset-form {
  padding: 15px;
}

.team-access-list {
  display: grid;
  gap: 12px;
}

.team-access-card {
  display: grid;
  gap: 12px;
  border: 1px solid var(--border, #d7e0e5);
  border-radius: 12px;
  background: #ffffff;
  padding: 16px;
}

.team-access-card.is-inactive {
  background: #f8f8f8;
  opacity: 0.82;
}

.technician-portal-access-editor {
  display: grid;
  gap: 10px;
  margin-top: 14px;
  padding: 14px;
  border: 2px solid var(--brand, #087f72);
  border-radius: 8px;
  background: #f2fbf9;
}

.technician-portal-access-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.technician-portal-access-heading h5,
.technician-portal-access-heading p {
  margin: 0;
}

.technician-portal-access-heading p {
  margin-top: 3px;
  color: var(--muted, #536b78);
}

.team-access-card-head {
  grid-column: 1 / -1;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.team-access-card-head > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.team-access-card-head span:not(.status-pill) {
  overflow-wrap: anywhere;
  color: var(--muted, #60717b);
  font-size: 12px;
}

.api-token-create-form {
  align-items: start;
}

.api-token-scopes {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px 14px;
  margin: 0;
  border: 1px solid var(--border, #d7e0e5);
  border-radius: 10px;
  padding: 14px;
}

.api-token-scopes legend {
  padding: 0 5px;
  color: var(--muted, #60717b);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.api-token-scopes label {
  display: flex;
  grid-template-columns: none;
  align-items: center;
  gap: 8px;
  min-height: 34px;
}

.api-token-scopes input {
  width: 18px;
  min-height: 18px;
  margin: 0;
}

.api-token-scopes label > span {
  color: var(--text, #172027);
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
}

.api-token-secret {
  display: grid;
  gap: 10px;
  border: 2px solid #c49318;
  border-radius: 12px;
  background: #fff8dd;
  padding: 15px;
  color: #3e310f;
}

.api-token-secret > div {
  display: flex;
  align-items: center;
  gap: 10px;
}

.api-token-secret code {
  flex: 1;
  overflow-wrap: anywhere;
  border: 1px solid #e5cf83;
  border-radius: 7px;
  background: #ffffff;
  padding: 10px;
  user-select: all;
}

.api-credentials-list {
  display: grid;
  gap: 12px;
}

.api-credential-card {
  display: grid;
  gap: 12px;
  border: 1px solid var(--border, #d7e0e5);
  border-radius: 12px;
  background: #ffffff;
  padding: 16px;
}

.api-credential-card.is-inactive {
  background: #f8f8f8;
  opacity: 0.82;
}

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

.api-credential-card-head > div {
  display: grid;
  gap: 3px;
}

.api-credential-card-head span:not(.status-pill) {
  color: var(--muted, #60717b);
  font-size: 12px;
}

.api-credential-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 14px;
  margin: 0;
}

.api-credential-meta div {
  min-width: 0;
}

.api-credential-meta dt {
  color: var(--muted, #60717b);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.api-credential-meta dd {
  margin: 2px 0 0;
  overflow-wrap: anywhere;
  font-size: 13px;
}

.api-credential-scopes {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.api-credential-scopes span {
  border-radius: 999px;
  background: #e8f2f1;
  color: #165a57;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 800;
}

.api-credential-card > button {
  justify-self: start;
}

.team-user-form {
  grid-template-columns: 1fr;
}

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

.team-provisioning-permission {
  align-self: end;
  min-height: 38px;
}

.job-provisioning-panel {
  display: grid;
  gap: 12px;
  margin-bottom: 18px;
  padding: 14px;
  border: 2px solid #0b6f63;
  border-radius: 10px;
  background: #f1faf8;
}

.job-provisioning-panel.provisioned,
.job-provisioning-panel.provisioned_with_errors {
  border-color: #1f7a45;
  background: #f1faf4;
}

.job-provisioning-panel.failed {
  border-color: #b52b28;
  background: #fff5f4;
}

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

.job-provisioning-heading h5,
.job-provisioning-heading p {
  margin: 2px 0 0;
}

.job-provisioning-state {
  flex: none;
  border-radius: 999px;
  padding: 5px 10px;
  background: #123743;
  color: #fff;
  font-weight: 800;
}

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

.job-provisioning-plan > span {
  display: grid;
  gap: 2px;
  padding: 8px;
  border: 1px solid #b9d7d1;
  border-radius: 6px;
  background: #fff;
}

.job-provisioning-plan small {
  color: #52666e;
}

.job-provisioning-actions {
  display: flex;
  align-items: end;
  gap: 10px;
  flex-wrap: wrap;
}

.job-provisioning-live-form {
  display: flex;
  align-items: end;
  gap: 8px;
}

@media (max-width: 900px) {
  .job-provisioning-plan { grid-template-columns: 1fr; }
  .job-provisioning-heading { align-items: stretch; flex-direction: column; }
  .job-provisioning-state { align-self: flex-start; }
}

.team-self-password-note {
  margin: 0;
  font-size: 12px;
}

@media (max-width: 760px) {
  .account-modal {
    align-items: stretch;
    padding: 0;
  }

  .account-panel {
    width: 100%;
    max-height: 100vh;
    border: 0;
    border-radius: 0;
  }

  .account-panel-head,
  .account-section {
    padding: 16px;
  }

  .account-form,
  .team-user-fields,
  .user-impersonation-list,
  .api-token-scopes,
  .api-credential-meta {
    grid-template-columns: 1fr;
  }

  .impersonation-banner,
  .user-impersonation-card {
    align-items: stretch;
    flex-direction: column;
  }

  .impersonation-return-button,
  .user-impersonation-button {
    width: 100%;
  }

  .api-token-secret > div {
    align-items: stretch;
    flex-direction: column;
  }

  .top-bar-role-badge {
    display: none;
  }
}

.detail-head {
  padding: 18px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.detail-content {
  padding: 18px;
  overflow-y: auto;
}

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

.detail-block {
  border: 1px solid var(--line);
  border-radius: 8px;
  margin-bottom: 14px;
  overflow: hidden;
}

.detail-block h4 {
  margin: 0;
  padding: 10px 12px;
  background: var(--panel-2);
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}

.detail-block .detail-body {
  padding: 12px;
}

.detail-tab-panel {
  display: none;
}

.detail-tab-panel.active {
  display: block;
}

.work-order-summary-strip,
.history-summary-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafb;
  padding: 10px;
  margin-bottom: 12px;
}

.work-order-summary-strip span,
.history-summary-strip span {
  font-size: 12px;
}

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

.command-grid {
  display: grid;
  gap: 10px;
}

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

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

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

.command-grid.five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.command-grid.one {
  grid-template-columns: minmax(0, 1fr);
}

.field-block {
  display: grid;
  gap: 6px;
}

.field-block > span,
.form-subhead {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.form-subhead {
  border-top: 1px solid var(--line);
  margin-top: 2px;
  padding-top: 12px;
}

.linked-wip-create-form {
  border-left: 4px solid var(--accent);
  padding-left: 10px;
}

.linked-wip-form-note {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.linked-wip-site-lock {
  align-items: center;
  background: #eef7fc;
  border: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-height: 34px;
  padding: 6px 8px;
}

.linked-wip-site-lock strong {
  color: var(--ink);
}

.linked-wip-site-lock span {
  color: var(--muted);
  font-size: 12px;
}

.linked-wip-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.compact-check-group {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
}

.site-assignment-picker {
  max-height: 170px;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
  padding: 6px;
}

.site-assignment-picker .check-row {
  min-height: 28px;
  padding: 3px 4px;
}

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

.staff-role-panel {
  border: 1px solid var(--line);
  margin-bottom: 14px;
}

.staff-role-heading {
  align-items: center;
  background: var(--panel-2);
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
}

.staff-role-heading h4,
.staff-role-form h4 {
  margin: 0;
}

.staff-role-heading p {
  color: var(--muted);
  margin: 3px 0 0;
}

.staff-role-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.6fr);
  gap: 12px;
  padding: 12px;
}

.staff-role-table {
  max-height: 280px;
}

.staff-role-form {
  align-content: start;
}

.app-user-create-form {
  padding: 12px;
}

.app-user-create-groups {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.app-user-create-groups h4 {
  margin: 0 0 8px;
}

.compact-editor-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.compact-record-form {
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.compact-record-form:first-child {
  border-top: 0;
  padding-top: 0;
}

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

.contact-browser-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 2fr) repeat(3, minmax(130px, 1fr));
  gap: 8px;
}

.contact-browser-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.contact-browser-summary span,
.contact-empty-message {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafb;
  color: var(--muted);
  font-size: 12px;
  padding: 7px 9px;
}

.contact-table {
  min-width: 980px;
}

.contact-table th,
.contact-table td {
  padding: 8px 9px;
}

.contact-table tbody tr {
  cursor: default;
}

.contact-table tbody tr:hover td,
.contact-table tbody tr.selected td {
  background: #e8f4f2;
}

.contact-hierarchy-wrap {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
  padding: 10px;
}

.contact-hierarchy-wrap > div:first-child {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}

.contact-tree ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.contact-tree li + li {
  margin-top: 4px;
}

.contact-tree-node {
  width: 100%;
  min-height: 30px;
  border: 1px solid #d5e1e6;
  border-radius: 6px;
  background: #ffffff;
  color: var(--text);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: flex-start;
  padding: 5px 8px;
  padding-left: calc(8px + (var(--depth, 0) * 22px));
  text-align: left;
}

.contact-tree-node:hover {
  border-color: #93c7b9;
  background: #f0faf6;
}

.contact-tree-node span {
  color: var(--muted);
  font-size: 12px;
}

.contact-edit-list .contact-edit-form {
  display: none;
}

.contact-edit-list .contact-edit-form.active {
  display: grid;
}

.check-row {
  min-height: 38px;
  display: flex;
  align-items: center;
  gap: 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 8px 10px;
  font-weight: 700;
  font-size: 12px;
}

.check-row input {
  width: 16px;
  height: 16px;
  accent-color: var(--accent);
}

.check-row.cluster {
  flex-wrap: wrap;
}

.check-row.cluster label {
  align-items: center;
  display: inline-flex;
  gap: 7px;
}

.workflow-sample-panel {
  border-top: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
}

.workflow-sample-panel h4,
.workflow-sample-panel p {
  margin: 0;
}

.workflow-sample-panel p {
  color: var(--muted);
  font-size: 13px;
  margin-top: 4px;
}

.confidential,
.confidential-note {
  color: #6f4d11;
  font-weight: 800;
}

.confidential {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  border: 1px solid #e5c57b;
  border-radius: 999px;
  background: #fff8e6;
  padding: 2px 8px;
  font-size: 11px;
}

.confidential-note {
  border: 1px solid #ead7a6;
  border-radius: 8px;
  background: #fffaf0;
  padding: 9px 10px;
  font-size: 12px;
}

.checklist-library-layout {
  display: grid;
  grid-template-columns: minmax(320px, 0.42fr) minmax(520px, 1fr);
  min-height: 680px;
}

.checklist-library-sidebar {
  border-right: 1px solid var(--line);
  display: grid;
  grid-template-rows: auto minmax(180px, 1fr) auto;
  min-width: 0;
}

.checklist-search {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 6px;
  padding: 14px 16px;
}

.checklist-search span,
.checklist-create-panel h4,
.section-subheading p,
.checklist-item-form label > span,
.checklist-template-edit-form label > span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.checklist-template-list {
  display: grid;
  align-content: start;
  gap: 8px;
  max-height: 560px;
  overflow: auto;
  padding: 12px;
}

.checklist-template-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  cursor: pointer;
  display: grid;
  gap: 4px;
  min-height: 88px;
  padding: 10px;
  text-align: left;
}

.checklist-template-card:hover,
.checklist-template-card.active {
  border-color: #4f97b7;
  background: #eef8fb;
}

.checklist-template-card.inactive {
  opacity: .64;
}

.checklist-template-card span {
  color: var(--muted);
  font-size: 12px;
}

.checklist-create-panel {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 14px;
  padding: 14px 16px 16px;
}

.checklist-reorder-actions {
  display: inline-flex;
  gap: 6px;
}

.checklist-editor-head-actions {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.checklist-create-panel h4,
.section-subheading h4 {
  margin: 0;
}

.checklist-editor {
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 16px;
}

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

.checklist-editor-head h4 {
  font-size: 19px;
  margin: 0;
}

.checklist-editor-head p {
  color: var(--muted);
  margin: 4px 0 0;
}

.checklist-template-edit-form,
.checklist-items-section,
.checklist-new-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
  padding: 12px;
}

.section-subheading {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 3px;
  margin: -12px -12px 12px;
  padding: 12px;
}

.section-subheading p {
  margin: 0;
  text-transform: none;
}

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

.checklist-new-item {
  margin-top: 12px;
}

.checklist-new-item::before {
  content: "Add New Item";
  color: var(--muted);
  display: block;
  font-size: 11px;
  font-weight: 800;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.checklist-item-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  display: grid;
  gap: 10px;
  padding: 10px;
}

.checklist-item-card.inactive {
  background: #f3f5f7;
  opacity: .72;
}

.checklist-item-head {
  align-items: end;
  display: grid;
  gap: 10px;
  grid-template-columns: 78px minmax(150px, .8fr) minmax(110px, max-content) minmax(90px, max-content);
}

.checklist-item-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.checklist-edit-form {
  gap: 8px;
}

.pm-checklist-setup {
  display: grid;
  gap: 10px;
}

.pm-checklist-sync-form {
  grid-template-columns: minmax(260px, 1fr) auto;
  align-items: end;
}

.pm-checklist-sync-summary {
  display: grid;
  gap: 2px;
  padding: 8px 10px;
  background: #f4faff;
  border: 1px solid var(--line);
}

.checklist-suggestions {
  display: grid;
  gap: 8px;
  padding: 8px;
  background: #eef7ff;
  border: 1px solid #9bc7df;
}

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

.checklist-suggestion-card {
  display: grid;
  gap: 3px;
  padding: 8px 10px;
  color: var(--ink);
  text-align: left;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 3px;
  cursor: pointer;
}

.checklist-suggestion-card:hover,
.checklist-suggestion-card.active {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
}

.checklist-suggestion-card span {
  color: var(--blue);
  font-weight: 800;
}

.checklist-suggestion-card small {
  color: var(--muted);
  line-height: 1.25;
}

.checklist-edit-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(140px, 0.6fr) minmax(140px, 0.7fr);
  gap: 8px;
  align-items: center;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
}

.checklist-edit-row:last-of-type {
  border-bottom: 0;
}

.checklist-follow-up-action {
  margin-top: 6px;
  font-size: 12px;
}

.pm-issue-card,
.pm-issue-details,
.pm-issue-actions {
  display: grid;
  gap: 6px;
}

.pm-issue-actions {
  grid-template-columns: repeat(auto-fit, minmax(130px, max-content));
  align-items: center;
}

.pm-issue-details summary {
  color: var(--classic-link);
  cursor: pointer;
  font-weight: 700;
}

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

.kv {
  min-width: 0;
}

.kv span {
  display: block;
  font-size: 11px;
  color: var(--muted);
  text-transform: uppercase;
  font-weight: 700;
}

.kv strong {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  overflow-wrap: anywhere;
}

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

.mini-row {
  display: grid;
  gap: 3px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
}

.mini-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.agreement-customer-choice {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  cursor: pointer;
  padding: 10px;
  text-align: left;
}

.agreement-customer-choice:hover,
.agreement-customer-choice:focus-visible {
  background: #fff8f7;
  border-color: #b92f2a;
}

.agreement-coverage-picker {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.agreement-coverage-option {
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  gap: 9px;
  padding: 9px;
}

.agreement-coverage-option input {
  height: 18px;
  margin-top: 1px;
  width: 18px;
}

.agreement-coverage-option span,
.agreement-coverage-option small {
  display: block;
}

.agreement-coverage-option small {
  color: var(--muted);
  margin-top: 2px;
}

.agreement-coverage-option.is-disabled {
  background: #f4f5f6;
  cursor: not-allowed;
  opacity: 0.62;
}

.agreement-month-picker {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(6, minmax(54px, 1fr));
  margin-top: 10px;
}

.agreement-month-picker label {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  gap: 6px;
  justify-content: center;
  min-height: 38px;
  padding: 6px;
}

.agreement-month-picker.is-disabled {
  opacity: 0.48;
}

.agreement-task-checklist-form {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: end;
  gap: 6px;
  margin-top: 4px;
}

.agreement-task-checklist-form label {
  display: grid;
  gap: 2px;
}

.agreement-task-checklist-form label > span {
  color: #334d5d;
  font-size: 12px;
  font-weight: 700;
}

.agreement-task-checklist-form select {
  width: 100%;
  min-width: 0;
}

.agreement-visit-list {
  gap: 0;
}

.agreement-visit-row {
  cursor: pointer;
  padding: 8px;
}

.agreement-visit-row:hover {
  background: #f5fbff;
}

.agreement-visit-row.locked {
  cursor: default;
  opacity: 0.78;
}

.agreement-visit-select {
  display: flex;
  align-items: center;
  gap: 8px;
}

.agreement-visit-select input {
  width: 16px;
  height: 16px;
}

.note-history-body {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.help-shell {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr) 300px;
  gap: 0;
  height: calc(100vh - 118px);
  min-height: 620px;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  background: var(--panel);
}

.help-topic-panel,
.help-notes-panel {
  background: #f8fafb;
  overflow: auto;
}

.help-topic-panel {
  border-right: 1px solid var(--line);
}

.help-notes-panel {
  border-left: 1px solid var(--line);
  padding: 16px;
}

.help-search-block,
.help-shortcuts,
.help-topic-list-wrap {
  padding: 14px;
  border-bottom: 1px solid var(--line);
}

.help-shortcuts h4,
.help-topic-list-wrap h4,
.help-notes-panel h4 {
  margin: 0 0 10px;
  font-size: 14px;
}

.help-shortcut-list,
.help-topic-list,
.help-design-notes {
  display: grid;
  gap: 8px;
}

.help-shortcut,
.help-topic {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--text);
  cursor: pointer;
  display: grid;
  gap: 3px;
  padding: 9px 10px;
  text-align: left;
}

.help-shortcut:hover,
.help-topic:hover,
.help-shortcut.active,
.help-topic.active {
  border-color: var(--accent);
  background: #eef8f6;
}

.help-shortcut:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.help-topic strong {
  font-size: 13px;
  line-height: 1.25;
}

.help-topic span {
  color: var(--muted);
  font-size: 11px;
  overflow-wrap: anywhere;
}

.help-frame-panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-width: 0;
}

.help-frame-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  background: #ffffff;
}

.help-frame-head h3 {
  margin: 0;
  font-size: 17px;
}

.help-frame-head p {
  margin: 3px 0 0;
}

.help-open-link {
  text-decoration: none;
  white-space: nowrap;
}

#wintac-help-frame {
  width: 100%;
  height: 100%;
  border: 0;
  background: #ffffff;
}

.help-note-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 12px;
}

.help-note-card strong {
  display: block;
  margin-bottom: 8px;
  font-size: 13px;
}

.help-note-card ul {
  margin: 0;
  padding-left: 18px;
}

.help-note-card li,
.help-note-card p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
  margin: 0 0 7px;
}

.help-note-card li:last-child,
.help-note-card p:last-child {
  margin-bottom: 0;
}

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

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

  .sidebar {
    position: static;
  }

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

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

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

  .dispatch-heading,
  .dispatch-tools {
    align-items: stretch;
    flex-direction: column;
  }

  .dispatch-period-nav {
    grid-template-columns: 1fr;
  }

  .dispatch-period-button,
  .dispatch-period-button:last-child {
    justify-self: stretch;
  }

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

  .dispatch-command-form,
  .dispatch-assign-command-form,
  .dispatch-extend-command-form {
    grid-template-columns: 1fr;
  }

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

  .status-division-choice-grid {
    grid-template-columns: 1fr;
  }

  .dispatch-assign-command-form label:first-child,
  .dispatch-extend-command-form label:first-child,
  .dispatch-extend-command-form .extend-notes-field {
    grid-column: auto;
  }

  .dispatch-side {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .dispatch-board-grid {
    grid-auto-flow: row;
    grid-auto-columns: auto;
    grid-template-columns: 1fr;
    min-width: 0;
  }

  .help-shell {
    grid-template-columns: 1fr;
    height: auto;
  }

  .help-topic-panel,
  .help-notes-panel {
    border: 0;
    max-height: 420px;
  }

  .help-frame-panel {
    min-height: 620px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
  }

  .tech-column {
    min-height: auto;
  }

  .command-actions {
    align-items: stretch;
    flex-direction: column;
  }

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

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

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

  .form-panel {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .form-panel:last-child {
    border-bottom: 0;
  }
}

@media (max-width: 560px) {
  .main {
    padding: 16px;
  }

  .topbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .metric-grid,
  .nav,
  .kv-grid,
  .field-row,
  .field-row.two-col,
  .contact-browser-toolbar,
  .equipment-filter-panel,
  .command-grid.two,
  .command-grid.three,
  .command-grid.four,
  .command-grid.five,
  .wip-line-row,
  .document-row {
    grid-template-columns: 1fr;
  }
}

/* Wintac Classic visual skin */
:root {
  --wintac-blue: #087fc4;
  --wintac-blue-dark: #006cae;
  --wintac-tab: #35a8e6;
  --wintac-light: #eaf5ff;
  --wintac-field: #ffffff;
  --wintac-grid: #0793bd;
  --wintac-grid-fill: #dceeff;
  --wintac-selected: #65c9ee;
  --wintac-panel: #f6fbff;
}

body {
  background: #ffffff;
  font-family: Arial, Helvetica, sans-serif;
}

input,
select,
textarea {
  background: var(--wintac-field);
  border: 1px solid #b9c4c9;
  border-radius: 0;
  min-height: 27px;
  padding: 3px 5px;
}

textarea {
  line-height: 1.35;
}

.app-shell {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto minmax(0, 1fr);
}

.sidebar {
  align-items: stretch;
  background: var(--wintac-blue);
  box-shadow: 0 2px 4px rgba(0, 55, 86, 0.2);
  color: #ffffff;
  display: grid;
  gap: 0;
  grid-template-columns: 180px minmax(0, 1fr) 220px;
  grid-template-rows: auto auto;
  min-height: 88px;
  padding: 0;
  position: sticky;
  top: 0;
  z-index: 30;
}

.brand {
  align-items: center;
  background: var(--wintac-blue-dark);
  display: grid;
  gap: 9px;
  grid-column: 1;
  grid-row: 1 / span 2;
  grid-template-columns: 54px minmax(0, 1fr);
  min-height: 88px;
  padding: 8px 10px;
}

.brand-icon {
  border-radius: 8px;
  height: 54px;
  width: 54px;
}

.brand-logo {
  max-width: 148px;
}

.brand-mark {
  background: transparent;
  border-radius: 0;
  color: rgba(0, 40, 82, 0.72);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 64px;
  font-weight: 900;
  height: 68px;
  line-height: 1;
  width: 70px;
}

.brand h1 {
  color: #ffffff;
  font-size: 14px;
  line-height: 1.1;
}

.brand p {
  color: #dff4ff;
  font-size: 11px;
}

.nav {
  align-content: stretch;
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  grid-column: 2 / -1;
  grid-row: 1;
  min-height: 50px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
}

.nav::-webkit-scrollbar {
  display: none;
}

.nav-item {
  align-items: center;
  background: var(--wintac-blue);
  border: 0;
  border-left: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0;
  color: #ffffff;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 14px;
  font-weight: 700;
  justify-content: center;
  min-height: 42px;
  min-width: 112px;
  padding: 8px 10px;
  text-align: center;
  width: auto;
}

.nav-item:hover {
  background: #1491d3;
  border-color: rgba(255, 255, 255, 0.22);
}

.nav-item.active {
  background: #e8f2ff;
  border-color: transparent;
  color: #111111;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  font-weight: 800;
}

.user-switcher {
  align-items: center;
  background: #e8f2ff;
  border: 0;
  border-radius: 0;
  display: grid;
  gap: 8px;
  grid-column: 2;
  grid-row: 2;
  grid-template-columns: minmax(180px, 700px) auto;
  min-height: 34px;
  padding: 4px 12px;
}

.user-switcher span,
.user-switcher small {
  color: #244b61;
}

.user-pill #user-display-name {
  color: #111111;
  font-size: 14px;
}

.user-pill #user-role {
  background: #d9ecf8;
  border-color: #84b6d6;
  color: #244b61;
}

.user-logout-button {
  background: #e8f2ff;
  border-color: #84b6d6;
  border-radius: 0;
  color: #006cae;
  min-height: 27px;
}

.user-logout-button:hover {
  background: #d9ecf8;
  border-color: #5f9fc8;
}

.sidebar-action {
  background: #e8f2ff;
  border: 0;
  border-radius: 0;
  color: #006cae;
  display: flex;
  grid-column: 3;
  grid-row: 2;
  justify-content: center;
  margin: 0;
  padding: 4px 8px;
}

.sidebar-action.hidden {
  display: none;
}

.main {
  background: #ffffff;
  min-width: 0;
  padding: 0 10px 14px;
}

.topbar {
  background: #e8f2ff;
  border-bottom: 1px solid #cbdff0;
  margin: 0 -10px 10px;
  min-height: 34px;
  padding: 5px 10px;
}

.topbar h2 {
  color: #006b9b;
  font-size: 20px;
}

.topbar .eyebrow {
  display: none;
}

.section-band,
.metric,
.detail-block,
.ops-mini-list {
  border-radius: 0;
  box-shadow: none;
}

.section-heading {
  background: #e8f2ff;
  border-bottom: 1px solid #cbdff0;
  padding: 8px 10px;
}

.section-heading h3 {
  color: #006b9b;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
}

.section-heading p {
  color: #346d8e;
  font-size: 12px;
}

.tool-button,
.primary-button,
.primary-link-button {
  background: #e9ecec;
  border: 1px solid #c4c8c8;
  border-radius: 0;
  color: #0078bd;
  font-weight: 700;
  min-height: 28px;
  padding: 4px 10px;
  text-decoration: none;
}

.tool-button:hover,
.primary-button:hover,
.primary-link-button:hover {
  background: #dde4e4;
  border-color: #aeb8b8;
}

.tool-button.active,
.detail-tab.active,
.mode-tab.active {
  background: #e8f2ff;
  color: #111111;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 800;
}

.tool-button.danger {
  background: #f2eeee;
  color: #d01616;
}

.detail-tabs,
.mode-tabs {
  background: var(--wintac-blue);
  border: 0;
  border-radius: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  min-height: 34px;
}

.detail-tab,
.mode-tab {
  background: var(--wintac-tab);
  border: 0;
  border-left: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 0;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  min-height: 34px;
  min-width: 112px;
  padding: 7px 18px;
}

.detail-tab:hover,
.mode-tab:hover {
  background: #1898dc;
  color: #ffffff;
}

.command-form {
  gap: 8px;
}

.command-form label > span,
.inline-field span,
.wip-browse-tools span,
.job-control-filters span,
.job-control-saved-views span,
.sheet-search span {
  color: #334d5d;
  font-size: 12px;
  font-weight: 700;
  text-transform: none;
}

.command-grid {
  gap: 5px 8px;
}

.wip-writer-layout {
  gap: 8px;
  grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
}

.wip-writer-browser {
  position: sticky;
  top: 96px;
}

.wip-writer-stage {
  overflow-x: auto;
}

.wip-create-form {
  margin: 0;
  padding: 10px;
}

.wip-browse-list {
  gap: 0;
  padding: 0;
}

.wip-browse-row {
  background: var(--wintac-grid-fill);
  border: 1px solid var(--wintac-grid);
  border-radius: 0;
  gap: 2px;
  margin-top: -1px;
  padding: 6px 7px;
}

.wip-browse-row:hover,
.wip-browse-row.selected,
tr.clickable.selected td {
  background: var(--wintac-selected);
}

.wip-writer-record-head {
  background: #ffffff;
  border-bottom: 3px solid #3ba7e4;
  margin: 0 0 8px;
  padding: 8px 10px 10px;
}

.wip-writer-record-head h3 {
  color: #0078aa;
  font-size: 24px;
  text-align: center;
}

.wip-writer-record-head .eyebrow {
  color: #0078aa;
  font-size: 12px;
  text-transform: none;
}

.wip-writer-tabs {
  background: #e8f2ff;
  margin: 0 -1px 8px;
  padding: 0;
}

.work-order-summary-strip {
  background: #eef7ff;
  border-color: #7ec4ea;
  border-radius: 0;
  margin: 6px 0 10px;
  padding: 7px 8px;
}

.detail-block {
  border-color: transparent;
  margin-bottom: 10px;
}

.detail-block h4 {
  background: #ffffff;
  border-bottom: 3px solid #3ba7e4;
  color: #222222;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
  padding: 8px 4px;
}

.detail-block .detail-body {
  padding: 8px 4px;
}

.wip-line-row {
  background: var(--wintac-grid-fill);
  border: 1px solid var(--wintac-grid);
  gap: 8px;
  margin-top: -1px;
  padding: 6px;
}

.wip-line-edit-form {
  background: #f9fdff;
  border-top-color: var(--wintac-grid);
  padding-top: 8px;
}

.dispatch-lite-band {
  min-height: calc(100vh - 120px);
}

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

.dispatch-lite-actions,
.dispatch-lite-shortcuts,
.dispatch-lite-submit-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dispatch-lite-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  padding: 8px;
}

.dispatch-lite-panel {
  align-content: start;
  background: var(--wintac-light);
  border: 1px solid var(--wintac-grid);
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 8px;
}

.dispatch-lite-intent-panel { grid-column: 1 / -1; order: 1; }
.dispatch-lite-paying-customer-panel { order: 2; }
.dispatch-lite-building-panel { order: 3; }
.dispatch-lite-job-panel { order: 4; }

.dispatch-lite-job-panel {
  background: #eef8ff;
}

.dispatch-lite-job-name-preview {
  background: #f8fcff;
  border: 1px solid #9dc7e8;
  display: grid;
  gap: 2px;
  padding: 6px 8px;
}

.dispatch-lite-job-name-preview span {
  color: #48657a;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.dispatch-lite-job-name-preview strong {
  color: #005f91;
  font-size: 15px;
  line-height: 1.2;
}

.dispatch-lite-resource-entry {
  background: #f8fcff;
  border: 1px solid #9dc7e8;
  display: grid;
  gap: 8px;
  padding: 8px;
}

.dispatch-lite-resource-entry .dispatch-lite-panel-head h5 {
  color: #006b9b;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  margin: 0;
}

@media (min-width: 1120px) {
  .dispatch-lite-grid {
    grid-template-columns: minmax(270px, 0.95fr) minmax(270px, 0.95fr) minmax(360px, 1.2fr);
  }
}

@media (max-width: 760px) {
  .dispatch-lite-heading {
    align-items: stretch;
    flex-direction: column;
  }

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

  .dispatch-lite-confirmation,
  .dispatch-lite-selected-site {
    grid-template-columns: minmax(0, 1fr);
  }

  .dispatch-lite-confirmation div + div {
    border-left: 0;
    border-top: 1px solid #9eb3c1;
  }
}

.dispatch-lite-panel-head {
  align-items: center;
  border-bottom: 2px solid var(--wintac-grid);
  display: flex;
  gap: 8px;
  justify-content: space-between;
  padding-bottom: 4px;
}

.dispatch-lite-panel-head h4 {
  color: #006b9b;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
  margin: 0;
}

.dispatch-lite-panel-head span {
  color: #334d5d;
  font-size: 12px;
  font-weight: 700;
  text-align: right;
}

.dispatch-lite-search {
  display: grid;
  gap: 4px;
}

.dispatch-lite-grid-wrap {
  background: #ffffff;
  border: 1px solid #333333;
  max-height: 280px;
  overflow: auto;
}

.dispatch-lite-create-form {
  background: #f6fbff;
  border: 1px solid #cbdff0;
  padding: 8px;
}

.dispatch-lite-progressive {
  background: #f8fcff;
  border: 1px solid #cbdff0;
}

.dispatch-lite-progressive summary {
  color: #1f4d78;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  padding: 8px;
}

.dispatch-lite-progressive[open] {
  display: grid;
  gap: 8px;
  padding: 0 8px 8px;
}

.dispatch-lite-progressive[open] summary {
  border-bottom: 1px solid #cbdff0;
  margin: 0 -8px;
}

.dispatch-lite-progressive .command-form {
  background: transparent;
  border: 0;
  padding: 0;
}

.dispatch-lite-progressive > .muted {
  margin: 0;
}

.site-directory-pagination {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  padding: 8px 0 0;
}

.dispatch-lite-create-form h5 {
  color: #334d5d;
  font-size: 13px;
  margin: 0;
}

.dispatch-lite-confirmation {
  background: #ffffff;
  border: 2px solid #1f4d78;
  display: grid;
  gap: 0;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.dispatch-lite-confirmation div {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 6px 8px;
}

.dispatch-lite-confirmation div + div {
  border-left: 1px solid #9eb3c1;
}

.dispatch-lite-confirmation span {
  color: #456678;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.dispatch-lite-confirmation strong {
  color: #0d3556;
  font-size: 13px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dispatch-lite-selected-site {
  align-items: stretch;
  background: #ffffff;
  border: 1px solid #9eb3c1;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  min-height: 56px;
}

.dispatch-lite-selected-site-code {
  align-items: center;
  background: #1f4d78;
  color: #ffffff;
  display: flex;
  font-size: 15px;
  font-weight: 800;
  justify-content: center;
  letter-spacing: 0;
  padding: 6px;
  text-align: center;
}

.dispatch-lite-selected-site-main {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 6px 8px;
}

.dispatch-lite-selected-site-main strong {
  color: #173d5f;
  font-size: 13px;
}

.dispatch-lite-selected-site-main span,
.dispatch-lite-selected-site-main em {
  color: #334d5d;
  font-size: 12px;
  line-height: 1.25;
}

.dispatch-lite-selected-site-main em {
  color: #7b4a00;
  font-style: normal;
}

.dispatch-lite-submit-row {
  border-top: 1px solid #cbdff0;
  padding-top: 8px;
}

.dispatch-lite-shortcuts {
  margin-top: 2px;
}

.dispatch-lite-grid .wintac-mini-grid tbody tr {
  cursor: pointer;
}

.dispatch-lite-grid .wintac-mini-grid tbody tr.selected td {
  background: var(--wintac-selected);
}

.dispatch-lite-grid .wintac-mini-grid tbody tr:first-child:not(.selected) td {
  background: #ffffff;
}

.dispatch-heading {
  align-items: stretch;
  background: var(--wintac-blue);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  padding: 0;
}

.dispatch-heading > div:first-child {
  display: none;
}

.dispatch-tools {
  align-items: flex-end;
  background: #e8f2ff;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 7px 8px;
}

.dispatch-tools .mode-tabs,
.dispatch-tools .mode-tab,
.dispatch-tools > .tool-button,
.dispatch-tools .dispatch-date-stepper > .tool-button,
.dispatch-tools .inline-field select,
.dispatch-tools .inline-field input {
  height: 36px;
  min-height: 36px;
}

.dispatch-tools .mode-tabs,
.dispatch-tools > .tool-button,
.dispatch-tools .dispatch-date-stepper {
  align-self: flex-end;
}

.dispatch-tools .inline-field {
  display: grid;
  gap: 2px;
  grid-template-rows: 15px 36px;
}

.dispatch-tools .inline-field > span {
  line-height: 15px;
}

.dispatch-tools .tool-button,
.dispatch-tools .mode-tab {
  white-space: nowrap;
}

.dispatch-period-nav {
  background: #e8f2ff;
  border: 0;
  border-radius: 0;
  margin: 0;
  padding: 6px 8px;
}

.dispatch-period-current strong {
  color: #d10000;
  font-size: 19px;
}

.dispatch-command-panel {
  background: #e8f2ff;
  border-color: #a7cde7;
}

.job-control-panel {
  gap: 6px;
}

.job-control-toolbar,
.job-control-filters,
.job-control-saved-views {
  background: #e8f2ff;
  border: 0;
  border-radius: 0;
  gap: 8px;
  padding: 6px 8px;
}

.job-control-count {
  color: #d10000;
  font-size: 18px;
  justify-content: center;
}

.job-control-wrap {
  border: 1px solid #333333;
  border-radius: 0;
  max-height: calc(100vh - 210px);
}

.job-control-table th,
.command-table th {
  background: #edf0f0;
  border-bottom: 1px solid #333333;
  border-right: 1px solid var(--wintac-grid);
  color: #245b7a;
  font-size: 11px;
  font-weight: 800;
  padding: 3px 5px;
  text-transform: none;
}

.job-control-table td,
.command-table td {
  background: var(--wintac-grid-fill);
  border-bottom: 1px solid var(--wintac-grid);
  border-right: 1px solid var(--wintac-grid);
  color: #244452;
  font-size: 11px;
  height: 24px;
  padding: 2px 5px;
  white-space: nowrap;
}

.job-control-table tbody tr:nth-child(even) td,
.command-table tbody tr:nth-child(even) td {
  background: #d3e9ff;
}

.job-control-table tbody tr:hover td,
.command-table tbody tr:hover td {
  background: var(--wintac-selected);
}

#dispatch-board.sheet-mode .dispatch-period-nav {
  display: none;
}

#dispatch-board.sheet-mode .dispatch-main {
  padding: 6px 8px 10px;
}

#dispatch-board.sheet-mode .dispatch-side-togglebar {
  margin-bottom: 4px;
}

#dispatch-board.sheet-mode .dispatch-workload-strip {
  display: none;
}

#dispatch-board.sheet-mode .job-control-panel {
  gap: 4px;
}

#dispatch-board.sheet-mode .job-control-toolbar {
  align-items: end;
  display: grid;
  gap: 6px;
  grid-template-columns: auto minmax(250px, 1fr) auto;
  padding: 4px 6px;
}

#dispatch-board.sheet-mode .job-control-quick,
#dispatch-board.sheet-mode .job-control-format-actions {
  flex-wrap: nowrap;
  gap: 4px;
  overflow-x: auto;
}

#dispatch-board.sheet-mode .job-control-saved-views,
#dispatch-board.sheet-mode .job-control-filters {
  gap: 6px;
  padding: 4px 6px;
}

#dispatch-board.sheet-mode .job-control-saved-views label,
#dispatch-board.sheet-mode .job-control-filters label,
#dispatch-board.sheet-mode .sheet-search {
  gap: 2px;
}

#dispatch-board.sheet-mode .job-control-filters select,
#dispatch-board.sheet-mode .job-control-filters input,
#dispatch-board.sheet-mode .job-control-saved-views select,
#dispatch-board.sheet-mode .job-control-saved-views input,
#dispatch-board.sheet-mode .sheet-search input {
  min-height: 27px;
}

#dispatch-board.sheet-mode .sheet-search-row {
  gap: 4px;
  grid-template-columns: minmax(170px, 1fr) auto auto;
}

#dispatch-board.sheet-mode .job-control-count {
  font-size: 12px;
  justify-content: center;
  min-height: 24px;
  padding: 2px 6px;
}

#dispatch-board.sheet-mode .job-control-count strong {
  font-size: 15px;
}

.job-control-search-recovery {
  align-items: center;
  background: #fff8d9;
  border: 1px solid #c9a400;
  color: #2d2d2d;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 5px 8px;
}

.job-control-search-recovery strong {
  color: #7a0000;
}

.job-control-search-recovery span {
  flex: 1 1 360px;
}

.job-control-expand-button {
  background: #e8f2ff;
  border-color: #7ca8bf;
  border-radius: 0;
  color: #006b9b;
  height: 16px;
  width: 16px;
}

.dispatch-schedule.week-mode,
.dispatch-schedule.month-mode,
.dispatch-board-grid,
.calendar-strip {
  background: #ffffff;
}

.calendar-day,
.month-day,
.tech-column,
.dispatch-day-section {
  background: var(--wintac-grid-fill);
  border-color: #555555;
  border-radius: 0;
}

.calendar-day-head,
.dispatch-day-head,
.tech-column-head,
.month-day-number {
  color: #00578f;
  font-weight: 800;
}

.dispatch-card,
.calendar-card,
.month-card {
  border-radius: 0;
  box-shadow: none;
}

.status {
  border-radius: 0;
  min-height: 18px;
  padding: 1px 5px;
}

.wintac-work-order-form {
  color: #222222;
  display: grid;
  gap: 10px;
}

.wintac-form-top {
  align-items: start;
  border-bottom: 3px solid #3ba7e4;
  display: grid;
  grid-template-columns: 220px minmax(260px, 1fr) 430px;
  gap: 14px;
  padding: 4px 8px 8px;
}

.wintac-number-pair {
  align-items: center;
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 12px;
}

.wintac-wip-number {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
  text-align: center;
}

.wintac-number-pair label,
.wintac-status-line label,
.wintac-left-fields label,
.wintac-site-fields label,
.wintac-schedule-row label,
.wintac-preferences label,
.reschedule-date-pair label,
.reschedule-limit-box label {
  align-items: center;
  display: grid;
  gap: 5px;
  grid-template-columns: 92px minmax(0, 1fr);
}

.wintac-title-block {
  text-align: center;
}

.wintac-title-block h3 {
  color: #0078aa;
  font-size: 26px;
  margin: 4px 0 3px;
}

.wintac-title-block span {
  color: #0078aa;
  font-weight: 800;
}

.wintac-status-line {
  align-items: center;
  display: grid;
  grid-template-columns: minmax(120px, .8fr) minmax(180px, 1fr) auto;
  gap: 10px;
}

.wintac-status-line label {
  grid-template-columns: auto minmax(0, 1fr);
}

.wintac-status-line .check-row {
  display: flex;
  font-size: 13px;
}

.wintac-section {
  background: #ffffff;
  border: 0;
}

.wintac-section h4 {
  border-bottom: 3px solid #3ba7e4;
  color: #222222;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  margin: 0 0 10px;
  padding: 8px 4px;
}

.wintac-work-order-grid {
  align-items: start;
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1fr) 250px;
}

.wintac-job-columns {
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(260px, .9fr) minmax(420px, 1.25fr) 180px;
}

.wintac-left-fields,
.wintac-site-fields {
  display: grid;
  gap: 4px;
}

.wintac-site-fields label {
  grid-template-columns: 92px minmax(0, 1fr);
}

.wintac-tax-row,
.wintac-schedule-row {
  display: grid;
  gap: 7px;
}

.wintac-tax-row {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 8px;
}

.wintac-tax-row label {
  grid-template-columns: 50px minmax(0, 1fr);
}

.wintac-side-buttons {
  display: grid;
  gap: 8px;
  padding-top: 20px;
}

.wintac-side-buttons .tool-button {
  min-height: 28px;
}

.wip-picture-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.wip-picture-card {
  background: #ffffff;
  border: 1px solid #b8c7d1;
  display: grid;
  gap: 6px;
  padding: 9px;
}

.wip-picture-card strong {
  color: #1b2f3a;
  font-size: 13px;
}

.wip-picture-preview {
  align-items: center;
  background: #f8fbfd;
  border: 1px solid #cfd8de;
  display: flex;
  justify-content: center;
  min-height: 150px;
  overflow: hidden;
}

.wip-picture-preview img {
  display: block;
  max-height: 230px;
  max-width: 100%;
  object-fit: contain;
}

.wip-picture-preview span {
  color: var(--muted);
  display: none;
  font-size: 12px;
  font-weight: 700;
  padding: 14px;
  text-align: center;
}

.wip-picture-preview.missing img {
  display: none;
}

.wip-picture-preview.missing span {
  display: block;
}

.wintac-schedule-row {
  grid-template-columns: minmax(170px, 1.2fr) repeat(2, minmax(120px, .8fr)) minmax(150px, 1fr) minmax(150px, 1fr) minmax(85px, .6fr) minmax(80px, .5fr) minmax(130px, .8fr);
  margin-top: 14px;
}

.wintac-schedule-row label {
  grid-template-columns: auto minmax(0, 1fr);
}

.wintac-additional-scheduling-row {
  display: flex;
  padding: 4px 0 0 118px;
}

.wintac-additional-link {
  color: #d01722;
  font-weight: 800;
}

.wintac-modal {
  align-items: center;
  background: rgba(0, 0, 0, .18);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 18px;
  position: fixed;
  z-index: 30;
}

.wintac-modal[hidden] {
  display: none;
}

.wintac-modal-panel {
  background: #dcecff;
  border: 1px solid #8a8a8a;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .18);
  color: #222222;
  display: grid;
  gap: 10px;
  max-height: calc(100vh - 44px);
  overflow: auto;
  padding: 12px;
  width: min(920px, 100%);
}

.wintac-modal-title,
.wintac-modal-actions,
.wintac-locate-row,
.wintac-scheduled-tech-form,
.wintac-crew-apply-form,
.wintac-crew-editor-form {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.wintac-modal-title {
  justify-content: space-between;
}

.wintac-modal-title h4 {
  font-size: 18px;
  margin: 0;
}

.wintac-locate-row label,
.wintac-scheduled-tech-form label,
.wintac-crew-apply-form label,
.wintac-crew-editor-form label {
  align-items: center;
  display: grid;
  gap: 6px;
  grid-template-columns: auto minmax(110px, 1fr);
}

.wintac-crew-editor-form {
  border-top: 1px solid rgba(17, 152, 189, .5);
  display: grid;
  padding-top: 8px;
}

.wintac-crew-editor-form[hidden] {
  display: none;
}

.wintac-crew-editor-grid {
  display: grid;
  gap: 8px 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
}

.wintac-crew-editor-grid label.wide {
  grid-column: 1 / -1;
}

.wintac-grid-wrap {
  background: #ffffff;
  border: 1px solid #555555;
  overflow: auto;
}

.wip-ticket-panel {
  width: min(1180px, 100%);
}

.wip-location-panel {
  width: min(900px, 100%);
}

.wip-ticket-shell {
  align-items: start;
  display: grid;
  gap: 26px;
  grid-template-columns: minmax(380px, 1fr) minmax(220px, 280px);
}

.wip-ticket-search-box {
  border: 2px solid #6f6f6f;
  display: grid;
  gap: 6px;
  padding: 12px 16px;
}

.wip-ticket-search-box label {
  align-items: center;
  display: grid;
  gap: 8px;
  grid-template-columns: 110px minmax(0, 1fr);
}

.wip-ticket-search-box input {
  min-height: 28px;
}

.wip-ticket-side-actions {
  display: grid;
  gap: 10px;
}

.wip-ticket-side-actions .tool-button {
  min-height: 40px;
}

.wip-ticket-job-sites-toggle {
  justify-content: start;
}

.wip-ticket-grid-wrap,
.wip-location-grid-wrap {
  max-height: 440px;
}

.wip-ticket-grid {
  min-width: 980px;
}

.wip-location-grid {
  min-width: 820px;
}

.wip-ticket-grid tbody tr.selected td,
.wip-location-grid tbody tr.selected td {
  background: #76d0e9;
}

.wintac-mini-grid {
  border-collapse: collapse;
  min-width: 760px;
  width: 100%;
}

.wintac-mini-grid th,
.wintac-mini-grid td {
  border: 1px solid #c8d2d7;
  font-size: 13px;
  padding: 5px 7px;
}

.wintac-mini-grid .grid-input {
  border: 1px solid #9f9f9f;
  box-sizing: border-box;
  font: inherit;
  min-height: 24px;
  padding: 2px 4px;
  width: 100%;
}

.wintac-mini-grid input[type="checkbox"] {
  height: 16px;
  width: 16px;
}

.wintac-mini-grid tr.saving td {
  opacity: 0.72;
}

.wintac-mini-grid tr.dirty td {
  background: #fff5cf;
}

.wintac-grid-actions {
  display: flex;
  gap: 4px;
  justify-content: center;
}

.wintac-mini-grid th {
  background: #d8e5ea;
  color: #4c5c65;
  font-weight: 800;
}

.wintac-mini-grid tbody tr:first-child td {
  background: #76d2ea;
}

.scheduled-techs-grid tbody tr:first-child:not(.selected) td {
  background: #ffffff;
}

.scheduled-techs-grid tbody tr.new-row td {
  background: #ffffff;
}

.scheduled-techs-grid tbody tr.new-row.dirty td {
  background: #fff5cf;
}

.wintac-mini-grid [data-wintac-crew-row] {
  cursor: pointer;
}

.scheduled-techs-grid tbody tr.selected td,
.wintac-mini-grid [data-wintac-crew-row].selected td {
  background: #76d2ea;
}

.wintac-row-selector {
  padding-left: 2px;
  padding-right: 2px;
  text-align: center;
  width: 24px;
}

.wintac-row-selector-button {
  background: transparent;
  border: 0;
  color: #111111;
  cursor: pointer;
  display: block;
  font: inherit;
  min-height: 22px;
  padding: 0;
  width: 100%;
}

.scheduled-techs-grid .new-row .wintac-row-selector-button {
  font-size: 18px;
  font-weight: 700;
}

.wintac-mini-grid .center {
  text-align: center;
}

.wintac-record-bar {
  align-items: center;
  background: #f2f0f6;
  border: 1px solid #c8d2d7;
  border-top: 0;
  display: flex;
  gap: 6px;
  min-height: 28px;
  padding: 2px 6px;
}

.wintac-record-bar button {
  background: transparent;
  border: 0;
  color: #777777;
  font: inherit;
  padding: 0 2px;
}

.wintac-record-bar input {
  border: 1px solid #b7b7b7;
  font: inherit;
  height: 22px;
  margin-left: auto;
  max-width: 120px;
  padding: 1px 5px;
}

.wip-line-lookup-grid {
  grid-template-columns: minmax(190px, 1.25fr) minmax(140px, .9fr) minmax(105px, .5fr);
}

.wip-line-lookup-actions {
  align-content: end;
  display: grid;
  gap: 4px;
}

.wip-line-lookup-actions > span {
  color: #516876;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.task-group-lines-form {
  gap: 10px;
}

.task-group-picker-toolbar {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.task-group-preview {
  min-height: 34px;
}

.task-group-preview-wrap {
  max-height: 280px;
}

.task-group-lines-grid {
  min-width: 860px;
}

.task-group-lines-grid .number {
  font-variant-numeric: tabular-nums;
  text-align: right;
  white-space: nowrap;
}

.item-lookup-panel {
  background: #dcecff;
  gap: 0;
  padding: 0;
  width: min(980px, 100%);
}

.item-lookup-panel .wintac-modal-title {
  background: #ffffff;
  border-bottom: 1px solid #cbd2d7;
  min-height: 42px;
  padding: 8px 10px;
}

.item-lookup-panel .wintac-modal-title h4 {
  font-size: 16px;
}

.item-lookup-table-wrap {
  margin: 10px;
  max-height: min(62vh, 540px);
}

.item-lookup-grid {
  min-width: 860px;
}

.item-lookup-grid th {
  text-align: left;
}

.item-lookup-grid td {
  border-color: #555555;
}

.item-lookup-grid tbody tr {
  cursor: pointer;
}

.item-lookup-grid tbody tr.selected td {
  background: #c1d0e1;
}

.item-lookup-grid .numeric {
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.empty-lookup-row {
  height: 90px;
  text-align: center;
}

.item-lookup-record-bar {
  margin: 0 10px;
}

.item-lookup-record-bar label {
  align-items: center;
  display: flex;
  gap: 6px;
  margin-left: auto;
}

.item-lookup-record-bar label input {
  margin-left: 0;
  max-width: 160px;
}

.item-lookup-checks {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 14px 22px;
  padding: 10px;
}

.item-lookup-checks label {
  align-items: center;
  display: flex;
  gap: 5px;
}

.item-lookup-actions {
  justify-content: center;
  padding: 0 10px 12px;
}

.crew-panel {
  width: min(780px, 100%);
}

.wintac-money-panel {
  background: #dcecff;
  border: 1px solid #1198bd;
  color: #4a4a4a;
  display: grid;
  font-size: 14px;
}

.wintac-money-panel div {
  align-items: center;
  border-bottom: 1px solid rgba(17, 152, 189, .5);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 90px;
  min-height: 28px;
  padding: 2px 8px;
}

.wintac-money-panel div:nth-child(5),
.wintac-money-panel div:nth-child(9),
.wintac-money-panel div:nth-child(14) {
  border-top: 2px solid #5b7182;
}

.wintac-money-panel div:last-child {
  border-bottom: 0;
}

.wintac-money-panel strong {
  font-family: Arial, Helvetica, sans-serif;
  text-align: right;
}

.wintac-preferences {
  display: grid;
  gap: 5px;
}

.wintac-preferences label {
  grid-template-columns: 150px minmax(0, 1fr);
}

.wintac-preferences textarea[name="summary"] {
  min-height: 160px;
}

.wintac-form-actions {
  display: flex;
  justify-content: flex-start;
  padding: 0 4px 12px 154px;
}

.weekly-tech-matrix {
  border-left: 1px solid #555555;
  border-top: 1px solid #555555;
  display: grid;
  grid-template-columns: 170px repeat(7, minmax(160px, 1fr));
  min-width: 1290px;
}

.weekly-tech-head,
.weekly-tech-label,
.weekly-tech-day {
  border-bottom: 1px solid #555555;
  border-right: 1px solid #555555;
}

.weekly-tech-head {
  background: #f1f5f7;
  color: #00578f;
  display: grid;
  font-size: 13px;
  justify-items: center;
  min-height: 44px;
  padding: 7px 8px;
  text-align: center;
}

.weekly-tech-head.tech-label {
  align-content: center;
  font-weight: 800;
}

.weekly-tech-head.selected {
  background: #e8f2ff;
}

.weekly-tech-label {
  background: #ffffff;
  border-left: 4px solid var(--tech-color);
  color: #00578f;
  display: grid;
  gap: 10px;
  min-height: 112px;
  padding: 10px;
}

.weekly-tech-label strong {
  font-size: 15px;
}

.weekly-tech-day {
  background: var(--wintac-grid-fill);
  display: grid;
  gap: 7px;
  min-height: 112px;
  padding: 9px;
}

.weekly-tech-day.selected {
  background: #cfe6fb;
}

.weekly-cell-summary {
  color: #222222;
  display: grid;
  gap: 8px;
  font-size: 13px;
}

.calendar-open-daily {
  align-self: start;
  border: 1px solid #9db4c4;
  border-radius: 3px;
  background: #ffffff;
  color: #00578f;
  cursor: pointer;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  padding: 3px 5px;
}

.calendar-open-daily:hover,
.calendar-open-daily:focus-visible {
  border-color: #00578f;
  background: #eaf5ff;
  outline: none;
}

.dispatch-schedule.month-mode .month-day-head {
  align-items: start;
  display: flex;
  justify-content: space-between;
  gap: 4px;
}

.dispatch-schedule.month-mode .month-day-number {
  margin-bottom: 0;
}

.weekly-tech-day .calendar-card-stack {
  display: grid;
  gap: 5px;
}

.weekly-tech-day .calendar-card {
  font-size: 11px;
  min-height: 58px;
  padding: 6px;
}

.dispatch-schedule.week-mode {
  overflow-x: auto;
}

.dispatch-schedule.month-mode .month-grid {
  border-left: 1px solid #555555;
  border-top: 1px solid #555555;
  gap: 0;
}

.dispatch-schedule.month-mode .month-weekday,
.dispatch-schedule.month-mode .month-day {
  border-bottom: 1px solid #555555;
  border-right: 1px solid #555555;
}

.dispatch-schedule.month-mode .month-day {
  min-height: 104px;
  padding: 5px;
}

.dispatch-schedule.month-mode .month-card {
  font-size: 11px;
  min-height: 36px;
  padding: 4px 5px;
}

.dispatch-schedule.day-mode .dispatch-main,
.dispatch-schedule.day-mode {
  gap: 8px;
}

.rolling-day-mode .dispatch-day-section {
  margin-bottom: 8px;
}

.rolling-day-mode .dispatch-day-head {
  min-height: 32px;
  padding: 6px 9px;
}

.rolling-day-mode .tech-column {
  min-height: 420px;
}

.rolling-day-mode .tech-column-head {
  min-height: 58px;
  padding: 7px;
}

.rolling-day-mode .time-slot {
  min-height: 54px;
}

.rolling-day-mode .dispatch-card {
  font-size: 11px;
  padding: 6px;
}

.dispatch-reschedule-modal {
  background: #e8f2ff;
  border: 2px solid #333333;
  box-shadow: 0 18px 40px rgba(20, 37, 48, .28);
  left: 50%;
  max-height: calc(100vh - 48px);
  overflow: auto;
  padding: 14px;
  position: fixed;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(620px, calc(100vw - 28px));
  z-index: 80;
}

.dispatch-reschedule-modal .dispatch-command-head {
  border-bottom: 0;
  padding: 0 0 8px;
}

.dispatch-reschedule-form {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr;
}

.reschedule-date-pair {
  display: grid;
  gap: 12px;
  justify-items: center;
}

.reschedule-date-pair label {
  max-width: 260px;
  width: 100%;
}

.reschedule-date-pair label span {
  font-size: 16px;
  font-weight: 500;
  text-transform: none;
}

.reschedule-limit-box {
  border: 2px solid #333333;
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 18px 12px 12px;
}

.reschedule-limit-box legend {
  color: #222222;
  font-size: 17px;
  padding: 0 8px;
}

.reschedule-limit-box label {
  grid-template-columns: 128px minmax(0, 1fr);
}

.dispatch-reschedule-modal .reschedule-list {
  border: 1px solid #9db7c7;
  max-height: 160px;
  overflow: auto;
}

.dispatch-reschedule-modal .reschedule-option {
  background: #f6fbff;
  border-bottom: 1px solid #bdd2df;
  border-radius: 0;
  margin: 0;
}

.dispatch-reschedule-modal .reschedule-option.hidden {
  display: none;
}

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

/* MAC Dispatch Hub v0: intentionally narrow office-dispatch surface. */
.dispatch-hub-v0 {
  --accent: #087d77;
  --accent-2: #264e63;
  --bg: #eef2f4;
}

.dispatch-hub-v0 .app-shell {
  display: grid;
  grid-template-columns: 236px minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
}

.dispatch-hub-v0 .sidebar {
  align-items: stretch;
  background: linear-gradient(180deg, #102a38 0%, #162f3a 100%);
  display: flex;
  flex-direction: column;
  gap: 22px;
  grid-template-columns: none;
  grid-template-rows: none;
  height: 100vh;
  min-height: 100vh;
  padding: 22px 16px;
  position: sticky;
  top: 0;
}

.dispatch-hub-v0 .brand {
  background: transparent;
  grid-column: auto;
  grid-row: auto;
  min-height: 0;
  padding: 0;
}

.dispatch-hub-v0 .brand h1 {
  font-size: 18px;
}

.dispatch-hub-v0 .nav {
  align-content: start;
  display: grid;
  flex: 1 1 auto;
  gap: 7px;
  grid-column: auto;
  grid-row: auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 3px;
  scrollbar-color: rgba(255, 255, 255, .28) transparent;
  scrollbar-width: thin;
}

.dispatch-hub-v0 .nav::-webkit-scrollbar {
  width: 6px;
}

.dispatch-hub-v0 .nav::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, .28);
  border-radius: 999px;
}

.dispatch-hub-v0 .nav-item {
  background: transparent;
  border: 0;
  border-left: 3px solid transparent;
  border-radius: 7px;
  color: #eff7f8;
  display: flex;
  flex: none;
  font-family: inherit;
  font-size: 14px;
  justify-content: flex-start;
  min-height: 42px;
  min-width: 0;
  padding: 12px 13px;
  text-align: left;
  width: 100%;
}

.dispatch-hub-v0 .nav-item:hover {
  background: rgba(255, 255, 255, .09);
  border-left-color: rgba(255, 255, 255, .32);
}

.dispatch-hub-v0 .nav-item.active {
  background: #e7f7f4;
  border-left-color: #25a59c;
  color: #0c4647;
  font-family: inherit;
  font-size: 14px;
}

.dispatch-hub-v0 .nav-settings {
  border-top: 1px solid rgba(255, 255, 255, .14);
  margin-top: 8px;
  padding-top: 10px;
}

.dispatch-hub-v0 .nav-settings-toggle {
  align-items: center;
  border-left: 3px solid transparent;
  border-radius: 7px;
  color: #eff7f8;
  cursor: pointer;
  display: flex;
  font-size: 14px;
  font-weight: 800;
  justify-content: space-between;
  list-style: none;
  min-height: 42px;
  padding: 10px 13px;
  user-select: none;
}

.dispatch-hub-v0 .nav-settings-toggle::-webkit-details-marker {
  display: none;
}

.dispatch-hub-v0 .nav-settings-toggle:hover,
.dispatch-hub-v0 .nav-settings.active > .nav-settings-toggle {
  background: rgba(255, 255, 255, .09);
  border-left-color: rgba(255, 255, 255, .32);
}

.dispatch-hub-v0 .nav-settings-summary-status {
  align-items: center;
  display: flex;
  gap: 8px;
}

.dispatch-hub-v0 .nav-settings-chevron {
  border-bottom: 2px solid currentColor;
  border-right: 2px solid currentColor;
  display: block;
  height: 8px;
  transform: rotate(45deg) translateY(-2px);
  transition: transform 140ms ease;
  width: 8px;
}

.dispatch-hub-v0 .nav-settings[open] .nav-settings-chevron {
  transform: rotate(225deg) translate(-2px, -2px);
}

.dispatch-hub-v0 .nav-settings-items {
  display: grid;
  gap: 3px;
  margin-top: 3px;
}

.dispatch-hub-v0 .nav-settings .nav-settings-item {
  font-size: 13px;
  min-height: 36px;
  padding: 9px 10px 9px 27px;
}

.dispatch-hub-v0 .nav-settings .nav-settings-item.active {
  font-size: 13px;
}

.dispatch-hub-v0 .user-switcher {
  grid-column: auto;
  grid-row: auto;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 0;
}

.dispatch-hub-v0 .main {
  max-width: none;
  padding: 20px 24px 40px;
}

.dispatch-hub-v0 .topbar {
  margin-bottom: 16px;
}

.dispatch-hub-v0 .topbar-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.dispatch-hub-v0 .dispatch-auto-refresh-countdown {
  align-items: center;
  background: #eef6fb;
  border: 1px solid #aac9dc;
  border-radius: 999px;
  color: #135f87;
  display: inline-flex;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  min-height: 32px;
  padding: 5px 11px;
  white-space: nowrap;
}

.dispatch-hub-v0 .dispatch-auto-refresh-countdown.refresh-failed {
  background: #fff3df;
  border-color: #d99b43;
  color: #7a3900;
}

.dispatch-hub-v0 .production-database-banner {
  background: #fff4b8;
  border: 2px solid #efb800;
  border-radius: 999px;
  color: #c92718;
  font-size: clamp(14px, 1.35vw, 20px);
  font-weight: 950;
  letter-spacing: 0.035em;
  line-height: 1;
  padding: 8px 18px;
  text-align: center;
  text-transform: uppercase;
}

@media (max-width: 820px) {
  .dispatch-hub-v0 .production-database-banner {
    font-size: 12px;
    padding: 6px 10px;
  }
}

/* 2026 world-class refinement: shared office shell and Job Control Center. */
@font-face {
  font-display: swap;
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 400;
  src: url("/assets/fonts/ibm-plex-sans/IBMPlexSans-Regular.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 500;
  src: url("/assets/fonts/ibm-plex-sans/IBMPlexSans-Medium.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 600;
  src: url("/assets/fonts/ibm-plex-sans/IBMPlexSans-SemiBold.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 700;
  src: url("/assets/fonts/ibm-plex-sans/IBMPlexSans-Bold.woff2") format("woff2");
}

.dispatch-hub-v0 {
  --mac-navy-900: #0a2439;
  --mac-navy-800: #102d48;
  --mac-blue-700: #185b91;
  --mac-blue-600: #246aa5;
  --mac-blue-500: #2f73b5;
  --mac-blue-100: #eef5fb;
  --surface-app: #edf1f5;
  --surface-panel: #ffffff;
  --surface-subtle: #f8fafb;
  --surface-header: #eaf0f5;
  --text-strong: #172b3f;
  --text-body: #263b50;
  --text-muted: #617181;
  --border-strong: #b8c4cf;
  --border-default: #cbd6df;
  --border-subtle: #dce3e9;
  --division-service-edge: #2f6fad;
  --division-tab-edge: #16858c;
  --division-contracting-edge: #c66a1d;
  --bg: var(--surface-app);
  --panel: var(--surface-panel);
  --line: var(--border-subtle);
  --text: var(--text-strong);
  --muted: var(--text-muted);
  --accent: var(--mac-blue-600);
  color: var(--text-body);
  font-family: "IBM Plex Sans", Arial, Helvetica, sans-serif;
  font-size: 12px;
}

.dispatch-hub-v0 button,
.dispatch-hub-v0 input,
.dispatch-hub-v0 select,
.dispatch-hub-v0 textarea {
  font-family: inherit;
  letter-spacing: 0;
}

.dispatch-hub-v0 :where(button, a, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--mac-blue-500);
  outline-offset: 2px;
}

.dispatch-hub-v0 .app-shell {
  background: var(--surface-app);
  grid-template-columns: 236px minmax(0, 1fr);
}

.dispatch-hub-v0 .sidebar {
  background: var(--mac-navy-800);
  border-right: 1px solid var(--mac-navy-900);
  box-shadow: 3px 0 12px rgba(10, 36, 57, .16);
  gap: 16px;
  padding: 18px 14px;
  z-index: 50;
}

.dispatch-hub-v0 .brand {
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 10px;
}

.dispatch-hub-v0 .brand-icon {
  border-radius: 0;
  height: 42px;
  width: 42px;
}

.dispatch-hub-v0 .brand h1 {
  font-size: 15px;
  font-weight: 600;
}

.dispatch-hub-v0 .brand p {
  color: #b9c9d8;
  font-size: 11px;
}

.dispatch-hub-v0 .user-switcher {
  background: rgba(10, 36, 57, .58);
  border: 1px solid rgba(203, 214, 223, .22);
  border-radius: 4px;
  padding: 9px;
}

.dispatch-hub-v0 .nav-item,
.dispatch-hub-v0 .nav-settings-toggle {
  border-radius: 4px;
  color: #cad7e3;
  font-size: 12px;
  font-weight: 500;
  min-height: 34px;
  padding-block: 8px;
}

.dispatch-hub-v0 .nav-settings .nav-settings-item,
.dispatch-hub-v0 .nav-settings .nav-settings-item.active {
  font-size: 12px;
  min-height: 32px;
  padding-block: 7px;
}

.dispatch-hub-v0 .nav-item.active {
  background: var(--mac-blue-600);
  border-left-color: #a9d4f4;
  box-shadow: inset 3px 0 #a9d4f4;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
}

.dispatch-hub-v0 .nav-item:hover,
.dispatch-hub-v0 .nav-settings-toggle:hover,
.dispatch-hub-v0 .nav-settings.active > .nav-settings-toggle {
  background: rgba(238, 245, 251, .09);
  border-left-color: rgba(169, 212, 244, .65);
}

.dispatch-hub-v0 .main {
  padding: 0 14px 28px;
}

.dispatch-hub-v0 .topbar {
  align-items: center;
  background: #fff;
  border-bottom: 1px solid var(--border-default);
  box-shadow: 0 2px 7px rgba(23, 43, 63, .05);
  margin: 0 -14px 12px;
  min-height: 70px;
  padding: 12px 16px;
}

.dispatch-hub-v0 .topbar h2 {
  color: var(--text-strong);
  font-size: 20px;
  font-weight: 600;
}

.dispatch-hub-v0 .topbar .eyebrow {
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

.dispatch-hub-v0 .production-database-banner {
  background: #edf8f1;
  border: 1px solid #8cc7a4;
  border-radius: 999px;
  color: #17633a;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0;
  padding: 6px 10px;
  text-transform: none;
}

.dispatch-hub-v0 .section-band {
  background: var(--surface-panel);
  border: 1px solid var(--border-default);
  border-radius: 6px;
  box-shadow: 0 3px 12px rgba(23, 43, 63, .07);
}

.dispatch-hub-v0 #dispatch-board .section-heading.dispatch-heading {
  padding: 10px 12px 0;
}

.dispatch-hub-v0 #dispatch-board .section-heading h3 {
  color: var(--text-strong);
  font-size: 17px;
  font-weight: 600;
}

.dispatch-hub-v0 #dispatch-board .section-heading p {
  color: var(--text-muted);
  font-size: 11px;
}

.dispatch-hub-v0 .mode-tabs {
  border-bottom: 1px solid var(--border-default);
  gap: 2px;
}

.dispatch-hub-v0 .mode-tab {
  background: transparent;
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 4px 4px 0 0;
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 600;
  min-height: 34px;
  padding: 7px 10px;
}

.dispatch-hub-v0 .mode-tab.active {
  background: var(--mac-blue-100);
  border-bottom-color: var(--mac-blue-500);
  color: var(--mac-blue-700);
}

.dispatch-hub-v0 :where(.tool-button, .primary-button, .secondary-button, .danger-button) {
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  min-height: 34px;
}

.dispatch-hub-v0 .tool-button {
  background: #fff;
  border-color: var(--border-strong);
  color: var(--text-body);
}

.dispatch-hub-v0 .tool-button:hover {
  background: var(--mac-blue-100);
  border-color: #8ca9c1;
  color: var(--mac-blue-700);
}

.dispatch-hub-v0 .primary-button,
.dispatch-hub-v0 .primary-link-button {
  background: var(--mac-blue-600);
  border-color: var(--mac-blue-600);
}

.dispatch-hub-v0 :where(input, select, textarea) {
  border-color: var(--border-strong);
  border-radius: 4px;
  color: var(--text-body);
  font-size: 11px;
}

.dispatch-hub-v0 :where(.inline-field, .job-control-filters label, .job-control-saved-views label, .sheet-search) > span,
.dispatch-hub-v0 .job-control-filters span,
.dispatch-hub-v0 .job-control-saved-views span,
.dispatch-hub-v0 .sheet-search span {
  color: var(--text-muted);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}

.dispatch-hub-v0 .dispatch-tools {
  gap: 6px;
}

.dispatch-hub-v0 .dispatch-period-nav,
.dispatch-hub-v0 .job-control-toolbar,
.dispatch-hub-v0 .job-control-saved-views,
.dispatch-hub-v0 .job-control-filters {
  background: var(--surface-subtle);
  border-color: var(--border-subtle);
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-toolbar,
.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-saved-views,
.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-filters {
  padding: 7px 8px;
}

.dispatch-hub-v0 #dispatch-board.sheet-mode :where(.job-control-filters, .job-control-saved-views) :where(select, input),
.dispatch-hub-v0 #dispatch-board.sheet-mode .sheet-search input {
  min-height: 34px;
}

.dispatch-hub-v0 .job-control-saved-views,
.dispatch-hub-v0 .job-control-filters {
  align-items: end;
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.dispatch-hub-v0 .job-control-count {
  background: #fff;
  border-block: 1px solid var(--border-subtle);
  color: var(--text-muted);
  font-size: 11px;
  justify-content: flex-start;
  min-height: 32px;
  padding: 5px 8px;
}

.dispatch-hub-v0 .job-control-count strong {
  color: var(--text-strong);
  font-size: 14px;
}

.dispatch-hub-v0 .division-row-key {
  margin-left: auto;
}

.dispatch-hub-v0 .job-control-wrap {
  border-color: var(--border-default);
  border-radius: 0;
  max-height: calc(100vh - 250px);
}

.dispatch-hub-v0 .job-control-table {
  font-variant-numeric: tabular-nums;
}

.dispatch-hub-v0 .job-control-table th {
  background: var(--surface-header);
  border-bottom-color: var(--border-strong);
  border-right: 1px solid var(--border-subtle);
  color: var(--text-strong);
  font-size: 10px;
  font-weight: 600;
}

.dispatch-hub-v0 .job-control-table td {
  background: #fff;
  border-bottom-color: var(--border-subtle);
  border-right-color: var(--border-subtle);
  color: var(--text-body);
  font-size: 11px;
  height: auto;
  line-height: 1.25;
  overflow: hidden;
  padding: 6px 7px;
  text-overflow: ellipsis;
}

.dispatch-hub-v0 .job-control-panel.density-compact .job-control-table td {
  height: 47px;
}

.dispatch-hub-v0 .job-control-panel.density-comfortable .job-control-table td {
  height: 62px;
}

.dispatch-hub-v0 .job-control-table tbody tr:nth-child(even) td {
  background: #fbfcfd;
}

.dispatch-hub-v0 .job-control-table tbody tr:hover td {
  background: #f3f7fa;
}

.dispatch-hub-v0 .job-control-table tbody tr.selected td {
  background: var(--mac-blue-100);
}

.dispatch-hub-v0 .job-control-table tbody tr.division-service > td:first-child {
  box-shadow: inset 4px 0 var(--division-service-edge);
}

.dispatch-hub-v0 .job-control-table tbody tr.division-tab > td:first-child {
  box-shadow: inset 4px 0 var(--division-tab-edge);
}

.dispatch-hub-v0 .job-control-table tbody tr.division-contracting > td:first-child {
  box-shadow: inset 4px 0 var(--division-contracting-edge);
}

.dispatch-hub-v0 .job-control-job-identity strong,
.dispatch-hub-v0 .sheet-static-value a {
  color: var(--mac-blue-700);
  font-weight: 600;
}

.dispatch-hub-v0 .status,
.dispatch-hub-v0 .status-pill {
  border-radius: 3px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.dispatch-hub-v0 .status.scheduled,
.dispatch-hub-v0 .wo-tone-scheduled {
  background: #eef6ff;
  border-color: #9fc3e8;
  color: #175a91;
}

.dispatch-hub-v0 .status.in-progress,
.dispatch-hub-v0 .wo-tone-in-progress {
  background: #eaf7f7;
  border-color: #87bec2;
  color: #145f63;
}

.dispatch-hub-v0 .status.on-hold,
.dispatch-hub-v0 .wo-tone-on-hold,
.dispatch-hub-v0 .unassigned {
  background: #fff7e6;
  border-color: #e0b25d;
  color: #805700;
}

.dispatch-hub-v0 .status.pending-review,
.dispatch-hub-v0 .wo-tone-review {
  background: #f5f2ff;
  border-color: #b7aedb;
  color: #52448d;
}

.dispatch-hub-v0 .status.error,
.dispatch-hub-v0 .status.overdue,
.dispatch-hub-v0 .wo-tone-overdue {
  background: #fff0ef;
  border-color: #d79a95;
  color: #8e2f27;
}

.dispatch-hub-v0 .job-control-pagination {
  background: var(--surface-subtle);
  border-top-color: var(--border-default);
}

.dispatch-hub-v0 .account-modal-panel,
.dispatch-hub-v0 .detail-panel,
.dispatch-hub-v0 .wintac-modal-panel {
  border-radius: 7px;
}

.dispatch-hub-v0 .detail-panel {
  max-width: 94vw;
  width: 420px;
}

.mobile-nav-toggle {
  display: none;
}

@media (max-width: 1024px) {
  .dispatch-hub-v0 .main {
    padding-inline: 12px;
  }

  .dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-toolbar {
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 .job-control-saved-views,
  .dispatch-hub-v0 .job-control-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .dispatch-hub-v0 .app-shell {
    display: block;
  }

  .dispatch-hub-v0 .sidebar {
    bottom: 0;
    box-shadow: 8px 0 22px rgba(10, 36, 57, .25);
    max-width: 88vw;
    position: fixed;
    top: 0;
    transform: translateX(-105%);
    transition: transform 160ms ease;
    width: 236px;
  }

  .dispatch-hub-v0.mobile-nav-open .sidebar {
    transform: translateX(0);
  }

  .dispatch-hub-v0.mobile-nav-open::after {
    background: rgba(10, 36, 57, .35);
    content: "";
    inset: 0;
    position: fixed;
    z-index: 40;
  }

  .dispatch-hub-v0 .mobile-nav-toggle {
    display: inline-flex;
  }

  .dispatch-hub-v0 .topbar {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .dispatch-hub-v0 .job-control-saved-views,
  .dispatch-hub-v0 .job-control-filters {
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 .dispatch-tools,
  .dispatch-hub-v0 .mode-tabs {
    overflow-x: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dispatch-hub-v0 .sidebar {
    transition: none;
  }
}

.dispatch-hub-v0 .app-history-back {
  background: #173c43;
  border-color: #0d2a30;
  border-radius: 999px;
  color: #ffffff;
  font-weight: 900;
}

.dispatch-hub-v0 .app-history-back:hover,
.dispatch-hub-v0 .app-history-back:focus-visible {
  background: #0d292f;
  border-color: #071b20;
  color: #ffffff;
}

.dispatch-hub-v0 .app-history-back[hidden] {
  display: none;
}

.dispatch-hub-v0 .topbar .eyebrow {
  color: #52707f;
  font-weight: 800;
  letter-spacing: .08em;
}

.dispatch-hub-v0 .section-band {
  border-color: #d2dde2;
  border-radius: 10px;
  box-shadow: 0 6px 20px rgba(21, 47, 59, .06);
}

.dispatch-hub-v0 .dispatch-lite-band {
  padding: 18px;
}

.dispatch-hub-v0 .create-job-back-button {
  background: #223b49;
  border-color: #142832;
  border-radius: 999px;
  color: #ffffff;
  font-weight: 900;
  min-height: 34px;
  padding-inline: 14px;
}

.dispatch-hub-v0 .create-job-back-button:hover,
.dispatch-hub-v0 .create-job-back-button:focus-visible {
  background: #122a36;
  color: #ffffff;
}

.dispatch-hub-v0 .dispatch-lite-grid {
  gap: 14px;
}

.dispatch-hub-v0 .dispatch-lite-panel {
  border-color: #cbd9df;
  border-radius: 8px;
}

.dispatch-hub-v0 .dispatch-lite-panel-head {
  background: #eaf3f4;
  border-radius: 6px;
  padding: 10px 12px;
}

.dispatch-hub-v0 .dispatch-lite-panel-head h4 {
  color: #123f4a;
}

.dispatch-hub-v0 .dispatch-lite-job-name-preview {
  background: #e8f7f4;
  border-color: #8dc9c3;
}

.dispatch-hub-v0 .primary-button,
.dispatch-hub-v0 .primary-link-button {
  background: #087d77;
  border-color: #087d77;
  color: #ffffff;
}

.dispatch-hub-v0 .primary-button:hover,
.dispatch-hub-v0 .primary-link-button:hover {
  background: #066b66;
  border-color: #066b66;
  color: #ffffff;
}

.dispatch-hub-v0 .primary-button:disabled {
  background: #7d9e9c;
  border-color: #7d9e9c;
  color: #ffffff;
  cursor: not-allowed;
  opacity: 0.72;
}

.dispatch-hub-v0 #work-orders .wip-writer-browser {
  display: none;
}

.dispatch-hub-v0 #work-orders .wip-writer-layout {
  display: block;
}

.dispatch-hub-v0 #work-orders .wip-writer-stage {
  min-height: 0;
}

.dispatch-hub-v0 .dispatch-hub-job-detail {
  display: grid;
  gap: 14px;
}

.dispatch-hub-v0 .dispatch-hub-job-head {
  align-items: flex-start;
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.dispatch-hub-v0 .dispatch-hub-job-head h3,
.dispatch-hub-v0 .dispatch-hub-job-head p {
  margin: 0;
}

.dispatch-hub-v0 .dispatch-hub-job-head h3 {
  color: #123f4a;
  font-size: 22px;
  margin-top: 4px;
}

.dispatch-hub-v0 .dispatch-hub-job-head p:last-child {
  color: var(--muted);
  margin-top: 5px;
}

.dispatch-hub-v0 .dispatch-hub-detail-tabs {
  border-bottom: 1px solid #d7e1e5;
  padding-bottom: 0;
}

.dispatch-hub-v0 .dispatch-hub-detail-tabs .detail-tab {
  border-radius: 7px 7px 0 0;
  min-width: 110px;
}

.dispatch-hub-v0 .dispatch-hub-summary-strip {
  background: #edf6f6;
  border-color: #b9d8d5;
}

.dispatch-hub-v0 .dispatch-hub-job-card {
  display: grid;
  gap: 16px;
}

.dispatch-hub-v0 .dispatch-hub-job-context {
  display: grid;
  gap: 10px;
  grid-template-columns: 1.2fr 1.5fr .7fr;
}

.dispatch-hub-v0 .dispatch-hub-job-context > div {
  background: #f4f8f9;
  border: 1px solid #d5e0e4;
  border-radius: 7px;
  display: grid;
  gap: 4px;
  padding: 12px;
}

.dispatch-hub-v0 .dispatch-hub-job-context span,
.dispatch-hub-v0 .dispatch-hub-job-context small {
  color: var(--muted);
  font-size: 12px;
}

.dispatch-hub-v0 .dispatch-hub-job-form,
.dispatch-hub-v0 .dispatch-hub-assignment-form,
.dispatch-hub-v0 .dispatch-hub-resource-form,
.dispatch-hub-v0 .dispatch-hub-attachment-form,
.dispatch-hub-v0 .dispatch-hub-writeup-form {
  background: #fff;
  border: 1px solid #d4e0e4;
  border-radius: 8px;
  padding: 16px;
}

.dispatch-hub-v0 .dispatch-hub-links-block .detail-body {
  display: grid;
  gap: 14px;
}

.dispatch-hub-v0 .dispatch-hub-links-block h5 {
  color: #173d47;
  font-size: 14px;
  margin: 6px 0 0;
}

.dispatch-hub-v0 .dispatch-hub-assignment-list,
.dispatch-hub-v0 .dispatch-hub-link-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  margin-bottom: 16px;
}

.dispatch-hub-v0 .dispatch-hub-assignment {
  align-items: center;
  background: #f2f7f8;
  border: 1px solid #d2e0e4;
  border-radius: 7px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 12px;
}

.dispatch-hub-v0 .dispatch-hub-assignment > div {
  display: grid;
  gap: 3px;
}

.dispatch-hub-v0 .dispatch-hub-assignment > div:last-child {
  text-align: right;
}

.dispatch-hub-v0 .dispatch-hub-assignment span {
  color: var(--muted);
  font-size: 12px;
}

.dispatch-hub-v0 .dispatch-hub-resource-link {
  background: #f1f8f7;
  border: 1px solid #bcd9d5;
  border-radius: 8px;
  color: #173d47;
  display: grid;
  gap: 5px;
  padding: 13px;
  text-decoration: none;
}

.dispatch-hub-v0 .dispatch-hub-resource-link:hover {
  background: #e5f4f1;
  border-color: #78bcb5;
}

.dispatch-hub-v0 .dispatch-hub-resource-link span,
.dispatch-hub-v0 .dispatch-hub-resource-link small {
  color: #55717d;
  font-size: 12px;
}

.dispatch-hub-v0 .dispatch-hub-resource-card {
  border: 1px solid #d4e0e4;
  border-radius: 8px;
  display: grid;
  overflow: hidden;
}

.dispatch-hub-v0 .dispatch-hub-resource-card .dispatch-hub-resource-link {
  border: 0;
  border-radius: 0;
}

.dispatch-hub-v0 .dispatch-hub-resource-card .command-actions {
  background: #fff;
  border-top: 1px solid #d4e0e4;
  justify-content: flex-end;
  padding: 7px 9px;
}

.dispatch-hub-v0 .dispatch-hub-attachment-list {
  display: grid;
  gap: 8px;
}

.dispatch-hub-v0 .dispatch-hub-attachment-row {
  align-items: center;
  background: #f4f8f9;
  border: 1px solid #d4e0e4;
  border-radius: 7px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 10px 12px;
}

.dispatch-hub-v0 .dispatch-hub-attachment-row > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.dispatch-hub-v0 .dispatch-hub-attachment-row span,
.dispatch-hub-v0 .dispatch-process-panel .muted {
  color: var(--muted);
  font-size: 12px;
}

.dispatch-hub-v0 .dispatch-hub-writeup-block .detail-body {
  display: grid;
  gap: 16px;
}

.dispatch-hub-v0 .service-writeup-intro,
.dispatch-hub-v0 .service-writeup-form-footer,
.dispatch-hub-v0 .service-writeup-photo-head {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.dispatch-hub-v0 .service-writeup-intro > div:first-child,
.dispatch-hub-v0 .service-writeup-photo-head > div {
  display: grid;
  gap: 4px;
}

.dispatch-hub-v0 .service-writeup-intro span,
.dispatch-hub-v0 .service-writeup-photo-head span,
.dispatch-hub-v0 .service-writeup-photo-card span {
  color: var(--muted);
  font-size: 12px;
}

.dispatch-hub-v0 .technician-writeup-submission-card {
  background: #fff8df;
  border: 1px solid #e2c56e;
  border-left: 5px solid #bd8b16;
  border-radius: 6px;
  display: grid;
  gap: 12px;
  padding: 14px 16px;
}

.dispatch-hub-v0 .technician-writeup-submission-card header {
  align-items: start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.dispatch-hub-v0 .technician-writeup-submission-card header > div {
  display: grid;
  gap: 3px;
}

.dispatch-hub-v0 .technician-writeup-submission-card header span,
.dispatch-hub-v0 .technician-writeup-submission-card small,
.dispatch-hub-v0 .technician-writeup-submission-card p {
  color: #73591f;
  font-size: 12px;
}

.dispatch-hub-v0 .technician-writeup-submission-card pre {
  background: #ffffff;
  border: 1px solid #e4d5a7;
  border-radius: 4px;
  color: #2f3d44;
  font-family: inherit;
  line-height: 1.5;
  margin: 0;
  max-height: 420px;
  overflow: auto;
  padding: 12px;
  white-space: pre-wrap;
}

.dispatch-hub-v0 .technician-writeup-submission-card p {
  margin: 0;
}

.dispatch-hub-v0 .technician-writeup-submission-card.returned {
  background: #fff0ed;
  border-color: #dfaba0;
  border-left-color: #a83f2f;
}

.dispatch-hub-v0 .technician-writeup-submission-card.returned header span,
.dispatch-hub-v0 .technician-writeup-submission-card.returned header small,
.dispatch-hub-v0 .technician-writeup-submission-card.returned > p {
  color: #7d3025;
}

.dispatch-hub-v0 .technician-writeup-submission-card.approved {
  background: #eaf6ef;
  border-color: #9ccbb0;
  border-left-color: #2f7e55;
}

.dispatch-hub-v0 .technician-writeup-submission-card.approved header span,
.dispatch-hub-v0 .technician-writeup-submission-card.approved header small,
.dispatch-hub-v0 .technician-writeup-submission-card.approved > p {
  color: #285f45;
}

.dispatch-hub-v0 .technician-writeup-return-reason {
  background: #ffffff;
  border: 1px solid #e0b5ac;
  border-radius: 4px;
  color: #6f2c22;
  display: grid;
  gap: 5px;
  padding: 11px 12px;
}

.dispatch-hub-v0 .technician-writeup-review-form {
  display: grid;
  gap: 12px;
}

.dispatch-hub-v0 .technician-writeup-review-form > label {
  display: grid;
  gap: 5px;
}

.dispatch-hub-v0 .technician-writeup-review-form > label > span {
  color: #5e4918;
  font-size: 12px;
  font-weight: 900;
}

.dispatch-hub-v0 .technician-writeup-review-form textarea {
  background: #ffffff;
  border: 1px solid #c5aa5b;
  border-radius: 4px;
  color: #283c44;
  font: inherit;
  line-height: 1.5;
  min-height: 280px;
  padding: 10px;
  resize: vertical;
  width: 100%;
}

.dispatch-hub-v0 .technician-writeup-review-form > label small {
  color: #73591f;
}

.dispatch-hub-v0 .technician-writeup-review-coverage {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.dispatch-hub-v0 .technician-writeup-review-coverage span {
  background: #ffffff;
  border: 1px solid #d9c891;
  border-radius: 999px;
  color: #806927;
  font-size: 11px;
  font-weight: 800;
  padding: 4px 8px;
}

.dispatch-hub-v0 .technician-writeup-review-coverage span.complete {
  background: #e7f5ed;
  border-color: #9dccb1;
  color: #205f41;
}

.dispatch-hub-v0 .technician-writeup-review-form .technician-writeup-return-field textarea {
  border-color: #cf8e80;
  min-height: 88px;
}

.dispatch-hub-v0 .technician-writeup-review-actions {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
}

.dispatch-hub-v0 .technician-writeup-review-actions button {
  min-height: 44px;
}

.dispatch-hub-v0 .technician-writeup-review-actions .danger-button {
  background: #fff0ed;
  border: 1px solid #c97e70;
  border-radius: 3px;
  color: #842f22;
  cursor: pointer;
  font-weight: 900;
  padding: 8px 12px;
}

.dispatch-hub-v0 .technician-writeup-review-actions .danger-button:hover {
  background: #fbe1dc;
}

.dispatch-hub-v0 .service-writeup-report-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.dispatch-hub-v0 .service-writeup-report-controls {
  align-items: end;
  display: grid;
  gap: 8px;
  justify-items: end;
  min-width: min(360px, 100%);
}

.dispatch-hub-v0 .service-writeup-layout-picker {
  display: grid;
  gap: 4px;
  width: min(360px, 100%);
}

.dispatch-hub-v0 .service-writeup-layout-picker > span {
  color: #284c59;
  font-size: 12px;
  font-weight: 800;
}

.dispatch-hub-v0 .service-writeup-layout-picker select {
  width: 100%;
}

.dispatch-hub-v0 .service-writeup-layout-picker small {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.35;
}

.dispatch-hub-v0 .service-writeup-coverage {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.dispatch-hub-v0 .service-writeup-coverage span {
  background: #f5f7f8;
  border: 1px solid #ccd7dc;
  border-radius: 999px;
  color: #62757d;
  font-size: 11px;
  padding: 4px 8px;
}

.dispatch-hub-v0 .service-writeup-coverage span.complete {
  background: #e8f5ef;
  border-color: #9fcdb8;
  color: #245f49;
}

.dispatch-hub-v0 .dispatch-hub-writeup-form textarea {
  font-family: inherit;
  line-height: 1.5;
  min-height: 360px;
  resize: vertical;
}

.dispatch-hub-v0 .service-writeup-photo-head h5 {
  color: #173d47;
  font-size: 14px;
  margin: 0;
}

.dispatch-hub-v0 .service-evidence-list,
.tech-evidence-list {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}

.dispatch-hub-v0 .service-evidence-group,
.tech-evidence-group {
  background: #fbfdfd;
  border: 1px solid #bfd4d5;
  border-left: 4px solid #2d7b78;
  border-radius: 6px;
  display: grid;
  gap: 10px;
  padding: 13px;
}

.dispatch-hub-v0 .service-evidence-group > header,
.tech-evidence-group > header {
  align-items: start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.dispatch-hub-v0 .service-evidence-group > header > div {
  display: grid;
  gap: 3px;
}

.dispatch-hub-v0 .service-evidence-group > header strong,
.tech-evidence-group > header strong {
  color: #154e55;
  font-size: 14px;
}

.dispatch-hub-v0 .service-evidence-group > header span,
.dispatch-hub-v0 .service-evidence-group > header small,
.tech-evidence-group > header span,
.tech-evidence-group > small {
  color: #60747b;
  font-size: 11px;
}

.dispatch-hub-v0 .service-evidence-group > p,
.tech-evidence-group > p {
  background: #eef6f5;
  border-radius: 4px;
  color: #243f49;
  font-size: 13px;
  line-height: 1.5;
  margin: 0;
  padding: 9px 10px;
}

.dispatch-hub-v0 .service-evidence-wizard,
.service-evidence-wizard {
  background: #f1f7f6;
  border: 1px solid #a9cfcb;
  border-top: 4px solid #2d7b78;
  border-radius: 6px;
  display: grid;
  gap: 14px;
  padding: 14px;
}

.service-evidence-wizard-head {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.service-evidence-wizard-head > span {
  background: #123f4a;
  border-radius: 999px;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.04em;
  padding: 6px 10px;
  text-transform: uppercase;
}

.service-evidence-wizard-head > strong {
  color: #194e55;
  font-size: 13px;
}

.service-evidence-step {
  display: grid;
  gap: 7px;
}

.service-evidence-step > span {
  align-items: center;
  color: #284f59;
  display: flex;
  font-size: 12px;
  font-weight: 900;
  gap: 7px;
}

.service-evidence-step > span > b {
  align-items: center;
  background: #2d7b78;
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  font-size: 11px;
  height: 22px;
  justify-content: center;
  width: 22px;
}

.service-evidence-step > small {
  color: #566f77;
  font-size: 11px;
  line-height: 1.4;
}

.service-evidence-step textarea {
  min-height: 90px;
  resize: vertical;
}

.dispatch-hub-v0 .service-writeup-photo-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.dispatch-hub-v0 .service-writeup-photo-card {
  background: #f5f8f9;
  border: 1px solid #d4e0e4;
  border-radius: 8px;
  display: grid;
  gap: 8px;
  overflow: hidden;
  padding: 8px;
}

.dispatch-hub-v0 .service-writeup-photo-card img,
.dispatch-hub-v0 .service-writeup-photo-missing {
  aspect-ratio: 4 / 3;
  background: #dfe8eb;
  border-radius: 5px;
  display: grid;
  object-fit: cover;
  place-items: center;
  width: 100%;
}

.dispatch-hub-v0 .service-writeup-photo-card > div {
  display: grid;
  gap: 3px;
}

.dispatch-hub-v0 .service-writeup-photo-card .danger {
  justify-self: end;
}

.dispatch-hub-v0 .dispatch-process-panel {
  display: grid;
  gap: 14px;
}

.dispatch-hub-v0 .dispatch-process-current {
  background: #f1f8f7;
  border-color: #bcd9d5;
}

.dispatch-hub-v0 .tech-assignment-summary {
  background: #f3f7f8;
  border-radius: 6px;
  line-height: 1.45;
  padding: 10px;
}

.dispatch-hub-v0 .tech-assignment-resources {
  align-items: stretch;
  flex-wrap: wrap;
}

.dispatch-hub-v0 .tech-resource-link {
  background: #e6f5f2;
  border: 1px solid #a9d4ce;
  border-radius: 999px;
  color: #0a625f;
  font-size: 12px;
  font-weight: 800;
  padding: 7px 10px;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .dispatch-hub-v0 .app-shell {
    grid-template-columns: 210px minmax(0, 1fr);
  }

  .dispatch-hub-v0 .dispatch-hub-job-context {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .dispatch-hub-v0 .app-shell {
    display: block;
  }

  .dispatch-hub-v0 .sidebar {
    padding: 14px;
  }

  .dispatch-hub-v0 .nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dispatch-hub-v0 .main {
    padding: 14px;
  }

  .dispatch-hub-v0 .dispatch-hub-job-head {
    display: grid;
  }

  .dispatch-hub-v0 .service-writeup-intro,
  .dispatch-hub-v0 .service-writeup-form-footer,
  .dispatch-hub-v0 .service-writeup-photo-head,
  .dispatch-hub-v0 .service-evidence-group > header,
  .dispatch-hub-v0 .service-evidence-wizard-head {
    align-items: stretch;
    display: grid;
  }

  .dispatch-hub-v0 .service-writeup-report-actions {
    justify-content: flex-start;
  }

  .dispatch-hub-v0 .service-writeup-report-controls {
    justify-items: stretch;
    min-width: 0;
  }
}

.tech-assignments-shell {
  display: grid;
  gap: 16px;
}

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

.tech-assignments-header h3,
.tech-assignment-group h4 {
  margin: 0;
}

.tech-assignments-header p {
  color: var(--muted);
  margin: 4px 0 0;
}

.tech-assignment-groups {
  display: grid;
  gap: 18px;
}

.tech-assignment-group {
  display: grid;
  gap: 10px;
}

.tech-assignment-group-head {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.tech-assignment-group-head span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.tech-assignment-cards {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.tech-week-view {
  background: #ffffff;
  border: 1px solid #b8d2e6;
  display: grid;
  gap: 10px;
  padding: 10px;
}

.tech-week-view-head {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.tech-week-view-head h4,
.tech-week-view-head p {
  margin: 0;
}

.tech-week-view-head p,
.tech-week-view-head span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.tech-week-grid {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(7, minmax(132px, 1fr));
  overflow-x: auto;
}

.tech-week-day {
  background: #edf6ff;
  border: 1px solid #c9d9e5;
  display: grid;
  grid-template-rows: auto 1fr;
  min-height: 190px;
  min-width: 132px;
}

.tech-week-day.today {
  border-color: #17446e;
}

.tech-week-day-head {
  align-items: center;
  background: #dbeaf6;
  border-bottom: 1px solid #c9d9e5;
  color: #17446e;
  display: grid;
  gap: 2px;
  grid-template-columns: 1fr auto;
  padding: 8px;
}

.tech-week-day-head strong {
  font-size: 15px;
}

.tech-week-day-head span {
  color: #48657a;
  font-size: 12px;
  font-weight: 800;
  grid-column: 1;
}

.tech-week-day-head b {
  align-self: center;
  background: #ffffff;
  border: 1px solid #9eb3c1;
  border-radius: 999px;
  color: #17446e;
  font-size: 12px;
  grid-column: 2;
  grid-row: 1 / span 2;
  justify-self: end;
  min-width: 24px;
  padding: 3px 7px;
  text-align: center;
}

.tech-week-day-body {
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 8px;
}

.tech-week-card {
  background: #ffffff;
  border: 1px solid #9eb3c1;
  color: var(--text);
  display: grid;
  gap: 3px;
  min-height: 92px;
  padding: 8px;
  text-decoration: none;
}

.tech-week-card:hover,
.tech-week-card:focus-visible {
  border-color: #17446e;
  outline: 2px solid rgba(23, 68, 110, 0.2);
}

.tech-week-card-time {
  color: #17446e;
  font-size: 12px;
  font-weight: 900;
}

.tech-week-card strong {
  font-size: 16px;
  line-height: 1.1;
}

.tech-week-card span,
.tech-week-card em {
  color: #48657a;
  font-size: 12px;
  font-style: normal;
}

.tech-assignment-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 9px;
  min-width: 0;
  padding: 12px;
}

.tech-assignment-head,
.tech-assignment-actions,
.tech-assignment-meta {
  align-items: center;
  display: flex;
  gap: 8px;
}

.tech-assignment-head {
  justify-content: space-between;
}

.tech-assignment-head strong {
  font-size: 20px;
  line-height: 1.1;
}

.tech-assignment-subtitle {
  color: var(--text);
  font-weight: 700;
}

.tech-assignment-title,
.tech-week-card-title {
  color: #0b4778;
  font-weight: 800;
}

.tech-assignment-title {
  font-size: 15px;
  line-height: 1.25;
}

.tech-assignment-meta {
  color: var(--muted);
  flex-wrap: wrap;
  font-size: 13px;
}

.tech-assignment-equipment {
  color: #334752;
  font-size: 13px;
  min-height: 20px;
}

.tech-assignment-alert {
  background: #fff4e5;
  border: 1px solid #e4a64f;
  border-radius: 6px;
  color: #5d3900;
  display: grid;
  gap: 4px;
  font-size: 13px;
  padding: 8px;
}

.tech-assignment-alert span {
  color: #73531b;
  font-size: 12px;
}

.tech-assignment-alert p {
  margin: 0;
}

.review-ready-checklist {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.review-ready-checklist span {
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 8px;
}

.review-ready-checklist .ready {
  background: #e7f5ee;
  color: #16603c;
}

.review-ready-checklist .missing {
  background: #fff4e5;
  color: #7a4300;
}

.review-queue-filter-row {
  align-items: end;
  background: #e8f4ff;
  border: 1px solid #b9d8ef;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding: 10px;
}

.review-queue-filter-row label {
  display: grid;
  flex: 1 1 360px;
  gap: 5px;
}

.review-queue-filter-row span {
  color: #17446e;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.review-queue-filter-row input {
  border: 1px solid #9eb3c1;
  font: inherit;
  min-height: 34px;
  padding: 7px 9px;
}

.review-queue-filter-row small {
  color: #516677;
  font-weight: 800;
  min-width: 130px;
  padding-bottom: 8px;
}

.tech-assignment-status-filters {
  display: inline-flex;
  flex: 0 1 auto;
  flex-wrap: wrap;
  gap: 4px;
  padding-bottom: 4px;
}

.tech-assignment-status-filters button {
  background: #ffffff;
  border: 1px solid #9eb3c1;
  color: #17446e;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  min-height: 34px;
  padding: 6px 10px;
}

.tech-assignment-status-filters button.active {
  background: #17446e;
  border-color: #17446e;
  color: #ffffff;
}

[data-review-queue-card].filtered-out {
  display: none;
}

[data-tech-assignment-card].filtered-out {
  display: none;
}

[data-tech-week-empty][hidden] {
  display: none;
}

.billing-handoff-panel {
  max-width: 620px;
}

.billing-handoff-summary {
  background: #eef6ff;
  border: 1px solid #b8d2e6;
  display: grid;
  gap: 3px;
  padding: 8px;
}

.billing-handoff-summary strong {
  color: #123d69;
  font-size: 18px;
}

.billing-handoff-form {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
}

.billing-handoff-form label {
  display: grid;
  gap: 5px;
}

.billing-handoff-form .wide,
.billing-handoff-form .billing-handoff-hint,
.billing-handoff-form .wintac-modal-actions {
  grid-column: 1 / -1;
}

.billing-handoff-form span {
  color: #17446e;
  font-weight: 800;
}

.billing-handoff-form input,
.billing-handoff-form textarea {
  border: 1px solid #9eb3c1;
  font: inherit;
  min-height: 32px;
  padding: 6px 8px;
}

.billing-handoff-hint {
  color: #475866;
  font-size: 13px;
}

.tech-assignment-actions {
  justify-content: space-between;
}

.tech-assignment-open {
  min-height: 34px;
  padding: 7px 11px;
  text-decoration: none;
}

@media (max-width: 960px) {
  .sidebar {
    grid-template-columns: 1fr;
    position: static;
  }

  .brand,
  .user-switcher {
    min-height: auto;
  }

  .user-pill {
    grid-template-columns: 1fr;
  }

  .user-logout-button {
    width: 100%;
  }

  .nav-item {
    min-width: 50%;
  }

  .wip-writer-browser {
    position: static;
  }

  .checklist-library-layout,
  .checklist-item-head {
    grid-template-columns: 1fr;
  }

  .checklist-library-sidebar {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .wintac-form-top,
  .wintac-work-order-grid,
  .wintac-job-columns,
  .wintac-schedule-row {
    grid-template-columns: 1fr;
  }

  .wintac-form-actions {
    padding-left: 0;
  }

  .tech-assignments-header,
  .tech-assignment-head,
  .tech-assignment-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .tech-week-grid {
    grid-template-columns: repeat(7, minmax(180px, 1fr));
  }
}

@media (max-width: 768px) {
  .tool-button,
  .primary-button,
  .primary-link-button,
  .user-logout-button,
  .sidebar-action {
    min-height: 44px;
  }

  .tech-assignments-header .tool-button,
  .tech-assignment-actions .tool-button,
  .tech-assignment-actions .primary-button {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    margin-top: 12px;
    min-height: 44px;
    width: 100%;
  }

  .tech-assignment-actions {
    gap: 12px;
  }

  .tech-assignment-open {
    min-height: 44px;
  }
}

/* Technician 3C+R office review inbox and unified job activity. */
.dispatch-hub-v0 .nav-item-with-badge {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.dispatch-hub-v0 .review-inbox-badge {
  align-items: center;
  background: #c91425;
  border: 2px solid #fff;
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(100, 7, 16, 0.25);
  color: #fff;
  display: inline-flex;
  font-size: 11px;
  font-weight: 800;
  justify-content: center;
  line-height: 1;
  min-height: 25px;
  min-width: 25px;
  padding: 0 6px;
}

/* V2 Items, Materials, task bundles, and local billing handoff. */
.dispatch-hub-v0 .items-billing-workspace,
.dispatch-hub-v0 .job-items-billing-panel {
  display: grid;
  gap: 18px;
}

.dispatch-hub-v0 .items-billing-mode-toggles {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dispatch-hub-v0 .items-billing-mode-toggles button {
  align-items: center;
  background: #fff5f5;
  border: 2px solid #c91425;
  border-radius: 12px;
  color: #9f1020;
  cursor: pointer;
  display: flex;
  font: inherit;
  font-size: 15px;
  font-weight: 850;
  justify-content: center;
  min-height: 58px;
  padding: 10px 16px;
}

.dispatch-hub-v0 .items-billing-mode-toggles button:hover,
.dispatch-hub-v0 .items-billing-mode-toggles button.active {
  background: #c91425;
  color: #fff;
}

.dispatch-hub-v0 .items-billing-mode-toggles button span {
  background: currentColor;
  border-radius: 999px;
  color: #fff;
  font-size: 11px;
  margin-left: 8px;
  min-width: 22px;
  padding: 3px 6px;
}

.dispatch-hub-v0 .items-billing-mode-toggles button.active span {
  background: #fff;
  color: #c91425;
}

.dispatch-hub-v0 .items-billing-filter {
  align-items: end;
  background: #f8fafc;
  border: 1px solid #dfe5ec;
  border-radius: 12px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(260px, 1fr) minmax(150px, auto) minmax(130px, auto) auto;
  padding: 14px;
}

.dispatch-hub-v0 .items-category-strip,
.dispatch-hub-v0 .job-line-facts,
.dispatch-hub-v0 .billing-ready-facts,
.dispatch-hub-v0 .task-bundle-facts,
.dispatch-hub-v0 .items-admin-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dispatch-hub-v0 .items-category-strip span,
.dispatch-hub-v0 .job-line-facts span,
.dispatch-hub-v0 .billing-ready-facts span,
.dispatch-hub-v0 .task-bundle-facts span {
  background: #f3f5f8;
  border-radius: 999px;
  color: #435061;
  font-size: 12px;
  padding: 6px 10px;
}

.dispatch-hub-v0 .items-admin-editor,
.dispatch-hub-v0 .task-bundle-admin,
.dispatch-hub-v0 .job-line-workspace,
.dispatch-hub-v0 .job-task-bundles,
.dispatch-hub-v0 .job-billing-handoff {
  background: #fff;
  border: 1px solid #dfe5ec;
  border-radius: 14px;
  padding: 16px;
}

.dispatch-hub-v0 .items-admin-editor > summary {
  color: #9f1020;
  cursor: pointer;
  font-weight: 850;
  padding: 4px 0;
}

.dispatch-hub-v0 .items-admin-editor form,
.dispatch-hub-v0 .task-bundle-admin > form,
.dispatch-hub-v0 .task-bundle-maintenance-columns form {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

.dispatch-hub-v0 .task-bundle-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.dispatch-hub-v0 .task-bundle-card,
.dispatch-hub-v0 .billing-ready-job,
.dispatch-hub-v0 .job-line-card,
.dispatch-hub-v0 .locked-billing-snapshot {
  background: #fff;
  border: 1px solid #dfe5ec;
  border-radius: 13px;
  display: grid;
  gap: 10px;
  padding: 15px;
}

.dispatch-hub-v0 .task-bundle-card.selected,
.dispatch-hub-v0 .billing-ready-job.ready_to_bill,
.dispatch-hub-v0 .locked-billing-snapshot {
  border-color: #c91425;
  box-shadow: 0 0 0 2px rgba(201, 20, 37, 0.08);
}

.dispatch-hub-v0 .task-bundle-card header,
.dispatch-hub-v0 .billing-ready-job header,
.dispatch-hub-v0 .job-line-card header,
.dispatch-hub-v0 .locked-billing-snapshot header,
.dispatch-hub-v0 .job-items-billing-head {
  align-items: flex-start;
  display: flex;
  gap: 14px;
  justify-content: space-between;
}

.dispatch-hub-v0 .task-bundle-card h4,
.dispatch-hub-v0 .billing-ready-job h4 {
  margin: 3px 0 0;
}

.dispatch-hub-v0 .job-line-card header > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.dispatch-hub-v0 .job-line-card header strong {
  overflow-wrap: anywhere;
}

.dispatch-hub-v0 .task-bundle-card ol {
  color: #435061;
  font-size: 13px;
  margin: 0;
  padding-left: 20px;
}

.dispatch-hub-v0 .task-bundle-maintenance-columns {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 18px;
}

.dispatch-hub-v0 .task-bundle-maintenance-columns > section {
  background: #f8fafc;
  border-radius: 12px;
  padding: 14px;
}

.dispatch-hub-v0 .task-maintenance-row,
.dispatch-hub-v0 .billing-snapshot-lines > div,
.dispatch-hub-v0 .job-task-bundle-list article,
.dispatch-hub-v0 .voided-billing-history article {
  align-items: center;
  border-bottom: 1px solid #e6ebf1;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 9px 0;
}

.dispatch-hub-v0 .billing-queue-summary {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dispatch-hub-v0 .billing-queue-summary article {
  background: #fff;
  border: 1px solid #dfe5ec;
  border-radius: 12px;
  display: grid;
  gap: 4px;
  padding: 15px;
}

.dispatch-hub-v0 .billing-queue-summary article.pending {
  background: #fff5f5;
  border-color: #c91425;
}

.dispatch-hub-v0 .billing-queue-summary strong {
  color: #9f1020;
  font-size: 26px;
}

.dispatch-hub-v0 .billing-ready-list,
.dispatch-hub-v0 .job-line-list,
.dispatch-hub-v0 .job-task-bundle-list,
.dispatch-hub-v0 .billing-snapshot-lines {
  display: grid;
  gap: 10px;
}

.dispatch-hub-v0 .billing-ready-state {
  background: #c91425;
  border-radius: 999px;
  color: #fff;
  font-size: 11px;
  font-weight: 850;
  padding: 6px 10px;
  text-transform: uppercase;
}

.dispatch-hub-v0 .job-items-line-form,
.dispatch-hub-v0 .create-billing-snapshot,
.dispatch-hub-v0 .locked-billing-snapshot form {
  border-top: 1px solid #e6ebf1;
  display: grid;
  gap: 12px;
  margin-top: 14px;
  padding-top: 14px;
}

.dispatch-hub-v0 .voided-billing-history {
  margin-top: 14px;
}

.dispatch-hub-v0 .voided-billing-history summary {
  cursor: pointer;
  font-weight: 800;
}

@media (max-width: 860px) {
  .dispatch-hub-v0 .items-billing-mode-toggles,
  .dispatch-hub-v0 .billing-queue-summary,
  .dispatch-hub-v0 .task-bundle-maintenance-columns {
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 .items-billing-filter {
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 .job-items-billing-head,
  .dispatch-hub-v0 .billing-ready-job header,
  .dispatch-hub-v0 .job-line-card header,
  .dispatch-hub-v0 .locked-billing-snapshot header {
    align-items: stretch;
    flex-direction: column;
  }
}

.dispatch-hub-v0 .review-inbox-shell {
  display: grid;
  gap: 18px;
}

.dispatch-hub-v0 .review-inbox-header,
.dispatch-hub-v0 .review-inbox-header > div,
.dispatch-hub-v0 .review-inbox-card-head,
.dispatch-hub-v0 .job-activity-head,
.dispatch-hub-v0 .job-activity-event-head {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  gap: 16px;
}

.dispatch-hub-v0 .review-inbox-header > div {
  justify-content: flex-start;
}

.dispatch-hub-v0 .review-inbox-header h3,
.dispatch-hub-v0 .review-inbox-header p,
.dispatch-hub-v0 .review-inbox-card h4,
.dispatch-hub-v0 .review-inbox-card p,
.dispatch-hub-v0 .job-activity-head h4,
.dispatch-hub-v0 .job-activity-head p,
.dispatch-hub-v0 .job-activity-event p {
  margin: 0;
}

.dispatch-hub-v0 .review-inbox-total {
  align-items: center;
  background: #c91425;
  border-radius: 14px;
  color: #fff;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 24px;
  font-weight: 850;
  justify-content: center;
  min-height: 54px;
  min-width: 54px;
  padding: 6px 10px;
}

.dispatch-hub-v0 .review-inbox-search {
  align-items: end;
  background: #edf6fb;
  border: 1px solid #bed7e5;
  border-radius: 12px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(240px, 1fr) auto auto;
  padding: 14px;
}

.dispatch-hub-v0 .review-inbox-search label {
  display: grid;
  gap: 6px;
}

.dispatch-hub-v0 .review-inbox-search label > span {
  color: #315162;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.dispatch-hub-v0 .review-inbox-list {
  display: grid;
  gap: 14px;
}

.dispatch-hub-v0 .review-inbox-card {
  background: #fff;
  border: 1px solid #b8cdd9;
  border-left: 6px solid #c91425;
  border-radius: 13px;
  box-shadow: 0 8px 20px rgba(18, 56, 77, 0.08);
  display: grid;
  gap: 14px;
  padding: 18px;
}

.dispatch-hub-v0 .review-inbox-card.filtered-out {
  display: none;
}

.dispatch-hub-v0 .review-inbox-job-number {
  color: #006b9b;
  display: block;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: 0.03em;
  margin-bottom: 3px;
  text-transform: uppercase;
}

.dispatch-hub-v0 .review-inbox-card h4 {
  color: #142f3d;
  font-size: 19px;
}

.dispatch-hub-v0 .review-inbox-card-head p,
.dispatch-hub-v0 .review-inbox-header p,
.dispatch-hub-v0 .job-activity-head p {
  color: #547181;
  margin-top: 4px;
}

.dispatch-hub-v0 .review-inbox-wait {
  align-items: flex-end;
  display: grid;
  flex: 0 0 auto;
  gap: 5px;
  justify-items: end;
}

.dispatch-hub-v0 .review-inbox-wait strong {
  color: #8c1b26;
  font-size: 12px;
}

.dispatch-hub-v0 .review-inbox-meta {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.dispatch-hub-v0 .review-inbox-meta > span {
  background: #f3f7f9;
  border-radius: 8px;
  color: #294957;
  display: grid;
  font-size: 13px;
  gap: 3px;
  padding: 9px 10px;
}

.dispatch-hub-v0 .review-inbox-meta b {
  color: #617a87;
  font-size: 10px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.dispatch-hub-v0 .review-inbox-meta .review-inbox-evidence.has-evidence {
  background: #e7f6ec;
  color: #175b33;
}

.dispatch-hub-v0 .review-inbox-meta .review-inbox-evidence.missing-evidence {
  background: #fff1f1;
  color: #8c1b26;
}

.dispatch-hub-v0 .review-inbox-writeup {
  background: #f8fafb;
  border: 1px solid #d7e3e9;
  border-radius: 9px;
  display: grid;
  gap: 5px;
  padding: 12px 14px;
}

.dispatch-hub-v0 .review-inbox-writeup p {
  color: #3d5967;
  line-height: 1.5;
}

.dispatch-hub-v0 .review-inbox-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  justify-content: flex-end;
}

.dispatch-hub-v0 .review-inbox-actions .primary-button {
  margin-right: auto;
}

.dispatch-hub-v0 .review-inbox-empty {
  background: #f3faf6;
  border: 1px dashed #94bea4;
  border-radius: 13px;
  color: #28543a;
  padding: 32px;
  text-align: center;
}

.dispatch-hub-v0 .review-inbox-empty p {
  margin: 6px 0 0;
}

.dispatch-hub-v0 .review-inbox-pagination {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.dispatch-hub-v0 .review-inbox-pagination span {
  color: #547181;
  margin-right: auto;
}

.dispatch-hub-v0 .job-activity-panel {
  display: grid;
  gap: 18px;
  padding: 18px 20px 26px;
}

.dispatch-hub-v0 .job-activity-head {
  border-bottom: 1px solid #d5e1e7;
  padding-bottom: 14px;
}

.dispatch-hub-v0 .job-activity-head > span {
  background: #edf6fb;
  border-radius: 999px;
  color: #315c72;
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 800;
  padding: 6px 10px;
}

.dispatch-hub-v0 .job-activity-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.dispatch-hub-v0 .job-activity-event {
  display: grid;
  gap: 13px;
  grid-template-columns: 18px minmax(0, 1fr);
  padding-bottom: 18px;
  position: relative;
}

.dispatch-hub-v0 .job-activity-event:not(:last-child)::before {
  background: #c8d9e2;
  content: "";
  left: 8px;
  position: absolute;
  top: 16px;
  bottom: -1px;
  width: 2px;
}

.dispatch-hub-v0 .job-activity-marker {
  background: #658392;
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #658392;
  height: 12px;
  margin-top: 7px;
  width: 12px;
  z-index: 1;
}

.dispatch-hub-v0 .job-activity-event.success .job-activity-marker {
  background: #258a4f;
  box-shadow: 0 0 0 2px #258a4f;
}

.dispatch-hub-v0 .job-activity-event.attention .job-activity-marker {
  background: #c91425;
  box-shadow: 0 0 0 2px #c91425;
}

.dispatch-hub-v0 .job-activity-event.schedule .job-activity-marker {
  background: #0074a8;
  box-shadow: 0 0 0 2px #0074a8;
}

.dispatch-hub-v0 .job-activity-event.evidence .job-activity-marker,
.dispatch-hub-v0 .job-activity-event.writeup .job-activity-marker {
  background: #8c4fb5;
  box-shadow: 0 0 0 2px #8c4fb5;
}

.dispatch-hub-v0 .job-activity-event article {
  background: #fff;
  border: 1px solid #d2dfe5;
  border-radius: 10px;
  display: grid;
  gap: 9px;
  padding: 12px 14px;
}

.dispatch-hub-v0 .job-activity-event-head > div {
  display: grid;
  gap: 3px;
}

.dispatch-hub-v0 .job-activity-event-head time {
  color: #627b88;
  flex: 0 0 auto;
  font-size: 12px;
}

.dispatch-hub-v0 .job-activity-kind {
  color: #006b9b;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.dispatch-hub-v0 .job-activity-transition,
.dispatch-hub-v0 .job-activity-byline {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.dispatch-hub-v0 .job-activity-transition span {
  background: #eaf2f6;
  border-radius: 999px;
  color: #294957;
  font-size: 11px;
  font-weight: 750;
  padding: 4px 8px;
}

.dispatch-hub-v0 .job-activity-notes {
  color: #3d5967;
  line-height: 1.45;
}

.dispatch-hub-v0 .job-activity-byline {
  color: #6b808a;
  font-size: 11px;
}

.dispatch-hub-v0 .job-activity-byline span:not(:last-child)::after {
  content: "·";
  margin-left: 7px;
}

@media (max-width: 900px) {
  .dispatch-hub-v0 .review-inbox-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .dispatch-hub-v0 .review-inbox-header,
  .dispatch-hub-v0 .review-inbox-card-head,
  .dispatch-hub-v0 .job-activity-head,
  .dispatch-hub-v0 .job-activity-event-head {
    display: grid;
  }

  .dispatch-hub-v0 .review-inbox-search,
  .dispatch-hub-v0 .review-inbox-meta {
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 .review-inbox-wait {
    align-items: start;
    justify-items: start;
  }

  .dispatch-hub-v0 .review-inbox-actions,
  .dispatch-hub-v0 .review-inbox-pagination {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 .review-inbox-actions .primary-button,
  .dispatch-hub-v0 .review-inbox-pagination span {
    margin: 0;
  }
}

/* Contracting jobs and job-level warranty tracking */
.dispatch-hub-v0 :is(#sites-equipment, #warranty-intake) .site-completeness-toolbar {
  background: #fffafa;
  border: 1px solid #e5b7b4;
  border-radius: 10px;
  display: grid;
  gap: 10px;
  grid-column: 1 / -1;
  padding: 12px;
}

.dispatch-hub-v0 :is(#sites-equipment, #warranty-intake) .site-completeness-heading {
  align-items: end;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.dispatch-hub-v0 :is(#sites-equipment, #warranty-intake) .site-completeness-heading > div {
  display: grid;
  gap: 3px;
}

.dispatch-hub-v0 :is(#sites-equipment, #warranty-intake) .site-completeness-heading strong {
  color: #6f1d1b;
  font-size: 17px;
}

.dispatch-hub-v0 :is(#sites-equipment, #warranty-intake) .site-completeness-heading span {
  color: #7b4a48;
  font-size: 12px;
  font-weight: 700;
}

.dispatch-hub-v0 :is(#sites-equipment, #warranty-intake) .site-completeness-toggles {
  display: grid;
  gap: 9px;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.dispatch-hub-v0 :is(#sites-equipment, #warranty-intake) .contracting-warranty-toggle {
  align-items: center;
  background: #fff7f7;
  border: 2px solid #b92f2a;
  border-radius: 10px;
  color: #922723;
  cursor: pointer;
  display: flex;
  font-weight: 900;
  gap: 8px;
  justify-content: space-between;
  min-height: 58px;
  padding: 10px 12px;
  text-align: left;
}

.dispatch-hub-v0 :is(#sites-equipment, #warranty-intake) .contracting-warranty-toggle > strong {
  align-items: center;
  background: #b92f2a;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 14px;
  justify-content: center;
  min-height: 28px;
  min-width: 28px;
  padding: 3px 7px;
}

.dispatch-hub-v0 :is(#sites-equipment, #warranty-intake) .contracting-warranty-toggle[aria-pressed="true"] {
  background: #b92f2a;
  box-shadow: 0 4px 0 #7f1d1d;
  color: #fff;
}

.dispatch-hub-v0 :is(#sites-equipment, #warranty-intake) .contracting-warranty-toggle[aria-pressed="true"] > strong {
  background: #fff;
  color: #8f201d;
}

.dispatch-hub-v0 .site-completeness-missing {
  color: #9b211d;
  font-weight: 850;
}

.dispatch-hub-v0 .site-completeness-lock {
  color: #7b4a48;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.dispatch-hub-v0 .site-completeness-notice {
  border-left: 5px solid #b92f2a;
}

.dispatch-hub-v0 #warranty-intake-content {
  display: grid;
  gap: 14px;
}

.dispatch-hub-v0 #aged-backlog-content {
  display: grid;
  gap: 14px;
}

.dispatch-hub-v0 .aged-backlog-controls {
  background: #fffafa;
  border: 1px solid #e5b7b4;
  border-radius: 10px;
  display: grid;
  gap: 14px;
  padding: 14px;
}

.dispatch-hub-v0 .aged-backlog-control-label {
  color: #6f1d1b;
  display: block;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .04em;
  margin-bottom: 7px;
  text-transform: uppercase;
}

.dispatch-hub-v0 .aged-backlog-cohorts {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(105px, 1fr));
}

.dispatch-hub-v0 #aged-backlog .contracting-warranty-toggle {
  align-items: center;
  background: #fff7f7;
  border: 2px solid #b92f2a;
  border-radius: 10px;
  color: #922723;
  cursor: pointer;
  display: flex;
  font-weight: 900;
  gap: 8px;
  justify-content: space-between;
  min-height: 54px;
  padding: 9px 11px;
}

.dispatch-hub-v0 #aged-backlog .contracting-warranty-toggle > strong {
  align-items: center;
  background: #b92f2a;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  justify-content: center;
  min-height: 27px;
  min-width: 27px;
  padding: 3px 7px;
}

.dispatch-hub-v0 #aged-backlog .contracting-warranty-toggle[aria-pressed="true"] {
  background: #b92f2a;
  box-shadow: 0 4px 0 #7f1d1d;
  color: #fff;
}

.dispatch-hub-v0 #aged-backlog .contracting-warranty-toggle[aria-pressed="true"] > strong {
  background: #fff;
  color: #8f201d;
}

.dispatch-hub-v0 .aged-backlog-filter-row {
  align-items: end;
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 390px);
}

.dispatch-hub-v0 .aged-backlog-review-toggles {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.dispatch-hub-v0 .aged-backlog-review-toggles .active {
  background: #6f1d1b;
  border-color: #6f1d1b;
  color: #fff;
}

.dispatch-hub-v0 .aged-backlog-filter-row label {
  display: grid;
  gap: 5px;
}

.dispatch-hub-v0 .aged-backlog-filter-row input {
  min-height: 44px;
}

.dispatch-hub-v0 .aged-backlog-list {
  display: grid;
  gap: 12px;
}

.dispatch-hub-v0 .aged-backlog-card {
  background: #fff;
  border: 1px solid #d7dfe4;
  border-left: 5px solid #b92f2a;
  border-radius: 10px;
  box-shadow: 0 2px 7px rgba(27, 48, 61, .08);
  display: grid;
  gap: 12px;
  padding: 14px 16px;
}

.dispatch-hub-v0 .aged-backlog-card.reviewed {
  border-left-color: #39734f;
}

.dispatch-hub-v0 .aged-backlog-card > header,
.dispatch-hub-v0 .aged-backlog-review-row {
  align-items: center;
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.dispatch-hub-v0 .aged-backlog-card h4,
.dispatch-hub-v0 .aged-backlog-card header p,
.dispatch-hub-v0 .aged-backlog-record-grid p,
.dispatch-hub-v0 .aged-backlog-prior-review p {
  margin: 0;
}

.dispatch-hub-v0 .aged-backlog-card header > div:first-child {
  display: grid;
  gap: 4px;
}

.dispatch-hub-v0 .aged-backlog-card-status {
  align-items: end;
  display: grid;
  flex: 0 0 auto;
  gap: 5px;
  justify-items: end;
}

.dispatch-hub-v0 .aged-backlog-card-status > span:last-child {
  color: #61717b;
  font-size: 12px;
  font-weight: 750;
}

.dispatch-hub-v0 .aged-backlog-record-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 2fr) repeat(2, minmax(180px, 1fr));
}

.dispatch-hub-v0 .aged-backlog-record-grid > div {
  background: #f6f8f9;
  border-radius: 7px;
  display: grid;
  gap: 4px;
  padding: 9px 10px;
}

.dispatch-hub-v0 .aged-backlog-record-grid span,
.dispatch-hub-v0 .aged-backlog-review-form label > span {
  color: #64747d;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.dispatch-hub-v0 .aged-backlog-unreviewed {
  color: #9b211d;
  font-weight: 900;
}

.dispatch-hub-v0 .aged-backlog-prior-review {
  display: grid;
  gap: 3px;
}

.dispatch-hub-v0 .aged-backlog-prior-review strong {
  color: #285e3d;
}

.dispatch-hub-v0 .aged-backlog-prior-review p {
  color: #56676f;
  font-size: 13px;
}

.dispatch-hub-v0 .aged-backlog-review-form {
  background: #fff8f7;
  border: 1px solid #e2b6b2;
  border-radius: 8px;
  display: grid;
  gap: 12px;
  padding: 13px;
}

.dispatch-hub-v0 .aged-backlog-decision-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
}

.dispatch-hub-v0 .aged-backlog-review-form label {
  display: grid;
  gap: 5px;
}

.dispatch-hub-v0 .aged-backlog-review-form textarea {
  min-height: 92px;
  resize: vertical;
}

.dispatch-hub-v0 .aged-backlog-form-guidance {
  color: #7b4a48;
  display: flex;
  flex-wrap: wrap;
  font-size: 12px;
  font-weight: 750;
  gap: 8px 20px;
}

.dispatch-hub-v0 .warranty-intake-guardrail {
  align-items: center;
  background: #fff4f2;
  border: 1px solid #e0aaa6;
  border-left: 5px solid #b92f2a;
  border-radius: 10px;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  padding: 14px 16px;
}

.dispatch-hub-v0 .warranty-intake-guardrail > div {
  display: grid;
  gap: 4px;
}

.dispatch-hub-v0 .warranty-intake-guardrail strong {
  color: #6f1d1b;
  font-size: 17px;
}

.dispatch-hub-v0 .warranty-intake-guardrail p {
  color: #6e4644;
  margin: 0;
}

.dispatch-hub-v0 #warranty-intake .warranty-intake-toolbar {
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
}

.dispatch-hub-v0 #warranty-intake .warranty-intake-toggles {
  grid-template-columns: repeat(3, minmax(150px, 1fr));
}

.dispatch-hub-v0 #warranty-intake .warranty-intake-search {
  align-self: end;
  display: grid;
  gap: 5px;
}

.dispatch-hub-v0 #warranty-intake .warranty-intake-search input {
  min-height: 44px;
}

@media (max-width: 900px) {
  .dispatch-hub-v0 #sites-equipment .site-completeness-toggles,
  .dispatch-hub-v0 #warranty-intake .warranty-intake-toggles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dispatch-hub-v0 #warranty-intake .warranty-intake-toolbar {
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 .aged-backlog-filter-row,
  .dispatch-hub-v0 .aged-backlog-record-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .dispatch-hub-v0 .warranty-intake-guardrail,
  .dispatch-hub-v0 .aged-backlog-card > header,
  .dispatch-hub-v0 .aged-backlog-review-row,
  .dispatch-hub-v0 #sites-equipment .site-completeness-heading {
    align-items: stretch;
    display: grid;
  }

  .dispatch-hub-v0 .aged-backlog-decision-grid {
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 #sites-equipment .site-completeness-toggles,
  .dispatch-hub-v0 #warranty-intake .warranty-intake-toggles {
    grid-template-columns: 1fr;
  }
}

.dispatch-hub-v0 #dispatch-board .contracting-warranty-toolbar {
  background: #fffafa;
  border: 1px solid #e5b7b4;
  border-radius: 10px;
  display: grid;
  gap: 10px;
  padding: 12px;
}

.dispatch-hub-v0 #dispatch-board .contracting-warranty-heading {
  align-items: end;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.dispatch-hub-v0 #dispatch-board .contracting-warranty-heading > div {
  display: grid;
  gap: 3px;
}

.dispatch-hub-v0 #dispatch-board .contracting-warranty-heading strong {
  color: #6f1d1b;
  font-size: 17px;
}

.dispatch-hub-v0 #dispatch-board .contracting-warranty-heading > span {
  color: #7b4a48;
  font-size: 12px;
  font-weight: 700;
}

.dispatch-hub-v0 #dispatch-board .contracting-warranty-toggles {
  display: grid;
  gap: 9px;
  grid-template-columns: repeat(6, minmax(128px, 1fr));
}

.dispatch-hub-v0 #dispatch-board .contracting-warranty-toggle {
  align-items: center;
  background: #fff7f7;
  border: 2px solid #b92f2a;
  border-radius: 10px;
  color: #922723;
  cursor: pointer;
  display: flex;
  font-weight: 900;
  gap: 8px;
  justify-content: space-between;
  min-height: 58px;
  padding: 10px 12px;
  text-align: left;
  transition: background 120ms ease, border-color 120ms ease, box-shadow 120ms ease, color 120ms ease, transform 120ms ease;
}

.dispatch-hub-v0 #dispatch-board .contracting-warranty-toggle:hover {
  background: #fde8e8;
  border-color: #8f201d;
  color: #6f1d1b;
  transform: translateY(-1px);
}

.dispatch-hub-v0 #dispatch-board .contracting-warranty-toggle > span {
  line-height: 1.15;
}

.dispatch-hub-v0 #dispatch-board .contracting-warranty-toggle > strong {
  align-items: center;
  background: #b92f2a;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 14px;
  justify-content: center;
  min-height: 28px;
  min-width: 28px;
  padding: 3px 7px;
}

.dispatch-hub-v0 #dispatch-board .contracting-warranty-toggle.no-count {
  justify-content: center;
  text-align: center;
}

.dispatch-hub-v0 #dispatch-board .contracting-warranty-toggle.active,
.dispatch-hub-v0 #dispatch-board .contracting-warranty-toggle[aria-pressed="true"] {
  background: #b92f2a;
  border-color: #b92f2a;
  box-shadow: 0 4px 0 #7f1d1d;
  color: #fff;
}

.dispatch-hub-v0 #dispatch-board .contracting-warranty-toggle.active > strong,
.dispatch-hub-v0 #dispatch-board .contracting-warranty-toggle[aria-pressed="true"] > strong {
  background: #fff;
  color: #8f201d;
}

.dispatch-hub-v0 #equipment .equipment-service-toolbar {
  background: #fffafa;
  border: 1px solid #e5b7b4;
  border-radius: 10px 10px 0 0;
  display: grid;
  gap: 10px;
  padding: 12px;
}

.dispatch-hub-v0 #equipment .job-scope-row-heading {
  align-items: end;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.dispatch-hub-v0 #equipment .job-scope-row-heading > strong {
  color: #6f1d1b;
  font-size: 17px;
}

.dispatch-hub-v0 #equipment .job-scope-row-heading > span {
  color: #7b4a48;
  font-size: 12px;
  font-weight: 700;
}

.dispatch-hub-v0 #equipment .equipment-service-view-grid {
  display: grid;
  gap: 9px;
  grid-template-columns: repeat(7, minmax(124px, 1fr));
}

.dispatch-hub-v0 #equipment .contracting-warranty-toggle {
  align-items: center;
  background: #fff7f7;
  border: 2px solid #b92f2a;
  border-radius: 10px;
  color: #922723;
  cursor: pointer;
  display: flex;
  font-weight: 900;
  gap: 8px;
  justify-content: space-between;
  min-height: 58px;
  padding: 10px 12px;
  text-align: left;
}

.dispatch-hub-v0 #equipment .contracting-warranty-toggle:hover {
  background: #fde8e8;
  border-color: #8f201d;
  color: #6f1d1b;
}

.dispatch-hub-v0 #equipment .contracting-warranty-toggle > span {
  line-height: 1.15;
}

.dispatch-hub-v0 #equipment .contracting-warranty-toggle > strong {
  align-items: center;
  background: #b92f2a;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 14px;
  justify-content: center;
  min-height: 28px;
  min-width: 28px;
  padding: 3px 7px;
}

.dispatch-hub-v0 #equipment .contracting-warranty-toggle[aria-pressed="true"] {
  background: #b92f2a;
  border-color: #b92f2a;
  box-shadow: 0 4px 0 #7f1d1d;
  color: #fff;
}

.dispatch-hub-v0 #equipment .contracting-warranty-toggle[aria-pressed="true"] > strong {
  background: #fff;
  color: #8f201d;
}

.dispatch-hub-v0 #service-agreements .service-agreement-workspace-toolbar {
  margin-bottom: 14px;
}

.dispatch-hub-v0 #service-agreements .service-agreement-workspace-grid {
  display: grid;
  gap: 9px;
  grid-template-columns: repeat(5, minmax(145px, 1fr));
}

.dispatch-hub-v0 #service-agreements .contracting-warranty-toggle {
  align-items: center;
  background: #fff7f7;
  border: 2px solid #b92f2a;
  border-radius: 10px;
  color: #922723;
  cursor: pointer;
  display: flex;
  font-weight: 900;
  gap: 8px;
  justify-content: space-between;
  min-height: 58px;
  padding: 10px 12px;
  text-align: left;
}

.dispatch-hub-v0 #service-agreements .contracting-warranty-toggle:hover {
  background: #fde8e8;
  border-color: #8f201d;
  color: #6f1d1b;
}

.dispatch-hub-v0 #service-agreements .contracting-warranty-toggle > strong {
  align-items: center;
  background: #b92f2a;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 14px;
  justify-content: center;
  min-height: 28px;
  min-width: 28px;
  padding: 3px 7px;
}

.dispatch-hub-v0 #service-agreements .contracting-warranty-toggle[aria-pressed="true"] {
  background: #b92f2a;
  border-color: #b92f2a;
  box-shadow: 0 4px 0 #7f1d1d;
  color: #fff;
}

.dispatch-hub-v0 #service-agreements .contracting-warranty-toggle[aria-pressed="true"] > strong {
  background: #fff;
  color: #8f201d;
}

.dispatch-hub-v0 #service-agreements .service-agreement-schedule-filters {
  align-items: end;
  grid-template-columns: minmax(180px, 260px) minmax(100px, 140px) minmax(220px, 1fr);
}

.dispatch-hub-v0 .agreement-coverage-warnings {
  display: grid;
  gap: 9px;
}

.dispatch-hub-v0 .agreement-coverage-warning {
  background: #fff4f2;
  border: 1px solid #e0aaa6;
  border-left: 5px solid #b92f2a;
  border-radius: 8px;
  display: grid;
  gap: 4px;
  padding: 10px 12px;
}

.dispatch-hub-v0 .agreement-coverage-warning > strong {
  color: #7f1d1d;
}

.dispatch-hub-v0 #equipment .equipment-directory-filters {
  border-top: 0;
}

@media (max-width: 1180px) {
  .dispatch-hub-v0 #equipment .equipment-service-view-grid {
    grid-template-columns: repeat(4, minmax(132px, 1fr));
  }

  .dispatch-hub-v0 #equipment .equipment-directory-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .dispatch-hub-v0 #service-agreements .service-agreement-workspace-grid {
    grid-template-columns: repeat(2, minmax(150px, 1fr));
  }
}

@media (max-width: 760px) {
  .dispatch-hub-v0 #equipment .equipment-service-view-grid,
  .dispatch-hub-v0 #equipment .equipment-directory-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dispatch-hub-v0 #service-agreements .service-agreement-schedule-filters {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  .dispatch-hub-v0 #equipment .job-scope-row-heading {
    align-items: start;
    display: grid;
    gap: 3px;
  }

  .dispatch-hub-v0 #equipment .equipment-service-view-grid,
  .dispatch-hub-v0 #equipment .equipment-directory-filters {
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 #service-agreements .service-agreement-workspace-grid {
    grid-template-columns: 1fr;
  }
}

.dispatch-hub-v0 .job-warranty-cell {
  display: grid;
  gap: 2px;
  line-height: 1.2;
}

.dispatch-hub-v0 .job-warranty-cell > span {
  font-size: 11px;
  font-weight: 800;
}

.dispatch-hub-v0 .job-warranty-cell.in_warranty,
.dispatch-hub-v0 .warranty-summary.in_warranty {
  color: #17633a;
}

.dispatch-hub-v0 .job-warranty-cell.expiring,
.dispatch-hub-v0 .warranty-summary.expiring {
  color: #91520a;
}

.dispatch-hub-v0 .job-warranty-cell.expired,
.dispatch-hub-v0 .job-warranty-cell.needs_date,
.dispatch-hub-v0 .warranty-summary.expired,
.dispatch-hub-v0 .warranty-summary.needs_date {
  color: #9f2b2b;
}

.dispatch-hub-v0 .job-warranty-cell.ongoing,
.dispatch-hub-v0 .warranty-summary.ongoing {
  color: #245b7a;
}

.dispatch-hub-v0 .contracting-warranty-editor {
  align-items: end;
  background: #fff7f7;
  border: 1px solid #e5b7b4;
  border-left: 5px solid #b92f2a;
  border-radius: 8px;
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(210px, 280px) minmax(0, 1fr);
  padding: 12px;
}

.dispatch-hub-v0 .contracting-warranty-editor > div {
  display: grid;
  gap: 4px;
  padding-bottom: 5px;
}

.dispatch-hub-v0 .contracting-warranty-editor > div strong {
  color: #7f1d1d;
}

.dispatch-hub-v0 .contracting-warranty-editor > div span {
  color: #76514f;
  font-size: 12px;
}

.dispatch-hub-v0 .work-order-operational-editor {
  background: #f5f9fc;
  border: 1px solid #b9cedc;
  border-left: 5px solid #2f6f95;
  border-radius: 8px;
  display: grid;
  gap: 12px;
  padding: 12px;
}

.dispatch-hub-v0 .work-order-operational-heading,
.dispatch-hub-v0 .work-order-customer-feedback {
  display: grid;
  gap: 8px;
}

.dispatch-hub-v0 .work-order-operational-heading span {
  color: #526b7a;
  font-size: 12px;
}

.dispatch-hub-v0 .warranty-summary {
  font-weight: 800;
}

@media (max-width: 720px) {
  .dispatch-hub-v0 #dispatch-board .contracting-warranty-heading {
    align-items: start;
    display: grid;
  }

  .dispatch-hub-v0 .contracting-warranty-editor {
    grid-template-columns: 1fr;
  }
}

.dispatch-hub-v0 #dispatch-board .contracting-tracker-view-groups,
.dispatch-hub-v0 #dispatch-board .contracting-tracker-view-group {
  display: grid;
  gap: 7px;
}

.dispatch-hub-v0 #dispatch-board .contracting-tracker-view-group > strong {
  color: #7b4a48;
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dispatch-hub-v0 #dispatch-board .contracting-tracker-view-group.warranty {
  border-top: 1px solid #efd2d0;
  padding-top: 9px;
}

.dispatch-hub-v0 #dispatch-board .contracting-progress-dashboard {
  background: #f7fafb;
  border: 1px solid #c9d9df;
  border-radius: 10px;
  display: grid;
  gap: 12px;
  padding: 14px;
}

.dispatch-hub-v0 .contracting-progress-dashboard-head,
.dispatch-hub-v0 .contracting-progress-overview-head,
.dispatch-hub-v0 .contracting-progress-section-head,
.dispatch-hub-v0 .contracting-progress-card-topline,
.dispatch-hub-v0 .contracting-milestone-status-line,
.dispatch-hub-v0 .contracting-progress-history-head {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.dispatch-hub-v0 .contracting-progress-dashboard-head > div,
.dispatch-hub-v0 .contracting-progress-section-head > div {
  display: grid;
  gap: 2px;
}

.dispatch-hub-v0 .contracting-progress-dashboard-head h3,
.dispatch-hub-v0 .contracting-progress-dashboard-head span,
.dispatch-hub-v0 .contracting-progress-section-head h4,
.dispatch-hub-v0 .contracting-progress-section-head p,
.dispatch-hub-v0 .contracting-progress-section-head > span {
  margin: 0;
}

.dispatch-hub-v0 .contracting-progress-dashboard-head h3 {
  color: #173e4a;
  font-size: 18px;
}

.dispatch-hub-v0 .contracting-progress-dashboard-head > span,
.dispatch-hub-v0 .contracting-progress-section-head p,
.dispatch-hub-v0 .contracting-progress-section-head > span {
  color: var(--muted);
  font-size: 12px;
}

.dispatch-hub-v0 .contracting-progress-card-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(250px, 1fr));
}

.dispatch-hub-v0 .contracting-progress-card {
  background: #fff;
  border: 1px solid #ccd9de;
  border-top: 5px solid #71838b;
  border-radius: 9px;
  box-shadow: 0 2px 8px rgba(30, 58, 68, .07);
  display: grid;
  gap: 11px;
  min-width: 0;
  padding: 12px;
}

.dispatch-hub-v0 .contracting-progress-card.on_track,
.dispatch-hub-v0 .contracting-progress-overview.on_track {
  border-top-color: #2f7e55;
}

.dispatch-hub-v0 .contracting-progress-card.at_risk,
.dispatch-hub-v0 .contracting-progress-overview.at_risk {
  border-top-color: #bd7a18;
}

.dispatch-hub-v0 .contracting-progress-card.blocked,
.dispatch-hub-v0 .contracting-progress-card.overdue,
.dispatch-hub-v0 .contracting-progress-overview.blocked {
  border-top-color: #b92f2a;
}

.dispatch-hub-v0 .contracting-progress-card-open {
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: grid;
  gap: 4px;
  padding: 0;
  text-align: left;
}

.dispatch-hub-v0 .contracting-progress-card-open:hover > strong {
  color: #006b9b;
  text-decoration: underline;
}

.dispatch-hub-v0 .contracting-progress-card-open > strong {
  color: #193c46;
  font-size: 15px;
}

.dispatch-hub-v0 .contracting-progress-card-open > span:last-child,
.dispatch-hub-v0 .contracting-progress-card footer,
.dispatch-hub-v0 .contracting-progress-card-facts dt,
.dispatch-hub-v0 .contracting-milestone-status-line > span:last-child {
  color: var(--muted);
  font-size: 11px;
}

.dispatch-hub-v0 .contracting-health-pill,
.dispatch-hub-v0 .contracting-milestone-status {
  background: #edf1f3;
  border: 1px solid #cbd6da;
  border-radius: 999px;
  color: #50636b;
  display: inline-flex;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  padding: 5px 8px;
  white-space: nowrap;
}

.dispatch-hub-v0 .contracting-health-pill.on_track,
.dispatch-hub-v0 .contracting-milestone-status.completed {
  background: #e8f5ef;
  border-color: #9fcdb8;
  color: #245f49;
}

.dispatch-hub-v0 .contracting-health-pill.at_risk {
  background: #fff4dd;
  border-color: #e5bd6e;
  color: #7b4d0d;
}

.dispatch-hub-v0 .contracting-health-pill.blocked,
.dispatch-hub-v0 .contracting-health-pill.overdue {
  background: #fff0ed;
  border-color: #dca59a;
  color: #8b3024;
}

.dispatch-hub-v0 .contracting-progress-meter-row,
.dispatch-hub-v0 .contracting-progress-overview-meter {
  align-items: center;
  display: flex;
  gap: 10px;
}

.dispatch-hub-v0 .contracting-progress-meter {
  background: #e3e9ec;
  border-radius: 999px;
  flex: 1;
  height: 12px;
  min-width: 0;
  overflow: hidden;
}

.dispatch-hub-v0 .contracting-progress-meter > span {
  background: linear-gradient(90deg, #b92f2a, #db5a4f);
  border-radius: inherit;
  display: block;
  height: 100%;
  min-width: 0;
}

.dispatch-hub-v0 .contracting-progress-meter-row > strong,
.dispatch-hub-v0 .contracting-progress-overview-meter > strong {
  color: #6f1d1b;
  font-size: 12px;
  white-space: nowrap;
}

.dispatch-hub-v0 .contracting-progress-card-facts {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.dispatch-hub-v0 .contracting-progress-card-facts > div {
  min-width: 0;
}

.dispatch-hub-v0 .contracting-progress-card-facts dt,
.dispatch-hub-v0 .contracting-progress-card-facts dd {
  margin: 0;
}

.dispatch-hub-v0 .contracting-progress-card-facts dd {
  font-size: 12px;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.dispatch-hub-v0 .contracting-progress-callout {
  background: #f3f7f9;
  border-left: 4px solid #4c8195;
  display: grid;
  font-size: 12px;
  gap: 3px;
  padding: 8px 10px;
}

.dispatch-hub-v0 .contracting-progress-callout.blocker {
  background: #fff0ed;
  border-left-color: #b92f2a;
  color: #6f2922;
}

.dispatch-hub-v0 .contracting-progress-card footer {
  border-top: 1px solid #e1e7ea;
  display: grid;
  gap: 3px;
  padding-top: 9px;
}

.dispatch-hub-v0 .contracting-progress-workspace {
  display: grid;
  gap: 16px;
  padding: 16px;
}

.dispatch-hub-v0 .contracting-progress-overview,
.dispatch-hub-v0 .contracting-progress-editor,
.dispatch-hub-v0 .contracting-progress-milestones,
.dispatch-hub-v0 .contracting-progress-history {
  background: #fff;
  border: 1px solid #cfdbdf;
  border-radius: 9px;
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 16px;
}

.dispatch-hub-v0 .contracting-progress-overview {
  border-top: 5px solid #71838b;
}

.dispatch-hub-v0 .contracting-progress-overview-head h4 {
  color: #173e4a;
  font-size: 21px;
  margin: 2px 0 0;
}

.dispatch-hub-v0 .contracting-progress-overview-facts {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.dispatch-hub-v0 .contracting-progress-overview-facts > div {
  background: #f4f8f9;
  border-radius: 6px;
  display: grid;
  gap: 3px;
  padding: 10px;
}

.dispatch-hub-v0 .contracting-progress-overview-facts span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.dispatch-hub-v0 .contracting-health-fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

.dispatch-hub-v0 .contracting-health-fieldset legend {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  margin-bottom: 6px;
  text-transform: uppercase;
}

.dispatch-hub-v0 .contracting-health-toggles {
  display: grid;
  gap: 9px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dispatch-hub-v0 .contracting-health-toggle {
  background: #fff8f7;
  border: 2px solid #b92f2a;
  border-radius: 8px;
  color: #8b3024;
  cursor: pointer;
  display: grid;
  font-weight: 900;
  min-height: 48px;
  place-items: center;
  position: relative;
}

.dispatch-hub-v0 .contracting-health-toggle input {
  height: 1px;
  opacity: 0;
  position: absolute;
  width: 1px;
}

.dispatch-hub-v0 .contracting-health-toggle.active {
  background: #b92f2a;
  box-shadow: 0 3px 0 #7f1d1d;
  color: #fff;
}

.dispatch-hub-v0 .contracting-progress-range-label {
  position: relative;
}

.dispatch-hub-v0 .contracting-progress-range-label input[type="range"] {
  accent-color: #b92f2a;
  min-height: 35px;
  padding-right: 45px;
}

.dispatch-hub-v0 .contracting-progress-range-label > strong {
  bottom: 9px;
  color: #8b3024;
  font-size: 12px;
  position: absolute;
  right: 7px;
}

.dispatch-hub-v0 .contracting-progress-columns {
  align-items: start;
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(310px, .9fr) minmax(360px, 1.1fr);
}

.dispatch-hub-v0 .contracting-milestone-list,
.dispatch-hub-v0 .contracting-progress-history-list {
  display: grid;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.dispatch-hub-v0 .contracting-milestone-card {
  background: #f8fafb;
  border: 1px solid #d4dfe3;
  border-left: 5px solid #bd7a18;
  border-radius: 7px;
  display: grid;
  gap: 9px;
  padding: 11px;
}

.dispatch-hub-v0 .contracting-milestone-card.completed {
  border-left-color: #2f7e55;
}

.dispatch-hub-v0 article.contracting-milestone-card > div:first-child {
  display: grid;
  gap: 3px;
}

.dispatch-hub-v0 .contracting-milestone-card p {
  margin: 0;
}

.dispatch-hub-v0 .contracting-milestone-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.dispatch-hub-v0 .contracting-milestone-create {
  border-top: 1px solid #d8e1e5;
  padding-top: 14px;
}

.dispatch-hub-v0 .contracting-milestone-create h5 {
  color: #173e4a;
  font-size: 14px;
  margin: 0;
}

.dispatch-hub-v0 .contracting-progress-history-list > li {
  border-left: 3px solid #b92f2a;
  display: grid;
  gap: 8px;
  padding: 6px 0 12px 13px;
}

.dispatch-hub-v0 .contracting-progress-history-list > li p {
  line-height: 1.45;
  margin: 0;
  white-space: pre-wrap;
}

.dispatch-hub-v0 .contracting-progress-history-head > div {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.dispatch-hub-v0 .contracting-progress-history-head time {
  color: var(--muted);
  font-size: 11px;
  white-space: nowrap;
}

@media (max-width: 1180px) {
  .dispatch-hub-v0 .contracting-progress-card-grid {
    grid-template-columns: repeat(2, minmax(250px, 1fr));
  }

  .dispatch-hub-v0 .contracting-progress-columns {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .dispatch-hub-v0 .contracting-progress-card-grid,
  .dispatch-hub-v0 .contracting-progress-overview-facts,
  .dispatch-hub-v0 .contracting-health-toggles {
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 .contracting-progress-dashboard-head,
  .dispatch-hub-v0 .contracting-progress-overview-head,
  .dispatch-hub-v0 .contracting-progress-section-head,
  .dispatch-hub-v0 .contracting-progress-history-head {
    align-items: start;
    display: grid;
  }
}

/* Past dispatch visits use one readable history color across every schedule view. */
.past-visit-badge {
  align-items: center;
  background: #506773;
  border: 1px solid #405762;
  border-radius: 999px;
  color: #ffffff !important;
  display: inline-flex;
  font-size: 10px !important;
  font-weight: 900;
  justify-content: center;
  letter-spacing: 0.02em;
  line-height: 1.2;
  min-height: 20px;
  padding: 2px 7px;
  text-transform: uppercase;
  width: max-content;
}

.past-visit-key {
  align-items: center;
  color: #455c68;
  display: inline-flex;
  font-size: 11px;
  font-weight: 800;
  gap: 5px;
  white-space: nowrap;
}

.past-visit-key i {
  background: #d7dde1;
  border: 1px solid #718693;
  display: inline-block;
  height: 12px;
  width: 12px;
}

.dispatch-card.past-visit,
.calendar-card.past-visit,
.month-card.past-visit {
  --wo-bg: #d7dde1 !important;
  --wo-fg: #27323a !important;
  --wo-muted: #5c6971 !important;
  --wo-strong: #405762 !important;
  --wo-border: #a7b2ba !important;
  --wo-hover-border: #718693 !important;
  border-left: 5px solid #718693;
  box-shadow: none;
}

.dispatch-card.past-visit .dispatch-card-status-button {
  color: #27323a;
}

.find-schedule-visits > h4 {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px;
}

.find-schedule-visit-tags {
  align-items: flex-end;
  display: grid;
  gap: 5px;
  justify-items: end;
}

.dispatch-hub-v0 .find-schedule-visit.past-visit,
.job-control-visit-detail.past-visit,
.dispatch-hub-assignment.past-visit,
.mini-row.past-visit,
.tech-assignment-card.past-visit,
.tech-week-card.past-visit {
  background: #d7dde1;
  border-color: #a7b2ba;
  border-left: 5px solid #718693;
  color: #27323a;
}

.job-control-visit-detail {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.job-control-visit-detail.past-visit {
  padding: 8px 9px;
}

.job-control-table tbody tr.past-dispatch-row:not(.selected) > td {
  background: #e3e8eb;
  color: #27323a;
}

.job-control-table tbody tr.past-dispatch-row:not(.selected) > td:first-child {
  box-shadow: inset 5px 0 0 #718693;
}

.job-control-job-identity .past-dispatch-badge {
  margin-top: 3px;
}

.scheduled-techs-grid tbody tr.past-visit:not(.selected):not(.dirty) td {
  background: #d7dde1;
  color: #27323a;
}

@media (max-width: 768px) {
  .dispatch-hub-v0 .find-schedule-visit {
    align-items: stretch;
  }

  .find-schedule-visit-tags {
    align-items: start;
    justify-items: start;
  }
}

.dispatch-hub-v0 .find-schedule-results-head,
.dispatch-hub-v0 .find-schedule-result-top {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.dispatch-hub-v0 .find-schedule-results-head {
  border-bottom: 1px solid #d6e3e8;
  color: #244d5f;
  padding: 2px 2px 10px;
}

.dispatch-hub-v0 .find-schedule-results-head span {
  color: #617782;
  font-size: 12px;
}

.dispatch-hub-v0 .find-schedule-result-top .status {
  flex: 0 0 auto;
  font-size: 10px;
}

.dispatch-hub-v0 .find-schedule-result-meta {
  color: #08736d;
  font-weight: 800;
}

.dispatch-hub-v0 .find-schedule-fields {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(190px, 1.5fr) repeat(3, minmax(118px, 1fr));
}

.dispatch-hub-v0 .find-schedule-help {
  color: #536d79;
  line-height: 1.4;
  margin: -5px 0 0;
}

.dispatch-hub-v0 .find-schedule-time-note {
  color: #536d79;
  font-size: 12px;
  font-weight: 700;
  margin: -4px 0 0;
}

.dispatch-hub-v0 .find-schedule-preflight {
  background: #f4f8fa;
  border: 1px solid #b8cbd4;
  border-left: 4px solid #53798b;
  border-radius: 7px;
  color: #294955;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
  padding: 10px 12px;
}

.dispatch-hub-v0 .find-schedule-preflight.ready {
  background: #e6f5ed;
  border-color: #83c49f;
  border-left-color: #1c6f3e;
  color: #155431;
}

.dispatch-hub-v0 .find-schedule-preflight.error {
  background: #fff0ee;
  border-color: #d79b95;
  border-left-color: #9f2b2b;
  color: #7f2222;
}

.dispatch-hub-v0 .find-schedule-failure-trail {
  border: 1px solid #c8d6dc;
  border-radius: 7px;
  padding: 8px 11px;
}

.dispatch-hub-v0 .find-schedule-failure-trail summary {
  color: #173f52;
  cursor: pointer;
  font-weight: 800;
}

.dispatch-hub-v0 .find-schedule-failure-trail ol {
  display: grid;
  gap: 8px;
  margin: 10px 0 0;
  padding-left: 20px;
}

.dispatch-hub-v0 .find-schedule-failure-trail li {
  display: grid;
  gap: 2px;
}

.dispatch-hub-v0 .find-schedule-multi-warning {
  background: #fff8df;
  border: 1px solid #dcb864;
  border-left: 4px solid #b27709;
  border-radius: 7px;
  color: #4e3905;
  display: grid;
  gap: 4px;
  line-height: 1.4;
  padding: 11px 13px;
}

.dispatch-hub-v0 .find-schedule-feedback:empty {
  display: none;
}

@media (max-width: 900px) {
  .dispatch-hub-v0 .find-schedule-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .dispatch-hub-v0 .find-schedule-fields {
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 .find-schedule-results-head,
  .dispatch-hub-v0 .find-schedule-result-top {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Dispatcher-first Find & Schedule workspace. */
.dispatch-hub-v0 .find-schedule-workspace {
  background: #ffffff;
  border: 1px solid #c8d9e1;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(16, 54, 70, 0.08);
  display: grid;
  gap: 18px;
  margin-bottom: 18px;
  overflow: hidden;
  padding: 20px;
}

.dispatch-hub-v0 .find-schedule-header {
  align-items: end;
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(240px, 0.8fr) minmax(320px, 1.2fr);
}

.dispatch-hub-v0 .find-schedule-header h2,
.dispatch-hub-v0 .find-schedule-header h3,
.dispatch-hub-v0 .find-schedule-header p {
  margin: 0;
}

.dispatch-hub-v0 .find-schedule-header h2,
.dispatch-hub-v0 .find-schedule-header h3 {
  color: #123f4a;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.15;
}

.dispatch-hub-v0 .find-schedule-header p {
  color: #526b77;
  line-height: 1.45;
  margin-top: 5px;
}

.dispatch-hub-v0 .find-schedule-search {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.dispatch-hub-v0 .find-schedule-search > span,
.dispatch-hub-v0 .find-schedule-search label > span {
  color: #314f5e;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.dispatch-hub-v0 .find-schedule-search input,
.dispatch-hub-v0 input.find-schedule-search {
  background: #ffffff;
  border: 2px solid #729bae;
  border-radius: 8px;
  color: #172027;
  font-size: 16px;
  min-height: 46px;
  padding: 9px 12px;
  width: 100%;
}

.dispatch-hub-v0 .find-schedule-search input::placeholder,
.dispatch-hub-v0 input.find-schedule-search::placeholder {
  color: #687d87;
  opacity: 1;
}

.dispatch-hub-v0 .find-schedule-search input:focus,
.dispatch-hub-v0 input.find-schedule-search:focus {
  border-color: #087d77;
  box-shadow: 0 0 0 3px rgba(8, 125, 119, 0.15);
}

.dispatch-hub-v0 .find-schedule-layout {
  align-items: start;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(280px, 0.88fr) minmax(420px, 1.12fr);
  min-width: 0;
}

.dispatch-hub-v0 .find-schedule-results,
.dispatch-hub-v0 .find-schedule-selection {
  border: 1px solid #d1dee4;
  border-radius: 9px;
  min-width: 0;
}

.dispatch-hub-v0 .find-schedule-results {
  background: #f5f9fa;
  display: grid;
  gap: 8px;
  max-height: 640px;
  overflow-y: auto;
  padding: 10px;
}

.dispatch-hub-v0 .find-schedule-result {
  background: #ffffff;
  border: 1px solid #cbd9df;
  border-left: 4px solid #5790ad;
  border-radius: 7px;
  color: #172027;
  cursor: pointer;
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 12px;
  text-align: left;
  transition: background-color 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
  width: 100%;
}

.dispatch-hub-v0 .find-schedule-result:hover {
  background: #edf7f7;
  border-color: #7fb4b2;
  border-left-color: #087d77;
  box-shadow: 0 3px 10px rgba(16, 54, 70, 0.08);
}

.dispatch-hub-v0 .find-schedule-result.selected {
  background: #e4f4f2;
  border-color: #3b9993;
  border-left-color: #087d77;
  box-shadow: inset 0 0 0 1px #3b9993;
}

.dispatch-hub-v0 .find-schedule-result strong {
  color: #0e4157;
  font-size: 15px;
  line-height: 1.3;
}

.dispatch-hub-v0 .find-schedule-result span,
.dispatch-hub-v0 .find-schedule-result small {
  color: #526b77;
  font-size: 13px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.dispatch-hub-v0 .find-schedule-selection {
  background: #ffffff;
  display: grid;
  gap: 16px;
  padding: 18px;
}

.dispatch-hub-v0 .find-schedule-empty {
  align-content: center;
  background: #f6f9fa;
  border: 1px dashed #9eb6c1;
  border-radius: 8px;
  color: #526b77;
  display: grid;
  gap: 6px;
  justify-items: center;
  line-height: 1.45;
  min-height: 220px;
  padding: 28px;
  text-align: center;
}

.dispatch-hub-v0 .find-schedule-empty strong {
  color: #244d5f;
  font-size: 17px;
}

.dispatch-hub-v0 .find-schedule-job-heading {
  align-items: start;
  border-bottom: 1px solid #dce6ea;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding-bottom: 14px;
}

.dispatch-hub-v0 .find-schedule-job-heading h3,
.dispatch-hub-v0 .find-schedule-job-heading p {
  margin: 0;
}

.dispatch-hub-v0 .find-schedule-job-heading h3 {
  color: #0e4157;
  font-size: 22px;
  line-height: 1.2;
}

.dispatch-hub-v0 .find-schedule-job-heading p {
  color: #526b77;
  line-height: 1.4;
  margin-top: 4px;
}

.dispatch-hub-v0 .find-schedule-context {
  background: #f3f8f9;
  border: 1px solid #d5e3e7;
  border-radius: 8px;
  display: grid;
  gap: 10px 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 14px;
}

.dispatch-hub-v0 .find-schedule-context > div,
.dispatch-hub-v0 .find-schedule-context > p {
  display: grid;
  gap: 3px;
  margin: 0;
  min-width: 0;
}

.dispatch-hub-v0 .find-schedule-context span,
.dispatch-hub-v0 .find-schedule-context small {
  color: #5d737d;
  font-size: 12px;
  font-weight: 700;
}

.dispatch-hub-v0 .find-schedule-context strong,
.dispatch-hub-v0 .find-schedule-context p {
  color: #233d49;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.dispatch-hub-v0 .find-schedule-visits {
  display: grid;
  gap: 8px;
}

.dispatch-hub-v0 .find-schedule-visits > h4,
.dispatch-hub-v0 .find-schedule-form > h4 {
  color: #244d5f;
  font-size: 14px;
  margin: 0;
}

.dispatch-hub-v0 .find-schedule-visit {
  align-items: center;
  background: #eef6fa;
  border: 1px solid #c8dae4;
  border-radius: 7px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  line-height: 1.35;
  min-width: 0;
  padding: 10px 12px;
}

.dispatch-hub-v0 .find-schedule-visit.selected {
  background: #e2f3f1;
  border-color: #278b85;
  box-shadow: inset 4px 0 0 #087d77;
}

.dispatch-hub-v0 .find-schedule-visit > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.dispatch-hub-v0 .find-schedule-visit strong {
  color: #173f52;
}

.dispatch-hub-v0 .find-schedule-visit span,
.dispatch-hub-v0 .find-schedule-visit small {
  color: #536d79;
  font-size: 12px;
}

.dispatch-hub-v0 .find-schedule-visit-action {
  background: #ffffff;
  border: 1px solid #4b8399;
  border-radius: 5px;
  color: #15516a;
  cursor: pointer;
  font: inherit;
  font-size: 11px;
  font-weight: 900;
  min-height: 26px;
  padding: 3px 8px;
  white-space: nowrap;
}

.dispatch-hub-v0 .find-schedule-visit-action:hover,
.dispatch-hub-v0 .find-schedule-visit-action.selected {
  background: #087d77;
  border-color: #087d77;
  color: #ffffff;
}

.dispatch-hub-v0 .find-schedule-visit-action.remove {
  background: #7a1f1f;
  border-color: #7a1f1f;
  color: #ffffff;
}

.dispatch-hub-v0 .find-schedule-visit-action.remove:hover,
.dispatch-hub-v0 .find-schedule-visit-action.remove:focus-visible {
  background: #a32626;
  border-color: #a32626;
}

.dispatch-hub-v0 .find-schedule-form {
  background: #f7fafb;
  border: 1px solid #cfdde3;
  border-radius: 8px;
  display: grid;
  gap: 13px;
  padding: 15px;
}

.dispatch-hub-v0 .find-schedule-form label {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.dispatch-hub-v0 .find-schedule-form label > span {
  color: #405d6a;
  font-size: 12px;
  font-weight: 800;
}

.dispatch-hub-v0 .find-schedule-form input,
.dispatch-hub-v0 .find-schedule-form select {
  background: #ffffff;
  border-color: #9fb5c0;
  min-width: 0;
  width: 100%;
}

.dispatch-hub-v0 .find-schedule-crew-dispatch {
  background: #f5fbfa;
  border: 1px solid #9bc8c3;
  border-radius: 9px;
  display: grid;
  gap: 12px;
  overflow: hidden;
  padding: 0;
}

.dispatch-hub-v0 .find-schedule-crew-heading {
  align-items: center;
  background: #166b67;
  color: #ffffff;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding: 12px 15px;
}

.dispatch-hub-v0 .find-schedule-crew-heading > div {
  display: grid;
  gap: 2px;
}

.dispatch-hub-v0 .find-schedule-crew-heading span {
  color: #d8f4f1;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dispatch-hub-v0 .find-schedule-crew-heading h4 {
  color: #ffffff;
  font-size: 16px;
  margin: 0;
}

.dispatch-hub-v0 .find-schedule-crew-heading > strong,
.dispatch-hub-v0 .find-schedule-crew-heading > .tool-button {
  background: rgba(255, 255, 255, .14);
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 999px;
  color: #ffffff;
  font-size: 11px;
  padding: 5px 9px;
  white-space: nowrap;
}

.dispatch-hub-v0 .find-schedule-crew-heading > .tool-button {
  min-height: 30px;
}

.dispatch-hub-v0 .find-schedule-form.crew-form {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding-top: 2px;
}

.dispatch-hub-v0 .find-schedule-crew-picker {
  display: grid;
  gap: 10px;
}

.dispatch-hub-v0 .find-schedule-crew-summary {
  background: #ffffff;
  border: 1px solid #b5d8d4;
  border-radius: 7px;
  display: grid;
  gap: 9px;
  padding: 11px;
}

.dispatch-hub-v0 .find-schedule-crew-summary-head {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.dispatch-hub-v0 .find-schedule-crew-summary-head strong {
  color: #155d59;
}

.dispatch-hub-v0 .find-schedule-crew-summary-head span,
.dispatch-hub-v0 .find-schedule-crew-notes {
  color: #795f62;
  font-size: 11px;
  margin: 0;
}

.dispatch-hub-v0 .find-schedule-crew-members {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.dispatch-hub-v0 .find-schedule-crew-member,
.dispatch-hub-v0 .find-schedule-crew-badge {
  background: #e4f3f1;
  border: 1px solid #b7d9d5;
  border-radius: 999px;
  color: #6c252a !important;
  display: inline-flex;
  font-size: 11px;
  gap: 5px;
  padding: 4px 8px;
}

.dispatch-hub-v0 .find-schedule-crew-member.lead {
  background: #166b67;
  border-color: #166b67;
  color: #ffffff !important;
}

.dispatch-hub-v0 .find-schedule-crew-member b {
  font-size: 9px;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.dispatch-hub-v0 .find-schedule-crew-empty {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 15px;
}

.dispatch-hub-v0 .find-schedule-crew-empty strong {
  color: #6f1117;
}

.dispatch-hub-v0 .find-schedule-crew-empty span,
.dispatch-hub-v0 p.find-schedule-crew-empty {
  color: #735e61;
  font-size: 12px;
}

.dispatch-hub-v0 .crew-dispatch-button {
  background: #087d77;
  border: 1px solid #075f5b;
  border-radius: 6px;
  color: #ffffff;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
  min-height: 40px;
  min-width: 190px;
  padding: 8px 15px;
}

.dispatch-hub-v0 .find-schedule-crew-manage-prompt,
.dispatch-hub-v0 .saved-crew-home {
  align-items: center;
  background: #f3f8f8;
  border: 1px solid #b7cfd0;
  border-radius: 7px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 11px 12px;
}

.dispatch-hub-v0 .find-schedule-crew-manage-prompt > div,
.dispatch-hub-v0 .saved-crew-home > div {
  display: grid;
  gap: 3px;
}

.dispatch-hub-v0 .find-schedule-crew-manage-prompt span,
.dispatch-hub-v0 .saved-crew-home span {
  color: #536b76;
  font-size: 12px;
}

.dispatch-hub-v0 .status-unlock-control {
  background: #fff9df;
  border-color: #b98400;
  box-shadow: inset 3px 0 0 #b98400;
}

.dispatch-hub-v0 .job-control-expanded-actions {
  align-items: flex-end;
  display: flex;
  gap: 8px;
}

.dispatch-hub-v0 .crew-dispatch-button:hover:not(:disabled) {
  background: #066762;
}

.dispatch-hub-v0 .crew-dispatch-button:disabled {
  cursor: wait;
  opacity: .58;
}

.dispatch-hub-v0 .find-schedule-confirmation {
  background: #e6f5ed;
  border: 1px solid #83c49f;
  border-left: 4px solid #1c6f3e;
  border-radius: 7px;
  color: #155431;
  font-weight: 700;
  line-height: 1.4;
  padding: 11px 13px;
}

.dispatch-hub-v0 .find-schedule-confirmation.error,
.dispatch-hub-v0 .find-schedule-confirmation[data-status="error"] {
  background: #fff0ee;
  border-color: #d79b95;
  border-left-color: #9f2b2b;
  color: #7f2222;
}

.dispatch-hub-v0 .find-schedule-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  justify-content: flex-end;
}

.dispatch-hub-v0 .find-schedule-actions .primary-button {
  min-width: 150px;
}

.dispatch-hub-v0 .job-control-detail-section {
  background: #ffffff;
  border: 1px solid #d1dde2;
  border-radius: 10px;
  margin-top: 16px;
  overflow: hidden;
}

.dispatch-hub-v0 .job-control-detail-head {
  align-items: center;
  background: #edf4f6;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 12px 15px;
}

.dispatch-hub-v0 .job-control-detail-head > div {
  display: grid;
  gap: 2px;
}

.dispatch-hub-v0 .job-control-detail-head strong {
  color: #173f52;
  font-size: 15px;
}

.dispatch-hub-v0 .job-control-detail-head span,
.dispatch-hub-v0 .job-control-detail-head p {
  color: #5a707b;
  font-size: 12px;
  margin: 0;
}

.dispatch-hub-v0 .job-control-detail-shell {
  border-top: 1px solid #d1dde2;
  padding: 12px;
}

.dispatch-hub-v0 .job-control-detail-shell.hidden,
.dispatch-hub-v0 .job-control-detail-shell[hidden] {
  display: none !important;
}

/* List-first Job Control Center: the spreadsheet is the primary job picker. */
.dispatch-hub-v0 .dispatch-schedule.sheet-mode {
  min-width: 0;
}

.dispatch-hub-v0 .job-control-list-section {
  margin-top: 0;
  overflow: visible;
}

.dispatch-hub-v0 .job-control-step-label {
  color: #08736d;
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  margin-bottom: 4px;
  text-transform: uppercase;
}

.dispatch-hub-v0 .job-control-command-strip {
  align-items: end;
  background: #e8f2ff;
  border-bottom: 1px solid #a7cde7;
  display: flex;
  gap: 6px;
  min-width: 0;
  padding: 5px 6px;
}

.dispatch-hub-v0 .job-control-command-strip .job-control-locate-search {
  display: grid;
  flex: 1 1 420px;
  gap: 2px;
  min-width: 0;
}

.dispatch-hub-v0 .job-control-command-strip .job-control-locate-search > span {
  color: #334d5d;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.dispatch-hub-v0 .job-control-command-strip .job-control-locate-search input {
  min-height: 32px;
}

.dispatch-hub-v0 .job-control-command-strip .tool-button {
  min-height: 32px;
  white-space: nowrap;
}

.dispatch-hub-v0 .job-control-command-strip .job-control-collapse-action {
  background: #b42318;
  border-color: #7a1812;
  color: #fff;
  font-weight: 800;
}

.dispatch-hub-v0 .job-control-command-strip .job-control-collapse-action:hover,
.dispatch-hub-v0 .job-control-command-strip .job-control-collapse-action:focus-visible {
  background: #8f1c14;
  color: #fff;
}

.dispatch-hub-v0 .job-control-view-tools {
  background: #f4f8fb;
  border: 2px solid #b42318;
  border-radius: 7px;
  box-shadow: 0 0 0 2px rgba(180, 35, 24, 0.12);
  display: grid;
  gap: 6px;
  overflow: hidden;
  padding: 6px;
}

.dispatch-hub-v0 .job-control-view-tools-header {
  align-items: center;
  background: #ffe9e6;
  border: 1px solid #e9a49d;
  color: #7a1812;
  display: flex;
  justify-content: space-between;
  padding: 5px 7px;
}

.dispatch-hub-v0 .job-control-view-tools-close {
  background: #b42318;
  border-color: #7a1812;
  color: #fff;
  font-weight: 800;
}

.dispatch-hub-v0 .job-control-view-tools-close:hover,
.dispatch-hub-v0 .job-control-view-tools-close:focus-visible {
  background: #8f1c14;
  color: #fff;
}

.dispatch-hub-v0 .job-control-view-tools > .muted {
  margin: 0;
}

.dispatch-hub-v0 .job-control-view-tools > .job-control-format-actions {
  justify-content: flex-start;
}

.dispatch-hub-v0 .job-control-list-layout {
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 12px;
}

.dispatch-hub-v0 .job-control-list-pane {
  min-width: 0;
}

.dispatch-hub-v0 .job-control-list-pane .job-control-detail-shell {
  border-top: 0;
  padding: 0;
}

.dispatch-hub-v0 .schedule-selected-workspace {
  align-self: start;
  border: 2px solid #0f7275;
  border-radius: 14px;
  box-shadow: 0 12px 30px rgba(16, 54, 70, 0.18), 0 0 0 3px rgba(15, 114, 117, 0.12);
  gap: 0;
  margin: 0;
  min-width: 0;
  overflow: hidden;
  padding: 0;
}

.dispatch-hub-v0 .schedule-selected-header {
  align-items: start;
  background: linear-gradient(180deg, #e4f8f7 0%, #d5efee 100%);
  border-bottom: 2px solid #0f7275;
  border-radius: 12px 12px 0 0;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 14px 16px;
}

.dispatch-hub-v0 .schedule-sidebar-close {
  align-self: start;
  background: #b42318;
  border: 2px solid #78170f;
  border-radius: 999px;
  box-shadow: 0 0 0 3px #ffd8d3, 0 3px 8px rgba(95, 23, 17, 0.25);
  color: #fff;
  font-weight: 900;
  min-width: 74px;
  padding-inline: 12px;
}

.dispatch-hub-v0 .schedule-sidebar-close:hover,
.dispatch-hub-v0 .schedule-sidebar-close:focus-visible {
  background: #8f1c14;
  border-color: #5f120c;
  color: #fff;
  transform: translateY(-1px);
}

.dispatch-hub-v0 .schedule-selected-workspace .find-schedule-selection {
  border: 0;
  border-radius: 0;
  padding: 16px;
}

.dispatch-hub-v0 .schedule-selected-workspace .find-schedule-context {
  margin-bottom: 10px;
}

.dispatch-hub-v0 .schedule-selected-workspace #find-schedule-form {
  background: #f7fbfd;
  border: 2px solid #6f9fb4;
  border-radius: 10px;
  margin-bottom: 12px;
  padding: 12px;
}

.dispatch-hub-v0 .schedule-selected-workspace #find-schedule-form .find-schedule-actions {
  background: #f7fbfd;
  bottom: 0;
  border-top: 1px solid #b8cdd7;
  margin: 8px -12px -12px;
  padding: 10px 12px;
  position: sticky;
  z-index: 4;
}

.dispatch-hub-v0 .schedule-selected-workspace #find-schedule-form .find-schedule-actions .primary-button {
  order: -2;
}

.dispatch-hub-v0 .schedule-selected-workspace #find-schedule-form .find-schedule-actions [data-find-schedule-add-visit] {
  order: -1;
}

.dispatch-hub-v0 .find-schedule-supporting-details {
  display: grid;
  gap: 12px;
}

.dispatch-hub-v0 .job-control-select-head,
.dispatch-hub-v0 .job-control-select-cell {
  box-sizing: border-box;
  min-width: 84px;
  text-align: center;
  width: 84px;
}

.dispatch-hub-v0 .job-control-expand-head,
.dispatch-hub-v0 .job-control-expand-cell {
  left: 0;
  position: sticky;
}

.dispatch-hub-v0 .job-control-select-head,
.dispatch-hub-v0 .job-control-select-cell {
  left: 42px;
  position: sticky;
}

.dispatch-hub-v0 .job-control-expand-head,
.dispatch-hub-v0 .job-control-select-head {
  z-index: 6;
}

.dispatch-hub-v0 .job-control-expand-cell,
.dispatch-hub-v0 .job-control-select-cell {
  background: #ffffff;
  z-index: 2;
}

.dispatch-hub-v0 .job-control-table tbody tr:nth-child(even) .job-control-expand-cell,
.dispatch-hub-v0 .job-control-table tbody tr:nth-child(even) .job-control-select-cell {
  background: #d3e9ff;
}

.dispatch-hub-v0 .job-control-table tr.job-control-review-row td {
  color: #536773;
}

.dispatch-hub-v0 .job-control-review-only {
  align-items: flex-start;
  background: #f3f5f6;
  border: 1px solid #aab7bf;
  color: #334b59;
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
  max-width: 260px;
  padding: 6px 8px;
}

.dispatch-hub-v0 .job-control-review-only.compact {
  font-size: 11px;
  line-height: 1.2;
  max-width: 150px;
  padding: 4px 6px;
}

.dispatch-hub-v0 .job-control-review-only span {
  white-space: normal;
}

.dispatch-hub-v0 .job-control-table tr.schedule-selected td {
  background: #dff3ef !important;
}

.dispatch-hub-v0 .job-control-table tr.schedule-selected .job-control-select-cell {
  box-shadow: inset 4px 0 0 #087d77;
}

.dispatch-hub-v0 .job-control-table tbody tr.division-service:not(.past-dispatch-row):nth-child(odd) > td,
.dispatch-hub-v0 .job-control-table tbody tr.division-service:not(.past-dispatch-row):nth-child(even) > td {
  background: var(--division-service-bg);
  color: var(--division-service-fg);
}

.dispatch-board-loading {
  background: #123b50;
  border: 1px solid #071f2a;
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(7, 31, 42, 0.24);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  left: 50%;
  padding: 8px 14px;
  pointer-events: none;
  position: fixed;
  top: 16px;
  transform: translateX(-50%);
  z-index: 1200;
}

#dispatch-board.is-loading .section-band {
  cursor: progress;
}

/* Dispatch scheduling tray and workload feedback */
.dispatch-job-queue {
  margin: 10px 12px 0;
}

.dispatch-job-queue-panel {
  background: #f6f9fb;
  border: 2px solid #284a5d;
  border-radius: 7px;
  box-shadow: 0 2px 8px rgba(26, 55, 70, 0.12);
  display: grid;
  gap: 8px;
  padding: 9px;
}

.dispatch-job-queue-heading,
.dispatch-job-queue-footer {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.dispatch-job-queue-heading h3,
.dispatch-job-queue-heading p {
  margin: 0;
}

.dispatch-job-queue-heading h3 {
  color: #123b50;
  font-size: 17px;
}

.dispatch-job-queue-heading p:not(.eyebrow) {
  color: #526873;
  font-size: 11px;
  margin-top: 2px;
}

.dispatch-job-queue-tabs {
  display: flex;
  gap: 5px;
}

.dispatch-job-queue-tabs .tool-button.active {
  background: #b42318;
  border-color: #78170f;
  color: #fff;
}

.dispatch-job-queue-tabs .tool-button span {
  background: rgba(255, 255, 255, 0.92);
  border-radius: 999px;
  color: #7a1812;
  display: inline-block;
  margin-left: 4px;
  min-width: 22px;
  padding: 1px 5px;
  text-align: center;
}

.dispatch-job-queue-search {
  align-items: end;
  display: grid;
  gap: 5px;
  grid-template-columns: minmax(240px, 1fr) auto auto;
}

.dispatch-job-queue-search label {
  display: grid;
  gap: 2px;
}

.dispatch-job-queue-search label span {
  color: #3d5663;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.dispatch-job-queue-list {
  display: grid;
  gap: 7px;
  grid-auto-columns: minmax(260px, 300px);
  grid-auto-flow: column;
  min-height: 112px;
  overflow-x: auto;
  padding: 2px 2px 6px;
}

.dispatch-job-queue-list.loading {
  opacity: 0.66;
}

.dispatch-job-queue-list .empty-state {
  grid-column: 1 / -1;
}

.dispatch-queue-card.unassigned-card {
  min-height: 104px;
  padding: 8px 10px;
}

.dispatch-queue-drag-handle {
  color: #0f6a70;
  font-size: 10px !important;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.dispatch-job-queue-footer {
  color: #536873;
  font-size: 11px;
}

.dispatch-job-queue-footer > div {
  display: flex;
  gap: 5px;
}

.weekly-scheduling-legend {
  align-items: center;
  display: flex;
  gap: 14px;
  padding: 6px 10px;
}

.weekly-scheduling-legend span {
  align-items: center;
  color: #334b59;
  display: inline-flex;
  font-size: 11px;
  font-weight: 700;
  gap: 5px;
}

.weekly-scheduling-legend i {
  border: 1px solid #748691;
  display: inline-block;
  height: 12px;
  width: 18px;
}

.weekly-scheduling-legend .needs i,
.weekly-tech-day.needs-scheduling {
  background: #fff2bc;
}

.weekly-tech-day.needs-scheduling {
  box-shadow: inset 0 0 0 2px #d49a00;
}

.weekly-scheduling-legend .scheduled i,
.weekly-tech-day.has-schedule {
  background: #dcf3e5;
}

.weekly-tech-day.has-schedule {
  box-shadow: inset 0 0 0 2px #4b9a68;
}

.weekly-scheduling-legend .past i,
.weekly-tech-day.past-empty {
  background: #eef1f3;
}

.weekly-tech-day.past-empty {
  color: #6b7981;
}

.weekly-tech-day.selected {
  outline: 3px solid #1f6ca8;
  outline-offset: -3px;
}

[data-technician-drop-id] {
  transition: box-shadow 120ms ease, transform 120ms ease;
}

[data-technician-drop-id].job-drop-ready {
  box-shadow: 0 0 0 4px #ffbf00, inset 0 0 0 2px #7a5100 !important;
  transform: translateY(-2px);
}

.directory-sort-button {
  align-items: center;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-weight: 800;
  gap: 5px;
  justify-content: space-between;
  padding: 3px 2px;
  text-align: left;
  text-transform: uppercase;
  width: 100%;
}

.directory-sort-button:hover,
.directory-sort-button:focus-visible,
.directory-sort-button.active {
  color: #00578f;
  outline: none;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.module-close-button {
  align-self: start;
  background: #273b47;
  border: 2px solid #101d24;
  border-radius: 999px;
  box-shadow: 0 0 0 3px #dce8ef;
  color: #fff;
  font-weight: 900;
  min-width: 78px;
}

.module-close-button:hover,
.module-close-button:focus-visible {
  background: #b42318;
  border-color: #78170f;
  color: #fff;
}

@media (max-width: 780px) {
  .dispatch-job-queue-heading,
  .dispatch-job-queue-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .dispatch-job-queue-search {
    grid-template-columns: 1fr auto;
  }
}

.dispatch-hub-v0 .job-control-table tbody tr.division-tab:not(.past-dispatch-row):nth-child(odd) > td,
.dispatch-hub-v0 .job-control-table tbody tr.division-tab:not(.past-dispatch-row):nth-child(even) > td {
  background: var(--division-tab-bg);
  color: var(--division-tab-fg);
}

.dispatch-hub-v0 .job-control-table tbody tr.division-contracting:not(.past-dispatch-row):nth-child(odd) > td,
.dispatch-hub-v0 .job-control-table tbody tr.division-contracting:not(.past-dispatch-row):nth-child(even) > td {
  background: var(--division-contracting-bg);
  color: var(--division-contracting-fg);
}

.app-settings-band {
  display: grid;
  gap: 14px;
}

.app-settings-section {
  background: #f7fafc;
  border: 1px solid #c9d7df;
  border-radius: 8px;
  display: grid;
  gap: 12px;
  padding: 14px;
}

.app-settings-heading {
  align-items: end;
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.app-settings-heading h4,
.app-settings-heading p {
  margin: 0;
}

.app-settings-heading > p {
  color: #536773;
  font-size: 12px;
  max-width: 680px;
}

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

.appearance-context-section {
  background: #eef6f8;
}

.appearance-context-preview {
  border: 1px solid #9fb6c2;
  border-radius: 7px;
  overflow: hidden;
}

.appearance-context-row {
  align-items: center;
  border-bottom: 1px solid rgba(20, 42, 55, 0.24);
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(92px, 0.45fr) minmax(220px, 1.8fr) minmax(150px, 0.7fr);
  min-height: 48px;
  padding: 8px 11px;
}

.appearance-context-row:last-child {
  border-bottom: 0;
}

.appearance-context-division {
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.045em;
}

.appearance-context-status {
  border: 1px solid rgba(20, 42, 55, 0.28);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  justify-self: end;
  padding: 5px 9px;
  text-align: center;
}

.appearance-color-card {
  background: #fff;
  border: 1px solid #b9c8d1;
  border-radius: 7px;
  display: grid;
  gap: 9px;
  padding: 11px;
}

.division-icon-controls {
  border: 1px solid #c8d5dc;
  border-radius: 6px;
  display: grid;
  gap: 8px;
  margin: 2px 0;
  padding: 9px;
}

.division-icon-controls legend {
  font-weight: 850;
  padding: 0 5px;
}

.division-icon-controls legend small,
.division-icon-controls > small {
  color: #526975;
  font-weight: 500;
}

.division-icon-controls label,
.technician-avatar-field {
  display: grid;
  gap: 4px;
}

.division-icon-controls label > span,
.technician-avatar-field > span:first-child {
  color: #3c5562;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.division-icon-preview {
  background: #f4f8fa;
  border: 1px dashed #91a7b3;
  border-radius: 5px;
  min-height: 42px;
  padding: 8px;
}

.division-icon-upload input {
  max-width: 100%;
}

.appearance-color-card > label {
  display: grid;
  gap: 4px;
}

.appearance-color-card > label > span {
  color: #3c5562;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.appearance-color-card input[type="color"] {
  cursor: pointer;
  height: 38px;
  padding: 3px;
  width: 100%;
}

.appearance-color-preview {
  border: 1px solid rgba(20, 42, 55, 0.28);
  border-radius: 6px;
  display: grid;
  gap: 2px;
  min-height: 68px;
  padding: 12px;
}

.appearance-color-preview strong {
  font-size: 15px;
}

.appearance-color-preview span {
  font-size: 11px;
}

.appearance-contrast {
  color: #1c6f3e;
  font-weight: 750;
}

.appearance-contrast.error {
  color: #9f2b2b;
}

.appearance-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: space-between;
}

.status-appearance-grid .appearance-color-card {
  grid-template-columns: 1fr 1fr;
}

.status-appearance-grid .appearance-color-preview,
.status-appearance-grid .appearance-caption,
.status-appearance-grid .appearance-color-card > p,
.status-appearance-grid .appearance-card-actions {
  grid-column: 1 / -1;
}

.status-division-tabs {
  background: #e7eef3;
  border: 1px solid #aebfca;
  border-radius: 8px;
  display: grid;
  gap: 5px;
  grid-template-columns: repeat(4, minmax(130px, 1fr));
  padding: 5px;
}

.status-division-tabs button {
  background: #fff;
  border: 1px solid #a9bac4;
  border-radius: 6px;
  color: #17384a;
  cursor: pointer;
  font-weight: 850;
  min-height: 40px;
}

.status-division-tabs button.active {
  background: #ba2b27;
  border-color: #8f1714;
  box-shadow: inset 0 -3px 0 rgba(85, 8, 6, 0.24);
  color: #fff;
}

.status-division-tabs button.shared.active {
  background: #173f3d;
  border-color: #0a2b29;
}

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

.status-division-panel.hidden {
  display: none;
}

.status-division-panel-heading {
  align-items: center;
  background: #edf4f7;
  border-left: 4px solid #ba2b27;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  padding: 8px 10px;
}

.status-division-panel-heading span {
  color: #526975;
  font-size: 11px;
}

.division-status-appearance-card {
  position: relative;
}

.appearance-status-source {
  border-radius: 999px;
  font-size: 10px;
  font-weight: 850;
  justify-self: start;
  letter-spacing: 0.025em;
  padding: 4px 8px;
  text-transform: uppercase;
}

.appearance-status-source.shared {
  background: #e7eef3;
  color: #405965;
}

.appearance-status-source.override {
  background: #173f3d;
  color: #fff;
}

.app-settings-note {
  align-items: center;
  background: #eaf4f1;
  border-left: 4px solid #0b6e69;
  display: flex;
  gap: 10px;
  padding: 11px 13px;
}

@media (max-width: 780px) {
  .app-settings-heading,
  .app-settings-note {
    align-items: stretch;
    flex-direction: column;
  }

  .appearance-context-row {
    align-items: start;
    grid-template-columns: 1fr;
  }

  .appearance-context-status {
    justify-self: start;
  }

  .status-division-tabs {
    grid-template-columns: 1fr 1fr;
  }

  .status-division-panel-heading {
    align-items: stretch;
    flex-direction: column;
  }
}

.dispatch-hub-v0 .job-control-table tbody tr.division-other:not(.past-dispatch-row):nth-child(odd) > td,
.dispatch-hub-v0 .job-control-table tbody tr.division-other:not(.past-dispatch-row):nth-child(even) > td {
  background: #e9eef1;
}

.dispatch-hub-v0 .job-control-table tbody tr.schedule-selected > td {
  background: #dff3ef !important;
}

.dispatch-hub-v0 .job-control-table tbody tr.division-status-pending > td {
  box-shadow: inset 0 2px 0 #b98400, inset 0 -2px 0 #b98400;
}

.dispatch-hub-v0 .division-row-key {
  align-items: center;
  display: inline-flex;
  gap: 4px;
  margin-left: auto;
  white-space: nowrap;
}

.dispatch-hub-v0 .division-row-key i {
  border: 1px solid rgba(36, 68, 82, .25);
  border-radius: 2px;
  display: inline-block;
  height: 10px;
  margin-left: 6px;
  width: 14px;
}

.dispatch-hub-v0 .division-row-key i.service { background: #dceeff; }
.dispatch-hub-v0 .division-row-key i.tab { background: #fff0c9; }
.dispatch-hub-v0 .division-row-key i.contracting { background: #e8e0fb; }

.dispatch-hub-v0 .job-control-density-inline {
  align-items: center;
  margin-left: auto;
}

.dispatch-hub-v0 .job-control-density-inline > span {
  color: #405d6a;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.dispatch-hub-v0 #dispatch-board .job-control-panel.density-compact .job-control-table td {
  height: 28px;
  padding: 2px 5px;
}

.dispatch-hub-v0 #dispatch-board .job-control-panel.density-compact .sheet-cell-control {
  font-size: 12px;
  min-height: 28px;
  padding: 2px 5px;
}

.dispatch-hub-v0 #dispatch-board .job-control-panel.density-compact .sheet-cell-control.compact {
  min-width: 70px;
}

.dispatch-hub-v0 #dispatch-board .job-control-panel.density-compact .status-cell-control {
  max-width: 230px;
  min-width: 120px;
}

.dispatch-hub-v0 #dispatch-board .job-control-panel.density-comfortable .job-control-table td {
  height: 50px;
  padding: 7px 8px;
}

.dispatch-hub-v0 .job-control-table tr[data-find-schedule-job-row]:focus-visible td {
  box-shadow: inset 0 2px 0 #087d77, inset 0 -2px 0 #087d77;
}

.dispatch-hub-v0 .job-control-select-button {
  background: #ffffff;
  border: 1px solid #4b8399;
  border-radius: 6px;
  color: #15516a;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  min-height: 30px;
  padding: 4px 9px;
}

.dispatch-hub-v0 .job-control-select-button:hover,
.dispatch-hub-v0 .job-control-select-button.selected {
  background: #087d77;
  border-color: #087d77;
  color: #ffffff;
}

.dispatch-hub-v0 .job-control-job-identity {
  display: grid;
  gap: 2px;
  line-height: 1.2;
  min-width: 0;
  white-space: normal;
}

.dispatch-hub-v0 .job-control-job-number {
  color: #0b6178;
  display: block;
  font-size: 12px;
  font-weight: 900;
}

.dispatch-hub-v0 .job-control-job-name {
  color: #233f4b;
  display: block;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
  overflow-wrap: anywhere;
  white-space: normal;
}

.dispatch-hub-v0 .job-control-technician-bubbles {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  margin: 2px 0;
}

.dispatch-hub-v0 .job-control-technician-bubble {
  background: #087d77;
  border: 1px solid #05645f;
  border-radius: 999px;
  color: #ffffff;
  display: inline-flex;
  font-size: 9px;
  font-weight: 900;
  line-height: 1;
  max-width: 100%;
  overflow: hidden;
  padding: 3px 6px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dispatch-hub-v0 .job-control-technician-bubble.more {
  background: #526777;
  border-color: #3c4d59;
}

.dispatch-hub-v0 .job-control-card-detail {
  color: #2f4e5b;
  display: grid;
  font-size: 11px;
  gap: 1px;
  line-height: 1.25;
  overflow-wrap: anywhere;
  white-space: normal;
}

.dispatch-hub-v0 .job-control-card-label {
  color: #57707c;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

@media (min-width: 1400px) {
  .dispatch-hub-v0 .job-control-list-layout.has-selection {
    align-items: start;
    grid-template-columns: minmax(700px, 1fr) minmax(360px, 420px);
  }

  .dispatch-hub-v0 .job-control-list-layout.has-selection .schedule-selected-workspace {
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    position: sticky;
    top: 16px;
  }

  .dispatch-hub-v0 .schedule-selected-workspace .find-schedule-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1399px) {
  .dispatch-hub-v0 .job-control-list-layout.has-selection .schedule-selected-workspace {
    order: -1;
  }
}

@media (max-width: 900px) {
  .dispatch-hub-v0 .job-control-command-strip {
    align-items: stretch;
    flex-wrap: wrap;
  }

  .dispatch-hub-v0 .job-control-command-strip .job-control-locate-search {
    flex-basis: 100%;
  }
}

.tech-assignment-access {
  background: #fff8df;
  border: 1px solid #dcb864;
  border-left: 4px solid #b27709;
  border-radius: 7px;
  color: #4e3905;
  display: grid;
  gap: 4px;
  line-height: 1.45;
  padding: 9px 10px;
}

.tech-assignment-access span,
.tech-assignment-access strong {
  color: #765409;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.tech-assignment-access p {
  font-size: 14px;
  margin: 0;
  overflow-wrap: anywhere;
}

@media (max-width: 1050px) {
  .dispatch-hub-v0 .find-schedule-header,
  .dispatch-hub-v0 .find-schedule-layout {
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 .find-schedule-results {
    max-height: 360px;
  }
}

@media (max-width: 768px) {
  .dispatch-hub-v0 .find-schedule-workspace {
    border-radius: 8px;
    gap: 14px;
    padding: 14px;
  }

  .dispatch-hub-v0 .find-schedule-search input,
  .dispatch-hub-v0 input.find-schedule-search,
  .dispatch-hub-v0 .find-schedule-result,
  .dispatch-hub-v0 .find-schedule-form input,
  .dispatch-hub-v0 .find-schedule-form select,
  .dispatch-hub-v0 .find-schedule-actions button,
  .dispatch-hub-v0 .find-schedule-actions a,
  .dispatch-hub-v0 .job-control-detail-head button {
    min-height: 44px;
  }

  .dispatch-hub-v0 .find-schedule-search input,
  .dispatch-hub-v0 input.find-schedule-search,
  .dispatch-hub-v0 .find-schedule-form input,
  .dispatch-hub-v0 .find-schedule-form select {
    font-size: 16px;
  }

  .dispatch-hub-v0 .find-schedule-context {
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 .find-schedule-job-heading,
  .dispatch-hub-v0 .find-schedule-visit,
  .dispatch-hub-v0 .find-schedule-crew-heading,
  .dispatch-hub-v0 .job-control-detail-head {
    align-items: stretch;
    flex-direction: column;
  }

  .dispatch-hub-v0 .find-schedule-actions {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 .find-schedule-actions .primary-button,
  .dispatch-hub-v0 .find-schedule-actions .tool-button,
  .dispatch-hub-v0 .find-schedule-actions a,
  .dispatch-hub-v0 .job-control-detail-head button {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    width: 100%;
  }

  .dispatch-hub-v0 .job-control-detail-shell {
    padding: 8px;
  }

  .dispatch-hub-v0 .job-control-list-layout {
    padding: 12px;
  }

  .dispatch-hub-v0 .job-control-select-button {
    min-height: 44px;
  }

}

@media (max-width: 760px) {
  .dispatch-hub-v0 .sidebar {
    gap: 12px;
    height: auto;
    min-height: 0;
    position: static;
  }

  .dispatch-hub-v0 .brand {
    order: 1;
  }

  .dispatch-hub-v0 .nav {
    order: 2;
  }

  .dispatch-hub-v0 .user-switcher {
    margin-top: 0;
    order: 3;
  }
}

@media (max-width: 480px) {
  body {
    overflow-x: hidden;
  }

  .app-shell,
  .main,
  .view,
  .tech-assignments-shell,
.tech-assignment-card {
    min-width: 0;
  }

  .main {
    padding: 0 8px 12px;
  }

  .tech-assignment-cards {
    grid-template-columns: 1fr;
  }

  .tech-assignments-header,
  .tech-assignment-group-head {
    align-items: stretch;
    flex-direction: column;
  }

  .tech-assignment-meta {
    align-items: flex-start;
    flex-direction: column;
  }

  .app-shell:has(#my-jobs.view.active) .sidebar {
    min-height: 0;
  }

  .app-shell:has(#my-jobs.view.active) .brand {
    grid-template-columns: 42px minmax(0, 1fr);
    min-height: 56px;
  }

  .app-shell:has(#my-jobs.view.active) .brand-icon {
    height: 42px;
    width: 42px;
  }

  .app-shell:has(#my-jobs.view.active) .brand-logo {
    max-width: 128px;
  }

  .app-shell:has(#my-jobs.view.active) .brand-mark {
    font-size: 38px;
    height: 42px;
    width: 42px;
  }

  .app-shell:has(#my-jobs.view.active) .nav {
    display: none;
  }
}

.tech-history-pagination {
  align-items: center;
  background: #edf6ff;
  border: 1px solid #c9d9e5;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  margin-bottom: 10px;
  padding: 8px;
}

.tech-history-pagination > span {
  color: #17446e;
  font-weight: 800;
  margin-right: auto;
}

.tech-top-bar {
  align-items: center;
  background: #0879bd;
  border-bottom: 1px solid #076ba7;
  box-shadow: 0 2px 8px rgba(21, 52, 72, .18);
  color: #ffffff;
  display: none;
  gap: 12px;
  height: 64px;
  left: 0;
  padding: 0 20px;
  position: fixed;
  right: 0;
  top: 0;
  width: 100%;
  z-index: 1000;
}

.tech-top-bar-brand {
  align-items: center;
  display: flex;
  flex: 1;
  gap: 10px;
  min-width: 0;
}

.tech-top-bar-brand > img {
  background: #ffffff;
  border-radius: 5px;
  height: 38px;
  padding: 2px;
  width: 38px;
}

.tech-top-bar-brand > span {
  display: grid;
  line-height: 1.15;
  min-width: 0;
}

.tech-top-bar-brand strong,
.tech-top-bar-brand small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tech-top-bar-brand strong {
  font-size: 15px;
}

.tech-top-bar-brand small {
  color: rgba(255, 255, 255, .86);
  font-size: 12px;
  margin-top: 3px;
}

.top-bar-title {
  flex: 1;
  font-weight: 600;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.top-bar-back,
.top-bar-attendance,
.top-bar-logout {
  align-items: center;
  background: transparent;
  border: 0;
  color: #ffffff;
  cursor: pointer;
  display: inline-flex;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: 0;
}

.top-bar-attendance {
  border: 1px solid rgba(255, 255, 255, .75);
  border-radius: 5px;
  font-size: 13px;
  font-weight: 700;
  min-height: 40px;
  padding: 0 10px;
}

.top-bar-role-badge {
  background: rgba(255, 255, 255, 0.2);
  border-radius: 12px;
  color: #ffffff;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  padding: 6px 10px;
}

/* Role-specific shells: one secured app, two intentionally different experiences. */
.app-loading {
  display: none;
}

body.auth-pending .app-loading {
  align-content: center;
  background: #eef3f6;
  color: #173746;
  display: grid;
  gap: 8px;
  inset: 0;
  justify-items: center;
  min-height: 100vh;
  padding: 24px;
  position: fixed;
  text-align: center;
  z-index: 2000;
}

body.auth-pending .app-loading img {
  height: 58px;
  margin-bottom: 4px;
  width: 58px;
}

body.auth-pending .app-loading strong {
  font-size: 18px;
}

body.auth-pending .app-loading span {
  color: #61717c;
  font-size: 13px;
}

body.auth-pending .app-shell,
body.auth-pending .tech-top-bar {
  display: none !important;
}

body.experience-technician {
  background: #f6f8fa;
  color: #1b2730;
  overflow-x: hidden;
}

body.experience-technician .app-shell {
  display: block;
  min-height: 100vh;
}

body.experience-technician .sidebar,
body.experience-technician .topbar,
body.experience-technician .detail-panel {
  display: none !important;
}

body.experience-technician .tech-top-bar {
  display: flex !important;
}

body.experience-office .tech-top-bar {
  display: none !important;
}

body.experience-technician .main {
  margin: 0 auto;
  max-width: 980px;
  min-width: 0;
  padding: 92px 24px 48px;
  width: 100%;
}

body.experience-technician .view:not(#my-jobs) {
  display: none !important;
}

body.experience-technician #my-jobs .tech-portal-band {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}

body.experience-technician #my-jobs .tech-portal-band > .section-heading {
  display: none;
}

body.experience-technician .tech-assignments-shell {
  gap: 18px;
}

body.experience-technician .tech-assignments-header {
  align-items: start;
  background: #ffffff;
  border: 1px solid #d2dce3;
  border-radius: 3px;
  padding: 18px 20px;
}

body.experience-technician .tech-assignments-header h3 {
  color: #173746;
  font-size: 24px;
  line-height: 1.2;
  margin-top: 4px;
}

body.experience-technician .tech-assignments-header p {
  color: #586b77;
  font-size: 14px;
  margin-top: 7px;
}

body.experience-technician .tech-portal-kicker {
  color: #0879bd;
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.experience-technician .tech-assignments-header .tool-button {
  background: #f6f8fa;
  border-color: #9aadb8;
  border-radius: 3px;
  color: #17425a;
  min-height: 38px;
}

.tech-portal-range-tabs {
  border-bottom: 1px solid #aebfc9;
  display: flex;
  gap: 2px;
}

.tech-portal-range-tabs button {
  background: #edf3f6;
  border: 1px solid #aebfc9;
  border-bottom: 0;
  border-radius: 3px 3px 0 0;
  color: #244a5f;
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  min-height: 44px;
  padding: 9px 18px;
}

.tech-portal-range-tabs button.active {
  background: #0879bd;
  border-color: #0879bd;
  color: #ffffff;
}

.tech-portal-panel[hidden] {
  display: none !important;
}

.tech-top-bar .top-bar-back[hidden] {
  display: none !important;
}

body.experience-technician .tech-portal-search {
  background: #ffffff;
  border-color: #cbd7de;
  border-radius: 3px;
  padding: 12px;
}

body.experience-technician .tech-portal-search label > span {
  color: #3f5f70;
  text-transform: none;
}

body.experience-technician .tech-portal-search input {
  border-color: #9fb1bc;
  border-radius: 2px;
  min-height: 42px;
}

body.experience-technician .tech-assignment-groups,
body.experience-technician .tech-portal-panel {
  display: grid;
  gap: 18px;
}

body.experience-technician .tech-assignment-group {
  gap: 8px;
}

body.experience-technician .tech-assignment-group-head {
  align-items: center;
  border-bottom: 1px solid #ccd7de;
  flex-direction: row;
  padding: 0 2px 8px;
}

body.experience-technician .tech-assignment-group-head h4 {
  color: #25495c;
  font-size: 16px;
}

body.experience-technician .tech-assignment-cards {
  grid-template-columns: 1fr;
}

body.experience-technician .tech-assignment-card {
  border-color: #c3d0d8;
  border-radius: 3px;
  box-shadow: 0 2px 5px rgba(32, 61, 76, .07);
  gap: 8px;
  padding: 12px 14px;
}

body.experience-technician .tech-schedule-column-head,
body.experience-technician .tech-assignment-schedule-row {
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(260px, 2.2fr) minmax(150px, 1fr) minmax(145px, .9fr) minmax(110px, auto);
}

body.experience-technician .tech-schedule-column-head {
  align-items: end;
  border-bottom: 2px solid #0879bd;
  color: #3f5f70;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .06em;
  padding: 0 14px 8px;
  text-transform: uppercase;
}

body.experience-technician .tech-assignment-schedule-row {
  align-items: center;
}

body.experience-technician .tech-assignment-location,
body.experience-technician .tech-assignment-job,
body.experience-technician .tech-assignment-when {
  display: grid;
  gap: 4px;
  min-width: 0;
}

body.experience-technician .tech-assignment-address {
  color: #536b78;
  font-size: 13px;
}

body.experience-technician .tech-assignment-job > strong,
body.experience-technician .tech-assignment-when > strong {
  color: #17455e;
  font-size: 14px;
}

body.experience-technician .tech-assignment-job .status {
  justify-self: start;
}

body.experience-technician .tech-assignment-schedule-row .tech-assignment-actions {
  justify-content: end;
}

body.experience-technician .tech-assignment-head strong {
  color: #17455e;
  font-size: 16px;
}

body.experience-technician .tech-assignment-title {
  color: #162b36;
  font-size: 18px;
}

body.experience-technician .tech-assignment-subtitle {
  color: #395461;
  font-size: 14px;
}

body.experience-technician .tech-assignment-meta {
  color: #536b78;
  font-size: 14px;
}

body.experience-technician .tech-assignment-summary-preview {
  color: #4d606b;
  display: -webkit-box;
  font-size: 13px;
  line-height: 1.45;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.tech-portal-open-job,
.tech-portal-back,
.tech-portal-breadcrumb button {
  background: #ffffff;
  border: 1px solid #1888c7;
  border-radius: 3px;
  color: #076ca9;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
}

.tech-portal-open-job {
  min-height: 44px;
  padding: 8px 16px;
}

.tech-portal-open-job:hover,
.tech-portal-open-job:focus-visible,
.tech-portal-back:hover,
.tech-portal-back:focus-visible {
  background: #eaf6fc;
}

.tech-portal-empty {
  background: #ffffff;
  border-color: #cbd7de;
  border-radius: 3px;
}

.tech-portal-detail {
  display: grid;
  gap: 14px;
}

.tech-portal-breadcrumb {
  align-items: center;
  color: #60727d;
  display: flex;
  flex-wrap: wrap;
  font-size: 12px;
  gap: 7px;
}

.tech-portal-breadcrumb button {
  border: 0;
  min-height: 44px;
  padding: 4px 0;
}

.tech-portal-back {
  justify-self: start;
  min-height: 44px;
  padding: 8px 13px;
}

.tech-portal-job-sheet {
  background: #ffffff;
  border: 1px solid #c3d0d8;
  border-radius: 3px;
  box-shadow: 0 3px 8px rgba(32, 61, 76, .08);
  overflow: hidden;
}

.tech-portal-job-head {
  align-items: start;
  background: #f1f7fa;
  border-bottom: 1px solid #c3d0d8;
  display: flex;
  gap: 20px;
  justify-content: space-between;
  padding: 20px;
}

.tech-portal-job-head h1 {
  color: #15394d;
  font-size: 24px;
  line-height: 1.25;
  margin: 5px 0 4px;
}

.tech-portal-job-head p {
  color: #4f6774;
  margin: 0;
}

.tech-portal-job-number {
  color: #0879bd;
  font-size: 13px;
  font-weight: 900;
}

.tech-portal-job-sheet > .past-dispatch-badge {
  margin: 14px 20px 0;
}

.tech-portal-job-sheet.past-visit {
  border-left: 5px solid #718693;
}

.tech-portal-job-facts {
  display: grid;
  gap: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  padding: 0 20px;
}

.tech-portal-job-facts > div {
  border-bottom: 1px solid #e0e7eb;
  display: grid;
  gap: 4px;
  padding: 15px 0;
}

.tech-portal-job-facts > div:nth-child(odd):not(.wide) {
  padding-right: 18px;
}

.tech-portal-job-facts > div:nth-child(even) {
  border-left: 1px solid #e0e7eb;
  padding-left: 18px;
}

.tech-portal-job-facts > .wide {
  grid-column: 1 / -1;
}

.tech-portal-job-facts dt {
  color: #637782;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.tech-portal-job-facts dd {
  color: #1b313d;
  font-size: 15px;
  font-weight: 700;
  margin: 0;
  overflow-wrap: anywhere;
}

.tech-portal-detail-section {
  border-bottom: 1px solid #e0e7eb;
  padding: 18px 20px;
}

.tech-portal-detail-section:last-child {
  border-bottom: 0;
}

.tech-portal-detail-section h2 {
  color: #264a5d;
  font-size: 14px;
  margin: 0 0 8px;
}

.tech-portal-detail-section p {
  color: #334b58;
  line-height: 1.55;
  margin: 0;
  white-space: pre-wrap;
}

.tech-checklist-panel {
  background: #fffaf7;
}

.tech-checklist-heading,
.tech-checklist-group > header {
  align-items: center;
  display: flex;
  gap: 14px;
  justify-content: space-between;
}

.tech-checklist-heading span,
.tech-checklist-group > header span {
  color: #6f7478;
  display: block;
  font-size: 11px;
  font-weight: 800;
  margin-bottom: 3px;
  text-transform: uppercase;
}

.tech-checklist-heading strong,
.tech-checklist-group > header b {
  background: #fff0ed;
  border: 1px solid #dba095;
  border-radius: 999px;
  color: #842f22;
  font-size: 12px;
  padding: 6px 9px;
}

.tech-checklist-heading strong.complete {
  background: #e7f5ed;
  border-color: #98c9ae;
  color: #205f41;
}

.tech-checklist-blocker,
.tech-checklist-ready {
  background: #fff0ed;
  border: 1px solid #dda69b;
  border-left: 5px solid #b33b2c;
  border-radius: 4px;
  color: #7b2f23;
  display: grid;
  gap: 3px;
  margin-top: 12px;
  padding: 10px 12px;
}

.tech-checklist-ready {
  background: #eaf6ef;
  border-color: #a4cfb6;
  border-left-color: #27734c;
  color: #205f41;
}

.tech-checklist-groups {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}

.tech-checklist-group {
  background: #ffffff;
  border: 1px solid #d8dfe2;
  border-radius: 6px;
  overflow: hidden;
}

.tech-checklist-group > header {
  background: #f1f5f7;
  border-bottom: 1px solid #d8dfe2;
  padding: 11px 12px;
}

.tech-checklist-items {
  display: grid;
}

.tech-checklist-item {
  border-bottom: 1px solid #e5eaec;
  display: grid;
  gap: 10px;
  padding: 13px 12px;
}

.tech-checklist-item:last-child {
  border-bottom: 0;
}

.tech-checklist-item.complete {
  border-left: 5px solid #3a8a61;
}

.tech-checklist-item label {
  display: grid;
  gap: 5px;
}

.tech-checklist-item label > span {
  color: #385564;
  font-size: 12px;
  font-weight: 900;
}

.tech-checklist-item input,
.tech-checklist-item select,
.tech-checklist-item textarea {
  border: 1px solid #9cafb8;
  border-radius: 4px;
  font: inherit;
  min-height: 44px;
  padding: 9px 10px;
  width: 100%;
}

.tech-checklist-prompt small {
  color: #687b85;
  line-height: 1.4;
}

.tech-checklist-result {
  background: #e8f5ee;
  border: 1px solid #aad3bc;
  border-radius: 4px;
  color: #205b3c !important;
  margin-top: 12px !important;
  padding: 8px 10px;
}

.tech-checklist-result.error {
  background: #fff0ed;
  border-color: #e4b2a8;
  color: #8a2c1e !important;
}

.tech-writeup-panel {
  background: #f8fbfc;
}

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

.tech-writeup-heading p {
  color: #60727d;
  font-size: 13px;
  white-space: normal;
}

.tech-writeup-status {
  border: 1px solid #c5d2d8;
  border-radius: 999px;
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 900;
  padding: 5px 9px;
  text-transform: uppercase;
}

.tech-writeup-status.draft {
  background: #eef4f7;
  color: #365868;
}

.tech-writeup-status.submitted {
  background: #fff1c7;
  border-color: #dfbf5d;
  color: #76550f;
}

.tech-writeup-status.returned {
  background: #fff0ed;
  border-color: #d8988b;
  color: #823427;
}

.tech-writeup-status.approved {
  background: #e7f5ed;
  border-color: #91c5a8;
  color: #205f41;
}

.tech-writeup-progress {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 14px;
}

.tech-writeup-progress span {
  background: #ffffff;
  border: 1px solid #cbd8de;
  border-radius: 999px;
  color: #617681;
  font-size: 11px;
  font-weight: 800;
  padding: 5px 8px;
}

.tech-writeup-progress span.complete {
  background: #e7f5ed;
  border-color: #9dccb1;
  color: #205f41;
}

.tech-writeup-progress-summary {
  color: #60727d !important;
  font-size: 12px;
  margin-top: 7px !important;
}

.tech-writeup-form {
  display: grid;
  gap: 13px;
  margin-top: 14px;
}

.tech-writeup-form > label:first-of-type {
  display: grid;
  gap: 6px;
}

.tech-writeup-form > label:first-of-type > span,
.tech-writeup-coaching > strong {
  color: #345463;
  font-size: 12px;
  font-weight: 900;
}

.tech-writeup-form textarea {
  background: #ffffff;
  border: 1px solid #91a8b4;
  border-radius: 4px;
  color: #1c3542;
  font: inherit;
  line-height: 1.5;
  min-height: 340px;
  padding: 11px;
  resize: vertical;
  width: 100%;
}

.tech-writeup-form textarea[readonly] {
  background: #f1f4f5;
  color: #40545e;
}

.tech-writeup-coaching,
.tech-writeup-locked {
  background: #eef6f8;
  border: 1px solid #c6dce3;
  border-radius: 4px;
  color: #3d5966;
  display: grid;
  gap: 6px;
  padding: 11px 12px;
}

.tech-writeup-coaching ul {
  line-height: 1.45;
  margin: 0;
  padding-left: 20px;
}

.tech-writeup-locked {
  background: #fff6d9;
  border-color: #e2c66e;
  color: #6d551a;
}

.tech-writeup-returned {
  background: #fff0ed;
  border: 1px solid #dca499;
  border-left: 5px solid #a83f2f;
  border-radius: 4px;
  color: #722d22;
  display: grid;
  gap: 5px;
  margin-top: 14px;
  padding: 11px 12px;
}

.tech-writeup-returned p {
  color: #722d22 !important;
  margin: 0 !important;
  white-space: pre-wrap;
}

.tech-writeup-returned small {
  color: #8b5046;
}

.tech-evidence-locked {
  margin-top: 14px;
}

.tech-writeup-verification {
  align-items: start;
  background: #ffffff;
  border: 1px solid #b7c8d0;
  border-radius: 4px;
  color: #294d5e;
  display: flex;
  font-size: 13px;
  font-weight: 800;
  gap: 9px;
  padding: 11px 12px;
}

.tech-writeup-verification input {
  flex: 0 0 auto;
  height: 20px;
  margin: 0;
  width: 20px;
}

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

.tech-writeup-actions button {
  min-height: 46px;
}

.tech-writeup-meta {
  color: #667984;
}

.tech-writeup-result {
  background: #e8f5ee;
  border: 1px solid #aad3bc;
  border-radius: 3px;
  color: #205b3c !important;
  font-size: 13px;
  padding: 8px 10px;
  white-space: normal !important;
}

.tech-writeup-result.error {
  background: #fff0ed;
  border-color: #e4b2a8;
  color: #8a2c1e !important;
}

.tech-report-photo-heading {
  align-items: start;
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.tech-report-photo-heading p {
  color: #60727d;
  font-size: 13px;
  white-space: normal;
}

.tech-report-photo-heading > strong {
  background: #eaf4f3;
  border: 1px solid #b8d4d1;
  border-radius: 999px;
  color: #225d5a;
  flex: 0 0 auto;
  font-size: 12px;
  padding: 5px 9px;
}

.tech-report-photo-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  margin-top: 14px;
}

.tech-report-photo-grid > .empty-state {
  grid-column: 1 / -1;
}

.tech-report-photo-card {
  background: #f6f9fa;
  border: 1px solid #cbd8de;
  border-radius: 4px;
  min-width: 0;
  overflow: hidden;
}

.tech-report-photo-card img,
.tech-report-photo-missing {
  aspect-ratio: 4 / 3;
  background: #dce6ea;
  display: grid;
  object-fit: cover;
  place-items: center;
  width: 100%;
}

.tech-report-photo-missing {
  color: #5a6c76;
  font-size: 12px;
  font-weight: 800;
}

.tech-report-photo-card > div {
  display: grid;
  gap: 3px;
  padding: 9px 10px;
}

.tech-report-photo-card strong,
.tech-report-photo-card span {
  overflow-wrap: anywhere;
}

.tech-report-photo-card strong {
  color: #213d4c;
  font-size: 13px;
}

.tech-report-photo-card span {
  color: #6a7a83;
  font-size: 11px;
}

.tech-report-photo-form {
  background: #f1f7fa;
  border: 1px solid #bfd0d9;
  border-radius: 4px;
  display: grid;
  gap: 13px;
  margin-top: 16px;
  padding: 14px;
}

.tech-report-photo-inputs {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tech-report-photo-form label {
  display: grid;
  gap: 6px;
}

.tech-report-photo-form label > span {
  color: #345463;
  font-size: 12px;
  font-weight: 900;
}

.tech-report-photo-form input[type="file"],
.tech-report-photo-form input[type="text"],
.tech-report-photo-form input:not([type]),
.tech-report-photo-form select,
.tech-report-photo-form textarea {
  background: #fff;
  border: 1px solid #91a8b4;
  border-radius: 4px;
  color: #1c3542;
  font: inherit;
  min-height: 44px;
  padding: 8px;
  width: 100%;
}

.tech-report-photo-form input[type="file"]::file-selector-button {
  background: #e6eef2;
  border: 1px solid #829ba8;
  border-radius: 3px;
  color: #1d4c63;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  margin-right: 8px;
  min-height: 34px;
  padding: 6px 10px;
}

.tech-report-photo-submit {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.tech-report-photo-submit small {
  color: #62747d;
}

.tech-report-photo-submit button {
  flex: 0 0 auto;
  min-height: 44px;
}

.tech-report-photo-result {
  background: #e8f5ee;
  border: 1px solid #aad3bc;
  border-radius: 3px;
  color: #205b3c !important;
  font-size: 13px;
  padding: 8px 10px;
  white-space: normal !important;
}

.tech-report-photo-result.error {
  background: #fff0ed;
  border-color: #e4b2a8;
  color: #8a2c1e !important;
}

body.experience-technician .tech-resource-link {
  border-radius: 3px;
  font-size: 13px;
  min-height: 44px;
  padding: 8px 11px;
}

@media (max-width: 600px) {
  .tech-top-bar {
    gap: 8px;
    padding: 0 10px;
  }

  .tech-top-bar-brand > img {
    height: 34px;
    width: 34px;
  }

  .top-bar-role-badge {
    display: none;
  }

  .top-bar-account {
    min-height: 44px;
    padding-inline: 9px;
  }

  .top-bar-attendance {
    font-size: 12px;
    min-width: 0;
    padding-inline: 8px;
  }

  body.experience-technician .tech-assignments-header .tool-button,
  body.experience-technician .tech-portal-search input {
    min-height: 44px;
  }

  body.experience-technician .tech-portal-job-facts .navigate-address-link {
    align-items: center;
    display: inline-flex;
    min-height: 44px;
  }

  body.experience-technician .main {
    padding: 78px 10px 28px;
  }

  body.experience-technician .tech-assignments-header {
    align-items: stretch;
    flex-direction: column;
    padding: 15px;
  }

  body.experience-technician .tech-assignments-header h3 {
    font-size: 21px;
  }

  .tech-portal-range-tabs button {
    flex: 1;
    padding-inline: 10px;
  }

  body.experience-technician .tech-assignment-group-head {
    align-items: center;
    flex-direction: row;
  }

  body.experience-technician .tech-assignment-card {
    padding: 14px;
  }

  body.experience-technician .tech-schedule-column-head {
    display: none;
  }

  body.experience-technician .tech-assignment-schedule-row {
    gap: 12px;
    grid-template-columns: 1fr;
  }

  body.experience-technician .tech-assignment-schedule-row [data-tech-column]::before {
    color: #66808e;
    content: attr(data-tech-column);
    display: block;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .06em;
    margin-bottom: 3px;
    text-transform: uppercase;
  }

  body.experience-technician .tech-assignment-schedule-row .tech-assignment-actions {
    justify-content: stretch;
  }

  body.experience-technician .tech-assignment-schedule-row .tech-portal-open-job {
    width: 100%;
  }

  .tech-portal-job-head {
    display: grid;
    gap: 10px;
    padding: 16px;
  }

  .tech-portal-job-facts {
    grid-template-columns: 1fr;
    padding: 0 16px;
  }

  .tech-portal-job-facts > div,
  .tech-portal-job-facts > div:nth-child(odd):not(.wide),
  .tech-portal-job-facts > div:nth-child(even) {
    border-left: 0;
    padding: 13px 0;
  }

  .tech-portal-job-facts > .wide {
    grid-column: auto;
  }

  .tech-portal-detail-section {
    padding: 16px;
  }

  .tech-report-photo-heading,
  .tech-report-photo-submit,
  .tech-writeup-heading,
  .tech-checklist-heading,
  .tech-checklist-group > header,
  .tech-evidence-group > header,
  .service-evidence-wizard-head {
    align-items: stretch;
    display: grid;
  }

  .tech-report-photo-grid,
  .tech-report-photo-inputs {
    grid-template-columns: 1fr;
  }

  .tech-writeup-actions {
    grid-template-columns: 1fr;
  }

  .tech-report-photo-card img,
  .tech-report-photo-missing {
    max-height: 320px;
  }

  .tech-report-photo-submit button {
    width: 100%;
  }
}

.brand > .brand-mark {
  display: none !important;
}

.directory-toolbar {
  align-items: end;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 14px;
}

.directory-toolbar label {
  display: grid;
  flex: 1;
  gap: 6px;
  max-width: 560px;
}

.directory-toolbar label span,
.directory-toolbar > span {
  color: var(--muted, #61717c);
  font-size: 12px;
  font-weight: 700;
}

.technician-directory-toolbar {
  margin-bottom: 10px;
}

.technician-department-filter {
  display: grid;
  gap: 8px;
  margin-bottom: 18px;
}

.technician-department-filter > span {
  color: #7f1d1d;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.technician-department-toggles {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
}

.technician-department-toggle {
  background: #fff7f7;
  border: 2px solid #b92f2a;
  border-radius: 10px;
  color: #9f2b2b;
  cursor: pointer;
  font-size: 16px;
  font-weight: 900;
  min-height: 52px;
  padding: 10px 18px;
  text-transform: uppercase;
  transition: background 120ms ease, border-color 120ms ease, box-shadow 120ms ease, color 120ms ease, transform 120ms ease;
}

.technician-department-toggle:hover {
  background: #fde8e8;
  border-color: #8f201d;
  color: #7f1d1d;
  transform: translateY(-1px);
}

.technician-department-toggle.active,
.technician-department-toggle[aria-pressed="true"] {
  background: #b92f2a;
  border-color: #b92f2a;
  box-shadow: 0 4px 0 #7f1d1d;
  color: #ffffff;
}

.technician-person-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.technician-person-tag-list > span {
  background: #173f4b;
  border-radius: 999px;
  color: #ffffff;
  display: inline-flex;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  padding: 4px 7px;
}

.technician-person-tag-editor {
  border: 1px solid #b8cbd3;
  border-radius: 8px;
  margin: 14px 0;
  padding: 12px;
}

.technician-person-tag-editor legend {
  color: #173f4b;
  font-weight: 900;
  padding: 0 6px;
}

.technician-person-tag-editor legend small {
  color: #61717c;
  display: block;
  font-size: 11px;
  font-weight: 600;
  margin-top: 2px;
}

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

.technician-person-tag-options label {
  align-items: center;
  background: #ffffff;
  border: 1px solid #cedbe0;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  gap: 8px;
  min-height: 38px;
  padding: 7px 9px;
}

.technician-person-tag-options input:checked + span {
  color: #8f201d;
  font-weight: 900;
}

.directory-editor-card {
  background: #f8fafb;
  border: 1px solid #d8e0e5;
  border-radius: 10px;
  margin-top: 18px;
  padding: 18px;
}

.directory-editor-card .section-heading {
  align-items: start;
  display: flex;
  justify-content: space-between;
  margin-bottom: 14px;
}

.directory-editor-card h4,
.directory-editor-card p {
  margin: 0;
}

.directory-editor-card p {
  color: var(--muted, #61717c);
  margin-top: 4px;
}

#technician-directory-editor:not(:empty) {
  background: #f8fafb;
  border: 2px solid #223b49;
  border-radius: 10px;
  bottom: 16px;
  box-shadow: -18px 18px 46px rgba(16, 42, 66, 0.25);
  overflow-y: auto;
  position: fixed;
  right: 16px;
  top: 58px;
  width: min(520px, calc(100vw - 32px));
  z-index: 90;
}

#technician-directory-editor:not(:empty) .directory-editor-card {
  border: 0;
  border-radius: 8px;
  margin: 0;
  min-height: 100%;
}

@media (max-width: 720px) {
  .directory-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

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

  .technician-person-tag-options {
    grid-template-columns: 1fr;
  }
}

/* Dispatch Hub readability polish */
.dispatch-hub-v0 .tool-button,
.dispatch-hub-v0 .primary-button,
.dispatch-hub-v0 .primary-link-button,
.dispatch-hub-v0 .mode-tab,
.dispatch-hub-v0 .detail-tab,
.dispatch-hub-v0 .user-account-button,
.dispatch-hub-v0 .user-logout-button,
.dispatch-hub-v0 .sidebar-action {
  font-family: inherit;
  font-size: 14px;
  min-height: 36px;
  padding: 6px 11px;
}

.dispatch-hub-v0 input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.dispatch-hub-v0 select,
.dispatch-hub-v0 textarea {
  font-family: inherit;
  font-size: 14px;
  min-height: 36px;
  padding: 6px 8px;
}

/* Beat the compact Wintac sheet rules without affecting dormant screens. */
.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-filters input,
.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-filters select,
.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-saved-views input,
.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-saved-views select,
.dispatch-hub-v0 #dispatch-board.sheet-mode .sheet-search input {
  font-size: 14px;
  min-height: 36px;
}

.dispatch-hub-v0 #dispatch-lite label > span,
.dispatch-hub-v0 #dispatch-board label > span,
.dispatch-hub-v0 #customers label > span,
.dispatch-hub-v0 #sites-equipment label > span,
.dispatch-hub-v0 #my-jobs label > span,
.dispatch-hub-v0 #dispatch-lite .dispatch-lite-job-name-preview span,
.dispatch-hub-v0 #dispatch-lite .dispatch-lite-confirmation span,
.dispatch-hub-v0 #dispatch-board .job-control-expanded-block h4,
.dispatch-hub-v0 #dispatch-board .job-control-mini-value span,
.dispatch-hub-v0 #dispatch-board .job-control-description span,
.dispatch-hub-v0 #dispatch-board .job-control-quick-actions span,
.dispatch-hub-v0 #dispatch-board .job-control-latest-note span {
  font-size: 12px;
}

.dispatch-hub-v0 .section-heading p {
  font-size: 13px;
  line-height: 1.4;
}

.dispatch-hub-v0 #dispatch-lite .dispatch-lite-selected-site-main span,
.dispatch-hub-v0 #dispatch-lite .dispatch-lite-selected-site-main em {
  font-size: 13px;
}

.dispatch-hub-v0 #dispatch-lite .wintac-mini-grid th,
.dispatch-hub-v0 #dispatch-lite .wintac-mini-grid td,
.dispatch-hub-v0 #dispatch-board .job-control-table th,
.dispatch-hub-v0 #dispatch-board .job-control-table td,
.dispatch-hub-v0 #customers table th,
.dispatch-hub-v0 #customers table td,
.dispatch-hub-v0 #sites-equipment table th,
.dispatch-hub-v0 #sites-equipment table td,
.dispatch-hub-v0 #customers .status,
.dispatch-hub-v0 #dispatch-board .sheet-sort-button {
  font-size: 13px;
  line-height: 1.35;
}

.dispatch-hub-v0 #dispatch-board .job-control-table thead th {
  font-size: 11px;
  font-weight: 900;
  height: 36px;
  letter-spacing: 0.045em;
  line-height: 1.15;
  padding-block: 0;
  text-transform: uppercase;
  vertical-align: middle;
}

.dispatch-hub-v0 #dispatch-board .job-control-table thead .sheet-static-heading,
.dispatch-hub-v0 #dispatch-board .job-control-table thead .sheet-sort-button {
  align-items: center;
  box-sizing: border-box;
  display: flex;
  font: inherit;
  min-height: 34px;
  text-transform: uppercase;
}

.dispatch-hub-v0 #dispatch-board .job-control-table thead .sheet-sort-button {
  justify-content: space-between;
  width: 100%;
}

.dispatch-hub-v0 #dispatch-board .job-control-select-head .sheet-static-heading {
  justify-content: center;
}

.dispatch-hub-v0 #dispatch-board .job-control-select-button {
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.dispatch-hub-v0 #dispatch-board .job-control-panel.density-compact .job-control-select-button {
  font-size: 10px;
  min-height: 28px;
  padding: 2px 7px;
}

/* Shared window language: every true Close action uses the same dark × treatment. */
.dispatch-hub-v0 .window-close-button {
  background: #223b49;
  border: 1px solid #142832;
  border-radius: 999px;
  box-shadow: 0 0 0 2px rgba(34, 59, 73, 0.14);
  color: #ffffff;
  font-weight: 900;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.dispatch-hub-v0 .window-close-button:hover,
.dispatch-hub-v0 .window-close-button:focus-visible {
  background: #122a36;
  border-color: #091820;
  box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.3);
  color: #ffffff;
}

.dispatch-hub-v0 .window-close-icon {
  align-items: center;
  display: inline-flex;
  font-size: 18px;
  height: 32px;
  justify-content: center;
  min-height: 32px;
  min-width: 32px;
  padding: 0;
  width: 32px;
}

.dispatch-hub-v0 .crew-selection-grid [data-wintac-crew-row] > .crew-name-cell,
.dispatch-hub-v0 .crew-selection-grid [data-wintac-crew-row].selected > .crew-name-cell {
  background: #174e63;
  color: #ffffff;
  font-weight: 900;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.dispatch-hub-v0 #dispatch-board .job-control-table td {
  height: auto;
  padding: 4px 7px;
}

.dispatch-hub-v0 #dispatch-board .sheet-sort-button {
  min-height: 36px;
  padding: 7px 8px;
}

.dispatch-hub-v0 #dispatch-board .sheet-cell-control {
  font-size: 14px;
  min-height: 36px;
}

.dispatch-hub-v0 #dispatch-board .job-control-expand-button {
  font-size: 16px;
  height: 26px;
  width: 26px;
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-count {
  font-size: 13px;
  min-height: 30px;
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-count strong {
  font-size: 16px;
}

/* WinTAC-style Job Control ribbon and per-column query controls. */
.dispatch-hub-v0 #dispatch-board .dispatch-tools .mode-tabs {
  display: grid;
  flex: 1 0 100%;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  width: 100%;
}

.dispatch-hub-v0 #dispatch-board .dispatch-tools .mode-tab {
  background: #4f9fe1;
  border-color: #2d7dbc;
  border-radius: 0;
  color: #ffffff;
  font-size: 15px;
  font-weight: 800;
}

.dispatch-hub-v0 #dispatch-board .dispatch-tools .mode-tab:hover {
  background: #2e84c8;
  color: #ffffff;
}

.dispatch-hub-v0 #dispatch-board .dispatch-tools .mode-tab.active {
  background: #f6fbff;
  border-bottom-color: #f6fbff;
  color: #102d3d;
}

.dispatch-hub-v0 #dispatch-board .job-control-command-strip {
  align-items: end;
  display: grid;
  gap: 6px;
  grid-template-columns: auto minmax(430px, auto) minmax(320px, 1fr) auto;
}

.dispatch-hub-v0 #dispatch-board .job-control-period-actions,
.dispatch-hub-v0 #dispatch-board .job-control-ribbon-actions {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.dispatch-hub-v0 #dispatch-board .job-control-date-range {
  align-items: end;
  display: grid;
  gap: 4px;
  grid-template-columns: minmax(145px, 1fr) minmax(145px, 1fr) auto auto;
  position: relative;
}

.dispatch-hub-v0 #dispatch-board .job-control-date-range.range-calendar-open {
  z-index: 120;
}

.dispatch-hub-v0 #dispatch-board .job-control-date-range label {
  display: grid;
  gap: 2px;
}

.dispatch-hub-v0 #dispatch-board .job-control-date-range label > span {
  color: #334d5d;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.dispatch-hub-v0 #dispatch-board .job-control-date-range input {
  cursor: pointer;
  min-height: 32px;
}

.dispatch-hub-v0 #dispatch-board .job-control-date-range input.active-range-field {
  background: #effbf8;
  border-color: #08776d;
  box-shadow: 0 0 0 2px rgba(8, 119, 109, 0.22);
}

.dispatch-hub-v0 #dispatch-board .job-control-range-calendar {
  background: #ffffff;
  border: 2px solid #08776d;
  border-radius: 8px;
  box-shadow: 0 12px 30px rgba(15, 45, 61, 0.28);
  left: min(150px, 20%);
  padding: 10px;
  position: absolute;
  top: calc(100% + 6px);
  width: min(390px, calc(100vw - 36px));
}

.dispatch-hub-v0 #dispatch-board .job-control-range-calendar-heading,
.dispatch-hub-v0 #dispatch-board .job-control-range-calendar-nav,
.dispatch-hub-v0 #dispatch-board .job-control-range-legend {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-calendar-heading {
  gap: 10px;
  margin-bottom: 8px;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-calendar-heading > div {
  display: grid;
  gap: 2px;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-calendar-heading strong {
  color: #123b50;
  font-size: 14px;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-calendar-heading span {
  color: #4b6471;
  font-size: 11px;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-calendar-nav {
  background: #eaf4f8;
  border: 1px solid #bed2dc;
  margin-bottom: 6px;
  padding: 4px;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-weekdays,
.dispatch-hub-v0 #dispatch-board .job-control-range-days {
  display: grid;
  gap: 3px;
  grid-template-columns: repeat(7, minmax(38px, 1fr));
}

.dispatch-hub-v0 #dispatch-board .job-control-range-weekdays span {
  color: #536d7a;
  font-size: 10px;
  font-weight: 900;
  padding: 4px 0;
  text-align: center;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-day {
  align-items: center;
  background: #f6fafc;
  border: 1px solid #c7d8e0;
  color: #173746;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  font-size: 12px;
  font-weight: 800;
  justify-content: center;
  min-height: 38px;
  padding: 2px;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-day:hover:not(:disabled):not(.range-start):not(.range-end) {
  background: #dff1f7;
  border-color: #2788b7;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-day.today {
  box-shadow: inset 0 0 0 2px #d29a00;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-day.in-range {
  background: #d8f1eb;
  border-color: #83c6b8;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-day.range-start {
  background: #08776d;
  border-color: #054f49;
  color: #ffffff;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-day.range-end {
  background: #176fc1;
  border-color: #0e4f8d;
  color: #ffffff;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-day small {
  font-size: 8px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-day:disabled {
  background: #edf0f2;
  border-color: #e1e5e7;
  color: #a0aaaf;
  cursor: not-allowed;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-legend {
  color: #4b6471;
  font-size: 9px;
  gap: 8px;
  margin-top: 8px;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-legend span {
  align-items: center;
  display: inline-flex;
  gap: 4px;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-legend i {
  border: 1px solid #64808d;
  display: inline-block;
  height: 10px;
  width: 10px;
}

.dispatch-hub-v0 #dispatch-board .job-control-range-legend i.start { background: #08776d; }
.dispatch-hub-v0 #dispatch-board .job-control-range-legend i.inside { background: #d8f1eb; }
.dispatch-hub-v0 #dispatch-board .job-control-range-legend i.end { background: #176fc1; }

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-count {
  align-items: start;
  display: grid;
  gap: 2px 12px;
  grid-template-columns: auto minmax(260px, 1fr) auto;
  padding: 6px 8px;
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-count > small {
  color: #4b6471;
  grid-column: 1 / -1;
  line-height: 1.35;
}

.dispatch-hub-v0 #dispatch-board .sheet-column-header {
  align-items: stretch;
  display: flex;
  min-height: 34px;
  position: relative;
  width: 100%;
}

.dispatch-hub-v0 #dispatch-board .job-control-table th[data-jcc-column] {
  position: sticky;
}

.dispatch-hub-v0 #dispatch-board .job-control-resize-handle {
  bottom: 0;
  cursor: col-resize;
  position: absolute;
  right: -4px;
  top: 0;
  touch-action: none;
  width: 9px;
  z-index: 5;
}

.dispatch-hub-v0 #dispatch-board .job-control-resize-handle:hover,
.dispatch-hub-v0 #dispatch-board .job-control-resize-handle:focus-visible {
  background: rgba(23, 111, 193, 0.22);
  outline: 1px solid #176fc1;
}

.dispatch-hub-v0 #dispatch-board .job-control-table thead th:has(.sheet-column-filter-popover) {
  z-index: 40;
}

.dispatch-hub-v0 #dispatch-board .sheet-column-header .sheet-sort-button {
  flex: 1 1 auto;
  min-width: 0;
}

.dispatch-hub-v0 #dispatch-board .sheet-column-filter-button {
  align-items: center;
  align-self: stretch;
  background: #e8f2f7;
  border: 0;
  border-left: 1px solid #adc3ce;
  color: #294a5a;
  cursor: pointer;
  display: inline-flex;
  font-size: 12px;
  font-weight: 900;
  justify-content: center;
  min-width: 25px;
  padding: 0 5px;
}

.dispatch-hub-v0 #dispatch-board .sheet-column-filter-button:hover,
.dispatch-hub-v0 #dispatch-board .sheet-column-filter-button.open {
  background: #cfe2ea;
}

.dispatch-hub-v0 #dispatch-board .sheet-column-filter-button.active {
  background: #f2bc21;
  color: #3a2700;
}

.dispatch-hub-v0 #dispatch-board .sheet-column-filter-popover {
  background: #f5f9fc;
  border: 2px solid #174e63;
  border-radius: 5px;
  box-shadow: 0 9px 24px rgba(9, 35, 48, 0.28);
  color: #153746;
  display: grid;
  gap: 7px;
  left: 0;
  min-width: 280px;
  padding: 8px;
  position: absolute;
  text-align: left;
  text-transform: none;
  top: calc(100% + 1px);
  z-index: 30;
}

.dispatch-hub-v0 #dispatch-board .job-control-table th:nth-last-child(-n+2) .sheet-column-filter-popover {
  left: auto;
  right: 0;
}

.dispatch-hub-v0 #dispatch-board .sheet-column-filter-title,
.dispatch-hub-v0 #dispatch-board .sheet-column-filter-actions {
  align-items: center;
  display: flex;
  gap: 6px;
  justify-content: space-between;
}

.dispatch-hub-v0 #dispatch-board .sheet-column-filter-title strong {
  font-size: 13px;
}

.dispatch-hub-v0 #dispatch-board .sheet-column-filter-close {
  font-size: 11px;
  min-height: 28px;
  padding: 3px 8px;
}

.dispatch-hub-v0 #dispatch-board .sheet-column-filter-popover label {
  display: grid;
  gap: 2px;
}

.dispatch-hub-v0 #dispatch-board .sheet-column-filter-popover [hidden] {
  display: none !important;
}

.dispatch-hub-v0 #dispatch-board .sheet-column-filter-popover label > span {
  color: #45606d;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.dispatch-hub-v0 #dispatch-board .sheet-column-filter-popover input,
.dispatch-hub-v0 #dispatch-board .sheet-column-filter-popover select {
  font-size: 13px;
  min-height: 32px;
  width: 100%;
}

@media (max-width: 1500px) {
  .dispatch-hub-v0 #dispatch-board .job-control-command-strip {
    grid-template-columns: auto minmax(420px, 1fr) minmax(320px, 1fr);
  }

  .dispatch-hub-v0 #dispatch-board .job-control-ribbon-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }
}

@media (max-width: 980px) {
  .dispatch-hub-v0 #dispatch-board .dispatch-tools .mode-tabs {
    grid-template-columns: repeat(2, minmax(130px, 1fr));
  }

  .dispatch-hub-v0 #dispatch-board .job-control-command-strip,
  .dispatch-hub-v0 #dispatch-board .job-control-date-range {
    grid-template-columns: 1fr 1fr;
  }

  .dispatch-hub-v0 #dispatch-board .job-control-period-actions,
  .dispatch-hub-v0 #dispatch-board .job-control-ribbon-actions,
  .dispatch-hub-v0 #dispatch-board .job-control-locate-search {
    grid-column: 1 / -1;
  }

  .dispatch-hub-v0 #dispatch-board .job-control-range-calendar {
    left: 0;
  }

  .dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-count {
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-count > small {
    grid-column: auto;
  }
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-pagination .tool-button,
.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-page-size select {
  min-height: 32px;
}

@media (max-width: 720px) {
  .dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-pagination {
    align-items: stretch;
  }

  .dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-page-range {
    flex-basis: 100%;
  }

  .dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-page-size {
    margin-right: auto;
  }
}

.dispatch-hub-v0 #customers .command-table th,
.dispatch-hub-v0 #customers .command-table td,
.dispatch-hub-v0 #sites-equipment .command-table th,
.dispatch-hub-v0 #sites-equipment .command-table td {
  padding: 8px 10px;
}

.dispatch-hub-v0 #sites-equipment .equipment-filter-panel span {
  font-size: 12px;
  text-transform: none;
}

.dispatch-hub-v0 .user-switcher {
  grid-template-columns: minmax(0, 1fr);
}

.dispatch-hub-v0 .user-pill-actions {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dispatch-hub-v0 .user-account-button,
.dispatch-hub-v0 .user-logout-button {
  min-width: 0;
  width: 100%;
}

.dispatch-hub-v0 #dispatch-board .job-control-more-filters-toggle {
  margin-left: auto;
  white-space: nowrap;
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-primary-filters {
  align-items: end;
  border-bottom: 1px solid #a7cde7;
  border-top: 1px solid #c3d9e7;
  display: grid;
  gap: 5px;
  grid-template-columns: 170px 195px minmax(220px, 1.7fr) minmax(145px, 1fr) minmax(205px, 1.25fr) 120px auto;
  overflow-x: auto;
  padding: 5px 6px;
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-primary-filters > label {
  min-width: 0;
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-primary-filters > label > span:first-child,
.dispatch-hub-v0 .dispatch-tools .inline-field > span {
  color: #334d5d;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-primary-filters select,
.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-primary-filters input {
  font-size: 13px;
  min-height: 32px;
  min-width: 0;
  width: 100%;
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-primary-filters .job-control-filter-row {
  grid-template-columns: minmax(125px, 1fr) auto;
}

.dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-primary-filters .job-control-more-filters-toggle {
  min-height: 32px;
}

.dispatch-hub-v0 #dispatch-board .job-control-secondary-filters {
  border-top: 1px solid #c3d9e7;
}

.dispatch-hub-v0 #dispatch-board .job-control-secondary-filters[hidden] {
  display: none !important;
}

/* Create Job uses these for inline customer and site selection actions. */
.dispatch-hub-v0 #dispatch-lite .link-button {
  background: transparent;
  border: 0;
  color: #006b9b;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  padding: 0;
  text-align: left;
}

.dispatch-hub-v0 button:focus-visible,
.dispatch-hub-v0 a:focus-visible,
.dispatch-hub-v0 input:focus-visible,
.dispatch-hub-v0 select:focus-visible,
.dispatch-hub-v0 textarea:focus-visible {
  outline: 3px solid #f0a202;
  outline-offset: 2px;
}

@media (max-width: 768px) {
  .dispatch-hub-v0 .technician-writeup-review-actions {
    grid-template-columns: 1fr;
  }

  .dispatch-hub-v0 .technician-writeup-submission-card header {
    display: grid;
  }

  .dispatch-hub-v0 .tool-button,
  .dispatch-hub-v0 .primary-button,
  .dispatch-hub-v0 .primary-link-button,
  .dispatch-hub-v0 .mode-tab,
  .dispatch-hub-v0 .detail-tab,
  .dispatch-hub-v0 .user-account-button,
  .dispatch-hub-v0 .user-logout-button,
  .dispatch-hub-v0 .sidebar-action,
  .dispatch-hub-v0 input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  .dispatch-hub-v0 select,
  .dispatch-hub-v0 textarea {
    min-height: 44px;
  }

  .dispatch-hub-v0 input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  .dispatch-hub-v0 select,
  .dispatch-hub-v0 textarea {
    font-size: 16px;
  }

  .dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-filters input,
  .dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-filters select,
  .dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-saved-views input,
  .dispatch-hub-v0 #dispatch-board.sheet-mode .job-control-saved-views select,
  .dispatch-hub-v0 #dispatch-board.sheet-mode .sheet-search input {
    min-height: 44px;
  }
}
/* Track D: recorded job time and CSV handoff. */
.time-tracking-workspace,
.time-report-section,
.job-recorded-time-panel,
.tech-recorded-time-panel {
  display: grid;
  gap: 16px;
}

.time-report-filter,
.time-export-create {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 1fr));
  gap: 12px;
  align-items: end;
  padding: 16px;
  border: 1px solid #d8e0e5;
  border-radius: 12px;
  background: #f7f9fa;
}

.time-report-filter label,
.time-export-create label,
.time-entry-correction label,
.tech-clock-start label {
  display: grid;
  gap: 6px;
}

.time-report-filter label > span,
.time-export-create label > span,
.time-entry-correction label > span,
.tech-clock-start label > span {
  color: #61717c;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.time-report-filter .wide {
  grid-column: span 2;
}

.time-report-metrics,
.job-recorded-time-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
}

.time-report-metrics article,
.job-recorded-time-summary article {
  display: grid;
  gap: 4px;
  padding: 14px;
  border: 1px solid #d8e0e5;
  border-radius: 10px;
  background: #fff;
}

.time-report-metrics article span,
.job-recorded-time-summary article span {
  color: #61717c;
  font-size: 12px;
  font-weight: 700;
}

.time-report-metrics article strong,
.job-recorded-time-summary article strong {
  color: #172027;
  font-size: 24px;
}

.time-report-metrics article.warning,
.job-recorded-time-summary article.warning {
  border-color: #d48a14;
  background: #fff8e8;
}

.time-report-section {
  padding: 18px;
  border: 1px solid #d8e0e5;
  border-radius: 12px;
  background: #fff;
}

.time-report-heading,
.job-time-heading,
.tech-recorded-time-heading,
.time-session-card header,
.job-time-entry header,
.time-export-batch {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
}

.time-group-toggles {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  border-radius: 10px;
  background: #edf1f3;
}

.time-group-toggles button {
  min-height: 38px;
  border: 0;
  border-radius: 7px;
  padding: 0 16px;
  background: transparent;
  color: #41515b;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.time-group-toggles button.active {
  background: #a71930;
  color: #fff;
}

.time-session-list,
.time-export-batch-list,
.job-time-entry-list,
.job-time-technician-list,
.tech-recorded-time-history {
  display: grid;
  gap: 10px;
}

.time-session-card,
.job-time-entry,
.time-export-batch,
.job-time-technician-list > div,
.tech-recorded-time-history > div {
  padding: 14px;
  border: 1px solid #d8e0e5;
  border-radius: 10px;
  background: #fbfcfc;
}

.time-session-card.needs-reconciliation {
  border-color: #d48a14;
  box-shadow: inset 4px 0 0 #d48a14;
}

.time-session-card.is-void,
.job-time-entry.void,
.time-export-batch.void {
  opacity: .68;
  background: #f1f3f4;
}

.time-session-card header > div,
.tech-recorded-time-heading > div,
.time-export-batch > div:first-child,
.tech-clock-running > div {
  display: grid;
  gap: 3px;
}

.time-session-card dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 8px;
  margin: 12px 0;
}

.time-session-card dl div {
  display: grid;
  gap: 2px;
}

.time-session-card dt {
  color: #61717c;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.time-session-card dd {
  margin: 0;
  font-weight: 700;
}

.time-reconciliation-warning,
.tech-clock-blocked,
.tech-weekly-clock-alert {
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border: 1px solid #e2b45c;
  border-radius: 8px;
  background: #fff8e8;
  color: #6e4900;
}

.time-entry-correction {
  margin-top: 12px;
  border-top: 1px solid #d8e0e5;
  padding-top: 10px;
}

.time-entry-correction summary {
  color: #0b6e69;
  font-weight: 800;
  cursor: pointer;
}

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

.time-session-actions,
.time-report-pagination {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  align-items: center;
}

.time-report-pagination span {
  margin-right: auto;
  color: #61717c;
}

.time-export-batch > div:first-child {
  min-width: 0;
  flex: 1;
}

.time-export-batch small,
.tech-recorded-time-history small,
.tech-weekly-hours small,
.job-time-entry small {
  color: #61717c;
}

.job-time-technician-list > div,
.tech-recorded-time-history > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.recorded-hours-summary {
  color: #0b6e69;
  font-weight: 800;
}

.tech-clock-running,
.tech-clock-start,
.tech-weekly-hours {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 15px;
  border: 1px solid #b8d7d3;
  border-radius: 12px;
  background: #f1f8f7;
}

.tech-clock-running > div,
.tech-clock-start label,
.tech-weekly-hours > div:first-child {
  flex: 1;
}

.tech-clock-pulse {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #a71930;
  box-shadow: 0 0 0 6px rgba(167, 25, 48, .14);
}

.tech-clock-result {
  margin: 0;
  color: #0b6e69;
  font-weight: 800;
}

.tech-clock-result.error {
  color: #9f2b2b;
}

.tech-weekly-hours {
  margin: 14px 0;
}

.tech-weekly-hours > div:first-child {
  display: grid;
  gap: 3px;
}

.tech-weekly-hours-days {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.tech-weekly-hours-days span {
  display: grid;
  gap: 2px;
  padding: 7px 9px;
  border-radius: 7px;
  background: #fff;
  font-size: 12px;
}

@media (max-width: 820px) {
  .time-report-filter,
  .time-export-create,
  .time-session-card dl {
    grid-template-columns: 1fr;
  }

  .time-report-filter .wide {
    grid-column: auto;
  }

  .time-report-heading,
  .job-time-heading,
  .tech-recorded-time-heading,
  .time-export-batch,
  .tech-clock-running,
  .tech-clock-start,
  .tech-weekly-hours {
    align-items: stretch;
    flex-direction: column;
  }

  .time-group-toggles button {
    flex: 1;
  }
}

.business-report-controls,
.business-report-result {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid #b8ced9;
  background: #f5f9fb;
}

.business-report-result {
  margin-top: 12px;
  background: #fff;
}

.business-report-choice-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(120px, 1fr));
  gap: 6px;
}

.business-report-choice {
  min-height: 42px;
  border: 1px solid #087f8c;
  background: #fff;
  color: #07535d;
  font-weight: 800;
}

.business-report-choice.active {
  background: #0a6f68;
  color: #fff;
}

.business-report-filter-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr)) auto;
  align-items: end;
  gap: 10px;
}

.business-report-filter-form label {
  display: grid;
  gap: 4px;
  font-weight: 700;
}

.business-report-readonly {
  margin: 0;
  color: #52636c;
}

.business-report-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 8px;
}

.business-report-summary article {
  display: grid;
  gap: 4px;
  padding: 12px;
  border-left: 4px solid #0a6f68;
  background: #edf5f5;
}

.business-report-summary strong {
  font-size: 1.35rem;
}

.business-report-table-wrap {
  overflow: auto;
  max-height: 62vh;
  border: 1px solid #b8ced9;
}

.business-report-table {
  width: 100%;
  border-collapse: collapse;
  white-space: nowrap;
}

.business-report-table th,
.business-report-table td {
  padding: 8px 10px;
  border-right: 1px solid #c6dce7;
  border-bottom: 1px solid #c6dce7;
  text-align: left;
}

.business-report-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #dcebf2;
  text-transform: uppercase;
  font-size: 0.78rem;
}

.calendar-ready-count {
  display: grid;
  gap: 2px;
  width: 100%;
  padding: 5px;
  border: 1px solid #b26a00;
  background: #fff0bd;
  color: #673b00;
  text-align: left;
}

.calendar-ready-count span {
  font-size: 0.72rem;
}

.year-calendar-legend {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 9px 12px;
  border: 1px solid #aac6d3;
  background: #f4f9fb;
}

.year-calendar-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.year-calendar-legend i {
  width: 12px;
  height: 12px;
  border: 1px solid #777;
}

.year-calendar-legend i.scheduled { background: #bce2d5; }
.year-calendar-legend i.ready { background: #ffe29a; }

.year-calendar-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(280px, 1fr));
  gap: 12px;
  padding: 12px 0;
}

.year-month {
  border: 1px solid #7899a8;
  background: #eef7fb;
}

.year-month > header {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 9px;
  background: #0a6f68;
  color: #fff;
}

.year-month > header span {
  font-size: 0.75rem;
}

.year-month-weekdays,
.year-month-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}

.year-month-weekdays span {
  padding: 4px;
  text-align: center;
  font-weight: 800;
}

.year-day {
  position: relative;
  min-height: 38px;
  border: 1px solid #cadce5;
  background: #fff;
  color: #17313d;
  text-align: left;
}

.year-day.empty { background: #e8eef1; }
.year-day.has-schedule { background: #bce2d5; }
.year-day.has-ready { box-shadow: inset 0 -5px #e5a400; }
.year-day.today { outline: 2px solid #b51f26; outline-offset: -2px; }
.year-day strong { float: right; color: #075b3c; }
.year-day em { position: absolute; right: 3px; bottom: 2px; color: #8b5100; font-size: 0.68rem; font-style: normal; font-weight: 800; }

.agreement-customer-picker {
  grid-template-columns: minmax(260px, 2fr) repeat(3, minmax(145px, 1fr));
}

@media (max-width: 1100px) {
  .business-report-choice-grid { grid-template-columns: repeat(3, minmax(130px, 1fr)); }
  .year-calendar-grid { grid-template-columns: repeat(2, minmax(260px, 1fr)); }
}

@media (max-width: 720px) {
  .business-report-filter-form,
  .business-report-summary,
  .year-calendar-grid,
  .agreement-customer-picker { grid-template-columns: 1fr; }
}

.vehicle-directory-toolbar .primary-button {
  flex: 0 0 auto;
}

.vehicle-service-filter {
  display: grid;
  gap: 8px;
  margin-bottom: 18px;
}

.vehicle-service-filter > span {
  color: #7f1d1d;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.vehicle-service-toggles {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(130px, 1fr));
}

.vehicle-service-toggle {
  align-items: center;
  background: #fff7f7;
  border: 2px solid #b92f2a;
  border-radius: 10px;
  color: #9f2b2b;
  cursor: pointer;
  display: flex;
  font-size: 14px;
  font-weight: 900;
  justify-content: space-between;
  min-height: 54px;
  padding: 10px 14px;
  text-transform: uppercase;
}

.vehicle-service-toggle strong {
  background: #ffffff;
  border-radius: 999px;
  color: #7f1d1d;
  min-width: 30px;
  padding: 4px 8px;
}

.vehicle-service-toggle.active,
.vehicle-service-toggle[aria-pressed="true"] {
  background: #b92f2a;
  box-shadow: 0 4px 0 #7f1d1d;
  color: #ffffff;
}

.vehicle-service-state {
  background: #edf2f4;
  border-radius: 999px;
  color: #40505b;
  display: inline-flex;
  font-size: 11px;
  font-weight: 900;
  padding: 4px 8px;
  text-transform: uppercase;
}

.vehicle-service-state.overdue {
  background: #b42318;
  color: #ffffff;
}

.vehicle-service-state.due_30 {
  background: #fff0cf;
  color: #785500;
}

.vehicle-service-state.scheduled {
  background: #e6f5ea;
  color: #176534;
}

.vehicle-notes-preview {
  display: block;
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vehicle-editor-card {
  display: grid;
  gap: 18px;
}

.vehicle-profile-form .full-span,
.vehicle-readonly-grid .full-span {
  grid-column: 1 / -1;
}

.vehicle-assignment-card {
  align-items: start;
  background: #fff7f6;
  border: 1px solid #efc2be;
  border-left: 5px solid var(--red, #b42318);
  border-radius: 10px;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(220px, 0.8fr) minmax(320px, 1.2fr);
  padding: 16px;
}

.vehicle-assignment-card h5,
.vehicle-assignment-card p,
.vehicle-assignment-history h5 {
  margin: 0;
}

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

.vehicle-assignment-history {
  display: grid;
  gap: 10px;
}

.vehicle-service-card {
  background: #ffffff;
  border: 1px solid #d8e0e5;
  border-radius: 10px;
  display: grid;
  gap: 16px;
  padding: 16px;
}

.vehicle-service-card h5,
.vehicle-service-card p {
  margin: 0;
}

.vehicle-service-history {
  display: grid;
  gap: 10px;
}

@media (max-width: 820px) {
  .vehicle-assignment-card {
    grid-template-columns: 1fr;
  }

  .vehicle-profile-form .command-grid.two {
    grid-template-columns: 1fr;
  }

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

  .vehicle-service-form .command-grid.three {
    grid-template-columns: 1fr;
  }
}

.dispatch-hub-v0 .visual-placement-toggle {
  border-color: #c8322b;
  color: #a61f1a;
  font-weight: 900;
}

.dispatch-hub-v0 .visual-placement-toggle.active {
  background: #b42318;
  border-color: #8f1c14;
  color: #ffffff;
}

.dispatch-lite-technician-suggestion {
  margin: 12px 0 14px;
}

.technician-suggestion-panel {
  display: grid;
  gap: 11px;
  padding: 14px;
  border: 1px solid #d9a49e;
  border-left: 5px solid #b42318;
  border-radius: 10px;
  background: #fffaf9;
}

.technician-suggestion-panel p,
.technician-suggestion-panel h5 {
  margin: 0;
}

.technician-suggestion-head,
.technician-suggestion-recommended,
.technician-suggestion-candidate {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.technician-suggestion-head > div,
.technician-suggestion-recommended > div,
.technician-suggestion-candidate > div,
.technician-suggestion-none {
  display: grid;
  gap: 3px;
}

.technician-suggestion-kicker,
.technician-suggestion-window,
.technician-suggestion-candidate span,
.technician-suggestion-none span {
  color: #61717c;
  font-size: 12px;
}

.technician-suggestion-kicker {
  color: #9b241b;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.technician-suggestion-recommended {
  padding: 12px;
  border: 1px solid #edc8c4;
  border-radius: 9px;
  background: #fff;
}

.technician-suggestion-badge {
  width: max-content;
  padding: 3px 7px;
  border-radius: 999px;
  background: #b42318;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.technician-suggestion-facts {
  flex: 1;
}

.technician-suggestion-facts span,
.technician-suggestion-candidate > div:last-of-type span {
  font-size: 12px;
}

.technician-suggestion-facts .zip-match {
  color: #0b6e69;
  font-weight: 900;
}

.technician-suggestion-facts .zip-no-match {
  color: #815b14;
}

.technician-suggestion-candidates {
  display: grid;
  gap: 6px;
}

.technician-suggestion-candidate {
  padding: 8px 10px;
  border: 1px solid #e2e7e9;
  border-radius: 8px;
  background: #fff;
}

.technician-suggestion-candidate.selected {
  border-color: #d9a49e;
}

.technician-suggestion-loading,
.technician-suggestion-error,
.technician-suggestion-none {
  padding: 11px;
  border-radius: 8px;
  background: #f4f6f7;
}

.technician-suggestion-error {
  color: #9f2b2b;
  background: #fff0ef;
}

.technician-service-area-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.technician-service-area-badges span,
.technician-service-area-badges em {
  padding: 3px 6px;
  border-radius: 999px;
  background: #fff0ef;
  color: #9b241b;
  font-size: 11px;
  font-style: normal;
  font-weight: 850;
}

.technician-service-area-editor {
  display: grid;
  gap: 9px;
  margin: 14px 0;
  padding: 14px;
  border: 1px solid #dfe5e8;
  border-radius: 10px;
  background: #f8fafb;
}

.technician-service-area-editor h5,
.technician-service-area-editor p {
  margin: 0;
}

.technician-service-area-editor textarea {
  min-height: 118px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

@media (max-width: 820px) {
  .technician-suggestion-head,
  .technician-suggestion-recommended,
  .technician-suggestion-candidate {
    align-items: stretch;
    flex-direction: column;
  }
}

.dispatch-hub-v0 .site-issue-flag {
  align-items: center;
  align-self: flex-start;
  background: #fff1f0;
  border: 1px solid #dc8580;
  border-radius: 999px;
  color: #85221c;
  display: inline-flex;
  flex-wrap: wrap;
  font-size: 11px;
  font-weight: 760;
  gap: 5px;
  line-height: 1.2;
  margin-top: 4px;
  max-width: 100%;
  padding: 5px 8px;
}

.dispatch-hub-v0 .site-issue-flag b {
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.dispatch-hub-v0 .site-issue-flag.critical {
  background: #a71920;
  border-color: #7d1016;
  color: #ffffff;
}

.dispatch-hub-v0 .site-issue-flag.warning {
  background: #fff1db;
  border-color: #d68c24;
  color: #74420b;
}

.dispatch-hub-v0 .site-issue-flag.compact {
  font-size: 10px;
  padding: 4px 7px;
}

.dispatch-hub-v0 .dispatch-site-issues {
  background: #fff9f8;
  border: 2px solid #c9252d;
  border-radius: 10px;
  display: grid;
  gap: 11px;
  grid-column: 1 / -1;
  padding: 13px;
}

.dispatch-hub-v0 .dispatch-site-issues-head {
  align-items: start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.dispatch-hub-v0 .dispatch-site-issues-head > div {
  display: grid;
  gap: 2px;
}

.dispatch-hub-v0 .dispatch-site-issues-head span {
  color: #a71920;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.dispatch-hub-v0 .dispatch-site-issues-head strong {
  color: #671419;
  font-size: 15px;
}

.dispatch-hub-v0 .dispatch-site-issues-head p {
  color: #77585a;
  font-size: 11px;
  margin: 0;
  text-align: right;
}

.dispatch-hub-v0 .dispatch-site-issue-list {
  display: grid;
  gap: 7px;
}

.dispatch-hub-v0 .dispatch-site-issue {
  align-items: center;
  background: #ffffff;
  border: 1px solid #e3c4c1;
  border-left: 5px solid #ad625e;
  border-radius: 7px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 9px 10px;
}

.dispatch-hub-v0 .dispatch-site-issue.urgent,
.dispatch-hub-v0 .dispatch-site-issue.overdue {
  border-left-color: #c9252d;
}

.dispatch-hub-v0 .dispatch-site-issue.high {
  border-left-color: #df8b22;
}

.dispatch-hub-v0 .dispatch-site-issue > div:first-child {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.dispatch-hub-v0 .dispatch-site-issue > div:first-child > span,
.dispatch-hub-v0 .dispatch-site-issue-meta {
  color: #675d5c;
  font-size: 11px;
}

.dispatch-hub-v0 .dispatch-site-issue-meta {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: right;
}

.dispatch-hub-v0 .dispatch-site-issue-meta .overdue {
  color: #aa1d24;
  font-weight: 900;
}

.dispatch-hub-v0 .dispatch-site-issues.compact .dispatch-site-issues-head p {
  display: none;
}

.dispatch-hub-v0 .before-you-go-panel {
  animation: before-you-go-attention 1.2s ease-out 1;
  background: #fff8e8;
  border-color: #b42318;
  box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.10);
}

.dispatch-hub-v0 .before-you-go-scope {
  align-items: start;
  background: #fff;
  border: 1px solid #dfc7b7;
  border-left: 5px solid #b42318;
  border-radius: 7px;
  display: grid;
  gap: 10px;
  grid-template-columns: 82px minmax(0, 1fr);
  padding: 9px 10px;
}

.dispatch-hub-v0 .before-you-go-scope.site {
  grid-template-columns: 82px minmax(0, 1fr) auto;
}

.dispatch-hub-v0 .before-you-go-scope-label {
  background: #263e4a;
  border-radius: 999px;
  color: #fff;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .055em;
  padding: 5px 8px;
  text-align: center;
  text-transform: uppercase;
}

.dispatch-hub-v0 .before-you-go-scope > div {
  display: grid;
  gap: 3px;
}

.dispatch-hub-v0 .before-you-go-scope p,
.dispatch-hub-v0 .before-you-go-scope small {
  margin: 0;
}

.dispatch-hub-v0 .before-you-go-scope small {
  color: #64757e;
}

.dispatch-hub-v0 .before-you-go-instruction-form,
.internal-alert-editor {
  background: #f5f8fa;
  border: 1px solid #aebfc8;
  border-radius: 7px;
  display: grid;
  gap: 8px;
  padding: 10px;
}

.dispatch-hub-v0 .before-you-go-instruction-form label,
.internal-alert-editor {
  display: grid;
  gap: 5px;
}

.dispatch-hub-v0 .before-you-go-instruction-form label > span,
.internal-alert-editor > span {
  color: #263e4a;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

@keyframes before-you-go-attention {
  0%, 55% { box-shadow: 0 0 0 7px rgba(180, 35, 24, .24); }
  100% { box-shadow: 0 0 0 3px rgba(180, 35, 24, .10); }
}

@media (prefers-reduced-motion: reduce) {
  .dispatch-hub-v0 .before-you-go-panel { animation: none; }
}

@media (max-width: 820px) {
  .dispatch-hub-v0 .dispatch-site-issues-head,
  .dispatch-hub-v0 .dispatch-site-issue {
    align-items: stretch;
    flex-direction: column;
  }

  .dispatch-hub-v0 .dispatch-site-issues-head p,
  .dispatch-hub-v0 .dispatch-site-issue-meta {
    align-items: flex-start;
    text-align: left;
  }

  .dispatch-hub-v0 .before-you-go-scope,
  .dispatch-hub-v0 .before-you-go-scope.site {
    grid-template-columns: 1fr;
  }
}
.recurring-series-panel {
  display: grid;
  gap: 16px;
}

.recurring-series-head,
.recurring-series-actions,
.recurring-series-summary,
.recurring-occurrence-list article {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.recurring-series-head h4 {
  margin: 2px 0 0;
  font-size: 1.15rem;
}

.recurring-series-status {
  border-radius: 999px;
  padding: 6px 12px;
  font-weight: 800;
  text-transform: capitalize;
  background: #e6f5ea;
  color: #176534;
}

.recurring-series-status.paused {
  background: #fff0cf;
  color: #785500;
}

.recurring-series-status.archived {
  background: #e8eaed;
  color: #4b5563;
}

.recurring-series-guidance {
  display: grid;
  gap: 5px;
  padding: 14px 16px;
  border-left: 5px solid var(--red, #b42318);
  border-radius: 8px;
  background: #fff7f6;
}

.recurring-series-guidance span,
.recurring-series-compact p {
  color: var(--muted-text, #5d6673);
  margin: 0;
}

.recurring-months {
  display: grid;
  gap: 8px;
}

.recurring-months > span {
  font-weight: 700;
}

.recurring-months > div {
  display: grid;
  grid-template-columns: repeat(6, minmax(64px, 1fr));
  gap: 8px;
}

.recurring-month-choice {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 40px;
  border: 1px solid var(--border, #d5d9df);
  border-radius: 8px;
  background: #fff;
}

.recurring-month-choice input {
  width: auto;
}

.recurring-series-summary {
  padding: 12px 14px;
  border-radius: 8px;
  background: #f4f6f8;
  font-weight: 700;
}

.recurring-series-actions {
  justify-content: flex-start;
  align-items: end;
}

.recurring-series-actions form {
  display: flex;
  align-items: end;
  gap: 8px;
  margin: 0;
}

.recurring-occurrence-list {
  display: grid;
  gap: 8px;
  max-height: 380px;
  overflow: auto;
}

.recurring-occurrence-list article {
  padding: 10px 12px;
  border: 1px solid var(--border, #d5d9df);
  border-radius: 8px;
}

.recurring-occurrence-list article > div {
  display: grid;
  gap: 2px;
}

@media (max-width: 820px) {
  .recurring-months > div {
    grid-template-columns: repeat(3, minmax(64px, 1fr));
  }

  .recurring-series-actions form {
    width: 100%;
    flex-wrap: wrap;
  }
}

/* Keep the approved office refinement authoritative over retained module CSS. */
.dispatch-hub-v0 {
  background: var(--surface-app);
  color: var(--text-body);
  font-family: "IBM Plex Sans", Arial, Helvetica, sans-serif;
}

.dispatch-hub-v0 .app-shell { grid-template-columns: 236px minmax(0, 1fr); }
.dispatch-hub-v0 .sidebar {
  background: var(--mac-navy-800);
  border-right: 1px solid var(--mac-navy-900);
  border-radius: 0;
  padding: 18px 14px;
}
.dispatch-hub-v0 .brand-icon { border-radius: 0; height: 42px; width: 42px; }
.dispatch-hub-v0 .brand h1 { font-family: inherit; font-size: 15px; font-weight: 600; }
.dispatch-hub-v0 .nav-item,
.dispatch-hub-v0 .nav-settings-toggle { border-radius: 4px; font-family: inherit; text-transform: none; }
.dispatch-hub-v0 .nav-item.active {
  background: var(--mac-blue-600);
  border-left-color: #a9d4f4;
  box-shadow: inset 3px 0 #a9d4f4;
  color: #fff;
}
.dispatch-hub-v0 .main { background: var(--surface-app); padding: 0 14px 28px; }
.dispatch-hub-v0 .topbar {
  background: #fff;
  border-bottom: 1px solid var(--border-default);
  margin: 0 -14px 12px;
  min-height: 70px;
  padding: 12px 16px;
}
.dispatch-hub-v0 .topbar h2 { font-family: inherit; font-size: 20px; font-weight: 600; }
.dispatch-hub-v0 .topbar .eyebrow { font-family: inherit; font-weight: 400; letter-spacing: 0; text-transform: none; }
.dispatch-hub-v0 .production-database-banner {
  background: #edf8f1;
  border: 1px solid #8cc7a4;
  color: #17633a;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}
.dispatch-hub-v0 .section-band { border-radius: 6px; }
.dispatch-hub-v0 .mode-tab { border-radius: 4px 4px 0 0; font-family: inherit; text-transform: none; }
.dispatch-hub-v0 .mode-tab.active {
  background: var(--mac-blue-100);
  border-bottom: 3px solid var(--mac-blue-500);
  color: var(--mac-blue-700);
}
.dispatch-hub-v0 :where(.tool-button, .primary-button, input, select, textarea) { border-radius: 4px; font-family: inherit; }
.dispatch-hub-v0 .job-control-toolbar,
.dispatch-hub-v0 .job-control-saved-views,
.dispatch-hub-v0 .job-control-filters { background: var(--surface-subtle); }
.dispatch-hub-v0 .job-control-saved-views,
.dispatch-hub-v0 .job-control-filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.dispatch-hub-v0 .job-control-count {
  background: #fff;
  border-block: 1px solid var(--border-subtle);
  color: var(--text-muted);
  font-size: 11px;
  justify-content: flex-start;
  padding: 5px 8px;
}
.dispatch-hub-v0 .job-control-wrap { border-color: var(--border-default); max-height: calc(100vh - 250px); }
.dispatch-hub-v0 .job-control-table { font-variant-numeric: tabular-nums; }
.dispatch-hub-v0 .job-control-table th {
  background: var(--surface-header);
  border-color: var(--border-subtle);
  color: var(--text-strong);
  font-family: inherit;
  font-size: 10px;
  font-weight: 600;
  text-transform: none;
}
.dispatch-hub-v0 .job-control-table td {
  border-color: var(--border-subtle);
  color: var(--text-body);
  font-family: inherit;
  font-size: 11px;
  height: auto;
}
.dispatch-hub-v0 .job-control-panel.density-compact .job-control-table td { height: 47px; }
.dispatch-hub-v0 .job-control-panel.density-comfortable .job-control-table td { height: 62px; }
.dispatch-hub-v0 .job-control-table tbody tr:nth-child(even) td { background: #fbfcfd; }
.dispatch-hub-v0 .job-control-table tbody tr:hover td { background: #f3f7fa; }
.dispatch-hub-v0 .job-control-table tbody tr.selected td { background: var(--mac-blue-100); }
.dispatch-hub-v0 .status,
.dispatch-hub-v0 .status-pill { border-radius: 3px; font-family: inherit; font-size: 11px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.dispatch-hub-v0 .detail-panel { border-radius: 7px; max-width: 94vw; width: 420px; }

@media (max-width: 1024px) {
  .dispatch-hub-v0 .job-control-saved-views,
  .dispatch-hub-v0 .job-control-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .dispatch-hub-v0 .sidebar {
    bottom: 0;
    display: flex;
    max-width: 88vw;
    position: fixed;
    top: 0;
    transform: translateX(-105%);
    width: 236px;
  }
  .dispatch-hub-v0.mobile-nav-open .sidebar { transform: translateX(0); }
  .dispatch-hub-v0 .mobile-nav-toggle { display: inline-flex; }
  .dispatch-hub-v0 .job-control-saved-views,
  .dispatch-hub-v0 .job-control-filters { grid-template-columns: 1fr; }
}

@media (max-width: 980px) {
  .dispatch-hub-v0 #dispatch-board .dispatch-tools .mode-tabs {
    align-content: start;
    align-self: start;
    grid-auto-rows: minmax(44px, auto);
    height: 136px;
  }
}
.dispatch-job-correction {
  margin-top: 1rem;
  padding: 0.9rem;
  border: 1px solid #9eb7c6;
  border-radius: 8px;
  background: #f6fafc;
}

.dispatch-job-correction > summary {
  cursor: pointer;
  font-weight: 700;
}

.dispatch-job-correction .command-form {
  margin-top: 0.8rem;
}

.correction-review-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0.6rem 0;
}

.correction-review-table th,
.correction-review-table td {
  padding: 0.45rem;
  border: 1px solid #c7d6df;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}

.internal-activity-board-list { display: grid; gap: 4px; margin: 5px 0; }
.internal-activity-board-item { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding: 5px 7px; border: 1px solid var(--border-default); border-left: 4px solid var(--mac-blue-500); border-radius: 5px; background: var(--mac-blue-100); font-size: 11px; }
.internal-activity-board-item.committed { border-color: #d6a46c; border-left-color: #b97019; background: #fff3e4; }
.tech-column.workload-committed_internal { border-top: 4px solid #b97019; }
.workload-committed_internal .workload-meter span { background: #b97019; }
.internal-activity-board-item span { color: #395568; }
.internal-activity-board-item button { margin-left: auto; border: 0; background: none; color: #7c2b20; text-decoration: underline; cursor: pointer; }
.internal-activity-card { margin: 12px 0; padding: 13px; border: 1px solid var(--border-default); border-left: 5px solid var(--mac-blue-500); border-radius: 8px; background: var(--mac-blue-100); }
.internal-activity-heading { display: flex; justify-content: space-between; gap: 16px; }
.internal-activity-heading > div { display: grid; gap: 3px; }
.internal-activity-heading span { color: #3b5965; font-size: 12px; }
.internal-activity-card details { margin-top: 10px; }
.internal-time-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 9px; align-items: end; margin-top: 10px; }
.internal-time-form label, .internal-activity-form label { display: grid; gap: 4px; font-weight: 600; }
.internal-time-form input, .internal-activity-form input, .internal-activity-form select, .internal-activity-form textarea { width: 100%; box-sizing: border-box; padding: 7px; }
.internal-activity-dialog { width: min(560px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow: auto; border: 1px solid #95afb8; border-radius: 10px; box-shadow: 0 20px 60px #17314866; }
.internal-activity-dialog::backdrop { background: #142e42aa; }
.internal-activity-form { display: grid; gap: 13px; }
.internal-activity-form h2, .internal-activity-form p { margin: 0; }
.internal-activity-form-times { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.internal-activity-form-actions { display: flex; justify-content: flex-end; gap: 8px; }
