.faults-page .faults-table tbody tr > td {
  border-bottom: 1px solid #cbd8d0;
}

.faults-page .faults-table tbody tr:nth-child(odd) > td {
  background: #fff;
}

.faults-page .faults-table tbody tr:nth-child(even) > td {
  background: #f1f4f2;
}

.faults-page .faults-table tbody tr:hover > td,
.faults-page .faults-table tbody tr:focus-visible > td {
  background: #eaf5ef;
}

.faults-page .faults-table tbody tr:last-child > td {
  border-bottom: 0;
}

.knowledge-copy-feedback{color:#087b52;align-items:center;gap:3px;font-size:10px;font-weight:800;display:inline-flex}
.knowledge-copy-feedback svg{flex:none}

/* Keep the map anchor centred on the fault dot, not the customer label.
   AdvancedMarker's default bottom-centre anchor needs a half-height offset. */
.fault-map-marker {
  display: block;
  width: 12px;
  height: 12px;
  min-width: 12px;
  padding: 0;
  transform: translateY(50%);
  overflow: visible;
}

.fault-map-marker > i {
  display: block;
  box-sizing: border-box;
  width: 12px;
  height: 12px;
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgb(102 15 25 / 25%);
}

.fault-map-marker > i::after {
  content: none;
  display: none;
  animation: none;
}

.fault-map-marker > span {
  position: absolute;
  top: 50%;
  left: calc(100% + 6px);
  transform: translateY(-50%);
  width: max-content;
}

.engineer-map-marker > span:first-child {
  width: 34px;
  height: 34px;
  min-width: 34px;
  min-height: 34px;
  border-radius: 50%;
  overflow: hidden;
  box-sizing: border-box;
}

.engineer-map-marker > span:first-child img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  border-radius: 50%;
}

.fault-region-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 8px 0 10px;
}

.fault-region-tabs {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px;
  border: 1px solid #d5e3dc;
  border-radius: 10px;
  background: #eef5f1;
}

.fault-region-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 34px;
  padding: 0 13px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #536b60;
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
}

.fault-region-tabs button b {
  color: #087b52;
  background: #dff6eb;
  border-radius: 999px;
  min-width: 22px;
  padding: 2px 6px;
  text-align: center;
  font-size: 10px;
}

.fault-region-tabs button.is-active {
  color: #073d2c;
  background: #fff;
  box-shadow: 0 1px 5px rgba(18, 58, 42, .14);
}

.fault-system-filter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #4f665b;
  font-size: 10px;
  font-weight: 800;
}

.fault-system-filter select {
  min-width: 180px;
  height: 36px;
  border: 1px solid #cfddd5;
  border-radius: 8px;
  background: #fff;
  color: #244739;
  padding: 0 10px;
  font-size: 11px;
}

@media (max-width: 760px) {
  .fault-region-controls {
    align-items: stretch;
    flex-direction: column;
  }

  .fault-region-tabs,
  .fault-system-filter,
  .fault-system-filter select {
    width: 100%;
  }

  .fault-region-tabs button {
    justify-content: center;
    flex: 1;
  }
}

/* Premium Faults page redesign - scoped to the content area only. */
.faults-page {
  --fault-pink: #EF426F;
  --fault-yellow: #FFD166;
  --fault-mint: #06CFA5;
  --fault-blue: #178CAF;
  --fault-navy: #073F4D;
  --fault-bg: #F6F9F8;
  --fault-border: #DDE8E6;
  --fault-muted: #6F8790;
  --fault-soft-shadow: 0 10px 28px rgba(7, 63, 77, .055);
  color: var(--fault-navy);
  background:
    radial-gradient(circle at 16% 0%, rgba(6, 207, 165, .08), transparent 26%),
    linear-gradient(180deg, #fbfdfc 0%, var(--fault-bg) 260px);
  min-height: calc(100vh - 70px);
  padding: 28px 18px 34px;
  font-family: Inter, system-ui, sans-serif;
}

.faults-page .module-title-row {
  align-items: flex-start;
  gap: 18px;
  margin: 0 0 18px;
}

.faults-page .module-title-row .eyebrow {
  color: #05876f;
  letter-spacing: .16em;
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 850;
}

.faults-page .module-title-row h1 {
  color: var(--fault-navy);
  letter-spacing: 0;
  margin: 0 0 4px;
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
}

.faults-page .module-title-row p {
  color: #54707a;
  font-size: 13px;
}

.faults-page .module-title-row .button-primary {
  background: linear-gradient(135deg, var(--fault-mint), #049d82);
  border: 0;
  border-radius: 9px;
  color: #fff;
  min-height: 38px;
  margin-top: 28px;
  padding: 0 14px;
  box-shadow: 0 9px 18px rgba(6, 207, 165, .2);
}

.faults-page .module-title-row .button-primary:hover {
  background: linear-gradient(135deg, #08ddb2, #058d78);
  transform: translateY(-1px);
}

.faults-page .fault-tabs {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  width: auto;
  margin: 0 0 10px;
  padding: 5px;
  border: 1px solid var(--fault-border);
  border-radius: 12px;
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 5px 14px rgba(7, 63, 77, .045);
}

.faults-page .fault-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 0 14px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #536c75;
  font-size: 12px;
  font-weight: 780;
}

.faults-page .fault-tabs button b,
.faults-page .fault-region-tabs button b {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 20px;
  padding: 0 6px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 850;
}

.faults-page .fault-tabs button b {
  color: #4f6871;
  background: #eef5f4;
}

.faults-page .fault-tabs button.is-active {
  color: #fff;
  background: linear-gradient(135deg, #05b998, #048b76);
  box-shadow: 0 8px 18px rgba(6, 207, 165, .24);
}

.faults-page .fault-tabs button.is-active b {
  color: var(--fault-navy);
  background: rgba(255, 255, 255, .9);
}

.faults-page .fault-region-controls {
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 14px;
}

.faults-page .fault-region-tabs {
  gap: 4px;
  padding: 5px;
  border: 1px solid var(--fault-border);
  border-radius: 11px;
  background: rgba(255, 255, 255, .76);
  box-shadow: 0 5px 14px rgba(7, 63, 77, .035);
}

.faults-page .fault-region-tabs button {
  height: 32px;
  min-width: 62px;
  padding: 0 12px;
  color: #54707a;
  font-size: 11px;
  font-weight: 820;
}

.faults-page .fault-region-tabs button b {
  color: #087966;
  background: rgba(6, 207, 165, .12);
}

.faults-page .fault-region-tabs button.is-active {
  color: #fff;
  background: var(--fault-navy);
  box-shadow: 0 7px 14px rgba(7, 63, 77, .16);
}

.faults-page .fault-region-tabs button.is-active b {
  color: var(--fault-navy);
  background: #fff;
}

.faults-page .fault-system-filter {
  margin-left: 0;
  color: #5f7880;
  font-size: 10px;
  font-weight: 820;
}

.faults-page .fault-system-filter select {
  min-width: 190px;
}

.faults-page .fault-system-filter select,
.faults-page .fault-toolbar select,
.faults-page .fault-date-range input {
  height: 38px;
  border: 1px solid #DCE7E8;
  border-radius: 9px;
  background-color: #fff;
  color: var(--fault-navy);
  padding: 0 11px;
  font-size: 11px;
  font-weight: 650;
  outline: none;
}

.faults-page .fault-system-filter select:focus,
.faults-page .fault-toolbar select:focus,
.faults-page .fault-date-range input:focus,
.faults-page .filter-search:focus-within {
  border-color: rgba(6, 207, 165, .72);
  box-shadow: 0 0 0 3px rgba(6, 207, 165, .13);
}

.faults-page .fault-summary-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  align-items: stretch;
  margin: 10px 0 16px;
}

.faults-page .fault-summary-strip > button {
  position: relative;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  min-width: 0;
  min-height: 88px;
  height: 88px;
  padding: 16px 18px;
  border: 1px solid var(--fault-border);
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
  box-shadow: var(--fault-soft-shadow);
}

.faults-page .fault-summary-strip > button::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  opacity: .72;
}

.faults-page .fault-summary-strip > button > i {
  z-index: 1;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  align-self: center;
}

.faults-page .fault-summary-strip > button > div {
  z-index: 1;
  align-content: center;
  gap: 3px;
  min-width: 0;
}

.faults-page .fault-summary-strip > button strong {
  color: var(--fault-navy);
  letter-spacing: 0;
  margin: 0;
  font-size: 26px;
  font-weight: 820;
  line-height: 1.05;
}

.faults-page .fault-summary-strip > button span {
  display: block;
  color: #516d75;
  margin: 0;
  font-size: 11px;
  font-weight: 730;
  line-height: 1.2;
}

.faults-page .fault-summary--active::after {
  background: linear-gradient(135deg, rgba(6, 207, 165, .1), transparent 70%);
}

.faults-page .fault-summary--active > i {
  color: #04987d;
  background: rgba(6, 207, 165, .14);
}

.faults-page .fault-summary--unassigned::after {
  background: linear-gradient(135deg, rgba(255, 209, 102, .18), transparent 70%);
}

.faults-page .fault-summary--unassigned > i {
  color: #9a6905;
  background: rgba(255, 209, 102, .25);
}

.faults-page .fault-summary--critical::after {
  background: linear-gradient(135deg, rgba(239, 66, 111, .12), transparent 70%);
}

.faults-page .fault-summary--critical > i {
  color: var(--fault-pink) !important;
  background: rgba(239, 66, 111, .13) !important;
}

.faults-page .fault-summary--aged::after {
  background: linear-gradient(135deg, rgba(6, 207, 165, .1), rgba(23, 140, 175, .05) 72%);
}

.faults-page .fault-summary--aged > i {
  color: #058f76;
  background: rgba(6, 207, 165, .14);
}

.faults-page .fault-summary--oldest::after {
  background: linear-gradient(135deg, rgba(23, 140, 175, .12), transparent 70%);
}

.faults-page .fault-summary--oldest > i {
  color: var(--fault-blue);
  background: rgba(23, 140, 175, .13);
}

.faults-page .fault-summary-strip > button:hover,
.faults-page .fault-summary-strip > button.is-selected {
  border-color: rgba(6, 207, 165, .35);
  transform: translateY(-1px);
}

.faults-page .fault-toolbar {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) repeat(5, minmax(112px, auto)) auto;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  padding: 10px;
  border: 1px solid var(--fault-border);
  border-radius: 12px;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 5px 18px rgba(7, 63, 77, .04);
}

.faults-page .filter-search {
  height: 38px;
  border: 1px solid #DCE7E8;
  border-radius: 9px;
  background: #fff;
  color: #6d828a;
}

.faults-page .filter-search input {
  color: var(--fault-navy);
  font-size: 12px;
}

.faults-page .filter-search input::placeholder {
  color: #8ba1a8;
}

.faults-page .fault-result-count {
  justify-content: flex-end;
  color: #657d84;
  min-width: 120px;
  font-size: 11px;
  font-weight: 700;
}

.faults-page .fault-filter-context {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 28px;
  margin: 0 0 10px;
}

.faults-page .fault-quick-filters {
  display: flex;
  align-items: center;
  gap: 7px;
}

.faults-page .fault-quick-filters button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 24px;
  border: 1px solid rgba(239, 66, 111, .18);
  border-radius: 999px;
  background: rgba(239, 66, 111, .085);
  color: var(--fault-pink);
  padding: 0 9px;
  font-size: 10px;
  font-weight: 820;
}

.faults-page .fault-quick-filters button::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}

.faults-page .fault-quick-filters button:hover,
.faults-page .fault-quick-filters button.is-active {
  background: rgba(239, 66, 111, .14);
  border-color: rgba(239, 66, 111, .32);
}

.faults-page .fault-quick-filters button:nth-child(2) {
  color: #087184;
  background: rgba(23, 140, 175, .09);
  border-color: rgba(23, 140, 175, .18);
}

.faults-page .fault-quick-filters button:nth-child(2):hover,
.faults-page .fault-quick-filters button:nth-child(2).is-active {
  background: rgba(23, 140, 175, .14);
  border-color: rgba(23, 140, 175, .28);
}

.faults-page .fault-filter-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.faults-page .fault-filter-chip,
.faults-page .fault-clear-filters {
  height: 24px;
  border: 1px solid #d7e5e4;
  border-radius: 999px;
  background: #fff;
  color: #557079;
  padding: 0 8px;
  font-size: 10px;
  font-weight: 750;
}

.faults-page .fault-register-card {
  border: 1px solid var(--fault-border);
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
  box-shadow: var(--fault-soft-shadow);
}

.faults-page .data-table-wrap {
  overflow-x: auto;
}

.faults-page .faults-table {
  width: 100%;
  min-width: 1110px;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
}

.faults-page .faults-table th {
  height: 38px;
  background: linear-gradient(90deg, var(--fault-navy), #086578);
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .06em;
  border-bottom: 0;
  padding: 0 14px;
  font-size: 10px;
  font-weight: 820;
  text-align: left;
}

.faults-page .faults-table th:first-child {
  border-top-left-radius: 11px;
}

.faults-page .faults-table th:last-child {
  border-top-right-radius: 11px;
  text-align: center;
}

.faults-page .faults-table th:nth-child(1),
.faults-page .faults-table td:nth-child(1) {
  width: 92px;
}

.faults-page .faults-table th:nth-child(2),
.faults-page .faults-table td:nth-child(2) {
  width: 168px;
}

.faults-page .faults-table th:nth-child(3),
.faults-page .faults-table td:nth-child(3) {
  width: 118px;
  text-align: center;
}

.faults-page .faults-table th:nth-child(4),
.faults-page .faults-table td:nth-child(4) {
  width: 98px;
}

.faults-page .faults-table th:nth-child(5),
.faults-page .faults-table td:nth-child(5) {
  width: 260px;
}

.faults-page .faults-table th:nth-child(6),
.faults-page .faults-table td:nth-child(6) {
  width: 80px;
  text-align: center;
}

.faults-page .faults-table th:nth-child(7),
.faults-page .faults-table td:nth-child(7) {
  width: 210px;
}

.faults-page .faults-table th:nth-child(8),
.faults-page .faults-table td:nth-child(8) {
  width: 78px;
  text-align: center;
}

.faults-page .faults-table th:nth-child(9),
.faults-page .faults-table td:nth-child(9) {
  width: 96px;
  text-align: left;
}

.faults-page .faults-table tbody tr {
  cursor: pointer;
}

.faults-page .faults-table tbody tr > td {
  position: relative;
  height: 62px;
  border-bottom: 1px solid #E7EFED;
  background: #fff !important;
  color: #254852;
  padding: 10px 14px;
  vertical-align: middle;
  font-size: 12px;
}

.faults-page .faults-table tbody tr:nth-child(even) > td {
  background: #FBFDFD !important;
}

.faults-page .faults-table tbody tr:hover > td,
.faults-page .faults-table tbody tr:focus-visible > td {
  background: #F0FAF8 !important;
}

.faults-page .faults-table tbody tr > td:first-child::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  bottom: 9px;
  width: 4px;
  border-radius: 0 99px 99px 0;
  background: var(--fault-mint);
}

.faults-page .faults-table tbody tr.fault-row--alert > td:first-child::before,
.faults-page .faults-table tbody tr.fault-row--warning > td:first-child::before {
  background: var(--fault-yellow);
}

.faults-page .faults-table tbody tr.fault-row--strong-warning > td:first-child::before,
.faults-page .faults-table tbody tr.fault-row--critical > td:first-child::before {
  background: var(--fault-pink);
}

.faults-page .faults-table tbody tr.fault-row--resolved > td:first-child::before {
  background: var(--fault-blue);
}

.faults-page .fault-reference {
  color: var(--fault-navy);
  font-size: 12px;
  font-weight: 820;
}

.faults-page .fault-customer {
  color: #0b3f4c;
  font-size: 12px;
  font-weight: 720;
  line-height: 1.25;
}

.faults-page .faults-table td:nth-child(5) small {
  display: -webkit-box;
  color: #4f6971;
  font-size: 11.5px;
  font-weight: 500;
  line-height: 1.42;
  text-align: left;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.faults-page .fault-system-cell .system-type-mark--compact {
  justify-content: center;
  width: 78px;
  min-width: 78px;
  height: 28px;
  min-height: 28px;
  margin-inline: auto;
  border-color: #dce8e6;
  background: #fff;
  border-radius: 8px;
}

.faults-page .fault-system-cell .system-type-mark--compact img {
  width: auto;
  max-width: 68px;
  height: 20px;
}

.faults-page .priority {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 64px;
  height: 24px;
  border-radius: 999px;
  padding: 0 9px;
  letter-spacing: .035em;
  font-size: 9px;
  font-weight: 850;
}

.faults-page .priority--critical {
  color: #b51f49;
  background: rgba(239, 66, 111, .14);
}

.faults-page .priority--high {
  color: #b64235;
  background: rgba(239, 66, 111, .1);
}

.faults-page .priority--medium {
  color: #946208;
  background: rgba(255, 209, 102, .28);
}

.faults-page .priority--low {
  color: #047d68;
  background: rgba(6, 207, 165, .13);
}

.faults-page .fault-region {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  height: 24px;
  min-width: 52px;
  border-radius: 999px;
  background: #edf7f8;
  color: var(--fault-navy);
  font-size: 10px;
  font-weight: 820;
}

.faults-page .fault-region .region-flag {
  width: 18px;
  height: 18px;
}

.faults-page .fault-county {
  display: block;
  color: var(--fault-navy);
  font-size: 11.5px;
  font-weight: 760;
  line-height: 1.22;
}

.faults-page .faults-table td:nth-child(7) small {
  display: block;
  color: #6e858d;
  margin-top: 3px;
  font-size: 10.5px;
  font-weight: 560;
  line-height: 1.25;
}

.faults-page .fault-age {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 52px;
  height: 26px;
  border-radius: 999px;
  padding: 0 8px;
  font-size: 10px;
  font-weight: 850;
}

.faults-page .fault-age--fresh {
  color: #047d68;
  background: rgba(6, 207, 165, .14);
}

.faults-page .fault-age--alert {
  color: #087184;
  background: rgba(23, 140, 175, .13);
}

.faults-page .fault-age--warning {
  color: #946208;
  background: rgba(255, 209, 102, .32);
}

.faults-page .fault-age--strong-warning {
  color: #9d5f05;
  background: rgba(255, 209, 102, .48);
}

.faults-page .fault-age--critical {
  color: #b51f49;
  background: rgba(239, 66, 111, .15);
}

.faults-page .fault-age--resolved {
  color: #0d7290;
  background: rgba(23, 140, 175, .13);
}

.faults-page .fault-updated {
  display: grid;
  gap: 2px;
  color: var(--fault-navy);
  font-size: 11px;
  font-weight: 720;
  line-height: 1.15;
}

.faults-page .fault-updated strong {
  font-size: 11px;
  font-weight: 760;
}

.faults-page .fault-updated small {
  color: #738991;
  font-size: 10px;
  font-weight: 600;
}

.faults-page .faults-table td:last-child svg {
  color: #7d939a;
  transition: color .15s ease, transform .15s ease;
}

.faults-page .faults-table tbody tr:hover td:last-child svg {
  color: var(--fault-blue);
  transform: translateX(2px);
}

.faults-page .table-empty {
  background: #fff;
  border-top: 1px solid #E7EFED;
  color: #5c737b;
}

.faults-page .fault-pagination {
  margin-top: 10px;
}

@media (max-width: 1380px) {
  .faults-page .fault-toolbar {
    grid-template-columns: minmax(260px, 1fr) repeat(3, minmax(112px, auto)) auto;
  }

  .faults-page .fault-toolbar select:nth-of-type(n+4) {
    min-width: 132px;
  }
}

@media (max-width: 1120px) {
  .faults-page .fault-summary-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .faults-page .fault-toolbar {
    grid-template-columns: minmax(240px, 1fr) repeat(2, minmax(118px, auto));
  }
}

@media (max-width: 760px) {
  .faults-page {
    padding-inline: 12px;
  }

  .faults-page .module-title-row,
  .faults-page .fault-region-controls,
  .faults-page .fault-filter-context {
    align-items: stretch;
    flex-direction: column;
  }

  .faults-page .module-title-row .button-primary {
    margin-top: 0;
    width: max-content;
  }

  .faults-page .fault-summary-strip,
  .faults-page .fault-toolbar {
    grid-template-columns: 1fr;
  }

  .faults-page .fault-tabs,
  .faults-page .fault-region-tabs,
  .faults-page .fault-system-filter,
  .faults-page .fault-system-filter select {
    width: 100%;
  }

  .faults-page .fault-tabs button,
  .faults-page .fault-region-tabs button {
    justify-content: center;
    flex: 1;
  }

  .faults-page .fault-filter-chips {
    justify-content: flex-start;
  }
}

/* Faults final polish pass - visual adjustments only. */
.faults-page .module-title-row {
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  min-height: 74px;
}

.faults-page .module-title-row h1 {
  font-size: 32px;
  font-weight: 780;
}

.faults-page .module-title-row .button-primary {
  align-self: center;
  margin-top: 0;
}

.faults-page .fault-tabs {
  margin-bottom: 9px;
}

.faults-page .fault-region-controls {
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.faults-page .fault-region-tabs,
.faults-page .fault-system-filter select {
  height: 38px;
}

.faults-page .fault-region-tabs {
  align-items: center;
}

.faults-page .fault-region-tabs button {
  height: 28px;
}

.faults-page .fault-system-filter {
  align-items: center;
  height: 38px;
}

.faults-page .fault-system-filter select {
  border-radius: 10px;
}

.faults-page .fault-summary-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  align-items: stretch;
  margin: 10px 0 14px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.faults-page .fault-summary-strip > button {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 86px;
  height: auto;
  padding: 15px 16px;
  border: 1px solid rgba(221, 232, 230, .95);
  border-radius: 12px;
  background-color: #fff;
  overflow: visible;
  box-shadow: 0 6px 18px rgba(7, 63, 77, .04);
}

.faults-page .fault-summary-strip > button > i {
  width: 36px;
  height: 36px;
}

.faults-page .fault-summary-strip > button > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
}

.faults-page .fault-summary-strip > button strong {
  display: block;
  font-size: 25px;
  font-weight: 760;
  line-height: 1.05;
}

.faults-page .fault-summary-strip > button span {
  display: block;
  font-size: 11px;
  font-weight: 680;
  line-height: 1.2;
}

.faults-page .fault-toolbar {
  grid-template-columns: minmax(340px, 1fr) 132px 132px 112px 136px 112px auto;
  gap: 8px;
  margin-bottom: 8px;
  padding: 8px 10px;
  border-radius: 12px;
}

.faults-page .filter-search,
.faults-page .fault-toolbar select,
.faults-page .fault-date-range input {
  height: 36px;
}

.faults-page .fault-result-count {
  min-width: 118px;
  line-height: 36px;
}

.faults-page .fault-filter-context {
  min-height: 25px;
  margin-bottom: 8px;
}

.faults-page .fault-quick-filters button {
  height: 23px;
}

.faults-page .fault-register-card {
  border-color: #dce8e6;
  box-shadow: 0 6px 20px rgba(7, 63, 77, .045);
}

.faults-page .faults-table {
  min-width: 1110px;
}

.faults-page .faults-table th {
  height: 38px;
  padding: 0 13px;
  border-right: 0;
  vertical-align: middle;
  font-size: 10px;
  font-weight: 780;
}

.faults-page .faults-table th:nth-child(1),
.faults-page .faults-table td:nth-child(1) {
  width: 86px;
}

.faults-page .faults-table th:nth-child(2),
.faults-page .faults-table td:nth-child(2) {
  width: 176px;
}

.faults-page .faults-table th:nth-child(3),
.faults-page .faults-table td:nth-child(3) {
  width: 112px;
}

.faults-page .faults-table th:nth-child(4),
.faults-page .faults-table td:nth-child(4) {
  width: 82px;
}

.faults-page .faults-table th:nth-child(5),
.faults-page .faults-table td:nth-child(5) {
  width: 306px;
}

.faults-page .faults-table th:nth-child(6),
.faults-page .faults-table td:nth-child(6) {
  width: 70px;
}

.faults-page .faults-table th:nth-child(7),
.faults-page .faults-table td:nth-child(7) {
  width: 196px;
}

.faults-page .faults-table th:nth-child(8),
.faults-page .faults-table td:nth-child(8) {
  width: 68px;
}

.faults-page .faults-table th:nth-child(9),
.faults-page .faults-table td:nth-child(9) {
  width: 84px;
}

.faults-page .faults-table tbody tr {
  cursor: pointer;
}

.faults-page .faults-table tbody tr > td {
  height: 66px;
  padding: 12px 13px;
  transition: background-color .16s ease;
}

.faults-page .faults-table tbody tr:hover > td,
.faults-page .faults-table tbody tr:focus-visible > td {
  background: #eefbf8 !important;
}

.faults-page .faults-table tbody tr > td:first-child::before {
  top: 0;
  bottom: 0;
  width: 3px;
  border-radius: 0;
}

.faults-page .fault-reference {
  font-weight: 700;
}

.faults-page .fault-customer {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.28;
}

.faults-page .faults-table td:nth-child(5) small {
  color: #355863;
  font-size: 12px;
  font-weight: 480;
  line-height: 1.42;
  text-align: left;
}

.faults-page .fault-county {
  font-weight: 600;
}

.faults-page .faults-table td:nth-child(7) small {
  color: #718890;
  font-weight: 500;
}

.faults-page .priority {
  min-width: 58px;
  height: 23px;
}

.faults-page .fault-age {
  min-width: 54px;
  height: 25px;
  justify-content: center;
  text-align: center;
}

.faults-page .fault-updated strong {
  font-weight: 600;
}

.faults-page .fault-updated small {
  color: #748990;
  font-weight: 450;
}

@media (max-width: 1380px) {
  .faults-page .fault-toolbar {
    grid-template-columns: minmax(300px, 1fr) repeat(3, minmax(112px, auto)) auto;
  }
}

@media (max-width: 1120px) {
  .faults-page .fault-summary-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .faults-page .module-title-row {
    align-items: stretch;
    min-height: 0;
  }

  .faults-page .module-title-row .button-primary {
    align-self: flex-start;
  }

  .faults-page .fault-summary-strip,
  .faults-page .fault-toolbar {
    grid-template-columns: 1fr;
  }
}

/* Faults density polish - final spacing/alignment pass only. */
.faults-page {
  padding: 20px 22px 28px;
}

.faults-page .module-title-row {
  align-items: flex-start;
  min-height: 0;
  margin-bottom: 8px;
}

.faults-page .module-title-row .eyebrow {
  margin-bottom: 4px;
}

.faults-page .module-title-row h1 {
  margin-bottom: 3px;
  font-size: 31px;
  line-height: 1;
}

.faults-page .module-title-row p {
  line-height: 1.3;
}

.faults-page .module-title-row .button-primary {
  margin-top: 10px;
}

.faults-page .fault-tabs {
  margin-bottom: 8px;
}

.faults-page .fault-region-controls {
  gap: 8px;
  margin-bottom: 10px;
}

.faults-page .fault-region-tabs,
.faults-page .fault-system-filter,
.faults-page .fault-system-filter select {
  height: 36px;
}

.faults-page .fault-system-filter {
  gap: 7px;
}

.faults-page .fault-system-filter select {
  min-width: 180px;
}

.faults-page .fault-summary-strip {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin: 8px 0 10px;
}

.faults-page .fault-summary-strip > button {
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 11px;
  min-height: 82px;
  height: 82px;
  padding: 13px 15px;
}

.faults-page .fault-summary-strip > button > i {
  width: 34px;
  height: 34px;
}

.faults-page .fault-summary-strip > button strong {
  font-size: 24px;
}

.faults-page .fault-summary-strip > button span {
  font-size: 10.5px;
}

.faults-page .fault-toolbar {
  grid-template-columns: minmax(380px, 1fr) 128px 128px 108px 132px 108px auto;
  gap: 7px;
  margin-bottom: 6px;
  padding: 7px 9px;
}

.faults-page .filter-search,
.faults-page .fault-toolbar select,
.faults-page .fault-date-range input {
  height: 35px;
}

.faults-page .fault-result-count {
  min-width: 116px;
  line-height: 35px;
  white-space: nowrap;
}

.faults-page .fault-filter-context {
  min-height: 23px;
  margin-bottom: 6px;
}

.faults-page .fault-quick-filters button {
  height: 22px;
}

.faults-page .faults-table {
  min-width: 1100px;
}

.faults-page .faults-table th {
  height: 37px;
  padding: 0 12px;
  text-align: left;
}

.faults-page .faults-table th:nth-child(1),
.faults-page .faults-table td:nth-child(1) {
  width: 84px;
}

.faults-page .faults-table th:nth-child(2),
.faults-page .faults-table td:nth-child(2) {
  width: 174px;
}

.faults-page .faults-table th:nth-child(3),
.faults-page .faults-table td:nth-child(3) {
  width: 110px;
}

.faults-page .faults-table th:nth-child(4),
.faults-page .faults-table td:nth-child(4) {
  width: 76px;
}

.faults-page .faults-table th:nth-child(5),
.faults-page .faults-table td:nth-child(5) {
  width: 330px;
}

.faults-page .faults-table th:nth-child(6),
.faults-page .faults-table td:nth-child(6) {
  width: 64px;
  text-align: center;
}

.faults-page .faults-table th:nth-child(7),
.faults-page .faults-table td:nth-child(7) {
  width: 192px;
}

.faults-page .faults-table th:nth-child(8),
.faults-page .faults-table td:nth-child(8) {
  width: 64px;
  text-align: center;
}

.faults-page .faults-table th:nth-child(9),
.faults-page .faults-table td:nth-child(9) {
  width: 82px;
}

.faults-page .faults-table tbody tr > td {
  height: 64px;
  padding: 11px 12px;
}

.faults-page .faults-table tbody tr:hover > td,
.faults-page .faults-table tbody tr:focus-visible > td {
  background: rgba(6, 207, 165, .035) !important;
}

.faults-page .fault-customer {
  display: -webkit-box;
  font-weight: 600;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.faults-page .fault-county {
  font-weight: 600;
}

.faults-page .faults-table td:nth-child(7) small {
  font-weight: 400;
}

.faults-page .fault-age {
  min-width: 52px;
}

@media (max-width: 1380px) {
  .faults-page .fault-toolbar {
    grid-template-columns: minmax(300px, 1fr) repeat(3, minmax(108px, auto)) auto;
  }
}

@media (max-width: 1120px) {
  .faults-page .fault-summary-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .faults-page {
    padding: 14px 12px 24px;
  }

  .faults-page .module-title-row .button-primary {
    margin-top: 0;
  }

  .faults-page .fault-summary-strip,
  .faults-page .fault-toolbar {
    grid-template-columns: 1fr;
  }
}

/* Prevent KPI cards overlapping the filter toolbar. */
.faults-page .fault-summary-strip {
  position: relative;
  z-index: 1;
  min-height: 82px;
  height: auto;
  overflow: visible;
  margin-bottom: 12px;
}

.faults-page .fault-summary-strip > button {
  position: relative;
  height: 82px;
  min-height: 82px;
  max-height: none;
}

.faults-page .fault-toolbar {
  position: relative;
  z-index: 2;
  margin-top: 6px;
  clear: both;
}

/* Make schedule drag/drop interactions feel reliable and obvious. */
.schedule-page .dispatch-job[draggable="true"] {
  cursor: grab;
  user-select: none;
  -webkit-user-drag: element;
}

.schedule-page .dispatch-job[draggable="true"]:active {
  cursor: grabbing;
}

.schedule-page .dispatch-job.is-dragging {
  opacity: .45;
  border-style: dashed;
}

.schedule-page .dispatch-drag-handle {
  pointer-events: none;
  opacity: .78;
}

.schedule-page .dispatch-cell.is-drop-target {
  background: #e8f8f2 !important;
  box-shadow: inset 0 0 0 2px #06cfa5;
}

/* Provisioning diary drag/drop for Number Ports and Broadband Orders. */
.number-ports-page .port-card[draggable="true"] {
  cursor: grab;
  user-select: none;
  -webkit-user-drag: element;
}

.number-ports-page .port-card[draggable="true"]:active {
  cursor: grabbing;
}

.number-ports-page .diary-day.is-drop-target .diary-day-body {
  background: #e8f8f2;
  box-shadow: inset 0 0 0 2px #06cfa5;
}

/* Engineer Schedule visual refresh to match the Faults page. */
.schedule-page {
  --schedule-pink: #ef426f;
  --schedule-yellow: #ffd166;
  --schedule-mint: #06cfa5;
  --schedule-blue: #178caf;
  --schedule-navy: #073f4d;
  --schedule-border: #dde8e6;
  --schedule-muted: #5f7780;
  --schedule-soft-shadow: 0 8px 22px rgba(7, 63, 77, .07);
  background: #f6f9f8;
  color: var(--schedule-navy);
  font-family: Inter, system-ui, sans-serif;
  max-width: none;
  padding-top: 22px;
}

.schedule-page .dispatch-title {
  align-items: center;
  gap: 18px;
  margin-bottom: 12px;
}

.schedule-page .dispatch-title .eyebrow {
  color: #008b70;
  letter-spacing: .14em;
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 800;
}

.schedule-page .dispatch-title h1 {
  color: var(--schedule-navy);
  letter-spacing: 0;
  margin: 0 0 4px;
  font-size: 32px;
  font-weight: 760;
  line-height: 1.04;
}

.schedule-page .dispatch-title p {
  color: var(--schedule-muted);
  margin: 0;
  font-size: 13px;
}

.schedule-page .dispatch-title-actions {
  gap: 10px;
}

.schedule-page .phase-badge--live {
  color: #047b65;
  background: rgba(6, 207, 165, .11);
  border: 1px solid rgba(6, 207, 165, .2);
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  height: 32px;
  padding: 0 13px;
  font-size: 11px;
  font-weight: 800;
  box-shadow: none;
}

.schedule-page .phase-badge--live i {
  width: 7px;
  height: 7px;
  background: var(--schedule-mint);
  box-shadow: 0 0 0 4px rgba(6, 207, 165, .16);
}

.schedule-page .dispatch-title-actions .button-primary {
  background: linear-gradient(135deg, var(--schedule-mint), #049d82);
  border: 0;
  border-radius: 9px;
  min-height: 38px;
  padding: 0 15px;
  color: #fff;
  font-size: 12px;
  font-weight: 760;
  box-shadow: 0 9px 18px rgba(6, 207, 165, .2);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.schedule-page .dispatch-title-actions .button-primary:hover {
  background: linear-gradient(135deg, #08ddb2, #058d78);
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(6, 207, 165, .24);
}

.schedule-page .dispatch-toolbar {
  grid-template-columns: auto auto minmax(140px, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 54px;
  margin-bottom: 10px;
  padding: 8px;
  background: #fff;
  border: 1px solid var(--schedule-border);
  border-radius: 12px;
  box-shadow: 0 5px 18px rgba(7, 63, 77, .05);
}

.schedule-page .dispatch-toolbar-nav {
  align-items: center;
  gap: 10px;
}

.schedule-page .week-controls {
  background: #f7fbfa;
  border: 1px solid var(--schedule-border);
  border-radius: 10px;
  gap: 4px;
  padding: 3px;
}

.schedule-page .week-controls button {
  color: var(--schedule-navy);
  background: #fff;
  border: 1px solid #d7e5e3;
  border-radius: 8px;
  min-height: 32px;
  padding: 0 11px;
  font-size: 11px;
  font-weight: 700;
  box-shadow: 0 1px 4px rgba(7, 63, 77, .04);
}

.schedule-page .week-controls button:hover {
  color: #047b65;
  border-color: rgba(6, 207, 165, .42);
  background: rgba(6, 207, 165, .07);
}

.schedule-page .schedule-view-toggle {
  background: #f7fbfa;
  border: 1px solid var(--schedule-border);
  border-radius: 10px;
  height: 38px;
  padding: 3px;
}

.schedule-page .schedule-view-toggle button {
  border-radius: 8px;
  height: 30px;
  padding: 0 11px;
  color: #45646b;
  font-size: 11px;
  font-weight: 760;
}

.schedule-page .schedule-view-toggle button.is-active {
  color: #fff;
  background: var(--schedule-mint);
  box-shadow: 0 6px 14px rgba(6, 207, 165, .18);
}

.schedule-page .dispatch-toolbar > strong {
  color: var(--schedule-navy);
  justify-self: start;
  font-size: 12px;
  font-weight: 760;
}

.schedule-page .dispatch-toolbar-right {
  gap: 10px;
}

.schedule-page .dispatch-summary-pills {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 5px;
  color: var(--schedule-muted);
  font-size: 11px;
}

.schedule-page .dispatch-summary-pills b {
  color: var(--schedule-navy);
  margin-right: 2px;
  font-weight: 760;
}

.schedule-page .summary-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  border-radius: 999px;
  padding: 0 8px;
  font-style: normal;
  font-size: 10px;
  font-weight: 760;
  white-space: nowrap;
}

.schedule-page .summary-pill--jobs {
  color: var(--schedule-navy);
  background: #eef5f4;
}

.schedule-page .summary-pill--faults,
.schedule-page .summary-pill--outstanding.has-outstanding {
  color: #ad2449;
  background: rgba(239, 66, 111, .12);
}

.schedule-page .summary-pill--ports {
  color: #8a610c;
  background: rgba(255, 209, 102, .32);
}

.schedule-page .summary-pill--other {
  color: #0d6380;
  background: rgba(23, 140, 175, .12);
}

.schedule-page .summary-pill--outstanding {
  color: #047b65;
  background: rgba(6, 207, 165, .12);
}

.schedule-page .dispatch-toolbar-right input {
  width: 132px;
  height: 36px;
  border: 1px solid var(--schedule-border);
  border-radius: 9px;
  color: var(--schedule-navy);
  background: #fff;
  padding: 0 10px;
  font-size: 11px;
  font-weight: 650;
}

.schedule-page .dispatch-toolbar-right input:focus {
  border-color: var(--schedule-mint);
  outline: none;
  box-shadow: 0 0 0 3px rgba(6, 207, 165, .14);
}

.schedule-page .dispatch-drag-help {
  color: var(--schedule-navy);
  background: rgba(6, 207, 165, .08);
  border: 1px solid rgba(6, 207, 165, .24);
  border-radius: 999px;
  gap: 7px;
  width: max-content;
  margin: 0 0 8px;
  padding: 5px 11px;
  font-size: 10px;
  font-weight: 700;
}

.schedule-page .dispatch-drag-help svg {
  color: #047b65;
}

.schedule-page .dispatch-weather-credit {
  color: #66818a;
  margin: -27px 8px 8px auto;
  font-size: 8.5px;
}

.schedule-page .dispatch-board {
  background: #fff;
  border: 1px solid var(--schedule-border);
  border-radius: 12px;
  max-height: calc(100vh - 235px);
  overflow: auto;
  box-shadow: var(--schedule-soft-shadow);
}

.schedule-page .dispatch-grid {
  grid-template-columns: 138px repeat(5, minmax(150px, 1fr));
  min-width: 1050px;
}

.schedule-page .dispatch-grid > * {
  border-right: 1px solid var(--schedule-border);
}

.schedule-page .dispatch-grid--days {
  height: 40px;
  color: var(--schedule-navy);
  background: #f7fbfa;
  border-bottom: 1px solid var(--schedule-border);
}

.schedule-page .dispatch-grid--days > span {
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
}

.schedule-page .dispatch-grid--days > span:first-child {
  background: #f7fbfa;
  padding-left: 13px;
  color: var(--schedule-navy);
  font-size: 12px;
  font-weight: 760;
}

.schedule-page .dispatch-grid--days b {
  font-size: 12px;
  font-weight: 800;
}

.schedule-page .dispatch-grid--days small {
  color: #647d84;
  font-size: 10px;
  font-weight: 600;
}

.schedule-page .dispatch-grid--days > span.is-today::after {
  content: "TODAY";
  color: #047b65;
  background: rgba(6, 207, 165, .14);
  border: 1px solid rgba(6, 207, 165, .24);
  border-radius: 999px;
  padding: 2px 6px;
  font-size: 8px;
  font-weight: 850;
}

.schedule-page .dispatch-grid .is-today {
  background: rgba(6, 207, 165, .045);
}

.schedule-page .dispatch-region > header {
  height: 30px;
  background: var(--schedule-navy);
  border-bottom: 0;
  color: #fff;
  gap: 8px;
  padding: 0 12px;
}

.schedule-page .dispatch-region > header .region-badge {
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 999px;
  width: 28px;
  height: 20px;
  font-size: 9px;
}

.schedule-page .dispatch-region > header strong {
  font-size: 12px;
  font-weight: 760;
}

.schedule-page .dispatch-region > header small {
  color: rgba(255, 255, 255, .78);
  font-size: 10px;
  font-weight: 650;
}

.schedule-page .dispatch-grid--engineer {
  height: auto;
  max-height: none;
  min-height: 64px;
  border-bottom: 1px solid var(--schedule-border);
}

.schedule-page .dispatch-engineer {
  background: #fbfdfc;
  color: var(--schedule-navy);
  gap: 8px;
  padding: 0 10px;
  border-right: 1px solid var(--schedule-border) !important;
}

.schedule-page .dispatch-engineer .staff-avatar,
.schedule-page .dispatch-engineer > span {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  font-size: 10px;
}

.schedule-page .dispatch-engineer strong {
  color: var(--schedule-navy);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.15;
}

.schedule-page .dispatch-engineer .dispatch-flag--compact {
  display: none;
}

.schedule-page .dispatch-cell {
  align-content: center;
  gap: 5px;
  min-height: 64px;
  padding: 7px 8px;
  background: #fff;
  transition: background .15s ease, box-shadow .15s ease;
}

.schedule-page .dispatch-cell.has-jobs {
  /* Show every task; the busiest day determines this engineer row's height. */
  align-content: start;
  grid-auto-rows: max-content;
  height: auto;
  max-height: none;
  background: #fbfdfc;
}

.schedule-page .dispatch-region > .dispatch-grid--engineer:nth-of-type(even) > .dispatch-engineer {
  background: #edf4f0;
}

.schedule-page .dispatch-region > .dispatch-grid--engineer:nth-of-type(even) > .dispatch-cell {
  background: #f2f6f4;
}

.schedule-page .dispatch-region > .dispatch-grid--engineer:nth-of-type(even) > .dispatch-cell.has-jobs {
  background: #eff5f2;
}

.schedule-page .dispatch-region > .dispatch-grid--engineer:nth-of-type(even) > .dispatch-cell.is-today {
  background: #e7f4ee;
}

.schedule-page .dispatch-region > .dispatch-grid--engineer:nth-of-type(even) > .dispatch-cell:has(.dispatch-empty):hover {
  background: #e8f5ef;
}

.schedule-page .dispatch-region > .dispatch-grid--engineer:nth-of-type(even) {
  box-shadow: inset 0 1px rgba(21, 63, 95, .025), inset 0 -1px rgba(21, 63, 95, .035);
}

.schedule-page .dispatch-cell:has(.dispatch-empty):hover {
  background: rgba(6, 207, 165, .045);
  box-shadow: inset 0 0 0 1px rgba(6, 207, 165, .22);
}

.schedule-page .dispatch-empty {
  color: #8ba0a5;
  opacity: .55;
  gap: 4px;
  min-height: 30px;
  border-radius: 8px;
  font-size: 10px;
  font-weight: 650;
  transition: color .15s ease, opacity .15s ease;
}

.schedule-page .dispatch-cell:hover .dispatch-empty {
  color: #047b65;
  opacity: 1;
}

.schedule-page .dispatch-job {
  color: #385c65;
  background: #ecf9f4;
  border: 1px solid #b9e3d2;
  border-left: 4px solid var(--schedule-mint);
  border-radius: 7px;
  gap: 2px;
  height: 28px;
  min-height: 28px;
  padding: 4px 8px;
  box-shadow: 0 2px 7px rgba(7, 63, 77, .05);
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease, transform .15s ease;
}

.schedule-page .dispatch-job:hover {
  box-shadow: 0 7px 16px rgba(7, 63, 77, .1);
  filter: saturate(1.08) brightness(.985);
  transform: translateY(-1px);
}

.schedule-page .dispatch-job[draggable="true"] {
  cursor: grab;
}

.schedule-page .dispatch-job[draggable="true"]:active,
.schedule-page .dispatch-job.is-dragging {
  cursor: grabbing;
}

.schedule-page .dispatch-job.is-dragging {
  opacity: .82;
  border-style: solid;
  transform: scale(.99);
  box-shadow: 0 10px 22px rgba(7, 63, 77, .18);
}

.schedule-page .dispatch-job > span {
  gap: 5px;
}

.schedule-page .dispatch-job > span > b,
.schedule-page .dispatch-job > span > .dispatch-drag-handle {
  flex: 0 0 auto;
}

.schedule-page .dispatch-drag-handle {
  color: #8ba0a5;
  width: 11px;
  height: 11px;
}

.schedule-page .dispatch-job b {
  color: #047b65;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.schedule-page .dispatch-job strong {
  flex: 1 1 auto;
  color: var(--schedule-navy);
  min-width: 0;
  overflow: hidden;
  font-size: 11px;
  font-weight: 680;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.schedule-page .dispatch-job small {
  color: #6d8389;
  font-size: 9px;
  font-weight: 560;
}

.schedule-page .dispatch-job--fault {
  background: #fff0f4;
  border-color: #efb7c6;
  border-left-color: #dc3f62;
}

.schedule-page .dispatch-job--number_port {
  background: #eaf6fb;
  border-color: #add9e8;
  border-left-color: #178caf;
}

.schedule-page .dispatch-job--broadband {
  background: #f2efff;
  border-color: #cfc3f4;
  border-left-color: #7456cf;
}

.schedule-page .dispatch-job--equipment_delivery {
  background: #fff6dc;
  border-color: #ead18e;
  border-left-color: #d79a17;
}

.schedule-page .dispatch-job--office,
.schedule-page .dispatch-job--stat_day {
  background: #eef7fa;
  border-color: #b7dbe5;
  border-left-color: var(--schedule-blue);
}

.schedule-page .dispatch-job--sick {
  background: #fff0f1;
  border-color: #edb8bd;
  border-left-color: #d83a4f;
}

.schedule-page .dispatch-job--installation,
.schedule-page .dispatch-job--training,
.schedule-page .dispatch-job--survey,
.schedule-page .dispatch-job--maintenance,
.schedule-page .dispatch-job--custom,
.schedule-page .dispatch-job--other,
.schedule-page .dispatch-job--cabling,
.schedule-page .dispatch-job--wi_fi,
.schedule-page .dispatch-job--cctv {
  background: #eaf8f2;
  border-color: #afe0cc;
  border-left-color: #08a978;
}

.schedule-page .dispatch-job--annual_leave,
.schedule-page .dispatch-job--annual_leave_am,
.schedule-page .dispatch-job--annual_leave_pm,
.schedule-page .dispatch-job--parental_leave {
  background: #f5effb;
  border-color: #d5c2e7;
  border-left-color: #8b5fbf;
}

.schedule-page .dispatch-job.is-outstanding {
  background: #fff3d2;
  border-color: #e6bd59 #e6bd59 #e6bd59 #e04b67;
  box-shadow: 0 0 0 1px rgba(224, 75, 103, .08), 0 3px 9px rgba(128, 80, 12, .08);
}

.schedule-page .dispatch-job:has(+ .dispatch-job),
.schedule-page .dispatch-job + .dispatch-job {
  margin-top: 0;
}

.schedule-page .dispatch-cell.has-jobs .dispatch-job,
.schedule-page .dispatch-cell.has-jobs .dispatch-more {
  margin-right: 27px;
}

.schedule-page .dispatch-weather {
  color: #0d6380;
  background: rgba(23, 140, 175, .09);
  border: 1px solid rgba(23, 140, 175, .22);
  border-radius: 999px;
  gap: 3px;
  padding: 2px 6px;
  right: 5px;
  font-size: 10px;
  box-shadow: none;
  z-index: 1;
}

.schedule-page .dispatch-weather svg {
  color: #e29a1f;
  width: 14px;
  height: 14px;
}

.schedule-page .dispatch-weather i {
  color: #0d6380;
  font-size: 9px;
  font-weight: 800;
}

.schedule-page .dispatch-weather--pending {
  background: #f5f8f6;
  border-color: #d9e5e2;
}

.schedule-page .dispatch-add-task {
  color: #047b65;
  background: rgba(6, 207, 165, .08);
  border: 1px solid rgba(6, 207, 165, .32);
  border-radius: 8px;
  width: 23px;
  height: 23px;
  right: 5px;
  box-shadow: 0 3px 8px rgba(7, 63, 77, .08);
}

.schedule-page .dispatch-add-task:hover,
.schedule-page .dispatch-add-task:focus-visible {
  color: #fff;
  background: var(--schedule-mint);
  border-color: var(--schedule-mint);
}

.schedule-page .dispatch-cell.is-drop-target {
  background: rgba(6, 207, 165, .065) !important;
  box-shadow: inset 0 0 0 2px var(--schedule-mint);
}

.schedule-page .dispatch-cell.is-drop-target::after {
  color: #047b65;
  background: #dbf8ef;
  border: 1px solid rgba(6, 207, 165, .25);
  font-size: 8px;
}

.schedule-page .dispatch-more {
  color: #566f77;
  background: #f5f9f8;
  border: 1px solid #dce8e5;
  border-radius: 999px;
  padding: 2px 7px;
  font-size: 9px;
  font-weight: 750;
}

.schedule-page .dispatch-board--day .dispatch-grid {
  grid-template-columns: 138px minmax(540px, 1fr);
  min-width: 760px;
}

.schedule-page .dispatch-board--day .dispatch-grid--engineer {
  min-height: 80px;
}

.schedule-page .dispatch-board--day .dispatch-cell {
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 6px;
  padding: 8px;
}

.schedule-page .dispatch-board--day .dispatch-job {
  height: 32px;
}

@media (max-width: 1180px) {
  .schedule-page .dispatch-toolbar {
    grid-template-columns: 1fr;
  }

  .schedule-page .dispatch-toolbar-right {
    justify-content: space-between;
  }
}

/* Service Knowledge visual refresh to match the operations platform. */
.knowledge-page {
  --knowledge-pink: #ef426f;
  --knowledge-yellow: #ffd166;
  --knowledge-mint: #06cfa5;
  --knowledge-blue: #178caf;
  --knowledge-navy: #073f4d;
  --knowledge-border: #dde8e6;
  --knowledge-muted: #5f7780;
  --knowledge-shadow: 0 8px 22px rgba(7, 63, 77, .07);
  max-width: none;
  background: #f6f9f8;
  color: var(--knowledge-navy);
  font-family: Inter, system-ui, sans-serif;
  padding-top: 22px;
}

.knowledge-page .knowledge-heading {
  align-items: center;
  gap: 18px;
  margin-bottom: 12px;
}

.knowledge-page .knowledge-heading .eyebrow {
  color: #008b70;
  letter-spacing: .14em;
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 800;
}

.knowledge-page .knowledge-heading h1 {
  color: var(--knowledge-navy);
  letter-spacing: 0;
  margin: 0 0 4px;
  font-size: 32px;
  font-weight: 760;
  line-height: 1.04;
}

.knowledge-page .knowledge-heading p {
  color: var(--knowledge-muted);
  margin: 0;
  font-size: 13px;
}

.knowledge-page .knowledge-reviewed {
  color: var(--knowledge-navy);
  background: #fff;
  border: 1px solid var(--knowledge-border);
  border-radius: 999px;
  gap: 8px;
  padding: 8px 12px;
  font-size: 10.5px;
  font-weight: 760;
  box-shadow: 0 5px 16px rgba(7, 63, 77, .05);
}

.knowledge-page .knowledge-reviewed svg {
  color: #047b65;
}

.knowledge-page .knowledge-toolbar {
  justify-content: space-between;
  align-items: center;
  min-height: 54px;
  margin-top: 12px;
  padding: 7px;
  background: #fff;
  border: 1px solid var(--knowledge-border);
  border-radius: 12px;
  box-shadow: 0 5px 18px rgba(7, 63, 77, .05);
}

.knowledge-page .knowledge-tabs {
  background: #f7fbfa;
  border: 1px solid var(--knowledge-border);
  border-radius: 10px;
  gap: 4px;
  padding: 3px;
}

.knowledge-page .knowledge-tabs button {
  color: var(--knowledge-navy);
  border-radius: 8px;
  height: 34px;
  padding: 0 13px;
  font-size: 11px;
  font-weight: 760;
  transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}

.knowledge-page .knowledge-tabs button:hover {
  color: #047b65;
  background: rgba(6, 207, 165, .07);
}

.knowledge-page .knowledge-tabs button.is-active {
  color: #fff;
  background: var(--knowledge-mint);
  box-shadow: 0 6px 14px rgba(6, 207, 165, .18);
}

.knowledge-page .knowledge-tabs button.is-active svg {
  color: #fff;
}

.knowledge-page .knowledge-search {
  color: var(--knowledge-muted);
  background: #fff;
  border: 1px solid var(--knowledge-border);
  border-radius: 9px;
  width: min(360px, 42vw);
  height: 38px;
  padding: 0 12px;
}

.knowledge-page .knowledge-search:focus-within {
  border-color: var(--knowledge-mint);
  box-shadow: 0 0 0 3px rgba(6, 207, 165, .14);
}

.knowledge-page .knowledge-search input {
  color: var(--knowledge-navy);
  font-size: 11px;
}

.knowledge-page .knowledge-panel {
  background: #fff;
  border: 1px solid var(--knowledge-border);
  border-radius: 12px;
  margin-top: 14px;
  overflow: hidden;
  box-shadow: var(--knowledge-shadow);
}

.knowledge-page .knowledge-panel > header {
  color: #fff;
  background: var(--knowledge-navy);
  border-bottom: 0;
  gap: 11px;
  min-height: 58px;
  padding: 11px 16px;
}

.knowledge-page .knowledge-panel > header > svg {
  color: var(--knowledge-mint);
  flex: none;
}

.knowledge-page .knowledge-panel > header h2 {
  color: #fff;
  margin: 0;
  font-size: 15px;
  font-weight: 740;
}

.knowledge-page .knowledge-panel > header p {
  color: rgba(255, 255, 255, .72);
  margin: 2px 0 0;
  font-size: 11px;
}

.knowledge-page .knowledge-profile-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 12px;
}

.knowledge-page .knowledge-profile {
  position: relative;
  background: #fff;
  border: 1px solid var(--knowledge-border);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(7, 63, 77, .045);
}

.knowledge-page .knowledge-profile::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--knowledge-blue);
}

.knowledge-page .knowledge-profile:nth-child(odd)::before {
  background: var(--knowledge-mint);
}

.knowledge-page .knowledge-profile > header {
  background: #fbfdfc;
  border-bottom: 1px solid var(--knowledge-border);
  min-height: 50px;
  padding: 9px 13px 9px 15px;
}

.knowledge-page .knowledge-profile > header strong {
  color: var(--knowledge-navy);
  font-size: 13px;
  font-weight: 720;
}

.knowledge-page .knowledge-profile > header span {
  color: var(--knowledge-muted);
  font-size: 10px;
  font-weight: 560;
}

.knowledge-page .knowledge-profile > header svg {
  color: var(--knowledge-blue);
}

.knowledge-page .knowledge-profile:nth-child(odd) > header svg {
  color: var(--knowledge-mint);
}

.knowledge-page .knowledge-profile dl {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
}

.knowledge-page .knowledge-profile dl > div {
  min-height: 58px;
  padding: 9px 12px;
  border-right: 1px solid #e7efed;
  border-bottom: 1px solid #e7efed;
  align-content: center;
  gap: 5px;
}

.knowledge-page .knowledge-profile dl > div:nth-child(2n) {
  border-right: 0;
}

.knowledge-page .knowledge-profile dt {
  color: #607a82;
  text-transform: uppercase;
  letter-spacing: .055em;
  font-size: 9.5px;
  font-weight: 760;
}

.knowledge-page .knowledge-profile dd {
  min-width: 0;
}

.knowledge-page .knowledge-copy {
  color: var(--knowledge-navy);
  background: rgba(23, 140, 175, .065);
  border: 1px solid rgba(23, 140, 175, .2);
  border-radius: 7px;
  max-width: 100%;
  min-height: 31px;
  padding: 5px 8px;
  gap: 7px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.knowledge-page .knowledge-copy:not(.is-static):hover {
  background: rgba(6, 207, 165, .085);
  border-color: rgba(6, 207, 165, .42);
  box-shadow: 0 0 0 3px rgba(6, 207, 165, .1);
}

.knowledge-page .knowledge-copy code {
  color: var(--knowledge-navy);
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 11.5px;
  font-weight: 560;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.knowledge-page .knowledge-copy svg {
  color: var(--knowledge-blue);
  flex: none;
}

.knowledge-page .knowledge-copy-feedback {
  color: #047b65;
  gap: 4px;
  white-space: nowrap;
  font-size: 10px;
  font-weight: 800;
}

.knowledge-page .knowledge-copy-feedback svg {
  color: var(--knowledge-mint);
}

.knowledge-page .knowledge-copy.is-static {
  color: #6a7f84;
  background: #f7faf9;
  border-color: #e2ebe8;
}

.knowledge-page .knowledge-caution {
  color: #6f4e0c;
  background: rgba(255, 209, 102, .18);
  border-top: 1px solid rgba(255, 209, 102, .42);
  gap: 8px;
  margin: 0;
  padding: 10px 14px;
  font-size: 10.5px;
  font-weight: 620;
}

.knowledge-page .knowledge-caution svg {
  color: #a46a0e;
}

.knowledge-page .knowledge-check-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}

.knowledge-page .knowledge-check-grid article {
  min-height: 112px;
  grid-template-columns: 26px 22px minmax(0, 1fr);
  gap: 10px;
  padding: 15px;
  border-right: 1px solid #e7efed;
  border-bottom: 1px solid #e7efed;
  background: #fff;
}

.knowledge-page .knowledge-check-grid article:hover {
  background: #fbfdfc;
}

.knowledge-page .knowledge-check-grid article > span {
  color: #047b65;
  background: rgba(6, 207, 165, .1);
  border: 1px solid rgba(6, 207, 165, .14);
  border-radius: 8px;
  width: 24px;
  height: 24px;
  font-size: 10px;
  font-weight: 850;
}

.knowledge-page .knowledge-check-grid article > svg {
  color: var(--knowledge-blue);
  margin-top: 3px;
}

.knowledge-page .knowledge-check-grid article:nth-child(3) > svg,
.knowledge-page .knowledge-check-grid article:nth-child(5) > svg {
  color: #a46a0e;
}

.knowledge-page .knowledge-check-grid article:nth-child(6) > svg {
  color: var(--knowledge-pink);
}

.knowledge-page .knowledge-check-grid h3 {
  color: var(--knowledge-navy);
  margin: 0;
  font-size: 12.5px;
  font-weight: 680;
}

.knowledge-page .knowledge-check-grid p {
  color: #5f7780;
  margin: 5px 0 0;
  font-size: 11px;
  line-height: 1.45;
}

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

.knowledge-page .knowledge-symptoms article {
  min-height: 70px;
  gap: 5px;
  padding: 12px 15px;
  border-right: 1px solid #e7efed;
  border-bottom: 1px solid #e7efed;
  background: #fff;
}

.knowledge-page .knowledge-symptoms article:hover {
  background: #fbfdfc;
}

.knowledge-page .knowledge-symptoms strong {
  color: var(--knowledge-navy);
  font-size: 12px;
  font-weight: 680;
}

.knowledge-page .knowledge-symptoms span {
  color: #5f7780;
  font-size: 11px;
  line-height: 1.45;
}

.knowledge-page .knowledge-apn-wrap {
  background: #fff;
}

.knowledge-page .knowledge-apn-table {
  min-width: 920px;
}

.knowledge-page .knowledge-apn-table th {
  color: #fff;
  background: var(--knowledge-navy);
  border-bottom: 0;
  padding: 10px;
  font-size: 9.5px;
  font-weight: 780;
}

.knowledge-page .knowledge-apn-table td {
  color: #425e66;
  border-bottom: 1px solid #e7efed;
  padding: 10px;
  font-size: 10.5px;
}

.knowledge-page .knowledge-apn-table tbody tr:hover {
  background: rgba(23, 140, 175, .045);
}

.knowledge-page .knowledge-apn-table td:first-child strong {
  color: var(--knowledge-navy);
  font-size: 12px;
  font-weight: 700;
}

.knowledge-page .knowledge-apn-table a {
  color: #0d6380;
  background: rgba(23, 140, 175, .09);
  border: 1px solid rgba(23, 140, 175, .18);
  border-radius: 8px;
}

.knowledge-page .knowledge-apn-table a:hover {
  color: #fff;
  background: var(--knowledge-blue);
}

.knowledge-page .knowledge-mobile-checks ol {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.knowledge-page .knowledge-mobile-checks li {
  color: #5f7780;
  min-height: 58px;
  padding: 11px 15px;
  border-right: 1px solid #e7efed;
  border-bottom: 1px solid #e7efed;
  font-size: 11px;
}

.knowledge-page .knowledge-mobile-checks li::before {
  color: #047b65;
  background: rgba(6, 207, 165, .1);
  border: 1px solid rgba(6, 207, 165, .14);
  border-radius: 8px;
  width: 24px;
  height: 24px;
  font-size: 10px;
}

.knowledge-page .knowledge-empty {
  color: var(--knowledge-muted);
  padding: 26px;
  font-size: 11px;
}

.knowledge-page .knowledge-nec-panel .knowledge-profile {
  max-width: 780px;
}

.knowledge-page .knowledge-nec-panel .knowledge-profile-grid {
  grid-template-columns: minmax(0, 780px);
}

@media (max-width: 1100px) {
  .knowledge-page .knowledge-profile-grid,
  .knowledge-page .knowledge-check-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .knowledge-page .knowledge-check-grid article:nth-child(3n) {
    border-right: 1px solid #e7efed;
  }

  .knowledge-page .knowledge-check-grid article:nth-child(2n) {
    border-right: 0;
  }
}

@media (max-width: 760px) {
  .knowledge-page {
    padding: 14px 12px 24px;
  }

  .knowledge-page .knowledge-heading {
    align-items: flex-start;
  }

  .knowledge-page .knowledge-toolbar {
    align-items: stretch;
  }

  .knowledge-page .knowledge-tabs,
  .knowledge-page .knowledge-profile-grid,
  .knowledge-page .knowledge-check-grid,
  .knowledge-page .knowledge-symptoms,
  .knowledge-page .knowledge-mobile-checks ol {
    grid-template-columns: 1fr;
  }

  .knowledge-page .knowledge-tabs {
    display: grid;
  }

  .knowledge-page .knowledge-search {
    width: 100%;
  }

  .knowledge-page .knowledge-profile dl {
    grid-template-columns: 1fr;
  }

  .knowledge-page .knowledge-profile dl > div,
  .knowledge-page .knowledge-check-grid article,
  .knowledge-page .knowledge-symptoms article,
  .knowledge-page .knowledge-mobile-checks li {
    border-right: 0;
  }
}

/* Provisioning diary visual refresh for Number Ports and Broadband Orders. */
.number-ports-page {
  --provisioning-pink: #ef426f;
  --provisioning-yellow: #ffd166;
  --provisioning-mint: #06cfa5;
  --provisioning-blue: #178caf;
  --provisioning-navy: #073f4d;
  --provisioning-border: #dde8e6;
  --provisioning-muted: #5f7780;
  --provisioning-shadow: 0 8px 22px rgba(7, 63, 77, .07);
  max-width: none;
  background: #f6f9f8;
  color: var(--provisioning-navy);
  font-family: Inter, system-ui, sans-serif;
  padding-top: 22px;
}

.number-ports-page .module-title-row {
  align-items: center;
  gap: 18px;
  margin-bottom: 12px;
}

.number-ports-page .module-title-row .eyebrow {
  color: #008b70;
  letter-spacing: .14em;
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 800;
}

.number-ports-page .module-title-row h1 {
  color: var(--provisioning-navy);
  letter-spacing: 0;
  margin: 0 0 4px;
  font-size: 32px;
  font-weight: 760;
  line-height: 1.04;
}

.number-ports-page .module-title-row p {
  color: var(--provisioning-muted);
  margin: 0;
  font-size: 13px;
}

.number-ports-page .button-primary {
  color: #fff;
  background: linear-gradient(135deg, #06cfa5, #00946f);
  border: 0;
  border-radius: 9px;
  align-items: center;
  gap: 8px;
  height: 38px;
  padding: 0 16px;
  font-size: 12px;
  font-weight: 760;
  box-shadow: 0 9px 20px rgba(6, 207, 165, .22);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.number-ports-page .button-primary:hover {
  background: linear-gradient(135deg, #08bd98, #087b63);
  box-shadow: 0 11px 22px rgba(6, 207, 165, .28);
  transform: translateY(-1px);
}

.number-ports-page .planner-toolbar {
  border: 1px solid var(--provisioning-border);
  background: #fff;
  border-radius: 12px;
  align-items: center;
  gap: 14px;
  min-height: 52px;
  margin: 12px 0 10px;
  padding: 7px 9px;
  box-shadow: 0 5px 18px rgba(7, 63, 77, .05);
}

.number-ports-page .planner-toolbar::before,
.number-ports-page .planner-toolbar::after {
  display: none !important;
}

.number-ports-page .planner-toolbar > strong {
  color: var(--provisioning-navy);
  white-space: nowrap;
  margin-inline: 2px auto;
  font-size: 12px;
  font-weight: 760;
}

.number-ports-page .week-controls {
  background: #f7fbfa;
  border: 1px solid var(--provisioning-border);
  border-radius: 10px;
  gap: 3px;
  padding: 3px;
}

.number-ports-page .week-controls button {
  color: var(--provisioning-navy);
  background: transparent;
  border: 0;
  border-radius: 8px;
  height: 32px;
  min-width: 34px;
  padding: 0 10px;
  font-size: 11px;
  font-weight: 760;
  transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}

.number-ports-page .week-controls button:hover,
.number-ports-page .week-controls button:focus-visible {
  color: #047b65;
  background: rgba(6, 207, 165, .08);
  outline: none;
}

.number-ports-page .week-controls button:nth-child(2) {
  color: #fff;
  background: var(--provisioning-mint);
  box-shadow: 0 6px 14px rgba(6, 207, 165, .16);
}

.number-ports-page .planner-tools {
  align-items: center;
  gap: 8px;
}

.number-ports-page .dashboard-filter-chip {
  color: #047b65;
  background: rgba(6, 207, 165, .1);
  border: 1px solid rgba(6, 207, 165, .22);
  border-radius: 999px;
  height: 30px;
  padding: 0 10px;
  font-size: 10px;
  font-weight: 760;
}

.number-ports-page .compact-search {
  color: var(--provisioning-muted);
  background: #fff;
  border: 1px solid var(--provisioning-border);
  border-radius: 9px;
  width: min(420px, 32vw);
  height: 36px;
  padding: 0 11px;
  transition: border-color .15s ease, box-shadow .15s ease;
}

.number-ports-page .compact-search:focus-within {
  border-color: var(--provisioning-mint);
  box-shadow: 0 0 0 3px rgba(6, 207, 165, .14);
}

.number-ports-page .compact-search input {
  color: var(--provisioning-navy);
  font-size: 11px;
}

.number-ports-page .planner-tools input[type="date"] {
  color: var(--provisioning-navy);
  background: #fff;
  border: 1px solid var(--provisioning-border);
  border-radius: 9px;
  height: 36px;
  min-width: 142px;
  padding: 0 10px;
  font-size: 11px;
  font-weight: 650;
}

.number-ports-page .planner-tools input[type="date"]:focus {
  border-color: var(--provisioning-mint);
  outline: none;
  box-shadow: 0 0 0 3px rgba(6, 207, 165, .14);
}

.number-ports-page .provisioning-week-summary {
  background: #fff;
  border: 1px solid var(--provisioning-border);
  border-radius: 12px;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  padding: 8px 10px;
  display: flex;
  flex-wrap: wrap;
  box-shadow: 0 5px 18px rgba(7, 63, 77, .045);
}

.number-ports-page .provisioning-week-summary > strong {
  color: var(--provisioning-navy);
  margin-right: 2px;
  font-size: 12px;
  font-weight: 780;
}

.number-ports-page .provisioning-summary-pill {
  border: 1px solid transparent;
  border-radius: 999px;
  align-items: center;
  height: 26px;
  padding: 0 10px;
  font-size: 10.5px;
  font-weight: 760;
  display: inline-flex;
}

.number-ports-page .provisioning-summary-pill--total {
  color: var(--provisioning-navy);
  background: rgba(7, 63, 77, .07);
  border-color: rgba(7, 63, 77, .1);
}

.number-ports-page .provisioning-summary-pill--scheduled {
  color: #0b6681;
  background: rgba(23, 140, 175, .11);
  border-color: rgba(23, 140, 175, .18);
}

.number-ports-page .provisioning-summary-pill--completed,
.number-ports-page .provisioning-summary-pill--attention.is-clear {
  color: #047b65;
  background: rgba(6, 207, 165, .1);
  border-color: rgba(6, 207, 165, .18);
}

.number-ports-page .provisioning-summary-pill--attention.is-warning {
  color: #8a5a08;
  background: rgba(255, 209, 102, .27);
  border-color: rgba(255, 209, 102, .42);
}

.number-ports-page .ports-diary {
  background: #fff;
  border: 1px solid var(--provisioning-border);
  border-radius: 12px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  min-height: 330px;
  overflow: hidden;
  box-shadow: var(--provisioning-shadow);
}

.number-ports-page .diary-day {
  background: #fff;
  border: 0;
  border-right: 1px solid var(--provisioning-border);
  min-width: 0;
}

.number-ports-page .diary-day:last-child {
  border-right: 0;
}

.number-ports-page .diary-day--today {
  background: rgba(6, 207, 165, .04);
  box-shadow: inset 0 2px 0 rgba(6, 207, 165, .62);
}

.number-ports-page .diary-day > header {
  color: var(--provisioning-navy);
  background: #fbfdfc;
  border-bottom: 1px solid var(--provisioning-border);
  align-items: center;
  justify-content: flex-start;
  gap: 7px;
  min-height: 44px;
  padding: 8px 11px;
}

.number-ports-page .diary-day--today > header {
  background: rgba(6, 207, 165, .065);
}

.number-ports-page .diary-day > header > div {
  align-items: baseline;
  gap: 6px;
  min-width: 0;
  display: flex;
}

.number-ports-page .diary-day > header span {
  color: var(--provisioning-navy);
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 11px;
  font-weight: 800;
}

.number-ports-page .diary-day > header strong {
  color: var(--provisioning-navy);
  font-size: 13px;
  font-weight: 720;
}

.number-ports-page .diary-day > header small {
  color: var(--provisioning-muted);
  font-size: 11px;
  font-weight: 560;
}

.number-ports-page .diary-day--today > header::after {
  content: "TODAY";
  color: #047b65;
  background: rgba(6, 207, 165, .13);
  border: 1px solid rgba(6, 207, 165, .2);
  border-radius: 999px;
  margin-left: auto;
  padding: 3px 7px;
  font-size: 8.5px;
  font-weight: 840;
  letter-spacing: .05em;
}

.number-ports-page .diary-day-body {
  align-content: start;
  gap: 8px;
  min-height: 285px;
  padding: 10px;
}

.number-ports-page .port-card {
  position: relative;
  color: var(--provisioning-navy);
  text-align: left;
  background: rgba(255, 255, 255, .96);
  border: 1px solid var(--provisioning-border);
  border-left: 3px solid var(--provisioning-blue);
  border-radius: 9px;
  gap: 7px;
  width: 100%;
  min-height: 96px;
  padding: 10px 10px 10px 12px;
  display: grid;
  box-shadow: 0 4px 14px rgba(7, 63, 77, .045);
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.number-ports-page .port-card:hover,
.number-ports-page .port-card:focus-visible {
  background: #fbfefd;
  border-color: rgba(6, 207, 165, .36);
  border-left-color: var(--provisioning-mint);
  outline: none;
  box-shadow: 0 8px 20px rgba(7, 63, 77, .09);
  transform: translateY(-1px);
}

.number-ports-page .port-card[draggable="true"] {
  cursor: grab;
}

.number-ports-page .port-card[draggable="true"]:active {
  cursor: grabbing;
  box-shadow: 0 14px 26px rgba(7, 63, 77, .16);
}

.number-ports-page .port-card--completed,
.number-ports-page .port-card--live {
  border-left-color: var(--provisioning-mint);
  background: linear-gradient(90deg, rgba(6, 207, 165, .045), #fff 32%);
}

.number-ports-page .port-card--delayed,
.number-ports-page .port-card--awaiting_provider {
  border-left-color: var(--provisioning-yellow);
  background: linear-gradient(90deg, rgba(255, 209, 102, .12), #fff 34%);
}

.number-ports-page .port-card--failed,
.number-ports-page .port-card--cancelled {
  border-left-color: var(--provisioning-pink);
  background: linear-gradient(90deg, rgba(239, 66, 111, .08), #fff 34%);
}

.number-ports-page .port-card-head {
  align-items: flex-start;
  gap: 8px;
}

.number-ports-page .port-card-head strong {
  color: var(--provisioning-navy);
  letter-spacing: 0;
  min-width: 0;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.18;
}

.number-ports-page .port-card .status-pill {
  border: 1px solid transparent;
  border-radius: 999px;
  flex: none;
  min-width: 72px;
  padding: 4px 7px;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .035em;
  font-size: 9px;
  font-weight: 800;
}

.number-ports-page .status-pill--scheduled,
.number-ports-page .status-pill--in_progress,
.number-ports-page .status-pill--ordered {
  color: #0b6681;
  background: rgba(23, 140, 175, .11);
  border-color: rgba(23, 140, 175, .18);
}

.number-ports-page .status-pill--completed,
.number-ports-page .status-pill--live {
  color: #047b65;
  background: rgba(6, 207, 165, .12);
  border-color: rgba(6, 207, 165, .2);
}

.number-ports-page .status-pill--delayed,
.number-ports-page .status-pill--awaiting_provider {
  color: #8a5a08;
  background: rgba(255, 209, 102, .27);
  border-color: rgba(255, 209, 102, .44);
}

.number-ports-page .status-pill--failed,
.number-ports-page .status-pill--cancelled {
  color: #a51f47;
  background: rgba(239, 66, 111, .12);
  border-color: rgba(239, 66, 111, .22);
}

.number-ports-page .port-number {
  color: var(--provisioning-navy);
  background: rgba(23, 140, 175, .07);
  border: 1px solid rgba(23, 140, 175, .13);
  border-radius: 7px;
  align-items: center;
  gap: 6px;
  width: max-content;
  max-width: 100%;
  padding: 5px 7px;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
}

.number-ports-page .port-number svg {
  color: var(--provisioning-blue);
  flex: none;
}

.number-ports-page .port-card > small {
  color: var(--provisioning-muted);
  align-items: center;
  gap: 5px;
  min-width: 0;
  font-size: 10.5px;
  font-weight: 520;
  line-height: 1.35;
  display: flex;
}

.number-ports-page .port-card > small svg {
  color: var(--provisioning-blue);
  flex: none;
}

.number-ports-page .broadband-card-service {
  align-items: center;
  gap: 7px;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
}

.number-ports-page .broadband-type-chip {
  color: var(--provisioning-navy);
  background: rgba(6, 207, 165, .09);
  border: 1px solid rgba(6, 207, 165, .18);
  border-radius: 7px;
  padding: 4px 7px;
  font-size: 10px;
  font-weight: 780;
  line-height: 1;
}

.number-ports-page .broadband-card-service small {
  color: var(--provisioning-muted);
  font-size: 10.5px;
  font-weight: 600;
}

.number-ports-page .engineer-badge {
  border: 1px solid transparent;
  border-radius: 999px;
  align-items: center;
  gap: 5px;
  width: max-content;
  max-width: 100%;
  padding: 4px 8px;
  font-size: 10px;
  font-weight: 760;
  line-height: 1;
  display: inline-flex;
}

.number-ports-page .engineer-badge svg {
  flex: none;
}

.number-ports-page .engineer-badge--assigned {
  color: #0b6681;
  background: rgba(23, 140, 175, .1);
  border-color: rgba(23, 140, 175, .18);
}

.number-ports-page .engineer-badge--needed {
  color: #8a5a08;
  background: rgba(255, 209, 102, .29);
  border-color: rgba(255, 209, 102, .44);
}

.number-ports-page .engineer-badge--not-needed {
  color: #047b65;
  background: rgba(6, 207, 165, .1);
  border-color: rgba(6, 207, 165, .18);
}

.number-ports-page .diary-empty {
  color: #78909a;
  background: rgba(7, 63, 77, .025);
  border: 1px dashed rgba(7, 63, 77, .12);
  border-radius: 9px;
  justify-content: center;
  align-items: center;
  gap: 7px;
  min-height: 62px;
  padding: 12px;
  font-size: 11px;
  font-weight: 600;
}

.number-ports-page .diary-empty svg {
  color: #8aa4aa;
}

.number-ports-page .day-add {
  color: #607980;
  background: rgba(255, 255, 255, .7);
  border: 1px dashed #c8d8d7;
  border-radius: 9px;
  justify-content: center;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-height: 34px;
  padding: 8px;
  font-size: 11px;
  font-weight: 720;
  transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}

.number-ports-page .day-add:hover,
.number-ports-page .day-add:focus-visible {
  color: #047b65;
  background: rgba(6, 207, 165, .07);
  border-color: rgba(6, 207, 165, .42);
  outline: none;
  box-shadow: inset 0 0 0 1px rgba(6, 207, 165, .2);
}

.number-ports-page .diary-day.is-drop-target .diary-day-body {
  background: rgba(6, 207, 165, .06);
  box-shadow: inset 0 0 0 1px rgba(6, 207, 165, .95);
}

@media (max-width: 1180px) {
  .number-ports-page .planner-toolbar {
    flex-wrap: wrap;
  }

  .number-ports-page .planner-toolbar > strong {
    margin-right: 0;
  }

  .number-ports-page .planner-tools {
    width: 100%;
  }

  .number-ports-page .compact-search {
    flex: 1;
    width: auto;
  }

  .number-ports-page .ports-diary {
    overflow-x: auto;
  }

  .number-ports-page .diary-day {
    min-width: 210px;
  }
}

@media (max-width: 760px) {
  .number-ports-page {
    padding: 14px 12px 24px;
  }

  .number-ports-page .module-title-row {
    align-items: flex-start;
  }

  .number-ports-page .planner-tools {
    align-items: stretch;
    flex-direction: column;
  }

  .number-ports-page .compact-search,
  .number-ports-page .planner-tools input[type="date"] {
    width: 100%;
  }

  .number-ports-page .provisioning-week-summary {
    align-items: flex-start;
  }
}

/* Final provisioning diary polish. */
.number-ports-page .provisioning-week-summary {
  gap: 10px;
  padding-block: 7px;
}

.number-ports-page .provisioning-week-summary > strong {
  margin-right: 5px;
  font-size: 12.5px;
  font-weight: 820;
}

.number-ports-page .provisioning-summary-pill {
  height: 25px;
  padding-inline: 11px;
}

.number-ports-page .ports-diary {
  min-height: 315px;
}

.number-ports-page .diary-day > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  column-gap: 4px;
}

.number-ports-page .diary-day > header > div {
  display: contents;
}

.number-ports-page .diary-day > header span {
  grid-column: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.number-ports-page .diary-day > header strong {
  grid-column: 2;
  justify-self: end;
  font-variant-numeric: tabular-nums;
}

.number-ports-page .diary-day--today > header strong {
  color: #047b65;
  background: rgba(6, 207, 165, .13);
  border: 1px solid rgba(6, 207, 165, .2);
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  min-width: 26px;
  height: 24px;
  padding: 0 7px;
  font-size: 12px;
  font-weight: 820;
}

.number-ports-page .diary-day > header small {
  grid-column: 3;
  justify-self: start;
}

.number-ports-page .diary-day--today > header::after {
  grid-column: 4;
  margin-left: 7px;
  justify-self: end;
}

.number-ports-page .diary-day-body {
  min-height: 258px;
  padding: 9px;
}

.number-ports-page .port-card {
  border-color: var(--provisioning-border);
  border-radius: 9px;
  min-height: 92px;
  padding: 10px 13px 11px;
  box-shadow: 0 4px 13px rgba(7, 63, 77, .045);
  transform: none;
}

.number-ports-page .port-card:hover,
.number-ports-page .port-card:focus-visible {
  border-color: rgba(6, 207, 165, .34);
  box-shadow: 0 7px 18px rgba(7, 63, 77, .085);
  transform: none;
}

.number-ports-page .port-card-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 8px;
}

.number-ports-page .port-card-head strong {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  white-space: normal;
  overflow-wrap: anywhere;
  font-weight: 650;
}

.number-ports-page .port-card .status-pill {
  align-self: start;
  justify-self: end;
  margin-top: 0;
}

.number-ports-page .port-number {
  font-variant-numeric: tabular-nums;
}

.number-ports-page .broadband-card-service,
.number-ports-page .port-card > small,
.number-ports-page .engineer-badge {
  margin-top: 0;
}

.number-ports-page .diary-empty {
  color: #83979e;
  background: rgba(255, 255, 255, .35);
  border-color: rgba(7, 63, 77, .1);
  min-height: 46px;
  padding: 8px;
  font-size: 10.5px;
}

.number-ports-page .diary-empty svg {
  width: 15px;
  height: 15px;
  color: #91a6ac;
}

.number-ports-page .day-add {
  min-height: 32px;
  padding: 7px;
  box-shadow: none;
}

/* On Call Rota visual refresh to match the operations platform. */
.rota-page {
  --rota-pink: #ef426f;
  --rota-yellow: #ffd166;
  --rota-mint: #06cfa5;
  --rota-blue: #178caf;
  --rota-navy: #073f4d;
  --rota-border: #dde8e6;
  --rota-muted: #5f7780;
  --rota-shadow: 0 8px 22px rgba(7, 63, 77, .07);
  max-width: none;
  background: #f6f9f8;
  color: var(--rota-navy);
  font-family: Inter, system-ui, sans-serif;
  padding-top: 22px;
}

.rota-page .rota-title {
  align-items: center;
  gap: 18px;
  margin-bottom: 12px;
}

.rota-page .rota-title .eyebrow {
  color: #008b70;
  letter-spacing: .14em;
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 800;
}

.rota-page .rota-title h1 {
  color: var(--rota-navy);
  letter-spacing: 0;
  margin: 0 0 4px;
  font-size: 32px;
  font-weight: 760;
  line-height: 1.04;
}

.rota-page .rota-title p {
  color: var(--rota-muted);
  margin: 0;
  font-size: 13px;
}

.rota-page .rota-title p span {
  color: var(--rota-navy);
  font-weight: 650;
}

.rota-page .rota-title-actions {
  align-items: center;
  gap: 10px;
}

.rota-page .live-pill {
  color: #047b65;
  text-transform: uppercase;
  letter-spacing: .04em;
  background: rgba(6, 207, 165, .11);
  border: 1px solid rgba(6, 207, 165, .2);
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  height: 32px;
  padding: 0 13px;
  font-size: 10.5px;
  font-weight: 800;
  box-shadow: none;
}

.rota-page .live-pill i {
  background: var(--rota-mint);
  border-radius: 50%;
  width: 7px;
  height: 7px;
  box-shadow: 0 0 0 4px rgba(6, 207, 165, .14);
}

.rota-page .button-secondary {
  color: var(--rota-navy);
  background: #fff;
  border: 1px solid var(--rota-border);
  border-radius: 9px;
  align-items: center;
  gap: 7px;
  height: 34px;
  padding: 0 12px;
  font-size: 11px;
  font-weight: 740;
  box-shadow: 0 4px 12px rgba(7, 63, 77, .04);
  transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}

.rota-page .button-secondary:hover,
.rota-page .button-secondary:focus-visible {
  color: #047b65;
  background: rgba(6, 207, 165, .07);
  border-color: rgba(6, 207, 165, .34);
  outline: none;
  box-shadow: 0 5px 15px rgba(7, 63, 77, .07);
}

.rota-page .smart-search-message {
  border: 1px solid var(--rota-border);
  border-radius: 10px;
  margin-bottom: 10px;
  font-size: 11px;
}

.rota-page .smart-search-message--success {
  color: #047b65;
  background: rgba(6, 207, 165, .09);
  border-color: rgba(6, 207, 165, .2);
}

.rota-page .rota-summary {
  background: transparent;
  border: 0;
  border-radius: 0;
  grid-template-columns: minmax(320px, 1.4fr) repeat(2, minmax(220px, 1fr));
  gap: 12px;
  margin: 12px 0;
  padding: 0;
  display: grid;
  box-shadow: none;
}

.rota-page .rota-summary-primary,
.rota-page .rota-summary-stat {
  position: relative;
  min-height: 92px;
  color: var(--rota-navy);
  background: #fff;
  border: 1px solid var(--rota-border);
  border-radius: 12px;
  align-items: center;
  padding: 14px 16px;
  box-shadow: var(--rota-shadow);
  overflow: hidden;
}

.rota-page .rota-summary-primary {
  border-left: 3px solid var(--rota-blue);
  grid-template-columns: 36px 34px minmax(0, 1fr);
  gap: 11px;
  display: grid;
}

.rota-page .rota-summary-stat {
  border-left: 3px solid var(--rota-mint);
  align-content: center;
  gap: 4px;
  text-align: left;
  display: grid;
}

.rota-page button.rota-summary-stat {
  cursor: pointer;
}

.rota-page button.rota-summary-stat:hover,
.rota-page button.rota-summary-stat:focus-visible {
  background: #fbfefd;
  border-color: rgba(255, 209, 102, .46);
  outline: none;
  box-shadow: 0 9px 22px rgba(7, 63, 77, .09);
}

.rota-page .rota-summary-stat:last-child {
  border-left-color: var(--rota-yellow);
}

.rota-page .rota-summary-icon {
  color: #0b6681;
  background: rgba(23, 140, 175, .1);
  border-radius: 10px;
  place-items: center;
  width: 34px;
  height: 34px;
  display: grid;
}

.rota-page .rota-summary .staff-avatar {
  border-radius: 50%;
  width: 34px;
  height: 34px;
  box-shadow: 0 0 0 3px #fff, 0 0 0 4px rgba(23, 140, 175, .16);
}

.rota-page .rota-summary small {
  color: var(--rota-muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 10px;
  font-weight: 800;
}

.rota-page .rota-summary strong {
  color: var(--rota-navy);
  letter-spacing: 0;
  margin: 2px 0 0;
  font-size: 21px;
  font-weight: 760;
  line-height: 1.12;
}

.rota-page .rota-summary span {
  color: var(--rota-muted);
  font-size: 11px;
  font-weight: 520;
}

.rota-page .rota-rotation {
  color: var(--rota-navy);
  background: #fff;
  border: 1px solid var(--rota-border);
  border-radius: 12px;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  padding: 9px 10px;
  box-shadow: 0 5px 18px rgba(7, 63, 77, .045);
}

.rota-page .rota-rotation > span {
  color: var(--rota-navy);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-right: 4px;
  font-size: 10.5px;
  font-weight: 820;
}

.rota-page .rota-rotation > div {
  color: var(--rota-navy);
  background: #fbfdfc;
  border: 1px solid var(--rota-border);
  border-radius: 999px;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 3px 8px 3px 4px;
  font-size: 11px;
  font-weight: 650;
}

.rota-page .rota-rotation > div.is-next {
  color: #0b6681;
  background: rgba(23, 140, 175, .08);
  border-color: rgba(23, 140, 175, .18);
}

.rota-page .rota-rotation > div.is-me {
  color: #047b65;
  background: rgba(6, 207, 165, .09);
  border-color: rgba(6, 207, 165, .2);
}

.rota-page .rota-rotation .staff-avatar {
  border-radius: 50%;
  width: 28px;
  height: 28px;
  font-size: 9px;
}

.rota-page .rota-rotation b {
  color: inherit;
  font-weight: 680;
}

.rota-page .rota-rotation svg {
  color: rgba(7, 63, 77, .32);
  flex: none;
}

.rota-page .rota-panel {
  background: #fff;
  border: 1px solid var(--rota-border);
  border-radius: 12px;
  margin-top: 12px;
  overflow: hidden;
  box-shadow: var(--rota-shadow);
}

.rota-page .rota-toolbar {
  background: #fff;
  border-bottom: 1px solid var(--rota-border);
  align-items: center;
  gap: 12px;
  min-height: 60px;
  padding: 12px 14px;
}

.rota-page .rota-toolbar h2 {
  color: var(--rota-navy);
  margin: 0;
  font-size: 16px;
  font-weight: 740;
}

.rota-page .rota-toolbar span {
  color: var(--rota-muted);
  margin-top: 2px;
  font-size: 11px;
  font-weight: 520;
}

.rota-page .rota-toolbar > div:last-child {
  align-items: center;
  gap: 6px;
}

.rota-page .rota-toolbar button,
.rota-page .rota-toolbar select {
  color: var(--rota-navy);
  background: #fff;
  border: 1px solid var(--rota-border);
  border-radius: 8px;
  height: 34px;
  padding: 0 10px;
  font-size: 11px;
  font-weight: 720;
  transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}

.rota-page .rota-toolbar button {
  align-items: center;
  gap: 5px;
  display: inline-flex;
}

.rota-page .rota-toolbar button:nth-child(2) {
  color: #fff;
  background: var(--rota-mint);
  border-color: var(--rota-mint);
  box-shadow: 0 6px 14px rgba(6, 207, 165, .16);
}

.rota-page .rota-toolbar button:hover,
.rota-page .rota-toolbar button:focus-visible,
.rota-page .rota-toolbar select:hover,
.rota-page .rota-toolbar select:focus {
  color: #047b65;
  background: rgba(6, 207, 165, .07);
  border-color: rgba(6, 207, 165, .34);
  outline: none;
}

.rota-page .rota-toolbar button:nth-child(2):hover,
.rota-page .rota-toolbar button:nth-child(2):focus-visible {
  color: #fff;
  background: #08a984;
}

.rota-page .rota-table-wrap {
  overflow-x: auto;
}

.rota-page .rota-table {
  width: 100%;
  min-width: 900px;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
}

.rota-page .rota-table th,
.rota-page .rota-table td {
  text-align: left;
  vertical-align: middle;
}

.rota-page .rota-table thead th {
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .055em;
  background: var(--rota-navy);
  border: 0;
  height: 38px;
  padding: 0 14px;
  font-size: 10.5px;
  font-weight: 800;
}

.rota-page .rota-table thead th:first-child {
  width: 21%;
}

.rota-page .rota-table thead th:nth-child(2) {
  width: 24%;
}

.rota-page .rota-table thead th:nth-child(3),
.rota-page .rota-table thead th:nth-child(4) {
  width: 15%;
}

.rota-page .rota-table thead th:nth-child(5) {
  width: 14%;
}

.rota-page .rota-table thead th:nth-child(6) {
  width: 11%;
}

.rota-page .rota-month-row th {
  color: var(--rota-navy);
  text-transform: uppercase;
  letter-spacing: .08em;
  background: #f0faf7;
  border-top: 1px solid var(--rota-border);
  border-bottom: 1px solid var(--rota-border);
  height: 32px;
  padding: 0 14px;
  font-size: 10.5px;
  font-weight: 820;
}

.rota-page .rota-table tbody tr:not(.rota-month-row) {
  position: relative;
  background: #fff;
  box-shadow: inset 3px 0 0 transparent;
  transition: background-color .15s ease, box-shadow .15s ease;
}

.rota-page .rota-table tbody tr:not(.rota-month-row):hover {
  background: rgba(6, 207, 165, .035);
}

.rota-page .rota-table tbody tr.rota-row--live {
  box-shadow: inset 3px 0 0 var(--rota-blue);
}

.rota-page .rota-table tbody tr.rota-row--mine {
  background: rgba(6, 207, 165, .045);
  box-shadow: inset 3px 0 0 var(--rota-mint);
}

.rota-page .rota-table td {
  border-bottom: 1px solid var(--rota-border);
  height: 58px;
  padding: 9px 14px;
  font-size: 12px;
}

.rota-page .rota-table td > strong,
.rota-page .rota-table td .rota-person strong {
  color: var(--rota-navy);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.18;
}

.rota-page .rota-table td > span,
.rota-page .rota-table td small {
  color: var(--rota-muted);
  margin-top: 3px;
  font-size: 10.5px;
  font-weight: 480;
}

.rota-page .rota-table td[data-label="Saturday"] strong,
.rota-page .rota-table td[data-label="Sunday"] strong {
  font-variant-numeric: tabular-nums;
  font-weight: 640;
}

.rota-page .rota-person {
  align-items: center;
  gap: 9px;
  min-width: 0;
  display: flex;
}

.rota-page .rota-person .staff-avatar {
  border-radius: 50%;
  width: 32px;
  height: 32px;
  font-size: 10px;
  box-shadow: 0 0 0 3px #fff, 0 0 0 4px rgba(7, 63, 77, .07);
}

.rota-page .rota-person > span {
  min-width: 0;
  display: grid;
}

.rota-page .rota-person strong,
.rota-page .rota-person small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rota-page .rota-badge {
  border: 1px solid transparent;
  border-radius: 999px;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  height: 25px;
  padding: 0 9px;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 9.5px;
  font-weight: 820;
  display: inline-flex;
}

.rota-page .rota-badge--live,
.rota-page .rota-badge--next {
  color: #0b6681;
  background: rgba(23, 140, 175, .11);
  border-color: rgba(23, 140, 175, .2);
}

.rota-page .rota-badge--mine {
  color: #047b65;
  background: rgba(6, 207, 165, .12);
  border-color: rgba(6, 207, 165, .2);
}

.rota-page .rota-badge--warning {
  color: #8a5a08;
  background: rgba(255, 209, 102, .3);
  border-color: rgba(255, 209, 102, .45);
}

.rota-page .rota-badge--complete,
.rota-page .rota-badge--upcoming {
  color: #536d75;
  background: rgba(7, 63, 77, .06);
  border-color: rgba(7, 63, 77, .1);
}

.rota-page .rota-badge--purple {
  color: #0b6681;
  background: rgba(23, 140, 175, .09);
  border-color: rgba(23, 140, 175, .16);
}

.rota-page .rota-actions {
  text-align: right;
}

.rota-page .rota-actions button,
.rota-page .rota-pending article button {
  color: var(--rota-navy);
  background: #fff;
  border: 1px solid var(--rota-border);
  border-radius: 8px;
  align-items: center;
  gap: 5px;
  height: 30px;
  padding: 0 9px;
  font-size: 10.5px;
  font-weight: 740;
  display: inline-flex;
  transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}

.rota-page .rota-actions button:hover,
.rota-page .rota-actions button:focus-visible,
.rota-page .rota-pending article button:hover,
.rota-page .rota-pending article button:focus-visible {
  color: #047b65;
  background: rgba(6, 207, 165, .07);
  border-color: rgba(6, 207, 165, .34);
  outline: none;
}

.rota-page .rota-actions button:not(:has(svg:first-child)) {
  border-color: rgba(6, 207, 165, .28);
}

.rota-page .rota-actions button:disabled,
.rota-page .rota-pending article button:disabled {
  opacity: .62;
  cursor: not-allowed;
}

.rota-page .rota-empty {
  color: var(--rota-muted);
  text-align: center;
  padding: 34px 16px !important;
  font-size: 12px;
}

.rota-page .rota-empty svg {
  color: var(--rota-blue);
  display: inline-block;
  margin-right: 6px;
  vertical-align: middle;
}

.rota-page .rota-pending {
  border-color: rgba(255, 209, 102, .46);
  box-shadow: inset 0 3px 0 rgba(255, 209, 102, .8), var(--rota-shadow);
}

.rota-page .rota-pending > header {
  background: #fffaf0;
  border-bottom: 1px solid rgba(255, 209, 102, .34);
  min-height: 54px;
  padding: 12px 14px;
}

.rota-page .rota-pending > header > div {
  align-items: center;
  gap: 8px;
}

.rota-page .rota-pending h2 {
  color: var(--rota-navy);
  margin: 0;
  font-size: 15px;
  font-weight: 740;
}

.rota-page .rota-pending > header b {
  color: #8a5a08;
  background: rgba(255, 209, 102, .32);
  border-radius: 999px;
  padding: 3px 7px;
  font-size: 10px;
}

.rota-page .rota-pending article {
  background: #fff;
  border-bottom: 1px solid var(--rota-border);
  grid-template-columns: minmax(230px, 1fr) minmax(260px, 1.5fr) auto;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
}

.rota-page .rota-pending article:last-child {
  border-bottom: 0;
}

.rota-page .rota-swap-route {
  align-items: center;
  gap: 8px;
}

.rota-page .rota-swap-route .staff-avatar {
  border-radius: 50%;
  width: 30px;
  height: 30px;
}

.rota-page .rota-swap-route strong,
.rota-page .rota-pending article > div:nth-child(2) strong {
  color: var(--rota-navy);
  font-size: 12px;
  font-weight: 650;
}

.rota-page .rota-pending article > div:nth-child(2) span {
  color: var(--rota-muted);
  margin-top: 3px;
  font-size: 10.5px;
}

@media (max-width: 1180px) {
  .rota-page .rota-summary {
    grid-template-columns: 1fr;
  }

  .rota-page .rota-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .rota-page .rota-toolbar > div:last-child {
    flex-wrap: wrap;
  }
}

@media (max-width: 760px) {
  .rota-page {
    padding: 14px 12px 24px;
  }

  .rota-page .rota-title {
    align-items: flex-start;
  }

  .rota-page .rota-title-actions,
  .rota-page .rota-rotation {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .rota-page .rota-summary-primary {
    grid-template-columns: 34px minmax(0, 1fr);
  }

  .rota-page .rota-summary-primary .staff-avatar {
    grid-column: 1;
  }

  .rota-page .rota-summary-primary > div {
    grid-column: 2;
  }

  .rota-page .rota-pending article {
    grid-template-columns: 1fr;
  }
}

.fault-title-actions,
.operation-title-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.faults-page .fault-export-button,
.operation-page .operation-backup-button,
.operation-page .operation-import-button {
  min-height: 42px;
  border-radius: 10px;
  border: 1px solid #DDE8E6;
  background: #FFFFFF;
  color: #073F4D;
  box-shadow: 0 8px 18px rgba(7, 63, 77, 0.06);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  padding: 0 15px;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
}

.faults-page .fault-export-button:hover,
.faults-page .fault-export-button:focus-visible,
.operation-page .operation-backup-button:hover,
.operation-page .operation-backup-button:focus-visible,
.operation-page .operation-import-button:hover,
.operation-page .operation-import-button:focus-visible {
  border-color: rgba(6, 207, 165, 0.5);
  background: rgba(6, 207, 165, 0.08);
  color: #073F4D;
  box-shadow: 0 10px 22px rgba(6, 207, 165, 0.12);
}

.faults-page .fault-export-button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
  box-shadow: none;
}

.faults-page .fault-region-controls {
  display: flex;
  align-items: center;
  width: 100%;
}

.faults-page .fault-region-controls .fault-title-actions {
  margin-left: auto;
}

.faults-page .fault-title-actions {
  min-height: 38px;
}

.faults-page .fault-title-actions .button-primary,
.faults-page .fault-title-actions .fault-export-button {
  height: 38px;
  min-height: 38px;
  border-radius: 10px;
}

.faults-page .fault-title-actions .button-primary {
  align-self: center;
  margin-top: 0;
  padding: 0 15px;
}

@media (max-width: 760px) {
  .faults-page .fault-region-controls .fault-title-actions {
    justify-content: flex-start;
    margin-left: 0;
    width: 100%;
  }
}

.faults-page .faults-table {
  min-width: 1120px;
}

.faults-page .faults-table th:nth-child(1),
.faults-page .faults-table td:nth-child(1) {
  width: 190px;
}

.faults-page .faults-table th:nth-child(2),
.faults-page .faults-table td:nth-child(2) {
  width: 120px;
  text-align: center;
}

.faults-page .faults-table th:nth-child(3),
.faults-page .faults-table td:nth-child(3) {
  width: 92px;
}

.faults-page .faults-table th:nth-child(4),
.faults-page .faults-table td:nth-child(4) {
  width: 330px;
}

.faults-page .faults-table th:nth-child(5),
.faults-page .faults-table td:nth-child(5) {
  width: 74px;
  text-align: center;
}

.faults-page .faults-table th:nth-child(6),
.faults-page .faults-table td:nth-child(6) {
  width: 220px;
}

.faults-page .faults-table th:nth-child(7),
.faults-page .faults-table td:nth-child(7) {
  width: 116px;
  text-align: center;
}

.faults-page .faults-table th:nth-child(8),
.faults-page .faults-table td:nth-child(8) {
  width: 72px;
  text-align: center;
}

.faults-page .faults-table th:nth-child(9),
.faults-page .faults-table td:nth-child(9) {
  width: 90px;
}

.faults-page .fault-fix-type-cell {
  text-align: center;
}

.faults-page .fault-fix-type-select {
  height: 30px;
  min-width: 92px;
  border: 1px solid #DDE8E6;
  border-radius: 999px;
  background: #FFFFFF;
  color: #073F4D;
  font-size: 11px;
  font-weight: 700;
  padding: 0 10px;
  outline: none;
  cursor: pointer;
  transition: border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}

.faults-page .fault-fix-type-select:hover,
.faults-page .fault-fix-type-select:focus {
  border-color: rgba(6, 207, 165, 0.55);
  background: rgba(6, 207, 165, 0.06);
  box-shadow: 0 0 0 3px rgba(6, 207, 165, 0.08);
}

.ops-dashboard .ops-fault-leaderboard {
  margin-top: 10px;
  margin-bottom: 18px;
}

.ops-dashboard .ops-fault-leaderboard + .ops-grid {
  margin-top: 18px;
}

.ops-dashboard .ops-fault-leaderboard > header b {
  background: rgba(6, 207, 165, 0.12);
  color: #073F4D;
  border: 1px solid rgba(6, 207, 165, 0.22);
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 11px;
  font-weight: 800;
}

.ops-dashboard .ops-leaderboard-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 10px 12px 12px;
}

.ops-dashboard .ops-leaderboard-row {
  display: grid;
  grid-template-columns: 42px 28px minmax(0, 1fr) 54px;
  align-items: center;
  column-gap: 10px;
  min-height: 56px;
  padding: 8px 10px;
  border: 1px solid #DDE8E6;
  border-radius: 9px;
  background: linear-gradient(135deg, #FFFFFF 0%, rgba(23, 140, 175, 0.045) 100%);
  box-shadow: 0 6px 14px rgba(7, 63, 77, 0.03);
}

/* Keep the dashboard competitive and focused: podium positions only. */
.ops-dashboard .ops-fault-leaderboard .ops-leaderboard-row:nth-child(n + 4) {
  display: none;
}

.ops-dashboard .ops-leaderboard-rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  background: #073F4D;
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0;
}

.ops-dashboard .ops-leaderboard-row--rank-1 .ops-leaderboard-rank {
  background: transparent url("/images/gold.png") center / contain no-repeat;
  color: transparent;
  overflow: hidden;
  text-indent: -999px;
}

.ops-dashboard .ops-leaderboard-row--rank-2 .ops-leaderboard-rank {
  background: transparent url("/images/silver.png") center / contain no-repeat;
  color: transparent;
  overflow: hidden;
  text-indent: -999px;
}

.ops-dashboard .ops-leaderboard-row--rank-3 .ops-leaderboard-rank {
  background: transparent url("/images/bronze.png") center / contain no-repeat;
  color: transparent;
  overflow: hidden;
  text-indent: -999px;
}

.ops-dashboard .ops-leaderboard-row--rank-4 .ops-leaderboard-rank {
  background: transparent url("/images/leaderboard-fourth-medal.png") center / contain no-repeat;
  color: transparent;
  overflow: hidden;
  text-indent: -999px;
}

@keyframes conaireActiveFaultAlarm {
  0%, 100% {
    color: #EF426F;
    filter: drop-shadow(0 0 0 rgba(239, 66, 111, 0));
    transform: scale(1);
  }
  50% {
    color: #D71950;
    filter: drop-shadow(0 0 8px rgba(239, 66, 111, 0.42));
    transform: scale(1.08);
  }
}

.conaire-active-fault-alarm > i,
.conaire-active-fault-alarm svg:first-of-type {
  color: #EF426F !important;
  animation: conaireActiveFaultAlarm 1s ease-in-out infinite;
}

.faults-page .fault-summary-strip > button.conaire-active-fault-alarm > i {
  background: rgba(239, 66, 111, 0.12) !important;
  border-color: rgba(239, 66, 111, 0.28) !important;
}

.sales-order-nav-icon {
  position: relative;
  display: inline-block;
  width: 18px;
  height: 18px;
  border: 1.7px solid currentColor;
  border-radius: 5px;
  background: rgba(6, 207, 165, 0.12);
  color: currentColor;
  flex: 0 0 auto;
}

.sales-order-nav-icon::before,
.sales-order-nav-icon::after {
  content: "";
  position: absolute;
  left: 4px;
  right: 4px;
  height: 1.7px;
  border-radius: 999px;
  background: currentColor;
}

.sales-order-nav-icon::before {
  top: 5px;
  box-shadow: 0 4px 0 currentColor;
}

.sales-order-nav-icon::after {
  bottom: 3.5px;
  right: 7px;
}

body.sales-order-route .content-area > :not(#sales-order-extension-page) {
  display: none !important;
}

body.sales-job-forms-route .content-area > :not(#sales-job-forms-page) {
  display: none !important;
}

.sales-order-page,
.sales-job-forms-page {
  min-height: 100%;
  color: #073F4D;
}

.sales-order-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
}

.sales-order-header h1 {
  margin: 4px 0 4px;
  color: #073F4D;
  font-size: 32px;
  line-height: 1.05;
  font-weight: 750;
  letter-spacing: 0;
}

.sales-order-header p {
  margin: 0;
  color: #46666E;
  font-size: 14px;
}

.sales-order-header-actions {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}

.sales-order-clear-form {
  min-height: 32px;
  padding: 0 12px;
  font-size: 11px;
  font-weight: 800;
}

.sales-order-status {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid rgba(6, 207, 165, 0.28);
  border-radius: 999px;
  background: rgba(6, 207, 165, 0.1);
  color: #073F4D;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.sales-order-shell {
  display: grid;
  gap: 16px;
}

.sales-order-section {
  overflow: hidden;
  border: 1px solid #DDE8E6;
  border-radius: 12px;
  background: #FFFFFF;
  box-shadow: 0 8px 22px rgba(7, 63, 77, 0.035);
}

.sales-order-section > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 18px;
  border-bottom: 1px solid #DDE8E6;
  background: linear-gradient(135deg, rgba(6, 207, 165, 0.08), rgba(23, 140, 175, 0.045));
}

.sales-order-section h2 {
  margin: 0;
  color: #073F4D;
  font-size: 17px;
  font-weight: 720;
}

.sales-order-section header p {
  margin: 3px 0 0;
  color: #5F7880;
  font-size: 12px;
}

.sales-order-section--customer {
  background: linear-gradient(180deg, #FFFFFF, #FBFEFD);
}

.sales-order-mode-switch {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px;
  border: 1px solid #DDE8E6;
  border-radius: 999px;
  background: #FFFFFF;
}

.sales-order-mode-switch button {
  min-height: 30px;
  padding: 0 13px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #48676F;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.sales-order-mode-switch button.is-active {
  background: #06CFA5;
  color: #FFFFFF;
  box-shadow: 0 8px 18px rgba(6, 207, 165, 0.18);
}

.sales-order-google-panel {
  display: grid;
  gap: 10px;
  margin: 18px 18px 0;
  padding: 14px;
  border: 1px solid rgba(23, 140, 175, 0.18);
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(23, 140, 175, 0.075), rgba(6, 207, 165, 0.055));
}

.sales-order-google-search {
  display: grid;
  gap: 7px;
}

.sales-order-google-search span,
.sales-order-google-help {
  color: #0E4B56;
  font-size: 12px;
  font-weight: 750;
}

.sales-order-google-search input {
  width: 100%;
  min-height: 42px;
  border: 1px solid #CFE0DD;
  border-radius: 9px;
  background: #FFFFFF;
  color: #073F4D;
  font: inherit;
  font-size: 13px;
  padding: 0 12px;
  outline: none;
}

.sales-order-google-search input:focus {
  border-color: #06CFA5;
  box-shadow: 0 0 0 3px rgba(6, 207, 165, 0.12);
}

.sales-order-google-results {
  overflow: hidden;
  border: 1px solid #DDE8E6;
  border-radius: 10px;
  background: #FFFFFF;
  box-shadow: 0 12px 28px rgba(7, 63, 77, 0.08);
}

.sales-order-google-results button,
.sales-order-google-empty {
  width: 100%;
  min-height: 54px;
  padding: 10px 12px;
  border: 0;
  border-bottom: 1px solid #EDF4F2;
  background: #FFFFFF;
  color: #073F4D;
  text-align: left;
}

.sales-order-google-results button {
  cursor: pointer;
}

.sales-order-google-results button:hover {
  background: rgba(6, 207, 165, 0.06);
}

.sales-order-google-results button strong,
.sales-order-google-results button span {
  display: block;
}

.sales-order-google-results button strong {
  font-size: 13px;
  font-weight: 700;
}

.sales-order-google-results button span,
.sales-order-google-empty {
  color: #5F7880;
  font-size: 12px;
}

.sales-order-google-help {
  margin: 0;
  color: #496A72;
  font-weight: 600;
}

.sales-order-form-paper {
  margin: 18px;
  overflow: hidden;
  border: 1px solid #DDE8E6;
  border-radius: 12px;
  background: #FFFFFF;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.sales-order-form-band {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid #DDE8E6;
  background: #073F4D;
  color: #FFFFFF;
}

.sales-order-form-band--contact {
  border-top: 1px solid #DDE8E6;
  background: linear-gradient(90deg, #073F4D, #0A5967);
}

.sales-order-form-band span {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 9px;
  border-radius: 999px;
  background: rgba(6, 207, 165, 0.18);
  color: #BFF9EB;
  font-size: 10px;
  font-weight: 850;
  text-transform: uppercase;
}

.sales-order-form-band strong {
  font-size: 13px;
  font-weight: 750;
}

.sales-order-grid,
.sales-order-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 16px;
  padding: 18px;
}

.sales-order-grid--paper {
  gap: 13px 15px;
  padding: 16px;
  background:
    linear-gradient(#FFFFFF, #FFFFFF) padding-box,
    repeating-linear-gradient(180deg, rgba(221, 232, 230, 0.18) 0, rgba(221, 232, 230, 0.18) 1px, transparent 1px, transparent 47px) border-box;
}

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

.sales-order-field--wide {
  grid-column: 1 / -1;
}

.sales-order-field > span,
.sales-order-options legend,
.sales-order-signature-label {
  color: #0E4B56;
  font-size: 12px;
  font-weight: 750;
}

.sales-order-field input,
.sales-order-field select {
  width: 100%;
  min-height: 40px;
  border: 1px solid #CFE0DD;
  border-radius: 8px;
  background: #FFFFFF;
  color: #073F4D;
  font: inherit;
  font-size: 13px;
  padding: 0 12px;
  outline: none;
  transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}

.sales-order-field input:focus,
.sales-order-field select:focus {
  border-color: #06CFA5;
  background: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(6, 207, 165, 0.12);
}

.sales-order-pricing-wrap,
.sales-order-feature-wrap {
  padding: 18px;
  overflow-x: auto;
}

.sales-order-pricing,
.sales-order-feature-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border: 1px solid #DDE8E6;
  border-radius: 10px;
  font-size: 12px;
}

.sales-order-pricing {
  table-layout: fixed;
  border-color: #CFE0DD;
  box-shadow: 0 8px 20px rgba(7, 63, 77, 0.045);
}

.sales-order-pricing th,
.sales-order-feature-table th {
  background: #073F4D;
  color: #FFFFFF;
  text-align: left;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 0;
}

.sales-order-pricing th,
.sales-order-pricing td,
.sales-order-feature-table th,
.sales-order-feature-table td {
  padding: 9px 10px;
  border-bottom: 1px solid #E5EFED;
  vertical-align: middle;
}

.sales-order-pricing th,
.sales-order-pricing td {
  border-right: 1px solid #DDE8E6;
}

.sales-order-pricing th:last-child,
.sales-order-pricing td:last-child {
  border-right: 0;
}

.sales-order-pricing th {
  height: 38px;
  padding: 0 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  border-right-color: rgba(255, 255, 255, 0.22);
  font-size: 11px;
  line-height: 1;
}

.sales-order-pricing th:first-child {
  width: 44px;
  text-align: center;
}

.sales-order-pricing th:nth-child(2) {
  width: 34%;
}

.sales-order-pricing th:nth-child(3) {
  width: 18%;
}

.sales-order-pricing th:nth-child(4),
.sales-order-pricing th:nth-child(5) {
  width: 22%;
}

.sales-order-pricing tbody tr {
  background: #FFFFFF;
}

.sales-order-pricing tbody tr:nth-child(even):not(.sales-order-total-row) {
  background: #F8FBFA;
}

.sales-order-pricing tbody tr:hover:not(.sales-order-total-row) td {
  background: rgba(6, 207, 165, 0.035);
}

.sales-order-pricing td {
  height: 46px;
  padding: 7px 14px;
  color: #073F4D;
  font-weight: 600;
  transition: background 150ms ease;
}

.sales-order-pricing td:first-child {
  width: 42px;
  background: #007A55;
  color: #FFFFFF;
  text-align: center;
  font-weight: 800;
}

.sales-order-pricing tbody tr:nth-child(even):not(.sales-order-total-row) td:first-child,
.sales-order-pricing tbody tr:hover:not(.sales-order-total-row) td:first-child {
  background: #007A55;
}

.sales-order-pricing input {
  width: 100%;
  min-height: 34px;
  border: 1px solid #CFE0DD;
  border-radius: 6px;
  background: #FFFFFF;
  color: #073F4D;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  padding: 0 9px;
  outline: none;
  transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}

.sales-order-pricing input[type="number"] {
  font-variant-numeric: tabular-nums;
}

.sales-order-pricing input:focus {
  border-color: #06CFA5;
  background: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(6, 207, 165, 0.12);
}

.sales-order-total-row td {
  border-top: 2px solid rgba(6, 207, 165, 0.28);
  background: rgba(6, 207, 165, 0.08);
  color: #073F4D;
  font-weight: 800;
}

.sales-order-total-row td:first-child {
  background: #073F4D;
}

.sales-order-total-row td:last-child {
  font-variant-numeric: tabular-nums;
}

.sales-order-options {
  align-items: end;
  padding-top: 0;
}

.sales-order-options fieldset {
  display: grid;
  grid-template-columns: repeat(4, auto);
  align-content: center;
  gap: 10px 14px;
  min-height: 74px;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid #DDE8E6;
  border-radius: 10px;
  background: rgba(6, 207, 165, 0.035);
}

.sales-order-options label,
.sales-order-consent {
  color: #073F4D;
  font-size: 13px;
}

.sales-order-options input[type="checkbox"],
.sales-order-consent input {
  width: 18px;
  height: 18px;
  accent-color: #06CFA5;
}

.sales-order-feature-table th:not(:first-child),
.sales-order-feature-table td {
  text-align: center;
}

.sales-order-feature-table tbody th {
  background: #FFFFFF;
  color: #073F4D;
  text-transform: none;
  font-size: 12px;
  font-weight: 650;
}

.sales-order-feature-table tbody tr:nth-child(even) td,
.sales-order-feature-table tbody tr:nth-child(even) th {
  background: #F6F9F8;
}

.sales-order-feature-yes,
.sales-order-feature-note {
  color: #008D57;
  font-weight: 800;
}

.sales-order-feature-no {
  color: #8AA0A5;
  font-weight: 800;
}

.sales-order-cover-row th,
.sales-order-cover-row td {
  background: rgba(6, 207, 165, 0.12) !important;
  color: #073F4D;
  font-weight: 750;
}

.sales-order-maintenance-note {
  max-width: 980px;
  margin: 0 auto 18px;
  padding: 0 18px;
  color: #007A55;
  font-size: 13px;
  line-height: 1.8;
  text-align: center;
}

.sales-order-terms-actions {
  padding: 14px 18px 0;
}

.sales-order-terms-actions a {
  color: #178CAF;
  font-size: 12px;
  font-weight: 750;
}

.sales-order-terms-frame {
  display: block;
  width: calc(100% - 36px);
  height: 520px;
  margin: 12px 18px 16px;
  border: 1px solid #DDE8E6;
  border-radius: 10px;
  background: #F6F9F8;
}

.sales-order-consent {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 18px 18px;
  padding: 14px;
  border: 1px solid rgba(6, 207, 165, 0.22);
  border-radius: 10px;
  background: rgba(6, 207, 165, 0.045);
}

.sales-order-signature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  padding: 18px;
}

.sales-order-signature-grid > div {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.sales-order-signature-pad {
  width: 100%;
  height: 180px;
  border: 1px solid #C9DADC;
  border-radius: 10px;
  background: linear-gradient(#FFFFFF 0 75%, #EEF5F3 75% 76%, #FFFFFF 76%);
  touch-action: none;
}

.sales-order-signature-disabled {
  opacity: 0.55;
}

.sales-order-clear-signature {
  justify-self: end;
  border: 0;
  background: transparent;
  color: #178CAF;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.sales-order-date-card {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin: 0 18px 18px;
  padding: 16px;
  border: 1px solid #DDE8E6;
  border-radius: 10px;
  background: #FBFEFD;
}

.sales-order-date-card strong {
  color: #007A55;
}

.sales-order-date-card span {
  padding: 10px 14px;
  border: 1px solid #DDE8E6;
  border-radius: 8px;
  background: #FFFFFF;
  font-weight: 700;
}

.sales-order-footer {
  display: flex;
  justify-content: center;
  gap: 12px;
  padding: 18px;
  border-top: 1px solid #DDE8E6;
  background: #FFFFFF;
}

.sales-order-message {
  margin: 0 18px 18px;
  font-size: 13px;
  font-weight: 650;
}

.sales-order-message--success {
  color: #007A55;
}

.sales-order-message--error {
  color: #B4234C;
}

/* Sales order palette: forest green, sage and emerald. */
body.sales-order-route #sales-order-extension-page {
  --sales-forest-950: #0B372B;
  --sales-forest-900: #123F32;
  --sales-forest-800: #19523F;
  --sales-forest-700: #21664D;
  --sales-emerald-600: #07885C;
  --sales-emerald-500: #0AA06C;
  --sales-emerald-100: #DDF3E9;
  --sales-sage-50: #F5F9F7;
  --sales-sage-100: #EAF3EF;
  --sales-sage-200: #D5E7DF;
  --sales-sage-300: #BCD8CC;
  --sales-ink: #153B30;
  color: var(--sales-ink);
}

body.sales-order-route #sales-order-extension-page .sales-order-header h1 {
  color: var(--sales-forest-950);
}

body.sales-order-route #sales-order-extension-page .sales-order-header p {
  color: #507066;
}

body.sales-order-route #sales-order-extension-page .sales-order-status {
  border-color: rgba(10, 160, 108, 0.3);
  background: var(--sales-emerald-100);
  color: var(--sales-forest-900);
}

body.sales-order-route #sales-order-extension-page .sales-order-section {
  border-color: var(--sales-sage-300);
  background: #FFFFFF;
  box-shadow: 0 10px 26px rgba(18, 63, 50, 0.07);
}

body.sales-order-route #sales-order-extension-page .sales-order-section > header {
  border-bottom-color: rgba(255, 255, 255, 0.14);
  background: linear-gradient(110deg, var(--sales-forest-800), var(--sales-forest-700));
}

body.sales-order-route #sales-order-extension-page .sales-order-section > header h2 {
  color: #FFFFFF;
}

body.sales-order-route #sales-order-extension-page .sales-order-section > header p {
  color: #D9EAE3;
}

body.sales-order-route #sales-order-extension-page .sales-order-section--customer {
  background: linear-gradient(180deg, var(--sales-sage-50), #FFFFFF 58%);
}

body.sales-order-route #sales-order-extension-page .sales-order-mode-switch {
  border-color: rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.12);
}

body.sales-order-route #sales-order-extension-page .sales-order-mode-switch button {
  color: #E5F2ED;
}

body.sales-order-route #sales-order-extension-page .sales-order-mode-switch button.is-active {
  background: var(--sales-emerald-500);
  color: #FFFFFF;
  box-shadow: 0 7px 16px rgba(0, 48, 32, 0.24);
}

body.sales-order-route #sales-order-extension-page .sales-order-google-panel {
  border-color: var(--sales-sage-300);
  background: linear-gradient(135deg, var(--sales-sage-100), #F8FBF9);
}

body.sales-order-route #sales-order-extension-page .sales-order-form-paper {
  border-color: var(--sales-sage-300);
  background: var(--sales-sage-50);
  box-shadow: 0 8px 20px rgba(18, 63, 50, 0.055);
}

body.sales-order-route #sales-order-extension-page .sales-order-form-band,
body.sales-order-route #sales-order-extension-page .sales-order-form-band--contact {
  border-color: rgba(255, 255, 255, 0.12);
  background: linear-gradient(90deg, var(--sales-forest-900), var(--sales-forest-700));
}

body.sales-order-route #sales-order-extension-page .sales-order-form-band span {
  background: rgba(36, 202, 139, 0.18);
  color: #D8F8EA;
}

body.sales-order-route #sales-order-extension-page .sales-order-grid--paper {
  background: var(--sales-sage-50);
}

body.sales-order-route #sales-order-extension-page .sales-order-field > span,
body.sales-order-route #sales-order-extension-page .sales-order-options legend,
body.sales-order-route #sales-order-extension-page .sales-order-signature-label {
  color: var(--sales-forest-900);
}

body.sales-order-route #sales-order-extension-page .sales-order-field input,
body.sales-order-route #sales-order-extension-page .sales-order-field select,
body.sales-order-route #sales-order-extension-page .sales-order-google-search input,
body.sales-order-route #sales-order-extension-page .sales-order-pricing input {
  border-color: var(--sales-sage-300);
  background: #FFFFFF;
  color: var(--sales-ink);
}

body.sales-order-route #sales-order-extension-page .sales-order-field input:focus,
body.sales-order-route #sales-order-extension-page .sales-order-field select:focus,
body.sales-order-route #sales-order-extension-page .sales-order-google-search input:focus,
body.sales-order-route #sales-order-extension-page .sales-order-pricing input:focus {
  border-color: var(--sales-emerald-500);
  box-shadow: 0 0 0 3px rgba(10, 160, 108, 0.15);
}

body.sales-order-route #sales-order-extension-page .sales-order-pricing,
body.sales-order-route #sales-order-extension-page .sales-order-feature-table {
  border-color: var(--sales-sage-300);
  box-shadow: 0 8px 20px rgba(18, 63, 50, 0.06);
}

body.sales-order-route #sales-order-extension-page .sales-order-pricing th,
body.sales-order-route #sales-order-extension-page .sales-order-feature-table thead th {
  background: var(--sales-forest-700);
  color: #FFFFFF;
}

body.sales-order-route #sales-order-extension-page .sales-order-pricing tbody tr:nth-child(even):not(.sales-order-total-row),
body.sales-order-route #sales-order-extension-page .sales-order-feature-table tbody tr:nth-child(even) td,
body.sales-order-route #sales-order-extension-page .sales-order-feature-table tbody tr:nth-child(even) th {
  background: var(--sales-sage-50);
}

body.sales-order-route #sales-order-extension-page .sales-order-pricing tbody tr:hover:not(.sales-order-total-row) td {
  background: var(--sales-emerald-100);
}

body.sales-order-route #sales-order-extension-page .sales-order-pricing td:first-child,
body.sales-order-route #sales-order-extension-page .sales-order-pricing tbody tr:nth-child(even):not(.sales-order-total-row) td:first-child,
body.sales-order-route #sales-order-extension-page .sales-order-pricing tbody tr:hover:not(.sales-order-total-row) td:first-child {
  background: var(--sales-emerald-600);
  color: #FFFFFF;
}

body.sales-order-route #sales-order-extension-page .sales-order-total-row td {
  border-top-color: var(--sales-emerald-500);
  background: var(--sales-emerald-100);
  color: var(--sales-forest-950);
}

body.sales-order-route #sales-order-extension-page .sales-order-total-row td:first-child {
  background: var(--sales-forest-900);
}

body.sales-order-route #sales-order-extension-page .sales-order-options fieldset,
body.sales-order-route #sales-order-extension-page .sales-order-consent,
body.sales-order-route #sales-order-extension-page .sales-order-date-card {
  border-color: var(--sales-sage-300);
  background: var(--sales-sage-100);
}

body.sales-order-route #sales-order-extension-page .sales-order-signature-pad {
  border-color: var(--sales-sage-300);
  background: linear-gradient(#FFFFFF 0 75%, var(--sales-sage-200) 75% 76%, #FFFFFF 76%);
}

body.sales-order-route #sales-order-extension-page .sales-order-footer {
  border-top-color: var(--sales-sage-300);
  background: var(--sales-sage-100);
}

body.sales-order-route #sales-order-extension-page .button-primary {
  border-color: var(--sales-emerald-600);
  background: var(--sales-emerald-600);
  color: #FFFFFF;
  box-shadow: 0 8px 18px rgba(7, 136, 92, 0.2);
}

body.sales-order-route #sales-order-extension-page .button-primary:hover {
  border-color: var(--sales-forest-700);
  background: var(--sales-forest-700);
}

body.sales-order-route #sales-order-extension-page .button-secondary,
body.sales-order-route #sales-order-extension-page .sales-order-clear-form {
  border-color: var(--sales-sage-300);
  background: #FFFFFF;
  color: var(--sales-forest-800);
}

.sales-job-forms-actions {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.sales-job-forms-shell {
  overflow: hidden;
  border: 1px solid #DDE8E6;
  border-radius: 12px;
  background: #FFFFFF;
  box-shadow: 0 8px 22px rgba(7, 63, 77, 0.035);
}

.sales-job-forms-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 18px;
  border-bottom: 1px solid #DDE8E6;
  background: linear-gradient(135deg, rgba(6, 207, 165, 0.08), rgba(23, 140, 175, 0.045));
}

.sales-job-forms-toolbar h2 {
  margin: 0;
  color: #073F4D;
  font-size: 17px;
  font-weight: 720;
}

.sales-job-forms-toolbar p {
  margin: 3px 0 0;
  color: #5F7880;
  font-size: 12px;
}

.sales-job-forms-list {
  overflow-x: auto;
}

.sales-job-forms-table {
  width: 100%;
  min-width: 980px;
  border-collapse: separate;
  border-spacing: 0;
  color: #073F4D;
  font-size: 12px;
}

.sales-job-forms-table th {
  padding: 11px 14px;
  background: #073F4D;
  color: #FFFFFF;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
  text-align: left;
  text-transform: uppercase;
}

.sales-job-forms-table td {
  padding: 13px 14px;
  border-bottom: 1px solid #E5EFED;
  vertical-align: middle;
}

.sales-job-forms-table tbody tr {
  transition: background-color 150ms ease;
}

.sales-job-forms-table tbody tr:hover {
  background: rgba(6, 207, 165, 0.035);
}

.sales-job-forms-table td strong,
.sales-job-forms-table td span {
  display: block;
}

.sales-job-forms-table td strong {
  color: #073F4D;
  font-weight: 700;
}

.sales-job-forms-table td span {
  margin-top: 2px;
  color: #5F7880;
  font-size: 11px;
  font-weight: 500;
}

.sales-job-forms-table td:last-child {
  text-align: right;
}

.sales-job-forms-status {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 68px;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  border: 1px solid #DDE8E6;
  background: #F6F9F8;
  color: #46666E !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  line-height: 1;
  text-transform: uppercase;
}

.sales-job-forms-status.is-sent {
  border-color: rgba(23, 140, 175, 0.22);
  background: rgba(23, 140, 175, 0.1);
  color: #116F8C !important;
}

.sales-job-forms-status.is-signed {
  border-color: rgba(6, 207, 165, 0.24);
  background: rgba(6, 207, 165, 0.12);
  color: #007A55 !important;
}

.sales-job-forms-view {
  min-height: 30px;
  padding: 0 12px;
  font-size: 11px;
}

.sales-job-forms-empty {
  margin: 18px;
  padding: 22px;
  border: 1px dashed #CFE0DD;
  border-radius: 10px;
  background: rgba(246, 249, 248, 0.65);
  color: #5F7880;
  font-size: 13px;
  text-align: center;
}

.sales-job-forms-empty--error {
  border-color: rgba(239, 66, 111, 0.28);
  background: rgba(239, 66, 111, 0.08);
  color: #B4234C;
}

.sales-job-forms-detail {
  margin: 18px;
  overflow: hidden;
  border: 1px solid #DDE8E6;
  border-radius: 12px;
  background: #FFFFFF;
  box-shadow: 0 8px 22px rgba(7, 63, 77, 0.035);
}

.sales-job-forms-detail > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border-bottom: 1px solid #DDE8E6;
  background: #073F4D;
  color: #FFFFFF;
}

.sales-job-forms-detail > header .eyebrow {
  color: #BFF9EB;
}

.sales-job-forms-detail h2,
.sales-job-forms-detail h3,
.sales-job-forms-detail p {
  margin: 0;
}

.sales-job-forms-detail h2 {
  margin-top: 3px;
  color: #FFFFFF;
  font-size: 18px;
  font-weight: 750;
}

.sales-job-forms-detail > header p {
  margin-top: 3px;
  color: rgba(255, 255, 255, 0.75);
  font-size: 12px;
}

.sales-job-forms-detail-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap: 14px;
  padding: 16px;
}

.sales-job-forms-detail section,
.sales-job-forms-lines {
  min-width: 0;
  padding: 14px;
  border: 1px solid #DDE8E6;
  border-radius: 10px;
  background: #FBFEFD;
}

.sales-job-forms-detail h3,
.sales-job-forms-lines h3 {
  margin: 0 0 10px;
  color: #073F4D;
  font-size: 13px;
  font-weight: 800;
}

.sales-job-forms-detail dl {
  display: grid;
  grid-template-columns: minmax(88px, 0.42fr) minmax(0, 1fr);
  gap: 8px 12px;
  margin: 0;
}

.sales-job-forms-detail dt {
  color: #5F7880;
  font-size: 11px;
  font-weight: 750;
  text-transform: uppercase;
}

.sales-job-forms-detail dd {
  min-width: 0;
  margin: 0;
  color: #073F4D;
  font-size: 12px;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.sales-job-forms-lines {
  margin: 0 16px 16px;
}

.sales-job-forms-lines table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.sales-job-forms-lines th {
  padding: 8px;
  color: #5F7880;
  font-size: 10px;
  font-weight: 800;
  text-align: left;
  text-transform: uppercase;
}

.sales-job-forms-lines td {
  padding: 8px;
  border-top: 1px solid #E5EFED;
  color: #073F4D;
}

@media (max-width: 1100px) {
  .sales-order-section > header {
    align-items: stretch;
    flex-direction: column;
  }

  .sales-order-mode-switch {
    align-self: flex-start;
  }

  .sales-order-grid,
  .sales-order-options,
  .sales-order-signature-grid {
    grid-template-columns: 1fr;
  }

  .sales-order-options fieldset {
    grid-template-columns: repeat(2, auto);
  }

  .sales-job-forms-detail-grid {
    grid-template-columns: 1fr;
  }
}

.ops-dashboard .ops-leaderboard-person {
  min-width: 0;
}

.ops-dashboard .ops-leaderboard-person strong {
  display: block;
  color: #073F4D;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.15;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ops-dashboard .ops-leaderboard-person small {
  display: block;
  margin-top: 2px;
  color: #5F7880;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.2;
}

.ops-dashboard .ops-leaderboard-score {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  min-width: 54px;
  color: #073F4D;
  font-size: 22px;
  font-weight: 800;
  line-height: 0.95;
  font-variant-numeric: tabular-nums;
}

.ops-dashboard .ops-leaderboard-score span {
  margin-top: 3px;
  color: #5F7880;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

@media (max-width: 900px) {
  .ops-dashboard .ops-leaderboard-list {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .ops-dashboard .ops-leaderboard-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.user-modal {
  width: min(920px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
}

.user-modal .modal-body {
  overflow-y: auto;
}

.section-access-selector {
  border: 1px solid #cfdde0;
  background: #f7fbfa;
  border-radius: 8px;
  padding: 0;
  overflow: hidden;
}

.section-access-selector > legend {
  width: 100%;
  color: #073f4c;
  background: #e8f6f3;
  border-bottom: 1px solid #cfdde0;
  padding: 12px 14px;
  font-size: 12px;
  font-weight: 800;
}

.section-access-intro {
  color: #5d7278;
  margin: 0;
  padding: 12px 14px 4px;
  font-size: 11px;
}

.section-access-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 12px 14px 15px;
}

.section-access-group {
  border: 1px solid #d8e4e5;
  background: #fff;
  border-radius: 7px;
  padding: 10px;
}

.section-access-group h4 {
  color: #0b6f5e;
  margin: 0 0 7px;
  font-size: 10px;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0;
}

.section-access-options {
  display: grid;
  gap: 5px;
}

.section-access-option {
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 9px;
  color: #123f49;
  border: 1px solid transparent;
  border-radius: 6px;
  padding: 6px 8px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.section-access-option:hover {
  border-color: #c6ded9;
  background: #f2faf7;
}

.section-access-option input {
  width: 16px;
  height: 16px;
  accent-color: #07856f;
  flex: none;
}

.section-access-option:has(input:checked) {
  border-color: #aed9cf;
  background: #eaf8f4;
}

.section-access-option:has(input:disabled) {
  cursor: not-allowed;
  opacity: .72;
}

@media (max-width: 720px) {
  .section-access-groups {
    grid-template-columns: 1fr;
  }
}

/* The global portal search is retired; keep the brand visible in the fixed header. */
.topbar .global-search {
  display: none !important;
}

.conaire-topbar-brand {
  display: flex;
  min-width: 0;
  height: 54px;
  flex: 0 1 410px;
  align-items: center;
  gap: 11px;
  color: #143d2d;
}

.conaire-shepherd-mark {
  position: relative;
  width: 44px;
  height: 54px;
  flex: 0 0 44px;
  overflow: hidden;
}

.conaire-shepherd-mark img {
  position: absolute;
  top: 5px;
  left: 50%;
  width: 44px;
  max-width: none;
  height: 44px;
  object-fit: contain;
  transform: translateX(-50%);
}

.conaire-shepherd-name {
  display: grid;
  flex: 0 1 auto;
  gap: 2px;
  min-width: 0;
  line-height: 1;
}

.conaire-shepherd-name strong {
  color: #07513b;
  background-image: linear-gradient(105deg,
    #07513b 0%,
    #07513b 40%,
    #82dc57 47%,
    #d9ffb7 50%,
    #91e660 53%,
    #07513b 60%,
    #07513b 100%);
  background-position: 100% 50%;
  background-size: 300% 100%;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: .095em;
  font-size: 18px;
  font-weight: 850;
  animation: conaire-shepherd-wordmark-glow 4.6s ease-in-out infinite;
}

@keyframes conaire-shepherd-wordmark-glow {
  0%, 18% { background-position: 100% 50%; }
  68%, 100% { background-position: 0% 50%; }
}

.conaire-shepherd-name small {
  color: #61776c;
  white-space: nowrap;
  letter-spacing: .015em;
  font-size: 9px;
  font-weight: 680;
}

.conaire-shepherd-name i {
  padding: 0 3px;
  color: #12a675;
  font-style: normal;
}

.conaire-brand-divider {
  width: 1px;
  height: 31px;
  flex: 0 0 1px;
  background: #d3dfd8;
}

.conaire-standard-utilities-mark {
  width: 105px;
  height: 48px;
  flex: 0 0 105px;
  background-image: url("/standard-utilities-login-logo.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 99px auto;
}

.sidebar .sidebar-brand {
  display: none !important;
}

.sidebar {
  overflow: hidden;
}

.sidebar > nav {
  min-height: 0;
  flex: 1 1 auto;
  align-content: start;
  padding-top: 24px;
  padding-bottom: 18px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: rgba(174, 218, 194, .35) transparent;
  scrollbar-width: thin;
}

.sidebar > nav::-webkit-scrollbar {
  width: 6px;
}

.sidebar > nav::-webkit-scrollbar-track {
  background: transparent;
}

.sidebar > nav::-webkit-scrollbar-thumb {
  background: rgba(174, 218, 194, .28);
  border-radius: 999px;
}

.sidebar > nav::-webkit-scrollbar-thumb:hover {
  background: rgba(174, 218, 194, .48);
}

.sidebar > .sidebar-spacer {
  display: none;
}

.sidebar > .sidebar-user {
  flex: 0 0 auto;
  background: rgba(5, 31, 21, .36);
  box-shadow: 0 -8px 18px rgba(4, 28, 18, .16);
}

@media (max-width: 1120px) {
  .conaire-topbar-brand {
    flex-basis: 324px;
    gap: 8px;
  }

  .conaire-shepherd-name strong {
    font-size: 16px;
  }

  .conaire-shepherd-name small {
    font-size: 8px;
  }

  .conaire-standard-utilities-mark {
    width: 83px;
    flex-basis: 83px;
    background-size: 80px auto;
  }
}

@media (max-width: 760px) {
  .conaire-topbar-brand {
    height: 48px;
    flex: 0 1 236px;
    gap: 6px;
  }

  .conaire-shepherd-mark {
    width: 34px;
    height: 46px;
    flex-basis: 34px;
  }

  .conaire-shepherd-mark img {
    top: 6px;
    width: 34px;
    height: 34px;
  }

  .conaire-shepherd-name strong {
    font-size: 14px;
  }

  .conaire-shepherd-name small {
    display: none;
  }

  .conaire-brand-divider {
    height: 25px;
  }

  .conaire-standard-utilities-mark {
    width: 70px;
    height: 42px;
    flex-basis: 70px;
    background-size: 68px auto;
  }
}

@media (max-width: 520px) {
  .conaire-topbar-brand {
    flex-basis: 127px;
  }

  .conaire-brand-divider,
  .conaire-standard-utilities-mark {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .conaire-shepherd-name strong {
    background-image: none;
    -webkit-text-fill-color: #07513b;
    animation: none;
  }
}

/* Stable, fixed sidebar groups. Ordering is handled after the authenticated nav mounts. */
.sidebar nav > .nav-entry > .nav-label:not(.conaire-nav-heading) {
  display: none;
}

.sidebar nav > .conaire-static-nav-heading {
  min-height: 0;
  margin: 13px 10px 3px;
  pointer-events: none;
}

.sidebar nav > .conaire-static-nav-heading:first-child {
  margin-top: 3px;
}

.sidebar .conaire-nav-heading {
  display: block;
  color: rgba(181, 216, 198, 0.62);
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1.4;
  text-transform: uppercase;
}

.sidebar nav > .nav-entry:not(.conaire-static-nav-heading) + .conaire-static-nav-heading {
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.065);
}

.sidebar nav > .nav-entry:not(.conaire-static-nav-heading) .nav-item {
  min-height: 40px;
  border-radius: 8px;
}

.sidebar nav > .nav-entry:not(.conaire-static-nav-heading) .nav-item--active {
  color: #fff;
  background: linear-gradient(90deg, rgba(37, 145, 96, 0.42), rgba(25, 112, 75, 0.2));
  box-shadow: inset 3px 0 #8edc28;
}

.sidebar .nav-item > .conaire-nav-icon {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  opacity: 0.88;
  object-fit: contain;
  object-position: center;
  filter: saturate(0.84) brightness(0.98) drop-shadow(0 1px 2px rgba(0, 21, 14, 0.18));
  transition: opacity 150ms ease, filter 150ms ease, transform 150ms ease;
}

.sidebar .nav-item:hover > .conaire-nav-icon,
.sidebar .nav-item--active > .conaire-nav-icon {
  opacity: 1;
  filter: drop-shadow(0 3px 5px rgba(0, 25, 16, 0.3)) saturate(1.08);
  transform: scale(1.05);
}

@media (max-height: 760px) {
  .sidebar .nav-item > .conaire-nav-icon {
    width: 22px;
    height: 22px;
    flex-basis: 22px;
  }
}

/* Engineer Stock operational workspace. */
.stock-category-filter {
  display: inline-flex;
  min-width: 165px;
  height: 38px;
  align-items: center;
  gap: 7px;
  padding: 0 10px;
  border: 1px solid #cdded6;
  border-radius: 8px;
  color: #517266;
  background: #fff;
}

.stock-engineer-sort {
  display: inline-flex;
  min-width: 166px;
  height: 38px;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  border: 1px solid #cdded6;
  border-radius: 8px;
  color: #517266;
  background: #fff;
}

.stock-engineer-sort > span {
  color: #6b8177;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.stock-engineer-sort select {
  min-width: 0;
  border: 0;
  outline: 0;
  color: #123d32;
  background: transparent;
  font: inherit;
  font-weight: 650;
}

.stock-category-filter svg,
.stock-action-centre svg,
.stock-export-activity svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.stock-category-filter select {
  width: 100%;
  border: 0;
  outline: 0;
  color: #123d32;
  background: transparent;
  font: inherit;
  font-weight: 650;
}

.stock-action-centre {
  margin: 8px 0 10px;
  overflow: hidden;
  border: 1px solid #d5e2dc;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(12, 60, 44, 0.045);
}

.stock-action-centre > header {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 9px 14px;
  border-bottom: 1px solid #dce7e2;
  background: linear-gradient(90deg, #fbfdfc, #f4faf7);
}

.stock-action-title,
.stock-action-controls,
.stock-action-item,
.stock-meaning,
.stock-drilldown-actions {
  display: flex;
  align-items: center;
}

.stock-action-title { gap: 10px; }
.stock-action-title small { display: block; color: #8a6720; font-size: 8px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.stock-action-title h2 { margin: 1px 0 0; color: #003d4c; font-size: 14px; }
.stock-action-icon { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 9px; color: #b87400; background: #fff2d9; }

.stock-action-controls { gap: 7px; }
.stock-action-total { display: inline-flex; align-items: baseline; gap: 4px; padding: 5px 8px; border: 1px solid #efd4a0; border-radius: 7px; color: #916113; background: #fff9ec; font-size: 9px; font-weight: 750; }
.stock-action-total strong { color: #a36500; font-size: 13px; }
.stock-action-toggle { min-width: 48px; min-height: 28px; padding: 0 8px; border: 1px solid #cdded6; border-radius: 7px; color: #075f4b; background: #fff; font-size: 9px; font-weight: 800; cursor: pointer; }
.stock-action-toggle:hover { border-color: #79bda4; background: #eef9f4; }
.stock-action-centre.is-collapsed > header { border-bottom: 0; }
.stock-action-centre.is-collapsed .stock-action-list,
.stock-action-centre.is-collapsed > footer { display: none; }

.stock-action-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stock-action-item { min-width: 0; gap: 9px; padding: 10px 12px; border-right: 1px solid #e1e9e5; border-bottom: 1px solid #e1e9e5; }
.stock-action-item:nth-child(3n) { border-right: 0; }
.stock-action-status { display: grid; width: 29px; height: 29px; flex: none; place-items: center; border-radius: 8px; font-size: 12px; font-weight: 850; }
.stock-action-item--out .stock-action-status { color: #c8193d; background: #ffedf1; }
.stock-action-item--low .stock-action-status { color: #a86800; background: #fff2d7; }
.stock-action-item > div { min-width: 0; flex: 1; }
.stock-action-item > div strong,
.stock-action-item > div span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stock-action-item > div strong { color: #053f34; font-size: 10px; }
.stock-action-item > div span { margin-top: 2px; color: #688279; font-size: 9px; }
.stock-action-item > em { padding: 3px 6px; border-radius: 99px; font-size: 8px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.stock-action-item--out > em { color: #bd1738; background: #ffedf1; }
.stock-action-item--low > em { color: #9a6100; background: #fff2d7; }
.stock-action-item > button { min-height: 27px; padding: 0 7px; border: 1px solid #cfe0d8; border-radius: 6px; color: #075a47; background: #fff; font-size: 8px; font-weight: 780; cursor: pointer; }
.stock-action-item > button:hover { border-color: #7bc8ac; background: #f1fbf7; }
.stock-action-item > button[data-transfer-stock] { display: inline-flex; align-items: center; gap: 4px; color: #fff; border-color: #08785c; background: #08785c; }
.stock-action-item > button svg { width: 12px; height: 12px; }

.stock-action-centre > footer { display: flex; min-height: 38px; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 12px; background: #fbfdfc; }
.stock-meaning { flex-wrap: wrap; gap: 13px; color: #678078; font-size: 8.5px; }
.stock-meaning span { display: inline-flex; align-items: center; gap: 5px; }
.stock-meaning i { display: grid; width: 18px; height: 18px; place-items: center; border-radius: 5px; font-style: normal; font-weight: 850; }
.stock-meaning .is-dash { color: #738b82; background: #eff4f2; }
.stock-meaning .is-zero { color: #c8193d; background: #ffedf1; }
.stock-meaning .is-low { color: #a86800; background: #fff2d7; }
.stock-show-issues { border: 0; color: #00775a; background: none; font-size: 9px; font-weight: 800; cursor: pointer; }
.stock-action-empty { grid-column: 1 / -1; display: flex; min-height: 58px; align-items: center; justify-content: center; gap: 8px; color: #1b725d; }
.stock-action-empty strong { font-size: 10px; }
.stock-action-empty span { color: #6a837a; font-size: 9px; }

.stock-grid-wrap { max-height: min(58vh, 620px); overflow: auto; overscroll-behavior-inline: contain; scrollbar-gutter: stable; }
.stock-grid thead th { position: sticky; z-index: 3; top: 0; background: #f0f7f4; box-shadow: 0 1px #dce7e2; }
.stock-grid thead th:first-child { z-index: 5; left: 0; }
.stock-grid tbody th { position: sticky; z-index: 2; left: 0; background: #fff; box-shadow: 1px 0 #dce7e2; }
.stock-grid tbody tr:nth-child(even) th { background: #f8fbfa; }
.stock-grid tbody tr:hover td,
.stock-grid tbody tr:hover th { background-color: #f2faf6; }
.stock-grid th.is-stock-column-hovered,
.stock-grid td.is-stock-column-hovered { background-color: #e9f6f0 !important; box-shadow: inset 1px 0 rgba(9, 132, 91, .12), inset -1px 0 rgba(9, 132, 91, .12); }

.stock-grid .stock-product-icon {
  position: relative;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(12, 104, 76, .09);
  border-radius: 9px;
  background: linear-gradient(145deg, #effaf5, #d9f0e5);
  box-shadow: inset 0 1px rgba(255, 255, 255, .82), 0 3px 7px rgba(8, 73, 53, .08);
}

.stock-grid .stock-product-icon svg {
  width: 18px;
  height: 18px;
  stroke-width: 2.05;
  filter: drop-shadow(0 1px 1px rgba(8, 61, 46, .12));
}

.stock-grid .stock-product-icon--phones { background: linear-gradient(145deg, #eef5ff, #dceafa); }
.stock-grid .stock-product-icon--routers { background: linear-gradient(145deg, #fff8eb, #f3e5cc); }
.stock-grid .stock-product-icon--wi-fi { background: linear-gradient(145deg, #f7f1ff, #e9def7); }

.stock-engineer-cell { flex-wrap: wrap; }
.stock-readiness { margin-left: auto; padding: 3px 6px; border-radius: 99px; font-size: 7.5px; font-weight: 820; white-space: nowrap; }
.stock-readiness--ready { color: #087158; background: #e5f8f0; }
.stock-readiness--low { color: #956000; background: #fff2d7; }
.stock-readiness--missing { color: #bc1838; background: #ffedf1; }
.stock-readiness--untracked { color: #6b7d77; background: #edf3f0; }

.stock-drilldown { gap: 12px; }
.stock-drilldown-actions { gap: 6px; margin-left: auto; }
.stock-drilldown-actions button { min-height: 29px; padding: 0 9px; border: 1px solid #bcd8cd; border-radius: 7px; color: #06634e; background: #fff; font-size: 8.5px; font-weight: 780; cursor: pointer; }
.stock-drilldown-actions button:hover { background: #ecf8f3; }

.stock-export-activity { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; }
.stock-activity-table tbody tr:nth-child(even) { background: #f8fbfa; }
.stock-activity-table tbody tr:hover { background: #eef8f4; }

@media (max-width: 1100px) {
  .stock-action-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stock-action-item:nth-child(3n) { border-right: 1px solid #e1e9e5; }
  .stock-action-item:nth-child(2n) { border-right: 0; }
}

@media (max-width: 760px) {
  .stock-action-centre > header { align-items: flex-start; flex-direction: column; }
  .stock-action-list { grid-template-columns: 1fr; }
  .stock-action-item { border-right: 0 !important; }
  .stock-action-centre > footer { align-items: flex-start; flex-direction: column; }
  .stock-category-filter { width: 100%; }
  .stock-engineer-sort { width: 100%; }
  .stock-grid { min-width: 1080px; }
  .stock-grid thead th:first-child,
  .stock-grid tbody th { min-width: 220px; }
  .stock-drilldown-actions { width: 100%; margin-left: 0; flex-wrap: wrap; }
}

/* Dashboard operational pulse and contextual badges. */
.ops-pulse-rail {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 7px;
  margin: 8px 0 10px;
}

.ops-pulse-badge {
  display: grid;
  min-width: 0;
  min-height: 58px;
  grid-template-columns: 30px minmax(0, 1fr) 6px;
  align-items: center;
  gap: 8px;
  padding: 7px 9px;
  border: 1px solid #d5e3dc;
  border-radius: 10px;
  color: #476b60;
  background: #fff;
  box-shadow: 0 5px 14px rgba(9, 59, 43, 0.035);
  text-align: left;
  cursor: pointer;
  transition: transform 130ms ease, border-color 130ms ease, box-shadow 130ms ease;
}

.ops-pulse-badge:not(:disabled):hover {
  border-color: #92cdb8;
  box-shadow: 0 8px 18px rgba(9, 80, 56, 0.09);
  transform: translateY(-1px);
}

.ops-pulse-badge:disabled { cursor: default; }
.ops-pulse-icon { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; }
.ops-pulse-icon svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ops-pulse-badge > span:nth-child(2) { display: grid; min-width: 0; grid-template-columns: auto 1fr; align-items: baseline; column-gap: 5px; }
.ops-pulse-badge small { grid-column: 1 / -1; overflow: hidden; color: #678079; font-size: 7.8px; font-weight: 760; letter-spacing: .025em; text-overflow: ellipsis; white-space: nowrap; }
.ops-pulse-badge strong { color: #003d4c; font-size: 14px; line-height: 1.2; white-space: nowrap; }
.ops-pulse-badge em { overflow: hidden; color: #7b918a; font-size: 7.5px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.ops-pulse-badge > i { width: 6px; height: 6px; border-radius: 50%; }
.ops-pulse-badge--green .ops-pulse-icon { color: #058066; background: #e7f8f2; }
.ops-pulse-badge--green > i { background: #17b890; box-shadow: 0 0 0 3px #e2f7f0; }
.ops-pulse-badge--amber .ops-pulse-icon { color: #a96a00; background: #fff3dc; }
.ops-pulse-badge--amber > i { background: #e6a01a; box-shadow: 0 0 0 3px #fff2d5; }
.ops-pulse-badge--red .ops-pulse-icon { color: #c51d40; background: #ffedf1; }
.ops-pulse-badge--red > i { background: #e8395b; box-shadow: 0 0 0 3px #ffe6eb; }
.ops-pulse-badge--blue .ops-pulse-icon { color: #087da2; background: #e8f7fb; }
.ops-pulse-badge--blue > i { background: #14a5cf; box-shadow: 0 0 0 3px #e1f5fb; }

.ops-kpi { position: relative; }
.ops-kpi-status {
  position: absolute;
  right: 12px;
  bottom: 9px;
  padding: 2px 6px;
  border-radius: 99px;
  font-size: 6.8px;
  font-weight: 850;
  letter-spacing: .045em;
  line-height: 1.4;
  text-transform: uppercase;
}
.ops-kpi-status.is-action { color: #ac1836; background: #ffebef; }
.ops-kpi-status.is-live { color: #08705a; background: #e3f7ef; }
.ops-kpi-status.is-clear { color: #58746a; background: #edf4f1; }

.ops-exception-grid > button { position: relative; padding-right: 76px; }
.ops-exception-badge {
  position: absolute;
  right: 34px;
  padding: 2px 6px;
  border-radius: 99px;
  font-size: 6.8px;
  font-style: normal;
  font-weight: 850;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.ops-exception-grid > button.is-critical .ops-exception-badge { color: #b91839; background: #ffe8ed; }
.ops-exception-grid > button.is-warning .ops-exception-badge { color: #976000; background: #fff0cf; }
.ops-exception-grid > button.is-healthy .ops-exception-badge { color: #08705a; background: #e3f7ef; }

.ops-provisioning-matrix > button > strong { min-width: 0; }
.ops-provisioning-badge { display: inline-block; margin-left: 7px; padding: 2px 5px; border-radius: 99px; font-size: 6.5px; font-weight: 850; line-height: 1.4; text-transform: uppercase; vertical-align: 1px; }
.ops-provisioning-badge.is-track { color: #08705a; background: #e3f7ef; }
.ops-provisioning-badge.is-needed { color: #986100; background: #fff0cf; }
.ops-provisioning-badge.is-late { color: #b91839; background: #ffe8ed; }

.ops-recent article { grid-template-columns: auto minmax(0, 1fr) auto; }
.ops-activity-type { min-width: 48px; padding: 3px 6px; border-radius: 99px; font-size: 6.8px; font-weight: 850; text-align: center; text-transform: uppercase; }
.ops-activity-type--fault { color: #bd193a; background: #ffebef; }
.ops-activity-type--stock { color: #7a56c5; background: #f0ebff; }
.ops-activity-type--install { color: #a36800; background: #fff1d4; }
.ops-activity-type--port { color: #087da2; background: #e7f6fb; }
.ops-activity-type--broadband { color: #08705a; background: #e3f7ef; }
.ops-activity-type--access { color: #355eaa; background: #eaf0ff; }
.ops-activity-type--system { color: #60736c; background: #edf3f0; }

@media (max-width: 1250px) {
  .ops-pulse-rail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .ops-pulse-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ops-exception-grid > button { padding-right: 34px; }
  .ops-exception-badge { display: none; }
}

/* Focused dashboard: detailed reporting remains in the specialist portal pages. */
.ops-dashboard .ops-pulse-rail,
.ops-dashboard .ops-panel--dashboard-relocated,
.ops-dashboard .ops-kpi--dashboard-relocated,
.ops-dashboard .ops-kpi--dashboard-source,
.ops-dashboard .ops-exception--clear {
  display: none !important;
}

.ops-dashboard .ops-kpi-strip--focused {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-radius: 12px;
}

.ops-dashboard .ops-kpi-strip--focused .ops-kpi {
  min-width: 0;
}

.ops-dashboard .ops-kpi-icon--custom {
  overflow: hidden;
  background-image: url("/images/dashboard-kpi-icons.png");
  background-repeat: no-repeat;
  background-size: 127px 42px;
  background-position: var(--dashboard-kpi-icon-x) var(--dashboard-kpi-icon-y);
  box-shadow: inset 0 0 0 1px rgba(7, 63, 77, 0.04);
}

.ops-dashboard .ops-kpi-icon--custom svg {
  display: none;
}

.ops-dashboard .ops-kpi-icon--faults {
  --dashboard-kpi-icon-x: 1px;
  --dashboard-kpi-icon-y: -2px;
}

@keyframes conaireDashboardFaultFlash {
  0%, 100% {
    opacity: 1;
    filter: drop-shadow(0 0 0 rgba(239, 66, 111, 0));
    transform: scale(1);
  }
  50% {
    opacity: 0.24;
    filter: brightness(1.25) drop-shadow(0 0 10px rgba(239, 66, 111, 0.72));
    transform: scale(1.13);
  }
}

.ops-dashboard .ops-kpi-icon--faults.ops-kpi-icon--fault-alarm,
.ops-dashboard .ops-kpi.conaire-active-fault-alarm .ops-kpi-icon--faults {
  transform-origin: center;
  animation: conaireDashboardFaultFlash 0.8s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .ops-dashboard .ops-kpi-icon--faults.ops-kpi-icon--fault-alarm,
  .ops-dashboard .ops-kpi.conaire-active-fault-alarm .ops-kpi-icon--faults {
    opacity: 1;
    filter: drop-shadow(0 0 5px rgba(239, 66, 111, 0.48));
    transform: none;
    animation: none;
  }
}

.ops-dashboard .ops-kpi-icon--unassigned {
  --dashboard-kpi-icon-x: -30px;
  --dashboard-kpi-icon-y: -3px;
}

.ops-dashboard .ops-kpi-icon--stock {
  --dashboard-kpi-icon-x: -61px;
  --dashboard-kpi-icon-y: -3px;
}

.ops-dashboard .ops-kpi-icon--provisioning {
  --dashboard-kpi-icon-x: -94px;
  --dashboard-kpi-icon-y: -2px;
}

.ops-dashboard .ops-kpi--provisioning-combined .ops-kpi-icon svg,
.ops-dashboard .ops-kpi--provisioning-combined .ops-kpi-arrow {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ops-dashboard .ops-kpi--provisioning-combined .ops-kpi-arrow {
  width: 14px;
  height: 14px;
}

.ops-dashboard .ops-actions-primary {
  margin-top: 10px;
}

.ops-dashboard .ops-actions-primary .ops-exception-grid {
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

.ops-dashboard .ops-actions-primary .ops-exception-grid > button {
  min-height: 58px;
  padding-right: 34px;
}

.ops-dashboard .ops-exception-grid > button > .ops-action-icon--custom {
  overflow: hidden;
  position: relative;
  box-shadow: inset 0 0 0 1px rgba(7, 63, 77, 0.035);
}

.ops-dashboard .ops-action-icon--custom > .ops-action-art {
  position: relative;
  z-index: 1;
  display: block;
  width: 30px;
  height: 30px;
  object-fit: contain;
}

.ops-dashboard .ops-action-icon--custom.has-portal-icon svg {
  display: none;
}

.ops-dashboard .ops-action-icon--custom:not(.has-portal-icon) > .ops-action-art {
  display: none;
}

.ops-dashboard .ops-panel > header > div > span {
  overflow: hidden;
  position: relative;
}

.ops-dashboard .ops-panel > header > div > span > .ops-panel-heading-art {
  position: relative;
  z-index: 1;
  display: block;
  width: 27px;
  height: 27px;
  object-fit: contain;
}

.ops-dashboard .ops-panel > header > div > span.has-portal-panel-icon > svg {
  display: none;
}

.ops-dashboard .ops-panel > header > div > span:not(.has-portal-panel-icon) > .ops-panel-heading-art {
  display: none;
}

.ops-dashboard .ops-fault-leaderboard > header > div > span.has-portal-panel-icon {
  width: 38px;
  height: 30px;
  flex: 0 0 38px;
}

.ops-dashboard .ops-fault-leaderboard > header > div > span > .ops-panel-heading-art {
  width: 36px;
  height: 27px;
}

/* Keep routine workflow artwork quieter so fault alerts retain visual priority. */
.ops-dashboard .ops-kpi-icon--unassigned,
.ops-dashboard .ops-kpi-icon--stock,
.ops-dashboard .ops-kpi-icon--provisioning,
.ops-dashboard .ops-action-icon--unassigned,
.ops-dashboard .ops-action-icon--stock,
.ops-dashboard .ops-action-icon--engineer {
  opacity: 0.88;
  filter: saturate(0.84) contrast(0.98);
}

.ops-dashboard .ops-kpi:hover .ops-kpi-icon--custom,
.ops-dashboard .ops-exception-grid > button:hover .ops-action-icon--custom {
  opacity: 1;
  filter: saturate(1) contrast(1);
}

/* Consistent interaction feedback for every clickable dashboard surface. */
.ops-dashboard .ops-kpi,
.ops-dashboard .ops-exception-grid > button,
.ops-dashboard .ops-schedule-list > button,
.ops-dashboard .ops-attention-list > button,
.ops-dashboard .ops-leaderboard-row {
  transition: transform 150ms ease, background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.ops-dashboard .ops-kpi:hover,
.ops-dashboard .ops-exception-grid > button:hover {
  z-index: 2;
  transform: translateY(-2px);
  border-color: rgba(12, 126, 88, 0.28);
  box-shadow: 0 9px 22px rgba(7, 63, 77, 0.09);
}

.ops-dashboard .ops-schedule-list > button:hover,
.ops-dashboard .ops-attention-list > button:hover {
  background-color: #f4faf7;
  box-shadow: inset 3px 0 #13a36e;
  transform: translateX(2px);
}

.ops-dashboard .ops-leaderboard-row:hover {
  border-color: rgba(12, 126, 88, 0.22);
  box-shadow: 0 9px 20px rgba(7, 63, 77, 0.075);
  transform: translateY(-1px);
}

@media (prefers-reduced-motion: reduce) {
  .ops-dashboard .ops-kpi:hover,
  .ops-dashboard .ops-exception-grid > button:hover,
  .ops-dashboard .ops-schedule-list > button:hover,
  .ops-dashboard .ops-attention-list > button:hover,
  .ops-dashboard .ops-leaderboard-row:hover {
    transform: none;
  }
}

.ops-dashboard-all-clear {
  display: flex;
  min-height: 70px;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #0b7059;
  background: #f4fbf8;
}

.ops-dashboard-all-clear > span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #13a77f;
  font-weight: 900;
}

.ops-dashboard-all-clear strong,
.ops-dashboard-all-clear small {
  display: block;
}

.ops-dashboard-all-clear strong {
  color: #064b3d;
  font-size: 11px;
}

.ops-dashboard-all-clear small {
  margin-top: 2px;
  color: #6b847b;
  font-size: 9px;
}

.ops-dashboard .ops-grid {
  margin-top: 10px;
}

.ops-dashboard .ops-attention-row:nth-of-type(n + 7) {
  display: none;
}

@media (max-width: 1050px) {
  .ops-dashboard .ops-kpi-strip--focused {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .ops-dashboard .ops-kpi-strip--focused {
    grid-template-columns: 1fr;
  }
}

/* Notifications and escalation centre */
.notification-centre {
  position: relative;
  flex: none;
  font-family: inherit;
}

.notification-trigger {
  position: relative;
  display: grid;
  width: 38px;
  height: 38px;
  padding: 0;
  place-items: center;
  color: #315b49;
  background: #f5faf7;
  border: 1px solid #d5e4db;
  border-radius: 9px;
  cursor: pointer;
  transition: border-color .16s ease, color .16s ease, background .16s ease, transform .16s ease;
}

.notification-trigger:hover,
.notification-centre.is-open .notification-trigger {
  color: #057356;
  background: #eaf7f2;
  border-color: #9ed8c5;
}

.notification-trigger:active {
  transform: translateY(1px);
}

.notification-trigger.has-critical {
  color: #b62f49;
  background: #fff5f6;
  border-color: #efbdc6;
}

.notification-badge {
  position: absolute;
  top: -6px;
  right: -6px;
  display: grid;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  place-items: center;
  color: #fff;
  background: #e13f58;
  border: 2px solid #fff;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 850;
  line-height: 1;
  box-shadow: 0 2px 6px #8a21354a;
}

.notification-badge[hidden] {
  display: none;
}

.notification-popover {
  position: absolute;
  z-index: 160;
  top: calc(100% + 11px);
  right: -58px;
  display: none;
  width: min(430px, calc(100vw - 24px));
  color: #163c2c;
  background: #fff;
  border: 1px solid #d2e0d8;
  border-radius: 15px;
  overflow: visible;
  box-shadow: 0 22px 55px #102d2038, 0 3px 10px #102d2014;
}

.notification-popover::before {
  content: "";
  position: absolute;
  top: -7px;
  right: 69px;
  width: 12px;
  height: 12px;
  background: #fff;
  border-top: 1px solid #d2e0d8;
  border-left: 1px solid #d2e0d8;
  transform: rotate(45deg);
}

.notification-centre.is-open .notification-popover {
  display: block;
  animation: notification-enter .16s ease-out;
}

@keyframes notification-enter {
  from { opacity: 0; transform: translateY(-5px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.notification-popover button,
.notification-popover summary {
  font: inherit;
}

.notification-popover-head {
  position: relative;
  display: flex;
  min-height: 66px;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  border-bottom: 1px solid #e3ebe6;
}

.notification-popover-head > div {
  display: flex;
  align-items: center;
  gap: 10px;
}

.notification-popover-head > div > span {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  color: #087859;
  background: #e5f6f0;
  border-radius: 10px;
}

.notification-popover-head strong,
.notification-popover-head small {
  display: block;
}

.notification-popover-head strong {
  color: #113b2a;
  font-size: 14px;
  font-weight: 780;
}

.notification-popover-head small {
  margin-top: 2px;
  color: #72877c;
  font-size: 10px;
}

.notification-popover-head > button {
  display: grid;
  width: 31px;
  height: 31px;
  padding: 0;
  place-items: center;
  color: #587064;
  background: #f5f8f6;
  border: 1px solid #dde7e1;
  border-radius: 8px;
  cursor: pointer;
}

.notification-popover-head > button:hover {
  color: #087859;
  background: #eaf7f2;
}

.notification-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 7px;
  padding: 10px 12px 6px;
}

.notification-summary span {
  display: flex;
  min-height: 34px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  color: #567064;
  background: #f4f8f5;
  border: 1px solid #e2eae5;
  border-radius: 8px;
  font-size: 9px;
  font-weight: 700;
}

.notification-summary b {
  color: #25493a;
  font-size: 12px;
  font-weight: 850;
}

.notification-summary .is-critical {
  color: #a7384a;
  background: #fff3f5;
  border-color: #f2d2d8;
}

.notification-summary .is-critical b { color: #c62945; }
.notification-summary .is-warning { color: #8d6517; background: #fff8e9; border-color: #eedcaf; }
.notification-summary .is-warning b { color: #a96d06; }

.notification-tabs {
  display: flex;
  gap: 4px;
  padding: 6px 12px 9px;
  border-bottom: 1px solid #e3ebe6;
}

.notification-tabs button {
  display: flex;
  min-height: 30px;
  align-items: center;
  gap: 5px;
  padding: 0 10px;
  color: #637a6e;
  background: transparent;
  border: 0;
  border-radius: 7px;
  cursor: pointer;
  font-size: 10px;
  font-weight: 730;
}

.notification-tabs button:hover { background: #f0f6f2; }
.notification-tabs button.is-active { color: #067457; background: #e6f5ef; }

.notification-tabs b {
  display: grid;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  place-items: center;
  color: inherit;
  background: #fff;
  border-radius: 999px;
  font-size: 8px;
}

.notification-list {
  max-height: min(470px, calc(100vh - 260px));
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: #bdd0c6 transparent;
  scrollbar-width: thin;
}

.notification-item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 37px;
  border-bottom: 1px solid #e8eeea;
  background: #fff;
}

.notification-item:last-child { border-bottom: 0; }
.notification-item.is-unread { background: #f8fcfa; }
.notification-item.is-unread::before {
  content: "";
  position: absolute;
  top: 17px;
  left: 5px;
  width: 4px;
  height: 4px;
  background: #0aa67d;
  border-radius: 50%;
}

.notification-main {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 9px;
  min-width: 0;
  padding: 12px 5px 12px 14px;
  text-align: left;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.notification-main:hover .notification-copy strong { color: #087859; }

.notification-severity {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  color: #267a62;
  background: #e7f5ef;
  border-radius: 9px;
}

.notification-item--warning .notification-severity { color: #a66d07; background: #fff2d5; }
.notification-item--critical .notification-severity { color: #c02d49; background: #ffe9ed; }

.notification-copy,
.notification-copy > span {
  min-width: 0;
}

.notification-copy > span {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.notification-copy strong {
  color: #183e2e;
  font-size: 11px;
  font-weight: 760;
  line-height: 1.3;
  transition: color .15s ease;
}

.notification-copy time {
  flex: none;
  color: #8a9a92;
  font-size: 8px;
  font-weight: 700;
}

.notification-copy small {
  display: -webkit-box;
  margin-top: 4px;
  color: #5e7469;
  overflow: hidden;
  font-size: 9.5px;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.notification-copy em {
  display: flex;
  width: max-content;
  align-items: center;
  gap: 2px;
  margin-top: 7px;
  color: #0b8060;
  font-size: 8.5px;
  font-style: normal;
  font-weight: 760;
}

.notification-item.is-read .notification-copy strong { font-weight: 660; }
.notification-item.is-read .notification-main { opacity: .82; }

.notification-item-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 10px 6px 0 0;
}

.notification-item-actions > button,
.notification-item-actions summary {
  display: grid;
  width: 27px;
  height: 27px;
  padding: 0;
  place-items: center;
  color: #789086;
  background: transparent;
  border: 0;
  border-radius: 7px;
  cursor: pointer;
  list-style: none;
}

.notification-item-actions summary::-webkit-details-marker { display: none; }
.notification-item-actions > button:hover,
.notification-item-actions summary:hover { color: #087859; background: #eaf5f0; }

.notification-item-actions details { position: relative; }
.notification-item-actions details > div {
  position: absolute;
  z-index: 5;
  top: 0;
  right: 31px;
  display: grid;
  width: 105px;
  padding: 4px;
  background: #fff;
  border: 1px solid #d6e2db;
  border-radius: 8px;
  box-shadow: 0 8px 22px #163e2d24;
}

.notification-item-actions details > div button {
  min-height: 29px;
  padding: 0 8px;
  color: #466054;
  text-align: left;
  background: transparent;
  border: 0;
  border-radius: 5px;
  cursor: pointer;
  font-size: 9px;
  font-weight: 680;
}

.notification-item-actions details > div button:hover { color: #087859; background: #edf7f3; }

.notification-empty {
  display: flex;
  min-height: 178px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 24px;
  color: #198466;
  text-align: center;
}

.notification-empty strong { color: #244a3a; font-size: 12px; }
.notification-empty small { max-width: 250px; color: #73877d; font-size: 9.5px; line-height: 1.5; }
.notification-empty--error { color: #c33a50; }

.notification-loader {
  width: 24px;
  height: 24px;
  border: 3px solid #d9ebe4;
  border-top-color: #0b9872;
  border-radius: 50%;
  animation: notification-spin .7s linear infinite;
}

@keyframes notification-spin { to { transform: rotate(360deg); } }

.notification-popover-foot {
  display: flex;
  min-height: 49px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 12px;
  background: #f7faf8;
  border-top: 1px solid #e2eae5;
  border-radius: 0 0 15px 15px;
}

.notification-popover-foot button {
  display: flex;
  min-height: 31px;
  align-items: center;
  gap: 5px;
  padding: 0 9px;
  color: #496457;
  background: transparent;
  border: 0;
  border-radius: 7px;
  cursor: pointer;
  font-size: 9.5px;
  font-weight: 730;
}

.notification-popover-foot button:hover { color: #087859; background: #e8f4ef; }
.notification-popover-foot button:last-child { color: #087859; }
.notification-popover-foot button:disabled { opacity: .42; cursor: default; background: transparent; }

@media (max-width: 700px) {
  .notification-popover {
    position: fixed;
    top: 64px;
    right: 8px;
    left: 8px;
    width: auto;
  }

  .notification-popover::before { display: none; }
  .notification-list { max-height: calc(100vh - 280px); }
}

@media (prefers-reduced-motion: reduce) {
  .notification-centre.is-open .notification-popover,
  .notification-loader { animation: none; }
}

/* Faults: reuse the portal's established illustrated status artwork. */
.faults-page .fault-summary-strip > button > i {
  overflow: hidden;
  position: relative;
  box-shadow: inset 0 0 0 1px rgba(7, 63, 77, 0.035);
}

.faults-page .fault-summary-strip > button > i > .fault-summary-art {
  position: relative;
  z-index: 1;
  display: block;
  width: 30px;
  height: 30px;
  object-fit: contain;
}

.faults-page .fault-summary-strip > button > i.has-portal-icon svg {
  display: none;
}

.faults-page .fault-summary-strip > button > i:not(.has-portal-icon) > .fault-summary-art {
  display: none;
}
