:root {
  color-scheme: dark;
  --bg: #101828;
  --panel: #182235;
  --panel-strong: #202c44;
  --text: #f8fafc;
  --muted: #cbd5e1;
  --line: rgba(255,255,255,.14);
  --focus: #facc15;
  --danger: #fecaca;
  --danger-bg: #7f1d1d;
  --success: #86efac;
  --warning: #facc15;
}

* { box-sizing: border-box; }

html { min-height: 100%; }
body {
  margin: 0;
  min-height: 100%;
  background: radial-gradient(circle at top left, #263b63 0, var(--bg) 42rem);
  color: var(--text);
  font-family: Arial, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
}

button, input, textarea { font: inherit; }
button { cursor: pointer; }

.skip-link {
  position: absolute;
  left: 1rem;
  top: -5rem;
  z-index: 10;
  padding: .75rem 1rem;
  background: var(--focus);
  color: #111827;
  border-radius: .75rem;
  font-weight: 800;
}
.skip-link:focus { top: 1rem; }

.ga-shell {
  width: min(46rem, calc(100% - 2rem));
  margin: 0 auto;
  padding: 1.25rem 0 3rem;
}

.ga-hero {
  padding: 2rem 0 1rem;
}

.ga-kicker {
  margin: 0 0 .5rem;
  color: var(--muted);
  font-size: .95rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

h1, h2 { line-height: 1.08; }
h1 {
  margin: 0;
  font-size: clamp(2.4rem, 11vw, 4.5rem);
  letter-spacing: -.05em;
}
h2 {
  margin: 0 0 1rem;
  font-size: clamp(1.45rem, 5vw, 2rem);
}

.ga-lead {
  margin: 1rem 0 0;
  color: var(--muted);
  font-size: 1.15rem;
}

.ga-status {
  margin-top: 1.25rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: rgba(255,255,255,.06);
  font-weight: 800;
}

.ga-card {
  margin-top: 1rem;
  padding: 1.1rem;
  border: 1px solid var(--line);
  border-radius: 1.25rem;
  background: rgba(24, 34, 53, .92);
  box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, .22);
  overflow-wrap: anywhere;
}

.ga-grid {
  display: grid;
  gap: .85rem;
}

.ga-action {
  display: block;
  width: 100%;
  min-height: 6.5rem;
  padding: 1rem;
  border: 2px solid var(--line);
  border-radius: 1.1rem;
  background: var(--panel-strong);
  color: var(--text);
  text-align: left;
}
.ga-action span {
  display: block;
  font-size: 1.45rem;
  font-weight: 900;
}
.ga-action small {
  display: block;
  margin-top: .35rem;
  color: var(--muted);
  font-size: 1rem;
}
.ga-action:disabled small {
  color: var(--muted);
}
.ga-action:hover, .ga-action:focus {
  outline: 4px solid var(--focus);
  outline-offset: 3px;
}
.ga-action:disabled {
  opacity: 1;
  cursor: not-allowed;
  border-color: rgba(203, 213, 225, .58);
  background: #111827;
  color: var(--text);
}
.ga-action-urgent {
  border-color: rgba(254, 202, 202, .55);
  background: linear-gradient(135deg, #7f1d1d, #1f2937);
}

.ga-list {
  padding-left: 1.15rem;
  color: var(--muted);
}
.ga-list li + li { margin-top: .55rem; }
.ga-safety { border-color: rgba(250,204,21,.35); }
.ga-safety p, .ga-card p { color: var(--muted); }

.ga-error {
  background: var(--danger-bg);
  border-color: var(--danger);
}
.ga-error p { color: #fff1f2; }

.ga-request-list { display: grid; gap: .8rem; }
.ga-request {
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: rgba(255,255,255,.06);
}
.ga-request strong { font-size: 1.15rem; }
.ga-request dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem;
  margin: .9rem 0 0;
}
.ga-request dt {
  color: var(--muted);
  font-size: .85rem;
}
.ga-request dd {
  margin: 0;
  font-weight: 800;
}

@media (min-width: 44rem) {
  .ga-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ga-card { padding: 1.35rem; }
}

@media (prefers-reduced-motion: no-preference) {
  .ga-action { transition: transform .16s ease, border-color .16s ease; }
  .ga-action:hover { transform: translateY(-1px); }
}

.ga-speech-controls {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: .85rem;
}

.ga-small-button,
.ga-inline-link,
.ga-print-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.8rem;
  padding: .65rem .9rem;
  border: 2px solid var(--line);
  border-radius: .85rem;
  background: rgba(255,255,255,.08);
  color: var(--text);
  font-weight: 900;
  text-decoration: none;
}
.ga-small-button:hover,
.ga-small-button:focus,
.ga-inline-link:hover,
.ga-inline-link:focus,
.ga-print-link:hover,
.ga-print-link:focus {
  outline: 4px solid var(--focus);
  outline-offset: 3px;
}
.ga-small-button:disabled,
.ga-small-button[aria-disabled="true"] {
  opacity: 1;
  cursor: not-allowed;
  background: #111827;
  color: var(--text);
  border-color: rgba(203, 213, 225, .58);
}
.ga-small-button-danger {
  border-color: rgba(254, 202, 202, .55);
  background: rgba(127,29,29,.75);
}

.ga-form,
.ga-inline-form {
  display: grid;
  gap: .85rem;
}
.ga-inline-form {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}
.ga-form label,
.ga-inline-form label {
  display: grid;
  gap: .35rem;
  color: var(--muted);
  font-weight: 800;
}
.ga-form input,
.ga-inline-form input,
.ga-copy-field {
  width: 100%;
  min-height: 3rem;
  padding: .7rem .8rem;
  border: 2px solid var(--line);
  border-radius: .8rem;
  background: #0f172a;
  color: var(--text);
}
.ga-form input:focus,
.ga-inline-form input:focus,
.ga-copy-field:focus {
  outline: 4px solid var(--focus);
  outline-offset: 3px;
}
.ga-form-button {
  margin-top: .25rem;
}
.ga-success {
  border-color: rgba(187, 247, 208, .45);
  background: rgba(20, 83, 45, .35);
}
.ga-muted {
  color: var(--muted);
}

.ga-card-note {
  margin: 0 0 1rem;
  color: var(--muted);
  line-height: 1.65;
}
.ga-camera-panel {
  display: grid;
  gap: 1rem;
}
.ga-camera-preview {
  width: 100%;
  max-height: 58vh;
  border: 2px solid var(--line);
  border-radius: 1.1rem;
  background: #020617;
  object-fit: cover;
}
.ga-question-label {
  font-weight: 900;
  color: var(--text);
}
.ga-camera-question {
  width: 100%;
  min-height: 3.2rem;
  padding: .85rem 1rem;
  border: 2px solid var(--line);
  border-radius: .9rem;
  background: #0f172a;
  color: var(--text);
  font-size: 1rem;
}
.ga-camera-question:focus {
  outline: 4px solid var(--focus);
  outline-offset: 3px;
}
.ga-camera-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
@media (max-width: 760px) {
  .ga-camera-actions {
    grid-template-columns: 1fr;
  }
}

.ga-landing-card {
  border: 2px solid var(--focus, #60a5fa);
  background: linear-gradient(135deg, rgba(56,189,248,0.10), rgba(15,23,42,0.90));
}
.ga-landing-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 1rem 0;
}
@media (max-width: 760px) {
  .ga-landing-actions { grid-template-columns: 1fr; }
}
.ga-action-primary {
  background: #2563eb;
  color: #ffffff;
  border-color: #2563eb;
  font-weight: 900;
}
.ga-action-primary:hover,
.ga-action-primary:focus {
  background: #1d4ed8;
  border-color: #1d4ed8;
}
.ga-landing-points {
  display: grid;
  gap: .65rem;
  padding-left: 1.15rem;
  margin: .35rem 0 0;
  line-height: 1.45;
}
.ga-landing-points li { color: var(--text); }
.ga-landing-points strong { color: var(--focus, #60a5fa); }

.ga-camera-modes {
  border: 2px solid var(--line);
  border-radius: 1rem;
  padding: .85rem 1rem 1rem;
  margin: 0;
  background: #0b1220;
}
.ga-camera-modes legend {
  padding: 0 .5rem;
}
.ga-mode-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .6rem;
  margin-top: .6rem;
}
@media (max-width: 760px) {
  .ga-mode-grid {
    grid-template-columns: 1fr;
  }
}
.ga-mode-chip {
  display: grid;
  gap: .15rem;
  align-items: start;
  padding: .75rem .9rem;
  border: 2px solid var(--line);
  border-radius: .85rem;
  background: #0f172a;
  color: var(--text);
  cursor: pointer;
  min-height: 3.4rem;
}
.ga-mode-chip span {
  font-weight: 800;
  font-size: 1rem;
}
.ga-mode-chip small {
  font-size: .85rem;
  color: var(--muted, #94a3b8);
  line-height: 1.25;
}
.ga-mode-chip input {
  width: 1.25rem;
  height: 1.25rem;
  margin-right: .35rem;
  vertical-align: middle;
}
.ga-mode-chip:has(input:checked) {
  border-color: var(--focus, #60a5fa);
  background: #142036;
  outline: 2px solid var(--focus, #60a5fa);
  outline-offset: 2px;
}
.ga-mode-chip:focus-within {
  outline: 3px solid var(--focus, #60a5fa);
  outline-offset: 2px;
}

.ga-menu-results {
  margin-top: 1rem;
}

.ga-menu-empty,
.ga-menu-loaded,
.ga-menu-category,
.ga-menu-admin-item {
  border: 1px solid var(--line);
  border-radius: 1.1rem;
  background: rgba(255,255,255,.045);
  padding: 1rem;
}

.ga-menu-loaded {
  margin-bottom: .9rem;
}

.ga-menu-category + .ga-menu-category,
.ga-menu-admin-item + .ga-menu-admin-item {
  margin-top: .9rem;
}

.ga-menu-category-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .75rem;
}

.ga-menu-category h3 {
  margin: 0;
  font-size: 1.35rem;
}

.ga-menu-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .8rem;
  align-items: start;
  padding: .85rem 0;
  border-top: 1px solid var(--line);
}

.ga-menu-item p,
.ga-menu-admin-item p {
  margin: .25rem 0 0;
  color: var(--muted);
}

.ga-menu-meta {
  font-size: .95rem;
}

.ga-menu-admin-list {
  display: grid;
  gap: .9rem;
}

.ga-menu-admin-item {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 1rem;
  align-items: start;
}

.ga-menu-admin-item.is-disabled {
  opacity: 1;
  border-style: dashed;
}
.ga-menu-admin-item.is-disabled p,
.ga-menu-admin-item.is-disabled .ga-menu-meta {
  color: var(--muted);
}

.ga-checkbox-label {
  display: flex !important;
  flex-direction: row !important;
  gap: .65rem;
  align-items: center;
  font-weight: 800;
}

.ga-checkbox-label input {
  width: 1.25rem;
  height: 1.25rem;
}

.ga-button-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

@media (max-width: 620px) {
  .ga-menu-category-head,
  .ga-menu-item,
  .ga-menu-admin-item {
    grid-template-columns: 1fr;
  }
}

.ga-compact-form {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.ga-pos-preview-list {
  max-height: 26rem;
  overflow: auto;
  padding-right: .25rem;
}

.ga-pos-preview-item {
  grid-template-columns: auto minmax(0, 1fr);
  cursor: pointer;
}

.ga-pos-preview-item input {
  width: 1.2rem;
  height: 1.2rem;
  margin-top: .2rem;
}

.ga-pos-preview-item span {
  display: grid;
  gap: .2rem;
}

.ga-link-row {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}

.ga-form textarea {
  width: 100%;
  min-height: 5rem;
  padding: .75rem .85rem;
  border: 2px solid var(--line);
  border-radius: .8rem;
  background: #0f172a;
  color: var(--text);
  resize: vertical;
}
.ga-form textarea:focus {
  outline: 4px solid var(--focus);
  outline-offset: 3px;
}

.ga-table-context {
  border-color: rgba(187, 247, 208, .28);
}

.ga-context-summary {
  padding: .9rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: rgba(255,255,255,.045);
}

.ga-context-list {
  margin: 0;
  padding-left: 1.15rem;
  color: var(--muted);
}
.ga-context-list li + li {
  margin-top: .45rem;
}
.ga-context-list strong {
  color: var(--text);
}
.ga-context-actions {
  margin-top: 1rem;
}

.ga-staff-script {
  border-color: rgba(250,204,21,.32);
  background: rgba(250,204,21,.08);
}
.ga-staff-script p {
  color: var(--text);
}
.ga-check-results {
  margin-top: 1rem;
}
.ga-check-summary h3,
.ga-check-preview h3 {
  margin: 1rem 0 .5rem;
  font-size: 1.1rem;
}
.ga-check-dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
  margin: .85rem 0;
}
.ga-check-dl dt {
  color: var(--muted);
  font-size: .88rem;
}
.ga-check-dl dd {
  margin: 0;
  font-weight: 900;
}
@media (max-width: 520px) {
  .ga-check-dl {
    grid-template-columns: 1fr;
  }
}

.ga-select {
  width: 100%;
  min-height: 3rem;
  padding: .7rem .8rem;
  border: 2px solid var(--line);
  border-radius: .8rem;
  background: #0f172a;
  color: var(--text);
  font-weight: 800;
}
.ga-select:focus {
  outline: 4px solid var(--focus);
  outline-offset: 3px;
}

.ga-request-status-card {
  border-color: rgba(147, 197, 253, .3);
}
.ga-request-status-list {
  padding: .9rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: rgba(255,255,255,.045);
}
.ga-request-status-list p {
  margin: 0;
}
.ga-request-status-items {
  display: grid;
  gap: .75rem;
}
.ga-request-status-item {
  padding: .85rem;
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: rgba(255,255,255,.055);
}
.ga-request-status-item strong {
  display: block;
  font-size: 1.05rem;
}
.ga-request-status-item small {
  display: block;
  margin-top: .35rem;
  color: var(--muted);
}
.ga-request-status-item.is-pending {
  border-color: rgba(250, 204, 21, .38);
}
.ga-request-status-item.is-acknowledged {
  border-color: rgba(147, 197, 253, .45);
}
.ga-request-status-item.is-completed {
  border-color: rgba(187, 247, 208, .45);
}
.ga-request-status-item.is-cancelled {
  border-color: rgba(254, 202, 202, .45);
}
.ga-request-status-actions {
  margin-top: .85rem;
}

.ga-request-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
}
.ga-status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: .25rem .65rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  color: var(--text);
  font-size: .86rem;
  font-weight: 900;
  white-space: nowrap;
}
.ga-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}
@media (max-width: 560px) {
  .ga-request-head,
  .ga-inline-actions {
    display: grid;
  }
  .ga-status-pill {
    justify-content: center;
  }
}

.ga-staff-awareness {
  border-color: rgba(147, 197, 253, .34);
}
.ga-dashboard-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .65rem;
  margin: .9rem 0;
}
.ga-dashboard-metrics div {
  padding: .8rem;
  border: 1px solid var(--line);
  border-radius: .95rem;
  background: rgba(255,255,255,.055);
}
.ga-dashboard-metrics strong {
  display: block;
  font-size: 1.65rem;
  line-height: 1;
}
.ga-dashboard-metrics span {
  display: block;
  margin-top: .25rem;
  color: var(--muted);
  font-size: .9rem;
  font-weight: 800;
}
.ga-pill-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .4rem;
}
.ga-age-pill,
.ga-attention-pill {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: .25rem .65rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--text);
  font-size: .86rem;
  font-weight: 900;
  white-space: nowrap;
}
.ga-attention-pill,
.ga-age-pill.is-needs-attention,
.ga-age-pill.is-follow-up {
  border-color: rgba(254, 202, 202, .58);
  background: rgba(127,29,29,.72);
}
.ga-age-pill.is-waiting {
  border-color: rgba(250,204,21,.48);
  background: rgba(113,63,18,.48);
}
.ga-age-pill.is-acknowledged {
  border-color: rgba(147,197,253,.46);
  background: rgba(30,64,175,.34);
}
.ga-age-pill.is-closed {
  border-color: rgba(187,247,208,.42);
  background: rgba(20,83,45,.32);
}
.ga-request.is-high-attention {
  border-color: rgba(254,202,202,.55);
  box-shadow: inset .28rem 0 0 rgba(254,202,202,.62);
}
.ga-request.is-age-needs-attention,
.ga-request.is-age-follow-up {
  background: linear-gradient(135deg, rgba(127,29,29,.36), rgba(255,255,255,.045));
}
@media (max-width: 680px) {
  .ga-dashboard-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ga-pill-row {
    justify-content: flex-start;
  }
}

.ga-concierge {
  border-color: rgba(250, 204, 21, .32);
}
.ga-concierge-form {
  display: grid;
  gap: .85rem;
}
.ga-concierge-form label {
  color: var(--text);
  font-weight: 900;
}
.ga-concierge-form textarea {
  width: 100%;
  min-height: 5rem;
  padding: .85rem 1rem;
  border: 2px solid var(--line);
  border-radius: .95rem;
  background: #0f172a;
  color: var(--text);
  resize: vertical;
}
.ga-concierge-form textarea:focus {
  outline: 4px solid var(--focus);
  outline-offset: 3px;
}
.ga-concierge-actions {
  display: grid;
  gap: .85rem;
}
.ga-concierge-results {
  margin-top: 1rem;
  padding: .9rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: rgba(255,255,255,.045);
}
.ga-concierge-results p {
  margin: 0;
}
.ga-concierge-results p + p {
  margin-top: .65rem;
}
.ga-concierge-reply strong {
  color: var(--text);
}
@media (min-width: 44rem) {
  .ga-concierge-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.ga-fieldset {
  display: grid;
  gap: .85rem;
  margin: .25rem 0;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: rgba(255,255,255,.045);
}
.ga-fieldset legend {
  padding: 0 .35rem;
  color: var(--text);
  font-weight: 900;
}
.ga-preference-fieldset {
  border-color: rgba(147, 197, 253, .34);
}
.ga-preference-summary {
  margin-top: .7rem;
  padding: .8rem;
  border: 1px solid rgba(147,197,253,.38);
  border-radius: .9rem;
  background: rgba(30, 64, 175, .18);
}
.ga-preference-summary p {
  margin: .25rem 0 0;
  color: var(--muted);
}

.ga-session-edit-panel {
  margin-top: .85rem;
  padding: .85rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: rgba(255,255,255,.045);
}
.ga-session-edit-panel summary {
  min-height: 2.75rem;
  display: flex;
  align-items: center;
  cursor: pointer;
  color: var(--text);
  font-weight: 900;
}
.ga-session-edit-panel summary:focus {
  outline: 4px solid var(--focus);
  outline-offset: 3px;
  border-radius: .75rem;
}
.ga-session-edit-panel .ga-form {
  margin-top: .8rem;
}

/* Pass 14: guest display preference controls */
.ga-display-card {
  border-color: rgba(250, 204, 21, .28);
}
.ga-display-controls {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}
.ga-toggle-button[aria-pressed="true"],
.ga-toggle-button.is-active {
  border-color: var(--focus);
  background: rgba(250, 204, 21, .18);
  color: var(--text);
  box-shadow: inset 0 0 0 2px rgba(250, 204, 21, .36);
}
.ga-display-status {
  margin: .85rem 0 0;
  color: var(--muted);
  font-weight: 800;
}
body.ga-large-text {
  font-size: 118%;
}
body.ga-large-text .ga-shell {
  width: min(54rem, calc(100% - 1.25rem));
}
body.ga-large-text .ga-card {
  padding: 1.35rem;
}
body.ga-large-text .ga-action {
  min-height: 7.25rem;
}
body.ga-large-text .ga-action span {
  font-size: 1.65rem;
}
body.ga-large-text .ga-small-button {
  min-height: 3.25rem;
  padding: .8rem 1rem;
}
body.ga-high-contrast {
  --bg: #000;
  --panel: #000;
  --panel-strong: #050505;
  --text: #fff;
  --muted: #fff;
  --line: rgba(255, 255, 255, .82);
  --focus: #ffff00;
  --danger: #fff;
  --danger-bg: #450a0a;
  background: #000;
}
body.ga-high-contrast .ga-card,
body.ga-high-contrast .ga-action,
body.ga-high-contrast .ga-status,
body.ga-high-contrast .ga-context-summary,
body.ga-high-contrast .ga-request-status-list,
body.ga-high-contrast .ga-menu-empty,
body.ga-high-contrast .ga-menu-loaded,
body.ga-high-contrast .ga-menu-category,
body.ga-high-contrast .ga-concierge-results,
body.ga-high-contrast .ga-fieldset,
body.ga-high-contrast .ga-session-edit-panel {
  background: #000;
  border-color: var(--line);
  box-shadow: none;
}
body.ga-high-contrast input,
body.ga-high-contrast textarea,
body.ga-high-contrast select,
body.ga-high-contrast .ga-copy-field {
  background: #000;
  color: #fff;
  border-color: var(--line);
}
body.ga-high-contrast .ga-small-button,
body.ga-high-contrast .ga-inline-link,
body.ga-high-contrast .ga-print-link {
  background: #000;
  border-color: var(--line);
  color: #fff;
}
body.ga-high-contrast .ga-toggle-button[aria-pressed="true"],
body.ga-high-contrast .ga-toggle-button.is-active {
  background: #ffff00;
  color: #000;
  border-color: #ffff00;
  box-shadow: none;
}
body.ga-high-contrast .ga-action:focus,
body.ga-high-contrast .ga-action:hover,
body.ga-high-contrast .ga-small-button:focus,
body.ga-high-contrast .ga-small-button:hover,
body.ga-high-contrast .ga-inline-link:focus,
body.ga-high-contrast .ga-inline-link:hover,
body.ga-high-contrast .ga-print-link:focus,
body.ga-high-contrast .ga-print-link:hover {
  outline-color: #ffff00;
}
body.ga-high-contrast .ga-action-urgent,
body.ga-high-contrast .ga-attention-pill,
body.ga-high-contrast .ga-age-pill.is-needs-attention,
body.ga-high-contrast .ga-age-pill.is-follow-up {
  background: #300;
  border-color: #fff;
}
body.ga-high-contrast .ga-action:disabled,
body.ga-high-contrast .ga-small-button:disabled,
body.ga-high-contrast .ga-small-button[aria-disabled="true"],
body.ga-high-contrast .ga-menu-admin-item.is-disabled {
  background: #000;
  color: #fff;
  border-color: #fff;
}

/* Pass 15: PWA/device support and safer live-region polish */
body {
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}
.ga-shell {
  padding-bottom: calc(3rem + env(safe-area-inset-bottom));
}
.ga-feature-status {
  margin: .7rem 0 0;
  padding: .75rem .85rem;
  border: 1px solid rgba(147, 197, 253, .32);
  border-radius: .9rem;
  background: rgba(30, 64, 175, .18);
  color: var(--muted);
  font-weight: 800;
}
[aria-busy="true"] {
  outline: 2px dashed rgba(250, 204, 21, .55);
  outline-offset: 3px;
}
button[disabled],
button[aria-disabled="true"] {
  filter: grayscale(.18);
}
body.ga-high-contrast .ga-feature-status {
  background: #000;
  color: #fff;
  border-color: var(--line);
}
@media (display-mode: standalone) {
  .ga-hero {
    padding-top: max(2rem, env(safe-area-inset-top));
  }
}

/* Pass 17: staff quick response templates */
.ga-template-preview {
  margin: -.35rem 0 0;
  padding: .65rem .75rem;
  border: 1px dashed var(--line);
  border-radius: .75rem;
  background: rgba(255,255,255,.04);
  line-height: 1.55;
}
body.ga-high-contrast .ga-template-preview {
  background: #000;
  color: #fff;
  border-color: var(--line);
}

/* Pass 19: staff session search and compact manager audit readout */
.ga-session-filter-form {
  grid-template-columns: 1fr;
}
.ga-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items: center;
}
.ga-session-summary {
  margin: .45rem 0 .65rem;
  color: var(--text);
  font-weight: 850;
}
.ga-session-audit-panel {
  border-color: rgba(250, 204, 21, .28);
}
.ga-audit-list {
  margin: .75rem 0 0;
  padding-left: 1.2rem;
  color: var(--muted);
}
.ga-audit-list li + li {
  margin-top: .45rem;
}
@media (min-width: 48rem) {
  .ga-session-filter-form {
    grid-template-columns: .65fr .85fr 1.5fr;
    align-items: end;
  }
  .ga-session-filter-form .ga-inline-actions {
    grid-column: 1 / -1;
  }
}
body.ga-high-contrast .ga-session-audit-panel,
body.ga-high-contrast .ga-audit-list {
  border-color: var(--line);
  color: #fff;
}

.ga-setup-overall,
.ga-setup-group,
.ga-setup-check {
  position: relative;
}

.ga-setup-list {
  display: grid;
  gap: .75rem;
  margin-top: 1rem;
}

.ga-setup-check {
  padding: .9rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: rgba(255,255,255,.055);
}

.ga-setup-check p {
  margin: .55rem 0 0;
}

.ga-setup-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  padding: .25rem .65rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .03em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ga-setup-badge.is-ok,
.ga-setup-check.is-ok {
  border-color: rgba(187,247,208,.45);
}

.ga-setup-badge.is-ok {
  background: rgba(20,83,45,.55);
  color: #dcfce7;
}

.ga-setup-badge.is-warn,
.ga-setup-check.is-warn,
.ga-setup-group.is-warn,
.ga-setup-overall.is-warn {
  border-color: rgba(250,204,21,.42);
}

.ga-setup-badge.is-warn {
  background: rgba(113,63,18,.72);
  color: #fef3c7;
}

.ga-setup-badge.is-error,
.ga-setup-check.is-error,
.ga-setup-group.is-error,
.ga-setup-overall.is-error {
  border-color: rgba(254,202,202,.55);
}

.ga-setup-badge.is-error {
  background: rgba(127,29,29,.72);
  color: #fff1f2;
}

.ga-setup-badge.is-info {
  background: rgba(255,255,255,.08);
  color: var(--muted);
}

.ga-setup-fix {
  padding: .7rem .8rem;
  border-left: 4px solid var(--focus);
  border-radius: .6rem;
  background: rgba(250,204,21,.08);
  color: var(--text) !important;
}

.ga-smoke-list {
  display: grid;
  gap: .85rem;
  margin-top: 1rem;
}

.ga-smoke-check {
  padding: .95rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: rgba(255,255,255,.055);
}

.ga-smoke-check p {
  margin: .6rem 0 0;
}

.ga-smoke-checklist {
  display: grid;
  gap: .75rem;
  margin: .5rem 0 0;
  padding: 0;
  list-style: none;
}

.ga-smoke-box {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .7rem;
  align-items: start;
  color: var(--text);
  font-weight: 850;
}

.ga-smoke-box input {
  width: 1.25rem;
  height: 1.25rem;
  margin-top: .12rem;
  accent-color: var(--focus);
}

.ga-smoke-box input:focus-visible {
  outline: 4px solid var(--focus);
  outline-offset: 3px;
}

body.ga-high-contrast .ga-smoke-check,
body.ga-high-contrast .ga-smoke-box {
  border-color: var(--line);
  color: #fff;
}

.ga-compact-dl {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: .75rem;
  margin: 1rem 0 0;
}

.ga-compact-dl div {
  padding: .85rem;
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: rgba(255,255,255,.06);
}

.ga-compact-dl dt {
  color: var(--muted);
  font-size: .9rem;
  font-weight: 800;
}

.ga-compact-dl dd {
  margin: .3rem 0 0;
  color: var(--text);
  font-size: 1.05rem;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.ga-checklist {
  display: grid;
  gap: .55rem;
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}

.ga-checklist li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .55rem;
  align-items: center;
  color: var(--text);
}

.ga-status-dot {
  width: .75rem;
  height: .75rem;
  border-radius: 999px;
  display: inline-block;
  background: var(--muted);
  box-shadow: 0 0 0 3px rgba(255,255,255,.08);
}

.ga-status-dot.is-ok {
  background: var(--success);
}

.ga-status-dot.is-warn {
  background: var(--warning);
}

.ga-source-table-list {
  border-top: 1px solid var(--line);
  padding-top: 1rem;
}

.ga-source-decision-grid {
  display: grid;
  gap: 1rem;
}

@media (min-width: 54rem) {
  .ga-source-decision-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

body.ga-high-contrast .ga-source-decision-grid .ga-card {
  border-color: var(--line);
}

/* Pass 25: fail-safe guest boot/readability guard */
.ga-noscript {
  margin-top: .9rem;
  padding: .9rem 1rem;
  border: 2px solid var(--danger);
  border-radius: 1rem;
  background: rgba(127, 29, 29, .72);
  color: #fff;
  font-weight: 900;
  line-height: 1.55;
}
body.ga-high-contrast .ga-noscript {
  background: #000;
  color: #fff;
  border-color: #fff;
}
.ga-action:disabled span,
.ga-action:disabled small,
.ga-small-button:disabled,
.ga-small-button[aria-disabled="true"] {
  text-decoration-thickness: .12em;
}

/* Pass 26: visible offline/server-dependency guard */
.ga-connection-status {
  margin-top: .5rem;
}
.ga-connection-status.is-online {
  border-color: rgba(134, 239, 172, .4);
}
.ga-connection-status.is-offline {
  border-color: rgba(254, 202, 202, .7);
  background: rgba(127, 29, 29, .48);
  color: #fff;
  font-weight: 900;
}
body.ga-high-contrast .ga-connection-status.is-offline {
  background: #000;
  border-color: #fff;
  color: #fff;
}

/* Pass 30: server pocket-style guest messaging */
.ga-pocket-shell {
  width: min(72rem, calc(100% - 1rem));
}
.ga-pocket-hero h1 {
  font-size: clamp(2.2rem, 8vw, 4rem);
}
.ga-pocket-bar {
  display: grid;
  gap: .9rem;
}
.ga-pocket-bar .ga-dashboard-metrics {
  margin: 0;
}
.ga-pocket-grid {
  display: grid;
  gap: 1rem;
  align-items: start;
}
.ga-pocket-card {
  margin-top: 0;
}
.ga-pocket-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .8rem;
}
.ga-pocket-card-head h2 {
  margin-bottom: .35rem;
}
.ga-pocket-message-form textarea,
.ga-pocket-request textarea {
  min-height: 4.6rem;
}
.ga-pocket-request-stack {
  display: grid;
  gap: .8rem;
  margin-top: 1rem;
}
.ga-pocket-request {
  padding: .9rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: rgba(255,255,255,.055);
  overflow-wrap: anywhere;
}
.ga-pocket-request.is-age-needs-attention,
.ga-pocket-request.is-age-follow-up {
  border-color: rgba(254, 202, 202, .56);
  background: linear-gradient(135deg, rgba(127,29,29,.34), rgba(255,255,255,.045));
}
@media (min-width: 58rem) {
  .ga-pocket-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ga-pocket-bar {
    grid-template-columns: minmax(0, 1.2fr) minmax(18rem, .8fr) auto;
    align-items: center;
  }
}
@media (max-width: 620px) {
  .ga-pocket-card-head,
  .ga-pocket-bar {
    display: grid;
  }
  .ga-pocket-shell {
    width: min(100% - .75rem, 46rem);
  }
}
body.ga-high-contrast .ga-pocket-request {
  background: #000;
  border-color: var(--line);
}


/* Pass 32: server message live-awareness bar */
.ga-pocket-live-bar {
  align-items: stretch;
}
.ga-pocket-live-bar .ga-request-head {
  align-items: flex-start;
}
.ga-pocket-live-bar .ga-dashboard-metrics {
  grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr));
  min-width: min(100%, 32rem);
}
.ga-pocket-live-bar .ga-inline-actions {
  align-content: center;
}
.ga-pocket-live-bar #gaStaffAlertStatus {
  margin-top: .5rem;
}
@media (min-width: 58rem) {
  .ga-pocket-live-bar.ga-pocket-bar {
    grid-template-columns: minmax(18rem, 1fr) minmax(28rem, 1.15fr) minmax(10rem, auto);
  }
}
@media (max-width: 780px) {
  .ga-pocket-live-bar .ga-dashboard-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Pass 34: server pocket table finder */
.ga-pocket-filter {
  border-color: rgba(147, 197, 253, .34);
}
.ga-pocket-filter-controls {
  display: grid;
  gap: .8rem;
  margin-top: .85rem;
}
.ga-pocket-filter-controls input[type="search"] {
  width: 100%;
  min-height: 3.15rem;
  padding: .75rem .9rem;
  border: 2px solid var(--line);
  border-radius: .9rem;
  background: #0f172a;
  color: var(--text);
  font-weight: 900;
}
.ga-pocket-filter-controls input[type="search"]:focus {
  outline: 4px solid var(--focus);
  outline-offset: 3px;
}
.ga-pocket-filter-toggle {
  min-height: 3rem;
  padding: .65rem .75rem;
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: rgba(255,255,255,.05);
}
.ga-pocket-card[hidden] {
  display: none !important;
}
@media (min-width: 52rem) {
  .ga-pocket-filter-controls {
    grid-template-columns: minmax(18rem, 1fr) minmax(14rem, auto) auto;
    align-items: end;
  }
}
body.ga-high-contrast .ga-pocket-filter-toggle,
body.ga-high-contrast .ga-pocket-filter-controls input[type="search"] {
  background: #000;
  color: #fff;
}



/* Pass 35: guest-readable note meter */
.ga-note-meter {
  margin: -.45rem 0 .85rem;
  padding: .55rem .7rem;
  border: 1px solid var(--line);
  border-radius: .8rem;
  background: rgba(15, 23, 42, .6);
  color: var(--muted);
  font-size: .92rem;
  font-weight: 700;
}
.ga-note-meter.is-near-limit {
  border-color: rgba(250, 204, 21, .72);
  color: var(--warning);
}
.ga-note-meter.is-too-long {
  border-color: rgba(254, 202, 202, .88);
  background: rgba(127, 29, 29, .38);
  color: var(--danger);
}
body.ga-high-contrast .ga-note-meter {
  border-color: currentColor;
  background: #000;
  color: #fff;
}
/* Pass 36: server priority-first table cards */
.ga-pocket-card-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .4rem;
}
.ga-priority-pill.is-review-first {
  border-color: rgba(254, 202, 202, .72);
  background: rgba(127, 29, 29, .38);
  color: #fee2e2;
}
.ga-priority-pill.is-waiting {
  border-color: rgba(250, 204, 21, .68);
  background: rgba(113, 63, 18, .35);
  color: #fde68a;
}
.ga-priority-pill.is-active {
  border-color: rgba(147, 197, 253, .58);
  background: rgba(30, 64, 175, .25);
}
.ga-pocket-priority-note {
  margin: .35rem 0 .85rem;
  padding: .55rem .7rem;
  border: 1px solid var(--line);
  border-radius: .8rem;
  background: rgba(255,255,255,.05);
  color: var(--text);
  font-weight: 800;
  overflow-wrap: anywhere;
}
.ga-pocket-card[data-priority-lane="review-first"] {
  border-color: rgba(254, 202, 202, .54);
  box-shadow: 0 0 0 1px rgba(254, 202, 202, .16), var(--shadow);
}
.ga-pocket-card[data-priority-lane="waiting"] {
  border-color: rgba(250, 204, 21, .45);
}
body.ga-high-contrast .ga-priority-pill,
body.ga-high-contrast .ga-pocket-priority-note {
  background: #000;
  color: #fff;
  border-color: #fff;
}
@media (max-width: 620px) {
  .ga-pocket-card-badges {
    justify-content: flex-start;
  }
}

/* Pass 37: blind guest direct server message flow */
.ga-guest-message-card {
  border-color: rgba(134, 239, 172, .36);
}
.ga-guest-message-form {
  display: grid;
  gap: .8rem;
  margin-top: .85rem;
}
.ga-guest-message-form label {
  color: var(--text);
  font-weight: 900;
}
.ga-guest-message-form textarea {
  width: 100%;
  min-height: 7rem;
  padding: .9rem 1rem;
  border: 2px solid var(--line);
  border-radius: 1rem;
  background: #0f172a;
  color: var(--text);
  font: inherit;
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.55;
  resize: vertical;
}
.ga-guest-message-form textarea:focus {
  outline: 4px solid var(--focus);
  outline-offset: 3px;
}
body.ga-large-text .ga-guest-message-form textarea {
  font-size: 1.25rem;
  min-height: 8rem;
}
body.ga-high-contrast .ga-guest-message-card,
body.ga-high-contrast .ga-guest-message-form textarea {
  background: #000;
  color: #fff;
  border-color: #fff;
}

/* Pass 37b: pre-table host seating help */
.ga-host-help-card {
  border-color: rgba(56, 189, 248, .42);
  background: linear-gradient(180deg, rgba(14, 165, 233, .12), rgba(15, 23, 42, .82));
}
.ga-host-help-form {
  display: grid;
  gap: .8rem;
  margin-top: .9rem;
}
.ga-host-help-form label {
  color: var(--text);
  font-weight: 900;
}
.ga-host-help-form input,
.ga-host-help-form select,
.ga-host-help-form textarea {
  width: 100%;
  padding: .9rem 1rem;
  border: 2px solid var(--line);
  border-radius: 1rem;
  background: #0f172a;
  color: var(--text);
  font: inherit;
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.45;
}
.ga-host-help-form textarea {
  min-height: 7rem;
  resize: vertical;
}
.ga-host-help-form select {
  appearance: none;
}
.ga-host-help-form input:focus,
.ga-host-help-form select:focus,
.ga-host-help-form textarea:focus {
  outline: 4px solid var(--focus);
  outline-offset: 3px;
}
body.ga-large-text .ga-host-help-form input,
body.ga-large-text .ga-host-help-form select,
body.ga-large-text .ga-host-help-form textarea {
  font-size: 1.25rem;
}
body.ga-high-contrast .ga-host-help-card,
body.ga-high-contrast .ga-host-help-form select,
body.ga-high-contrast .ga-host-help-form input,
body.ga-high-contrast .ga-host-help-form textarea {
  background: #000;
  color: #fff;
  border-color: #fff;
}

/* Pass 38: host-to-table handoff clarity */
.ga-host-handoff-panel {
  margin-top: 1rem;
  padding: 1rem;
  border: 2px solid rgba(56, 189, 248, .34);
  border-radius: 1rem;
  background: rgba(14, 165, 233, .10);
  color: var(--text);
}
.ga-host-handoff-panel strong {
  display: block;
  margin-bottom: .45rem;
  font-size: 1rem;
}
.ga-mini-steps {
  margin: .45rem 0 .75rem 1.25rem;
  padding: 0;
}
.ga-mini-steps li {
  margin: .35rem 0;
  line-height: 1.45;
}
body.ga-high-contrast .ga-host-handoff-panel {
  background: #000;
  border-color: #fff;
  color: #fff;
}

/* Pass 39: assigned-server handoff and guest-status clarity */
.ga-server-lane-strip {
  display: grid;
  gap: .65rem;
  margin-top: .9rem;
  padding: .85rem;
  border: 1px solid rgba(147, 197, 253, .34);
  border-radius: 1rem;
  background: rgba(30, 64, 175, .14);
}
.ga-server-lane-strip > strong {
  color: var(--text);
  font-size: 1rem;
}
.ga-server-lane-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.ga-server-lane-chip {
  min-height: 2.6rem;
  padding-inline: .75rem;
}
.ga-server-handoff-panel,
.ga-guest-status-readback {
  margin: .75rem 0;
  padding: .75rem .85rem;
  border: 1px solid rgba(134, 239, 172, .34);
  border-radius: .95rem;
  background: rgba(20, 83, 45, .16);
  color: var(--text);
  overflow-wrap: anywhere;
}
.ga-server-handoff-panel strong,
.ga-guest-status-readback strong {
  display: block;
  margin-bottom: .35rem;
  color: var(--text);
}
.ga-server-handoff-panel p,
.ga-guest-status-readback p {
  margin: .25rem 0;
  color: var(--muted);
}
.ga-server-handoff-panel span {
  color: var(--text);
  font-weight: 900;
}
body.ga-high-contrast .ga-server-lane-strip,
body.ga-high-contrast .ga-server-handoff-panel,
body.ga-high-contrast .ga-guest-status-readback {
  background: #000;
  color: #fff;
  border-color: #fff;
}
body.ga-high-contrast .ga-server-handoff-panel p,
body.ga-high-contrast .ga-guest-status-readback p {
  color: #fff;
}

/* Pass 40: host request status stays usable before seating */
body.ga-host-only-session .ga-concierge,
body.ga-host-only-session #menu-results,
body.ga-host-only-session .ga-actions,
body.ga-host-only-session .ga-camera-card {
  opacity: .72;
}
body.ga-host-only-session .ga-request-status-card {
  border-color: rgba(56, 189, 248, .46);
  box-shadow: 0 0 0 1px rgba(56, 189, 248, .12);
}
body.ga-high-contrast.ga-host-only-session .ga-request-status-card {
  border-color: #fff;
  box-shadow: none;
}

/* Pass 43: host rush queue actions for pre-table blind guest seating help */
.ga-host-rush-panel {
  border: 2px solid rgba(251, 191, 36, .38);
  background: linear-gradient(135deg, rgba(120, 53, 15, .18), rgba(14, 165, 233, .10));
}
.ga-rush-steps {
  margin-top: .75rem;
}
.ga-host-rush-actions {
  margin-top: .9rem;
  padding: .85rem;
  border: 1px solid rgba(251, 191, 36, .34);
  border-radius: 1rem;
  background: rgba(15, 23, 42, .26);
  color: var(--text);
}
.ga-rush-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  align-items: stretch;
  margin-top: .7rem;
}
.ga-mini-action-form {
  display: contents;
}
.ga-rush-action-row .ga-small-button,
.ga-rush-action-row button.ga-small-button {
  min-height: 2.75rem;
  white-space: normal;
  text-align: center;
}
.ga-small-button-primary {
  border-color: rgba(56, 189, 248, .46);
  background: rgba(14, 165, 233, .16);
}
body.ga-high-contrast .ga-host-rush-panel,
body.ga-high-contrast .ga-host-rush-actions {
  background: #000;
  color: #fff;
  border-color: #fff;
}
