/* Platform home · operational register */

.home-dashboard {
  display: grid;
  min-width: 0;
  gap: 18px;
  padding: clamp(18px, 2.4vw, 30px);
}

.home-register {
  overflow: hidden;
  color: var(--paper-light);
  border-radius: var(--radius-md);
  background: var(--ink);
  box-shadow: 0 18px 42px rgba(20, 43, 64, 0.16);
}

.home-register__intro {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 30px;
  padding: clamp(20px, 2.3vw, 29px);
  border-bottom: 1px solid rgba(251, 248, 241, 0.17);
}

.home-register__intro > div {
  max-width: 720px;
}

.home-register h2 {
  max-width: 680px;
  margin: 0;
  color: var(--paper-light);
  font-family: var(--font-sans);
  font-size: clamp(31px, 3.5vw, 45px);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 0.98;
}

.home-register p {
  max-width: 610px;
  margin: 10px 0 0;
  color: rgba(251, 248, 241, 0.72);
  font-size: 15px;
  line-height: 1.55;
}

.home-register time {
  flex: 0 0 auto;
  padding-top: 4px;
  color: var(--ochre-pale);
  font-family: var(--font-mono);
  font-size: 14px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.home-register__totals {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
}

.home-register__totals > div {
  min-width: 0;
  padding: 13px clamp(14px, 2vw, 24px) 15px;
  border-right: 1px solid rgba(251, 248, 241, 0.17);
}

.home-register__totals > div:last-child {
  border-right: 0;
}

.home-register__totals dt {
  color: rgba(251, 248, 241, 0.62);
  font-family: var(--font-mono);
  font-size: 14px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.home-register__totals dd {
  margin: 5px 0 0;
  color: var(--paper-light);
  font-family: var(--font-sans);
  font-size: clamp(24px, 2.5vw, 32px);
  font-weight: 500;
  line-height: 1;
}

.home-register__totals dd span {
  color: rgba(251, 248, 241, 0.44);
  font-size: 0.58em;
}

.home-work-index {
  display: grid;
  grid-template-columns: 1.12fr 1.12fr 1fr 1fr 0.86fr;
  overflow: hidden;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  background: var(--white);
}

.home-work-index button {
  display: grid;
  min-width: 0;
  min-height: 68px;
  grid-template-columns: 24px minmax(0, 1fr) 14px;
  gap: 10px;
  align-items: center;
  padding: 11px 13px;
  color: var(--ink);
  border: 0;
  border-right: 1px solid var(--rule);
  background: transparent;
  text-align: left;
  transition: color 160ms ease, background 160ms ease;
}

.home-work-index button:last-child {
  border-right: 0;
}

.home-work-index button:hover {
  color: var(--teal-dark);
  background: var(--teal-pale);
}

.home-work-index button:focus-visible,
.home-school-row .text-button:focus-visible,
.home-dispatch .text-button:focus-visible,
.editor-add-row:focus-visible,
.icon-text-button:focus-visible {
  outline: 2px solid var(--teal);
  outline-offset: -2px;
}

.home-work-index button > svg:first-child {
  width: 21px;
  height: 21px;
  color: var(--teal-dark);
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.55;
}

.home-work-index button > svg:last-child {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  transition: transform 160ms ease;
}

.home-work-index button:hover > svg:last-child {
  transform: translateX(2px);
}

.home-work-index strong,
.home-work-index small {
  display: block;
}

.home-work-index strong {
  font-size: 15px;
}

.home-work-index small {
  margin-top: 3px;
  overflow: hidden;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.4;
}

.home-dashboard__columns {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.8fr);
  gap: clamp(24px, 3vw, 40px);
  align-items: start;
}

.home-school-ledger,
.home-dispatch {
  min-width: 0;
}

.home-school-ledger > header,
.home-dispatch__block > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.home-school-ledger h3,
.home-dispatch h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.018em;
}

.home-school-ledger header p,
.home-dispatch header p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
}

.home-school-list {
  margin-top: 14px;
  border-top: 1px solid var(--rule-dark);
}

.home-school-row {
  display: grid;
  min-width: 0;
  min-height: 70px;
  grid-template-columns: 38px minmax(150px, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  padding: 12px 2px;
  border-bottom: 1px solid var(--rule);
}

.home-school-row__mark {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  color: var(--ink-soft);
  border: 1px solid var(--rule);
  border-radius: 9px;
  background: var(--ochre-pale);
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 600;
}

.home-school-row > span:nth-child(2) {
  min-width: 0;
}

.home-school-row > span:nth-child(2) strong,
.home-school-row > span:nth-child(2) small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-school-row > span:nth-child(2) strong {
  color: var(--ink);
  font-size: 15px;
}

.home-school-row > span:nth-child(2) small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 14px;
}

.home-school-row__facts {
  display: flex;
  gap: 5px;
}

.home-school-row__facts em {
  padding: 4px 7px;
  color: var(--ink-soft);
  border-radius: 99px;
  background: var(--paper-dark);
  font-family: var(--font-mono);
  font-size: 14px;
  font-style: normal;
  white-space: nowrap;
}

.home-school-row .text-button,
.home-dispatch .text-button,
.home-school-ledger > header .text-button {
  min-height: 32px;
  color: var(--teal-dark);
  white-space: nowrap;
}

.home-dispatch {
  border-top: 1px solid var(--rule-dark);
}

.home-dispatch__block {
  display: grid;
  gap: 13px;
  padding: 19px 0;
  border-bottom: 1px solid var(--rule);
}

.home-dispatch__block > header > strong {
  color: var(--teal-dark);
  font-family: var(--font-sans);
  font-size: 24px;
  font-weight: 600;
}

.home-progress {
  height: 6px;
  overflow: hidden;
  border-radius: 99px;
  background: var(--paper-dark);
}

.home-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--teal);
}

.home-schedule-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.home-schedule-list li {
  padding: 7px 0;
  color: var(--ink-soft);
  border-bottom: 1px dotted var(--rule-dark);
  font-size: 14px;
  line-height: 1.35;
}

.home-schedule-list li::before {
  content: '·';
  margin-right: 6px;
  color: var(--ochre);
}

.home-schedule-list li.is-empty {
  grid-column: 1 / -1;
  color: var(--muted);
}

.home-activity-list {
  display: grid;
}

.home-activity-row {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 9px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px dotted var(--rule-dark);
}

.home-activity-row > span {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  color: var(--teal-dark);
  border-radius: 8px;
  background: var(--teal-pale);
}

.home-activity-row svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
}

.home-activity-row strong,
.home-activity-row small {
  display: block;
}

.home-activity-row strong {
  color: var(--ink);
  font-size: 14px;
  text-transform: capitalize;
}

.home-activity-row small {
  margin-top: 2px;
  overflow: hidden;
  color: var(--muted);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Operations draft editing */

.platform-owner-badge.is-editing {
  color: #704d12;
  border-color: rgba(183, 130, 29, 0.4);
  background: var(--ochre-pale);
}

.operations-edit-error {
  display: grid;
  gap: 3px;
  padding: 12px 14px;
  color: #7f2e24;
  border: 1px solid rgba(201, 94, 73, 0.42);
  border-radius: var(--radius-xs);
  background: rgba(201, 94, 73, 0.1);
}

.operations-edit-error strong {
  font-size: 15px;
}

.operations-edit-error span {
  font-size: 14px;
}

.operations-table--editing {
  min-width: 980px;
}

.operations-table--editing th:first-child,
.operations-table--editing td:first-child {
  width: 48px;
  padding-inline: 6px;
  text-align: center;
}

.operations-table--editing th:nth-child(2) {
  width: 220px;
}

.operations-table--editing th:nth-child(3) {
  width: 150px;
}

.tech-tips-table--editing {
  min-width: 1240px;
}

.ideas-table--editing {
  min-width: 1460px;
}

.operations-edit-row:hover {
  background: rgba(244, 227, 183, 0.15) !important;
}

.inline-edit-field {
  display: grid;
  min-width: 120px;
  gap: 5px;
}

.inline-edit-field > span,
.schedule-editor-day label > span {
  color: var(--muted);
  font-family: var(--font-mono);
  font-size: 14px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.inline-edit-field input,
.inline-edit-field select,
.inline-edit-field textarea,
.schedule-editor-day textarea {
  width: 100%;
  min-width: 0;
  padding: 8px 9px;
  color: var(--ink);
  border: 1px solid var(--rule-dark);
  border-radius: var(--radius-xs);
  outline: 0;
  background: var(--white);
  font: inherit;
  line-height: 1.4;
  resize: vertical;
}

.inline-edit-field input {
  min-height: 36px;
}

.inline-edit-field select {
  min-height: 36px;
  appearance: auto;
}

.inline-edit-field textarea {
  min-height: 70px;
}

.inline-edit-field input:focus,
.inline-edit-field select:focus,
.inline-edit-field textarea:focus,
.schedule-editor-day textarea:focus {
  border-color: var(--teal);
  box-shadow: var(--focus);
}

.inline-edit-field [aria-invalid='true'] {
  border-color: var(--red);
  background: rgba(201, 94, 73, 0.06);
  box-shadow: 0 0 0 3px rgba(201, 94, 73, 0.14);
}

.icon-text-button,
.editor-add-row {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 10px;
  color: var(--ink-soft);
  border: 1px solid var(--rule-dark);
  border-radius: var(--radius-xs);
  background: var(--white);
  font-size: 14px;
  font-weight: 800;
  transition: color 160ms ease, border-color 160ms ease, background 160ms ease;
}

.icon-text-button svg,
.editor-add-row svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.icon-text-button.is-danger {
  color: #8f3527;
}

.icon-text-button.is-danger:hover {
  border-color: rgba(201, 94, 73, 0.5);
  background: rgba(201, 94, 73, 0.08);
}

.icon-text-button:disabled {
  color: rgba(49, 80, 100, 0.38);
  border-color: rgba(169, 152, 130, 0.42);
  background: var(--paper-light);
  cursor: not-allowed;
}

.operations-row-actions,
.operations-list-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.operations-order-help {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: -8px 0 -10px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
}

.operations-order-help svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  fill: currentColor;
}

.staff-drag-handle {
  display: grid;
  width: 36px;
  min-height: 58px;
  place-items: center;
  margin: -6px auto;
  padding: 0;
  color: var(--muted);
  border: 0;
  border-radius: var(--radius-xs);
  background: transparent;
  cursor: grab;
  touch-action: none;
  transition: color 160ms ease, background 160ms ease, transform 160ms ease;
}

.staff-drag-handle svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

.staff-drag-handle:hover,
.staff-drag-handle:focus-visible {
  color: var(--teal-dark);
  background: var(--teal-pale);
}

.staff-drag-handle:focus-visible {
  outline: 3px solid rgba(42, 129, 123, 0.24);
  outline-offset: 1px;
}

.staff-drag-handle:active {
  cursor: grabbing;
  transform: scale(0.96);
}

.staff-drag-handle:disabled {
  color: rgba(49, 80, 100, 0.32);
  background: transparent;
  cursor: not-allowed;
}

.operations-edit-row.is-dragging {
  position: relative;
  z-index: 4;
  background: var(--ochre-pale) !important;
  box-shadow: 0 14px 28px rgba(20, 43, 64, 0.18);
  pointer-events: none;
}

.operations-edit-row.is-dragging .staff-drag-handle {
  color: var(--ink);
  cursor: grabbing;
}

body.is-reordering-staff {
  cursor: grabbing;
  user-select: none;
}

.operations-list-actions {
  justify-content: flex-start;
}

.operations-list-actions .button {
  min-height: 38px;
}

.editor-add-row {
  width: max-content;
  color: var(--teal-dark);
  border-style: dashed;
  background: var(--teal-pale);
}

.editor-add-row:hover {
  border-color: var(--teal);
  background: var(--white);
}

.schedule-editor-board {
  display: grid;
  grid-template-columns: repeat(5, minmax(190px, 1fr));
  overflow-x: auto;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  background: var(--white);
}

.schedule-editor-day {
  min-width: 190px;
  padding: 13px;
  border-right: 1px solid var(--rule);
}

.schedule-editor-day:last-child {
  border-right: 0;
}

.schedule-editor-day header {
  display: flex;
  min-height: 42px;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding-bottom: 10px;
}

.schedule-editor-day header strong {
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 600;
}

.schedule-editor-day header span {
  color: var(--muted);
  font-size: 14px;
}

.schedule-editor-day label {
  display: grid;
  gap: 6px;
}

.schedule-editor-day textarea {
  min-height: 390px;
  font-size: 14px;
}

@media (max-width: 940px) {
  .platform-layout {
    grid-template-columns: 260px minmax(0, 1fr);
  }

  .platform-panel {
    padding: 28px;
  }

  .access-key {
    grid-template-columns: 1fr;
  }

  .operations-toolbar,
  .tech-tracker-toolbar {
    display: grid;
    align-items: start;
  }

  .operations-search {
    width: 100%;
  }

  .tech-tracker-filters {
    justify-content: stretch;
  }

  .tech-tracker-filters label,
  .tech-tracker-filters select {
    width: 100%;
  }

  .tech-progress {
    overflow-x: auto;
  }

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

  .home-work-index button,
  .home-work-index button:last-child {
    border-right: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
  }

  .home-work-index button:nth-child(2n) {
    border-right: 0;
  }

  .home-work-index button:last-child {
    grid-column: 1 / -1;
    border-bottom: 0;
  }

  .home-dashboard__columns {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 690px) {
  .organization-switcher {
    order: 4;
    width: 100%;
  }

  .topbar {
    align-items: flex-start;
  }

  .topbar-actions {
    flex-wrap: wrap;
  }

  .platform-layout {
    grid-template-columns: 1fr;
    overflow: visible;
  }

  .platform-directory {
    border-right: 0;
    border-bottom: 1px solid var(--rule);
  }

  .organization-list {
    max-height: 310px;
  }

  .platform-panel {
    padding: 22px 16px;
  }

  .operations-surface {
    gap: 17px;
    padding: 18px 12px;
  }

  .home-dashboard {
    gap: 17px;
    padding: 18px 12px;
  }

  .home-register__intro {
    display: grid;
    gap: 15px;
    padding: 23px 18px;
  }

  .home-register h2 {
    font-size: clamp(29px, 9vw, 40px);
  }

  .home-register time {
    grid-row: 1;
  }

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

  .home-register__totals > div:nth-child(2) {
    border-right: 0;
  }

  .home-register__totals > div:nth-child(-n + 2) {
    border-bottom: 1px solid rgba(251, 248, 241, 0.17);
  }

  .home-work-index {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-work-index button,
  .home-work-index button:nth-child(2n),
  .home-work-index button:last-child {
    grid-column: auto;
    min-height: 68px;
    border-right: 0;
    border-bottom: 1px solid var(--rule);
  }

  .home-work-index button:last-child {
    border-bottom: 0;
  }

  .home-school-ledger > header {
    display: grid;
  }

  .home-school-ledger > header .text-button {
    width: max-content;
  }

  .home-school-row {
    grid-template-columns: 38px minmax(0, 1fr) auto;
  }

  .home-school-row__facts {
    grid-column: 2 / -1;
    grid-row: 2;
  }

  .home-school-row .text-button {
    grid-column: 3;
    grid-row: 1;
  }

  .home-dispatch__block {
    padding-inline: 2px;
  }

  .icon-text-button,
  .editor-add-row,
  .home-work-index button,
  .home-school-row .text-button,
  .home-dispatch .text-button {
    min-height: 44px;
  }

  .topbar-icon,
  .icon-button,
  .topbar-brand,
  .portal-switch,
  .user-chip,
  .organization-switcher,
  .operations-search,
  .operations-subnav__button,
  .term-button,
  .tech-tracker-filters select,
  .tech-status,
  .inline-edit-field input,
  .inline-edit-field select {
    min-height: 44px;
  }

  .topbar-icon,
  .icon-button {
    width: 44px;
    height: 44px;
  }

  .schedule-editor-board {
    grid-template-columns: repeat(5, 240px);
  }

  .operations-subnav,
  .term-switch {
    width: 100%;
    overflow-x: visible;
  }

  .operations-subnav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-bottom: 0;
  }

  .operations-subnav__button,
  .term-button {
    min-width: 0;
    flex: 1 1 0;
    padding-inline: 7px;
    font-size: 14px;
  }

  .operations-subnav__button {
    margin-bottom: 0;
    border-color: var(--rule);
    border-radius: 0;
  }

  .operations-subnav__button.is-active {
    border-bottom-color: var(--rule);
  }

  .operations-subnav__button:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .operations-toolbar,
  .tech-surface-head,
  .tech-tracker-toolbar,
  .ideas-toolbar {
    display: grid;
    width: 100%;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    justify-content: stretch;
  }

  .operations-toolbar > div,
  .tech-surface-head > div,
  .tech-tracker-toolbar,
  .tech-tracker-filters {
    width: 100%;
  }

  .tech-tracker-filters {
    display: grid;
    grid-template-columns: 1fr;
  }

  .tech-progress {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
    gap: 8px 12px;
    margin-inline: -12px;
    padding-inline: 12px;
  }

  .tech-progress > div {
    min-width: 0;
    grid-column: 1 / -1;
    padding-right: 0;
    padding-bottom: 8px;
    border-right: 0;
    border-bottom: 1px solid var(--rule);
  }

  .tech-tips-table {
    min-width: 850px;
  }

  .tech-tips-table thead th:first-child,
  .tech-tips-table tbody th {
    width: 80px;
    min-width: 80px;
  }

  .tech-tips-table thead th:nth-child(2),
  .tech-tips-table tbody td:nth-child(2) {
    position: static;
    width: 125px;
    min-width: 125px;
    box-shadow: none;
  }

  .tech-status {
    min-width: 104px;
  }

  .operations-table thead th,
  .tech-tips-table thead th,
  .ideas-table thead th,
  .operations-person small,
  .school-chip-list small,
  .team-label,
  .school-chip-list > span,
  .tech-status {
    font-size: 14px;
  }

  .schedule-board {
    grid-template-columns: repeat(5, 210px);
  }

  .operations-table-wrap,
  .tech-table-wrap,
  .ideas-table-wrap {
    border-radius: var(--radius-xs);
  }

  .organization-title,
  .platform-section--summary {
    display: grid;
  }

  .platform-metrics {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .platform-metrics > div {
    min-height: 78px;
    padding: 11px;
  }

  .platform-form__row,
  .member-card__controls {
    grid-template-columns: 1fr;
  }
}

.auth-pending .app-shell,
.auth-open .app-shell {
  visibility: hidden;
}

body.auth-pending,
body.auth-open {
  overflow: hidden;
}

.auth-overlay {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  overflow: auto;
  place-items: center;
  padding: clamp(18px, 4vw, 54px);
  color: var(--paper-light);
  background-color: var(--ink-deep);
  background-image: radial-gradient(circle at 9% 14%, rgba(231, 178, 79, 0.15), transparent 23%), radial-gradient(circle at 91% 88%, rgba(42, 129, 123, 0.12), transparent 27%);
}

.auth-overlay::before {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  content: '';
  background-image: linear-gradient(rgba(251, 248, 241, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(251, 248, 241, 0.035) 1px, transparent 1px);
  background-size: 52px 52px;
  mask-image: linear-gradient(to bottom right, black, transparent 82%);
}

.auth-overlay[hidden] {
  display: none;
}

.auth-layout {
  position: relative;
  z-index: 1;
  display: grid;
  width: min(1180px, 100%);
  height: min(760px, calc(100vh - clamp(36px, 8vw, 108px)));
  min-height: 0;
  grid-template-columns: minmax(0, 1.14fr) minmax(390px, 0.86fr);
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--paper-light);
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.38);
}

.auth-visual {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 0;
  grid-template-rows: auto minmax(260px, 1fr) auto;
  overflow: hidden;
  padding: clamp(27px, 4vw, 48px);
  color: var(--paper-light);
  background: var(--ink);
}

.auth-visual::after {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: '';
  background: linear-gradient(145deg, transparent 44%, rgba(13, 32, 50, 0.7) 90%);
}

.auth-brand,
.auth-visual__copy,
.auth-plan {
  position: relative;
  z-index: 1;
}

.auth-brand,
.auth-visual__copy {
  z-index: 2;
}

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

.auth-brand strong,
.auth-brand small {
  display: block;
}

.auth-brand strong {
  color: var(--paper-light);
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.auth-brand small {
  margin-top: 2px;
  color: rgba(246, 240, 227, 0.68);
  font-size: 13px;
}

.auth-plan {
  display: grid;
  min-height: 0;
  grid-template-rows: minmax(0, 1fr) auto;
  row-gap: 4px;
  margin: 20px -3% 6px;
}

.auth-plan > svg {
  width: 100%;
  height: 100%;
  min-height: 310px;
  overflow: visible;
}

.auth-plan__blueprint {
  transform-box: fill-box;
  transform-origin: center;
  transition: opacity 360ms cubic-bezier(0.16, 1, 0.3, 1), transform 420ms cubic-bezier(0.16, 1, 0.3, 1), clip-path 420ms cubic-bezier(0.16, 1, 0.3, 1), filter 280ms ease;
}

.auth-plan__blueprint--staff {
  opacity: 1;
  clip-path: inset(0 0 0 0);
  filter: blur(0);
  transform: translate(0, 0) scale(1) rotate(0);
}

.auth-plan__blueprint--admin {
  opacity: 0;
  clip-path: inset(0 0 0 100%);
  filter: blur(1.25px);
  transform: translate(2.5%, -1%) scale(0.965) rotate(0.35deg);
}

.auth-overlay[data-target='admin'] .auth-plan__blueprint--staff {
  opacity: 0;
  clip-path: inset(0 100% 0 0);
  filter: blur(1.25px);
  transform: translate(-2.5%, 1%) scale(1.025) rotate(-0.35deg);
}

.auth-overlay[data-target='admin'] .auth-plan__blueprint--admin {
  opacity: 1;
  clip-path: inset(0 0 0 0);
  filter: blur(0);
  transform: translate(0, 0) scale(1) rotate(0);
}

.auth-plan__scanner {
  opacity: 0;
  fill: none;
  stroke: var(--ochre);
  stroke-linecap: round;
  stroke-width: 1.5;
  filter: drop-shadow(0 4px 8px rgba(231, 178, 79, 0.46));
  vector-effect: non-scaling-stroke;
}

.auth-overlay[data-target='admin'] .auth-plan__scanner {
  stroke: #70bbb4;
  filter: drop-shadow(0 4px 8px rgba(112, 187, 180, 0.46));
}

.auth-plan__outline,
.auth-plan__walls,
.auth-plan__route {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.auth-plan__outline {
  fill: rgba(251, 248, 241, 0.025);
  stroke: rgba(251, 248, 241, 0.2);
  stroke-width: 2;
}

.auth-plan__walls {
  stroke: rgba(251, 248, 241, 0.15);
  stroke-width: 1.5;
}

.auth-plan__route {
  stroke: rgba(231, 178, 79, 0.24);
  stroke-dasharray: 3 8;
  stroke-width: 1;
}

.auth-plan__section rect {
  fill: rgba(251, 248, 241, 0.025);
  stroke: rgba(217, 238, 234, 0.34);
  stroke-dasharray: 4 4;
  transition: fill 260ms ease, stroke 260ms ease;
}

.auth-plan__section text {
  fill: rgba(246, 240, 227, 0.54);
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 0.08em;
}

.auth-plan__section text:last-child {
  fill: rgba(217, 238, 234, 0.74);
  font-size: 13px;
}

.auth-plan__section--active rect {
  fill: rgba(231, 178, 79, 0.13);
  stroke: var(--ochre);
  stroke-dasharray: none;
  filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.16));
}

.auth-plan__section--active text {
  fill: var(--paper-light);
}

.auth-plan__section--active text:last-child {
  fill: var(--ochre);
}

.auth-plan__section--editable circle {
  fill: var(--ink);
  stroke: #a6ded8;
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.auth-plan__index {
  position: static;
  justify-self: start;
  margin-top: 28px;
  margin-left: 3%;
  padding: 3px 6px;
  color: rgba(246, 240, 227, 0.42);
  border-radius: 3px;
  background: rgba(13, 32, 50, 0.58);
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 0.09em;
  line-height: 1.2;
  white-space: nowrap;
}

.auth-visual__copy {
  max-width: 560px;
}

.auth-context-badge {
  display: inline-flex;
  min-height: 26px;
  align-items: center;
  margin-bottom: 15px;
  padding: 0 9px;
  color: var(--ink);
  border-radius: var(--radius-xs);
  background: var(--ochre);
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: color 240ms ease, background 240ms ease;
}

.auth-visual__copy h2 {
  max-width: 14ch;
  margin: 0;
  color: var(--paper-light);
  font-family: var(--font-sans);
  font-size: clamp(34px, 4vw, 54px);
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 0.94;
  text-wrap: balance;
}

.auth-visual__copy p {
  max-width: 55ch;
  margin: 15px 0 0;
  color: rgba(246, 240, 227, 0.72);
  font-size: 15px;
  line-height: 1.6;
}

.auth-context-points {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 17px;
  margin-top: 19px;
}

.auth-context-points span {
  position: relative;
  padding-left: 14px;
  color: rgba(246, 240, 227, 0.84);
  font-size: 14px;
  font-weight: 700;
}

.auth-context-points span::before {
  position: absolute;
  top: 0.46em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--teal);
  content: '';
}

.auth-panel {
  display: grid;
  min-width: 0;
  min-height: 0;
  align-content: center;
  gap: 16px;
  overflow-y: auto;
  padding: clamp(28px, 5vw, 64px);
  color: var(--ink);
  background: var(--paper-light);
}

.auth-card {
  width: 100%;
  max-width: 430px;
  justify-self: center;
}

.auth-portal-choice {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px;
  margin-bottom: 30px;
  padding: 3px;
  border-radius: 9px;
  background: var(--paper-dark);
}

.auth-portal-choice::before {
  position: absolute;
  top: 3px;
  bottom: 3px;
  left: 3px;
  z-index: 0;
  width: calc(50% - 4.5px);
  border-radius: var(--radius-xs);
  background: var(--white);
  box-shadow: 0 3px 10px rgba(20, 43, 64, 0.1);
  content: '';
  transform: translateX(0);
  transition: transform 420ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 240ms ease;
}

.auth-overlay[data-target='admin'] .auth-portal-choice::before {
  transform: translateX(calc(100% + 3px));
}

.auth-portal-choice[hidden] {
  display: none;
}

.auth-portal-choice button {
  position: relative;
  z-index: 1;
  min-height: 39px;
  color: var(--muted);
  border: 0;
  border-radius: var(--radius-xs);
  background: transparent;
  font-size: 14px;
  font-weight: 800;
  transition: color 260ms ease, transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.auth-portal-choice button:hover {
  color: var(--ink);
}

.auth-portal-choice button[aria-pressed='true'] {
  color: var(--ink);
  background: transparent;
  transform: translateY(-1px);
}

.auth-portal-choice button:focus-visible {
  outline: 3px solid rgba(42, 129, 123, 0.28);
  outline-offset: 1px;
}

.auth-card h1 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: clamp(37px, 4.2vw, 50px);
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 0.96;
  text-wrap: balance;
}

.auth-card > p {
  max-width: 42ch;
  margin: 11px 0 27px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.6;
}

.auth-overlay[data-mode='login'] .auth-card > p {
  min-height: 38px;
}

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

.auth-form label {
  margin-top: 7px;
  color: var(--ink-soft);
  font-size: 14px;
  font-weight: 800;
}

.auth-form input,
.auth-form select {
  width: 100%;
  min-height: 46px;
  padding: 0 12px;
  color: var(--ink);
  border: 1px solid var(--rule-dark);
  border-radius: var(--radius-xs);
  outline: 0;
  background: var(--white);
  caret-color: var(--teal-dark);
  font-size: 15px;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.auth-form input::placeholder {
  color: #747d7f;
}

.auth-form input:hover,
.auth-form select:hover {
  border-color: var(--ink-soft);
}

.auth-form input:focus,
.auth-form select:focus {
  border-color: var(--teal);
  box-shadow: var(--focus);
}

.auth-form .button--primary {
  min-height: 47px;
  margin-top: 13px;
}

.auth-note {
  display: block;
  margin-top: 18px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.auth-security-note {
  display: flex;
  width: 100%;
  max-width: 430px;
  justify-self: center;
  gap: 9px;
  align-items: flex-start;
  padding-top: 17px;
  color: var(--muted);
  border-top: 1px solid var(--rule);
  font-size: 13px;
  line-height: 1.45;
}

.auth-security-note svg {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
  color: var(--teal-dark);
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
}

.auth-security-note strong {
  display: block;
  margin-bottom: 2px;
  color: var(--ink-soft);
}

.auth-overlay[data-target='admin'] .auth-context-badge {
  background: var(--teal-pale);
}

.auth-overlay[data-target='admin'] .auth-plan__section--active rect {
  fill: rgba(42, 129, 123, 0.16);
  stroke: #70bbb4;
}

.auth-overlay[data-target='admin'] .auth-plan__section--active text:last-child,
.auth-overlay[data-target='admin'] .auth-context-points span::before {
  color: #a6ded8;
  fill: #a6ded8;
  background: #70bbb4;
}

.auth-overlay[data-mode='account-security'] {
  background: rgba(13, 32, 50, 0.76);
}

.auth-overlay[data-mode='account-security']::before,
.auth-overlay[data-mode='account-security'] .auth-visual,
.auth-overlay[data-mode='account-security'] .auth-security-note {
  display: none;
}

.auth-overlay[data-mode='account-security'] .auth-layout {
  width: min(470px, 100%);
  height: auto;
  min-height: 0;
  grid-template-columns: 1fr;
  border-radius: var(--radius-md);
}

.auth-overlay[data-mode='account-security'] .auth-panel {
  padding: 34px;
}

@keyframes auth-plan-arrive {
  from { opacity: 0.4; clip-path: inset(0 100% 0 0); }
  to { opacity: 1; clip-path: inset(0 0 0 0); }
}

.auth-overlay:not([hidden]) .auth-plan > svg {
  animation: auth-plan-arrive 650ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

@media (prefers-reduced-motion: reduce) {
  .auth-overlay:not([hidden]) .auth-plan > svg {
    animation: none;
  }

  .auth-plan__blueprint,
  .auth-portal-choice::before {
    transition: none;
  }

}

@media (max-height: 900px) and (min-width: 721px) {
  .auth-overlay {
    place-items: start center;
    padding-block: 18px;
  }

  .auth-overlay:not([data-mode='account-security']) .auth-layout {
    height: calc(100vh - 36px);
    min-height: 0;
  }

  .auth-visual {
    grid-template-rows: auto minmax(0, 1fr) auto;
    padding: 30px 36px;
  }

  .auth-plan {
    margin: 7px -4% -5px;
    overflow: hidden;
  }

  .auth-plan > svg {
    min-height: 0;
  }

  .auth-context-badge {
    margin-bottom: 10px;
  }

  .auth-visual__copy h2 {
    font-size: clamp(34px, 3.5vw, 43px);
  }

  .auth-visual__copy p {
    margin-top: 10px;
  }

  .auth-context-points {
    margin-top: 12px;
  }

  .auth-panel {
    padding: 30px 44px;
  }

  .auth-portal-choice {
    margin-bottom: 22px;
  }

  .auth-card h1 {
    font-size: 42px;
  }

  .auth-card > p {
    margin-bottom: 20px;
  }
}

@media (max-width: 930px) {
  .auth-layout {
    min-height: 0;
    grid-template-columns: minmax(0, 0.82fr) minmax(360px, 1fr);
  }

  .auth-visual {
    padding: 30px;
  }

  .auth-plan {
    margin-inline: -16%;
  }

  .auth-visual__copy h2 {
    font-size: 39px;
  }

  .auth-context-points {
    display: grid;
  }
}

@media (max-width: 720px) {
  .auth-overlay {
    place-items: start center;
    padding: 0;
  }

  .auth-layout {
    height: auto;
    min-height: 100vh;
    grid-template-columns: 1fr;
    border-radius: 0;
  }

  .auth-visual {
    min-height: 232px;
    grid-template-rows: auto 1fr;
    padding: 22px 22px 26px;
  }

  .auth-plan {
    position: absolute;
    inset: 30px -80px -110px 30%;
    margin: 0;
    opacity: 0.54;
  }

  .auth-plan > svg {
    min-height: 300px;
  }

  .auth-plan__index,
  .auth-context-points {
    display: none;
  }

  .auth-visual__copy {
    align-self: end;
    margin-top: 34px;
  }

  .auth-context-badge {
    min-height: 23px;
    margin-bottom: 10px;
    font-size: 13px;
  }

  .auth-visual__copy h2 {
    max-width: 16ch;
    font-size: 31px;
  }

  .auth-visual__copy p {
    display: none;
  }

  .auth-panel {
    align-content: start;
    padding: 28px 22px 36px;
  }

  .auth-portal-choice {
    margin-bottom: 24px;
  }

  .auth-card h1 {
    font-size: 38px;
  }

  .auth-card > p {
    margin-bottom: 22px;
  }

  .auth-overlay[data-mode='account-security'] {
    place-items: center;
    padding: 18px;
  }

  .auth-overlay[data-mode='account-security'] .auth-layout {
    min-height: 0;
    border-radius: var(--radius-md);
  }

  .auth-overlay[data-mode='account-security'] .auth-panel {
    padding: 26px 22px;
  }

  .source-map-card {
    grid-template-columns: 34px minmax(0, 1fr);
  }

  .source-map-card__actions {
    grid-column: 1 / -1;
    justify-items: stretch;
    width: 100%;
  }

  .source-map-card__actions .button {
    width: 100%;
  }

  .overview-metrics {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

@media (max-width: 420px) {
  .auth-brand small,
  .auth-security-note {
    display: none;
  }

  .auth-visual {
    min-height: 210px;
  }

  .auth-panel {
    padding-inline: 18px;
  }

  .auth-card h1 {
    font-size: 34px;
  }
}

@media (max-width: 690px) {

  .source-map-card {
    grid-template-columns: 34px minmax(0, 1fr);
  }

  .source-map-card__actions {
    grid-column: 1 / -1;
    justify-items: stretch;
    width: 100%;
  }

  .source-map-card__actions .button {
    width: 100%;
  }

  .overview-metrics {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

@media (max-width: 940px) {
  .details-panel__body--room {
    display: flex;
    max-height: none;
  }

  .room-device-list {
    max-height: 620px;
  }
}

@media (max-width: 560px) {
  .location-device-summary {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .location-device-summary span {
    text-align: left;
  }

  .room-device-card__facts {
    grid-template-columns: 1fr;
  }

  .room-device-card__facts > div:nth-last-child(1):nth-child(odd) {
    grid-column: auto;
  }

  .room-section--staff .room-section__label {
    display: none !important;
  }

  .room-section__device-count {
    min-height: 18px;
    padding-inline: 4px;
    font-size: 13px;
  }
}

/* Manager QC command centre */

.operations-home__register dl.is-three-up {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.operations-home__grid.is-two-up {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.qc-entry-form {
  max-width: 1180px;
  margin-inline: auto;
}

.qc-entry-form__section {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  background: var(--paper);
}

.qc-entry-form__section > header {
  display: flex;
  gap: 8px 16px;
  align-items: baseline;
  justify-content: space-between;
}

.qc-entry-form__section > header strong {
  color: var(--ink-deep);
  font-size: 15px;
}

.qc-entry-form__section > header span {
  color: var(--muted);
  font-size: 13px;
}

.qc-command-register {
  display: grid;
  grid-template-columns: minmax(250px, .72fr) minmax(620px, 1.28fr);
  gap: 28px;
  align-items: end;
  overflow: hidden;
  padding: 24px 28px;
  color: var(--white);
  border-radius: var(--radius-md);
  background: var(--ink-deep);
  box-shadow: var(--shadow);
}

.qc-command-register h2 {
  margin: 4px 0 0;
  color: inherit;
  font: 600 32px/1.05 var(--font-sans);
  letter-spacing: -.025em;
}

.qc-command-register p {
  max-width: 58ch;
  margin: 9px 0 0;
  color: rgba(255, 255, 255, .78);
  font-size: 14px;
  line-height: 1.55;
}

.qc-command-register > div > small {
  display: block;
  margin-top: 13px;
  color: rgba(255, 255, 255, .64);
  font-size: 13px;
}

.qc-command-register dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  font-variant-numeric: tabular-nums;
}

.qc-command-register dl > div {
  min-width: 0;
  padding: 4px 16px;
  border-left: 1px solid rgba(255, 255, 255, .22);
}

.qc-command-register dl > div.is-attention {
  border-radius: var(--radius-xs);
  background: rgba(180, 35, 24, .28);
}

.qc-command-register dt,
.qc-command-register dd {
  margin: 0;
}

.qc-command-register dt {
  color: rgba(255, 255, 255, .7);
  font: 500 12px/1.35 var(--font-mono);
  text-transform: uppercase;
}

.qc-command-register dd {
  margin-top: 7px;
  color: var(--white);
  font: 700 28px/1 var(--font-sans);
}

.qc-command-register dd span {
  color: rgba(255, 255, 255, .58);
  font-size: 14px;
}

.qc-command-register dl small {
  display: block;
  margin-top: 6px;
  color: rgba(255, 255, 255, .64);
  font-size: var(--type-metadata-size);
  line-height: 1.35;
}

.qc-filter-bar {
  display: grid;
  grid-template-columns: 150px minmax(150px, .9fr) minmax(150px, .9fr) 160px minmax(220px, 1.2fr);
  gap: 10px;
  align-items: end;
  padding: 13px;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  background: var(--white);
}

.qc-filter-bar label {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: var(--ink-soft);
  font-size: var(--type-metadata-size);
  font-weight: 800;
}

.qc-filter-bar select,
.qc-filter-bar input {
  width: 100%;
  min-height: 42px;
  padding: 9px 10px;
  color: var(--text);
  border: 1px solid var(--rule-dark);
  border-radius: var(--radius-xs);
  background: var(--white);
  font: 500 14px var(--font-sans);
}

.qc-filter-search {
  position: relative;
}

.qc-filter-search svg {
  position: absolute;
  z-index: 1;
  bottom: 12px;
  left: 11px;
  width: 17px;
  height: 17px;
  fill: none;
  stroke: var(--muted);
  stroke-width: 1.7;
}

.qc-filter-search input {
  padding-left: 36px;
}

.qc-command-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, .85fr);
  gap: 18px;
  align-items: stretch;
}

.qc-trend-panel,
.qc-followup-queue,
.qc-coaching,
.qc-visit-detail {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--rule);
  border-radius: var(--radius-md);
  background: var(--white);
}

.qc-trend-panel > header,
.qc-followup-queue > header,
.qc-coaching > header,
.qc-visit-detail > header {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  justify-content: space-between;
  padding: 17px 19px;
  border-bottom: 1px solid var(--rule);
}

.qc-trend-panel > header > span,
.qc-followup-queue > header > span {
  flex: 0 0 auto;
  color: var(--muted);
  font: 500 12px/1.4 var(--font-mono);
  text-transform: uppercase;
}

.qc-trend-chart {
  display: grid;
  min-height: 230px;
  grid-template-columns: repeat(6, minmax(40px, 1fr));
  gap: clamp(8px, 1.6vw, 20px);
  align-items: end;
  padding: 25px 22px 18px;
}

.qc-trend-column {
  display: grid;
  height: 180px;
  grid-template-rows: 22px minmax(100px, 1fr) 19px 18px;
  gap: 4px;
  align-items: end;
  text-align: center;
}

.qc-trend-column__value {
  color: var(--ink-deep);
  font: 700 14px var(--font-sans);
  font-variant-numeric: tabular-nums;
}

.qc-trend-column__track {
  display: flex;
  width: min(36px, 72%);
  height: 100%;
  align-items: flex-end;
  justify-self: center;
  overflow: hidden;
  border-radius: var(--radius-xs) var(--radius-xs) 0 0;
  background: var(--paper-dark);
}

.qc-trend-column__track i {
  display: block;
  width: 100%;
  border-radius: inherit;
  background: var(--action-blue);
  transform-origin: bottom;
  animation: qc-bar-rise var(--motion-focal) var(--ease) both;
}

.qc-trend-column__track i.is-empty {
  background: var(--rule-dark);
}

.qc-trend-column small,
.qc-trend-column em {
  color: var(--muted);
  font-size: var(--type-metadata-size);
  font-style: normal;
  line-height: 1.2;
}

.qc-trend-column em::after {
  content: ' visits';
}

.qc-followup-queue > div {
  max-height: 280px;
  overflow: auto;
}

.qc-followup-row {
  display: flex;
  gap: 12px;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  padding: 13px 16px;
  color: var(--text);
  border: 0;
  border-bottom: 1px solid var(--rule);
  background: transparent;
  text-align: left;
  transition: background var(--motion-control) var(--ease-standard);
}

.qc-followup-row:last-child {
  border-bottom: 0;
}

.qc-followup-row:hover,
.qc-followup-row:focus-visible {
  background: var(--action-blue-soft);
}

.qc-followup-row.is-overdue {
  background: var(--danger-surface);
}

.qc-followup-row > span:last-child {
  flex: 0 0 auto;
  text-align: right;
}

.qc-followup-row strong,
.qc-followup-row small {
  display: block;
}

.qc-followup-row strong {
  color: var(--ink-deep);
  font-size: 14px;
}

.qc-followup-row small {
  margin-top: 3px;
  color: var(--muted);
  font-size: var(--type-metadata-size);
}

.qc-status {
  display: inline-flex;
  width: max-content;
  align-items: center;
  padding: 4px 7px;
  color: var(--ink-soft);
  border-radius: 99px;
  background: var(--paper-dark);
  font-size: var(--type-metadata-size);
  font-style: normal;
  font-weight: 800;
  line-height: 1.25;
  white-space: nowrap;
}

.qc-table-wrap {
  max-width: 100%;
  overflow: auto;
  scrollbar-color: var(--rule-dark) var(--paper);
  scrollbar-width: thin;
}

.qc-table-wrap:focus-visible {
  outline: 3px solid rgba(36, 116, 184, .28);
  outline-offset: -3px;
}

.qc-table-wrap table {
  min-width: 720px;
  font-variant-numeric: tabular-nums;
}

.qc-table-wrap thead th {
  position: sticky;
  z-index: 1;
  top: 0;
  background: var(--paper);
}

.qc-status--open { color: var(--orange); background: var(--warning-surface); }
.qc-status--in-progress { color: var(--action-blue-strong); background: var(--action-blue-soft); }
.qc-status--resolved { color: var(--green); background: var(--success-surface); }
.qc-status--dismissed { color: var(--muted); background: var(--paper-dark); }

.qc-ledger-link {
  display: block;
  width: 100%;
  padding: 0;
  color: inherit;
  border: 0;
  background: transparent;
  text-align: left;
}

.qc-ledger-link:hover strong,
.qc-ledger-link:focus-visible strong {
  color: var(--action-blue-strong);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.qc-coaching > div:not(.qc-source-note) {
  display: grid;
}

.qc-coaching-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: center;
  padding: 12px 14px;
  border-bottom: 1px solid var(--rule);
}

.qc-coaching-row strong,
.qc-coaching-row small {
  display: block;
}

.qc-coaching-row strong {
  color: var(--ink-deep);
  font-size: 14px;
}

.qc-coaching-row small {
  margin-top: 2px;
  color: var(--muted);
  font-size: var(--type-metadata-size);
}

.qc-coaching-row > span:nth-child(3) {
  text-align: right;
}

.qc-coaching-row > span:nth-child(3) em {
  display: block;
  color: var(--ink-deep);
  font: 600 18px var(--font-sans);
  font-style: normal;
}

.qc-coaching-signal {
  padding: 4px 7px;
  color: var(--ink-soft);
  border-radius: 99px;
  background: var(--paper-dark);
  font-size: var(--type-metadata-size);
  font-weight: 800;
  white-space: nowrap;
}

.qc-coaching-signal--improving { color: var(--green); background: var(--success-surface); }
.qc-coaching-signal--needs-review { color: var(--red); background: var(--danger-surface); }
.qc-coaching-signal--steady { color: var(--action-blue-strong); background: var(--action-blue-soft); }

.qc-visit-detail {
  scroll-margin-top: 20px;
  animation: qc-detail-in var(--motion-layout) var(--ease) both;
}

.qc-visit-detail > header h3 {
  margin-top: 3px;
  font: 600 25px/1.1 var(--font-sans);
}

.qc-visit-detail__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, .72fr);
  gap: 0;
}

.qc-visit-evidence {
  min-width: 0;
  padding: 18px;
  border-right: 1px solid var(--rule);
}

.qc-score-detail {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  margin: 0;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  background: var(--paper);
}

.qc-score-detail > div {
  min-width: 0;
  padding: 11px 12px;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}

.qc-score-detail > div:nth-child(4n) {
  border-right: 0;
}

.qc-score-detail dt {
  color: var(--muted);
  font-size: var(--type-metadata-size);
  font-weight: 800;
  line-height: 1.3;
  text-transform: uppercase;
}

.qc-score-detail dd {
  margin: 5px 0 0;
  color: var(--ink-deep);
  font: 600 21px/1.1 var(--font-sans);
}

.qc-score-detail dd.is-text {
  overflow: hidden;
  font: 700 13px/1.35 var(--font-sans);
  text-overflow: ellipsis;
}

.qc-narrative-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.qc-narrative-grid article {
  padding: 13px;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
}

.qc-narrative-grid h4 {
  margin: 0;
  color: var(--ink-deep);
  font-size: 13px;
}

.qc-narrative-grid p {
  margin: 6px 0 0;
  color: var(--text);
  font-size: 13px;
  line-height: 1.55;
}

.qc-followup-form {
  display: grid;
  gap: 13px;
  align-content: start;
  padding: 18px;
  background: var(--paper);
}

.qc-followup-form > header {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  justify-content: space-between;
}

.qc-followup-form h4,
.qc-followup-form p {
  margin: 0;
}

.qc-followup-form h4 {
  color: var(--ink-deep);
  font-size: 16px;
}

.qc-followup-form p {
  margin-top: 3px;
  color: var(--muted);
  font-size: 13px;
}

.qc-followup-form label {
  display: grid;
  gap: 5px;
  color: var(--ink-soft);
  font-size: var(--type-metadata-size);
  font-weight: 800;
}

.qc-followup-form select,
.qc-followup-form input,
.qc-followup-form textarea {
  width: 100%;
  min-height: 42px;
  padding: 9px 10px;
  color: var(--text);
  border: 1px solid var(--rule-dark);
  border-radius: var(--radius-xs);
  background: var(--white);
  font: 500 14px var(--font-sans);
}

.qc-followup-form textarea {
  resize: vertical;
}

.qc-followup-form .work-form__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.qc-create-task {
  display: flex !important;
  gap: 9px;
  align-items: flex-start;
  padding: 11px;
  border: 1px solid var(--rule);
  border-radius: var(--radius-xs);
  background: var(--white);
}

.qc-create-task input {
  width: auto;
  min-height: 0;
  margin-top: 3px;
  accent-color: var(--action-blue);
}

.qc-create-task span,
.qc-create-task small {
  display: block;
}

.qc-create-task small {
  margin-top: 2px;
  color: var(--muted);
  font-weight: 500;
}

.qc-task-link {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  padding: 11px;
  color: var(--action-blue-strong);
  border-radius: var(--radius-xs);
  background: var(--action-blue-soft);
}

.qc-task-link > svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
}

.qc-task-link strong,
.qc-task-link small {
  display: block;
}

.qc-task-link strong {
  font-size: 13px;
}

.qc-task-link small,
.qc-followup-audit {
  color: var(--muted);
  font-size: var(--type-metadata-size);
}

@keyframes qc-bar-rise {
  from { transform: scaleY(.08); opacity: .4; }
}

@keyframes qc-detail-in {
  from { transform: translateY(8px); opacity: 0; }
}

@media (max-width: 1250px) {
  .qc-command-register {
    grid-template-columns: 1fr;
  }

  .qc-filter-bar {
    grid-template-columns: repeat(4, minmax(140px, 1fr));
  }

  .qc-filter-search {
    grid-column: 1 / -1;
  }

  .qc-visit-detail__grid {
    grid-template-columns: 1fr;
  }

  .qc-visit-evidence {
    border-right: 0;
    border-bottom: 1px solid var(--rule);
  }
}

@media (max-width: 940px) {
  .qc-command-grid,
  .qc-dashboard__grid {
    grid-template-columns: 1fr;
  }

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

  .qc-command-register dl,
  .qc-score-detail {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .qc-score-detail > div:nth-child(even) {
    border-right: 0;
  }

  .qc-coaching-row {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }

  .qc-coaching-signal {
    grid-column: 2 / -1;
    justify-self: start;
  }
}

@media (max-width: 690px) {
  .operations-home__register dl.is-three-up,
  .operations-home__grid.is-two-up,
  .qc-filter-bar,
  .qc-narrative-grid {
    grid-template-columns: 1fr;
  }

  .qc-command-register {
    padding: 20px;
  }

  .qc-visit-detail {
    scroll-margin-top: 156px;
  }

  .qc-command-register dl > div {
    padding: 11px 10px;
    border-top: 1px solid rgba(255, 255, 255, .22);
    border-left: 0;
  }

  .qc-command-register dl > div:nth-child(odd) {
    border-right: 1px solid rgba(255, 255, 255, .22);
  }

  .qc-score-detail > div:nth-child(odd) {
    border-right-color: var(--rule);
  }

  .qc-trend-chart {
    gap: 5px;
    padding-inline: 10px;
  }

  .qc-trend-column em::after {
    content: '';
  }

  .qc-followup-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .qc-followup-row > span:last-child {
    text-align: left;
  }

  .qc-entry-form__section > header,
  .qc-task-link {
    align-items: flex-start;
    grid-template-columns: auto minmax(0, 1fr);
  }

  .qc-entry-form__section > header {
    flex-direction: column;
  }

  .qc-entry-form__section > header span {
    line-height: 1.4;
  }

  .qc-followup-form .work-form__grid {
    grid-template-columns: 1fr;
  }

  .qc-task-link .text-button {
    grid-column: 2;
  }
}

@media (prefers-reduced-motion: reduce) {
  .qc-trend-column__track i,
  .qc-visit-detail {
    animation: none;
  }
}
