.operations-heading {
  margin-block-end: 1.5rem;
  padding-block-end: 1rem;
  border-block-end: 1px solid var(--border);
}
.operations-heading h1 { margin-block: 0; }
.operations-heading p { margin-block: .35rem 0; }
.operations-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: clamp(1.4rem, 4vw, 2.5rem);
}
.operations-workspace > *, .operations-rail { min-inline-size: 0; }
.operations-rail { display: grid; gap: 1.25rem; }
.operations-workspace-alert { grid-column: 1 / -1; margin: 0; }
@media (min-width: 54rem) {
  .operations-workspace:not(.operations-single) { grid-template-columns: minmax(0, 1fr) minmax(16rem, 28%); }
}

.operations-form {
  padding: clamp(1rem, 2.6vw, 1.35rem);
  border-block-start: 2px solid var(--ink);
  background: var(--paper);
}
.operations-form > :first-child { margin-block-start: 0; }
.operations-form > :last-child { margin-block-end: 0; }
.operations-form form, .operations-edit form, .budget-entry-stage form {
  display: grid;
  gap: .75rem;
}
.operations-form form + form, .operations-edit form + form { margin-block-start: .75rem; }
.operations-form h2, .guest-queue h2, .crew-certificates h2 { margin-block: 0 .65rem; }
.operations-empty {
  margin: 0;
  padding: 1.2rem;
  border-block: 1px solid var(--border);
  color: var(--muted);
}
.operations-list { list-style: none; padding: 0; margin: 0; border-block-start: 1px solid var(--border); }
.operations-list > li { padding-block: .85rem; border-block-end: 1px solid var(--border); }
.operations-list > li > :first-child { margin-block-start: 0; }
.operations-list > li > :last-child { margin-block-end: 0; }
.operations-list :is(h2, h3, p) { margin-block: 0 .35rem; }
.operations-list a, .stay-navigation a {
  display: inline-flex;
  align-items: center;
  min-block-size: 2.75rem;
}
.operations-edit { border-block-start: 1px solid var(--border); margin-block-start: .75rem; }
.operations-edit summary, .budget-entry-stage summary, .budget-report-section summary, .guest-types summary {
  padding-block: .55rem;
  min-block-size: 2.75rem;
  color: var(--link);
  font-weight: 650;
}
.operations-edit summary:hover, .budget-entry-stage summary:hover, .budget-report-section summary:hover, .guest-types summary:hover {
  text-decoration: underline;
}
.operations-remove { border-block-start: 1px solid var(--border); margin-block-start: 1rem; padding-block-start: .75rem; }
.operations-remove .secondary { color: var(--danger-ink); }

.operations-table, .budget-report-table { overflow-x: auto; overscroll-behavior-inline: contain; }
.operations-table table, .budget-report-table table { inline-size: 100%; border-collapse: collapse; }
.operations-table :is(th, td), .budget-report-table :is(th, td) {
  text-align: start;
  padding: .8rem .75rem;
  border-block-end: 1px solid var(--border);
  vertical-align: top;
  overflow-wrap: break-word;
}
.operations-table thead th, .budget-report-table thead th {
  background: var(--paper);
  border-block-end-color: var(--control-border);
  font-size: .875rem;
  font-weight: 680;
}
.operations-table :is(th, td) time { white-space: nowrap; font-variant-numeric: tabular-nums; }
.operations-table a { display: inline-flex; align-items: center; min-block-size: 2.75rem; }

.budget-currency-note {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin: 0;
  color: var(--muted);
}
.budget-currency-note bdi {
  padding: .15rem .45rem;
  background: var(--paper);
  color: var(--ink);
  font-weight: 700;
}
.budget-rate-action { margin-block-end: .85rem; }
.budget-ledger > h2 { margin-block: 0 .7rem; }
#budget-new-entry, .budget-report-section > h2 { scroll-margin-block-start: 1rem; }
.budget-entry {
  border-block-start: 2px solid var(--ink);
  padding-block: .8rem 1.5rem;
}
.budget-entry > header, .wifi-network-heading, .contact-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .25rem .85rem;
}
.budget-entry > header { margin-block-end: .75rem; }
.budget-entry > header h2, .wifi-network-heading h2, .contact-heading h2 { margin: 0; }
.budget-entry-stages {
  border-block-start: 1px solid var(--border);
}
.budget-stage-row { border-block-end: 1px solid var(--border); }
.budget-stage-row > summary {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1fr) minmax(0, .9fr);
  align-items: baseline;
  gap: .25rem .6rem;
  padding: .55rem .65rem;
  min-block-size: 2.75rem;
  cursor: pointer;
}
.budget-stage-row > summary::-webkit-details-marker { display: none; }
.budget-stage-row > summary::marker { content: ''; }
.budget-stage-row > summary:hover { background: var(--paper); }
.budget-stage-row > summary:focus-visible { outline-offset: -3px; }
.budget-stage-row[open] > summary { background: var(--paper); }
.budget-stage-name { font-weight: 650; }
.budget-stage-action {
  display: flex;
  flex-wrap: wrap;
  justify-content: end;
  align-items: baseline;
  gap: .2rem .5rem;
  color: var(--link);
  font-size: .88rem;
}
.budget-stage-action > span:last-child { text-decoration: underline; }
.budget-stage-action::after {
  content: '';
  align-self: center;
  flex: 0 0 .42rem;
  block-size: .42rem;
  margin-inline-end: .1rem;
  border-inline-end: 2px solid currentColor;
  border-block-end: 2px solid currentColor;
  transform: rotate(45deg);
}
.budget-stage-row[open] .budget-stage-action::after { transform: rotate(225deg); }
.budget-entry-stage { margin: .7rem 0; border: 1px solid var(--border); padding-inline: .75rem; }
.budget-entry-stage legend { padding-inline: .3rem; color: var(--muted); font-size: .9rem; }
.budget-entry-stage > p { margin-block: .2rem .65rem; }
.budget-entry-stage details { border-block-start: 1px solid var(--border); margin-block-start: .65rem; }
.budget-entry-stage .sharing-actions { gap: .45rem; }
.budget-original-amount {
  font-size: 1.03rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}
.budget-actual-summary {
  display: grid;
  gap: 1rem;
  padding: clamp(.9rem, 2vw, 1.5rem);
  border: 1px solid var(--border);
  border-block-start: 3px solid var(--accent);
  background: var(--paper);
}
.budget-actual-summary > * { min-inline-size: 0; }
.budget-actual-lead h2 { margin-block: 0 .65rem; }
.budget-actual-label { color: var(--muted); margin: 0; }
.budget-actual-balance {
  margin: .05rem 0 0;
  font-size: clamp(1.65rem, 4vw, 2.7rem);
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  line-height: 1.16;
}
.budget-actual-empty { margin: 0; font-weight: 650; }
.budget-actual-breakdown {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem .8rem;
  margin: 0 0 .55rem;
}
.budget-actual-breakdown dt, .budget-actual-coverage { color: var(--muted); font-size: .88rem; }
.budget-actual-breakdown dd, .budget-actual-coverage dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.budget-actual-coverage {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem .85rem;
  margin: 0;
  padding-block-start: .5rem;
  border-block-start: 1px solid var(--border);
}
.budget-actual-coverage > div { display: flex; gap: .4rem; align-items: baseline; }
.budget-actual-coverage dd { color: var(--ink); }
.budget-actual-context > p { margin-block: .35rem 0; }
.budget-actual-context > a { margin-block-start: .65rem; }
@media (min-width: 52rem) {
  .budget-actual-summary { grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); }
}
.budget-report-section { margin-block: 1.5rem 2.5rem; border-block-start: 2px solid var(--ink); }
.budget-report-section h2 small { display: inline-block; margin-inline-start: .5rem; color: var(--muted); font-weight: 500; }
.budget-report-section h3 { margin-block-end: .35rem; }
.budget-table-hint { font-size: .9rem; }
@media (min-width: 57rem) {
  .budget-table-hint { display: none; }
}
.budget-report-table { margin-block-start: 0; }
.budget-report-table th:first-child { min-inline-size: 8rem; }
.budget-report-table td {
  text-align: end;
  font-variant-numeric: tabular-nums;
}
.budget-report-table thead th:not(:first-child) { text-align: end; }
.budget-report-table :is(th, td):last-child { background: var(--link-tint); font-weight: 750; }
.budget-performance-index li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .25rem .65rem;
  padding-block: .25rem;
}
.budget-performance-index time { color: var(--muted); font-size: .9rem; }

.stay-list, .stay-sheet { max-inline-size: 44rem; }
#add-lodging { scroll-margin-block-start: 1rem; }
.lodging-filters {
  display: grid;
  gap: .7rem 1rem;
  align-items: end;
  padding: clamp(.75rem, 2.2vw, 1.1rem);
  margin-block: 0 1.4rem;
  border-block: 1px solid var(--border);
  background: var(--paper);
}
.lodging-filters > * { min-inline-size: 0; }
@media (min-width: 24rem) {
  .lodging-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 66rem) {
  .lodging-filters { grid-template-columns: minmax(9rem, .75fr) minmax(9rem, 1fr) minmax(11rem, 1.15fr) auto; }
}
.lodging-day-heading h2 { margin-block: 0 .2rem; }
.lodging-day-heading p { margin-block: 0 .65rem; }
.lodging-day-counts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-block: .7rem 1.1rem;
  border: 1px solid var(--border);
  border-block-start: 2px solid var(--accent);
  background: var(--surface);
}
.lodging-day-counts div { padding: .55rem .65rem; }
.lodging-day-counts div + div { border-inline-start: 1px solid var(--border); }
.lodging-day-counts dt { color: var(--muted); font-size: .88rem; }
.lodging-day-counts dd { margin: 0; font-size: 1.25rem; font-weight: 740; font-variant-numeric: tabular-nums; }
.lodging-day-group { margin-block: 1.35rem; padding-block-start: .5rem; border-block-start: 1px solid var(--border); }
.lodging-day-group h3 { margin-block: 0 .45rem; }
.lodging-day-group > p { margin-block: 0; }
.lodging-assignment-heading {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: start;
  gap: .5rem 1rem;
}
.lodging-assignment-heading h2, .lodging-assignment-heading h4 { margin-block: 0 .2rem; }
.lodging-assignment-heading p { margin-block: 0 .35rem; color: var(--muted); }
.room-roster-cards { display: none; }
.room-roster-email { display: block; color: var(--muted); font-size: .85rem; font-weight: 500; }
@media (max-width: 67rem) {
  .operations-table.room-roster-table { display: none; }
  .room-roster-cards { display: block; }
}
.stay-sheet { border-block-start: 2px solid var(--ink); padding-block-start: 1rem; }
.stay-list > li { padding-block: .75rem 1.3rem; }
.stay-navigation {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem .75rem;
  margin-block: .7rem .45rem;
}
.stay-navigation p { margin: 0; }
.stay-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 7rem), 1fr));
  margin-block: .5rem 0;
  border-block-start: 1px solid var(--border);
  background: var(--paper);
}
.stay-facts > div { min-inline-size: 0; padding: .6rem .75rem; }
.stay-facts > div:first-child { border-inline-start: 3px solid var(--primary); }
.stay-facts dt, .operations-facts dt { color: var(--muted); font-size: .86rem; }
.stay-facts dd { margin: 0; font-weight: 680; font-variant-numeric: tabular-nums; }
.stay-facts time { font-size: .875rem; }
.lodging-personal-stay .stay-facts > div:first-child dd, .stay-sheet .stay-facts > div:first-child dd { font-size: 1.45rem; }
@media (max-width: 34rem) {
  .lodging-personal-stay .stay-facts, .stay-sheet .stay-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lodging-personal-stay .stay-facts > div:first-child, .stay-sheet .stay-facts > div:first-child { grid-column: 1 / -1; }
}

.guest-queue { min-inline-size: 0; }
.guest-request-form { margin-block: 1rem 1.75rem; }
.guest-requests > li {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .5rem 1rem;
}
.guest-request-name { font-size: 1.12rem; font-weight: 725; }
.guest-credential { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem .6rem; }
.guest-declined { color: var(--danger-ink); background: var(--danger-tint); }
.guest-decision { display: flex; flex-wrap: wrap; gap: .5rem; }
.guest-types details { border-block-start: 1px solid var(--border); }
.guest-types details + form { margin-block-start: .8rem; }

.contact-directory { max-inline-size: 44rem; }
.place-directory > li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .3rem .85rem;
}
.place-directory > li { padding-block: .4rem; }
.place-directory a, .contact-directory > li > a { font-size: 1.08rem; font-weight: 700; }
.place-directory p { margin: 0; color: var(--muted); }
.crew-profile-duty { display: inline-block; padding-block-end: .2rem; border-block-end: 2px solid var(--primary); font-weight: 700; }
.contact-directory .contact-duty { margin-block: .35rem .55rem; }
.operations-facts { margin: .55rem 0 0; }
.operations-facts > div {
  display: grid;
  grid-template-columns: minmax(5rem, 24%) minmax(0, 1fr);
  align-items: baseline;
  gap: .45rem;
  padding-block: .4rem;
  border-block-start: 1px solid var(--border);
}
.operations-facts dd { margin: 0; }
.wifi-facts { background: var(--paper); }
.wifi-facts > div { padding-inline: .65rem; }
.wifi-facts .tour-description { font-family: ui-monospace, monospace; }
.wifi-revisions { max-inline-size: 40rem; border-block-start: 0; }
.wifi-revisions > li {
  padding-inline-start: 1rem;
  border-inline-start: 2px solid var(--border);
}
.wifi-revisions > li:first-child { border-inline-start-color: var(--link); }
.wifi-revisions form { margin-block-start: .75rem; }

/* Crew certificate review */
.crew-expiry-check {
  padding: clamp(.9rem, 3vw, 1.35rem);
  margin-block-end: 1.2rem;
  border-block-start: 2px solid var(--link);
  background: var(--paper);
}

.crew-expiry-check h2 { margin: 0 0 .35rem; font-size: 1.15rem; }
.crew-expiry-check p { margin-block: 0 .85rem; color: var(--muted); }
.crew-expiry-form, .crew-profile-actions, .crew-certificate-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: .55rem;
}

.crew-expiry-form label { min-inline-size: 0; }
.crew-expiry-form input { inline-size: 100%; }
.crew-reference-date { margin-block: 0 .8rem; color: var(--muted); font-size: .925rem; }
.crew-reference-date time { color: var(--ink); }
.crew-readiness > li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: .9rem 1.4rem;
  align-items: start;
}

.crew-roster-person { min-inline-size: 0; overflow-wrap: anywhere; }
.crew-roster-person a { max-inline-size: 100%; text-align: start; }
.crew-roster-person p { color: var(--muted); margin: .4rem 0 0; }
.crew-roster-counts, .crew-certificate-facts { display: grid; gap: .4rem; margin: 0; }
.crew-roster-counts > div { display: flex; justify-content: space-between; gap: .5rem; }
.crew-roster-counts dt, .crew-roster-empty, .crew-certificate-facts dt { color: var(--muted); }
.crew-roster-counts dd, .crew-certificate-facts dd { margin: 0; }
.crew-roster-counts dd { font-weight: 700; font-variant-numeric: tabular-nums; }
.crew-roster-counts [data-tone="earlier"] :is(dt, dd),
.crew-expiry-status[data-tone="earlier"] { color: var(--danger-ink); }
.crew-roster-counts [data-tone="same-day"] :is(dt, dd),
.crew-expiry-status[data-tone="same-day"] { color: var(--warning-ink); }
.crew-profile { overflow-wrap: anywhere; }
.crew-profile-actions { margin-block-start: .85rem; }
.crew-form { scroll-margin-block-start: 1rem; }
.crew-certificates, .crew-certificate-list > li { min-inline-size: 0; overflow-wrap: anywhere; }
.crew-certificate-facts > div {
  display: grid;
  grid-template-columns: minmax(6.5rem, 25%) minmax(0, 1fr);
  gap: .25rem .75rem;
}
.crew-expiry-status { display: block; font-size: .875rem; font-weight: 670; }
.crew-certificate-actions { margin-block-start: .75rem; align-items: center; }
.crew-certificate-filename { min-inline-size: 0; color: var(--muted); font-size: .875rem; }
.crew-certificate-actions form { margin-inline-start: auto; }
.crew-certificate-actions form .secondary { color: var(--danger-ink); }

@media (max-width: 37rem) {
  .crew-readiness > li { grid-template-columns: minmax(0, 1fr); gap: .65rem; }
  .crew-expiry-form label { flex: 1 0 100%; }
  .crew-certificate-filename { flex-basis: 100%; }
  .crew-certificate-actions form { margin-inline-start: 0; }
}
.budget-allocation-desk {
  margin-block: .85rem;
  padding: .75rem;
  min-inline-size: 0;
  border-block-start: 2px solid var(--teal);
  background: var(--paper);
}
.budget-allocation-desk > summary { min-block-size: 2.75rem; cursor: pointer; font-weight: 700; }
.budget-allocation-summary { display: grid; gap: .35rem; margin-block: .65rem; }
.budget-allocation-summary > div, .budget-allocation-list > li {
  display: flex; justify-content: space-between; align-items: baseline; gap: .35rem .75rem; flex-wrap: wrap;
  padding-block: .45rem; border-block-end: 1px solid var(--border);
}
.budget-allocation-summary > div:last-child { border-block-end-color: var(--teal); font-weight: 700; }
.budget-allocation-summary dd { margin: 0; }
.budget-allocation-list { margin: .4rem 0; padding: 0; list-style: none; }
.budget-allocation-list li span { min-inline-size: 0; overflow-wrap: anywhere; }
.budget-allocation-list li time { display: block; font-size: .85rem; color: var(--muted); }

/* Exchange-rate provenance within a budget stage */
.budget-entry-stage .budget-values {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
  align-items: start;
  gap: .7rem;
}

.budget-fx-value {
  min-inline-size: 0;
  padding: .7rem .75rem;
  border-block-start: 2px solid var(--link);
  background: var(--paper);
}

.budget-fx-value[data-fx-state="locked"] { border-block-start-color: var(--ink); }
.budget-fx-value:is([data-fx-state="stale"], [data-fx-state="missing"]) { border-block-start-color: var(--warning); }
.budget-fx-value h3 { margin: 0; font-size: .96rem; }
.budget-fx-value .budget-fx-result {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .2rem .6rem;
  font-size: 1.17rem;
  font-weight: 720;
  font-variant-numeric: tabular-nums;
}

.budget-fx-value .budget-fx-note { color: var(--muted); font-size: .875rem; }
.budget-fx-facts { display: grid; gap: .4rem; margin-block: .55rem 0; }
.budget-fx-facts dt { color: var(--muted); font-size: .8rem; }
.budget-fx-facts dd { margin: 0; font-size: .875rem; overflow-wrap: anywhere; }
.budget-fx-facts time { unicode-bidi: isolate; font-variant-numeric: tabular-nums; }
