:root {
  --forest: #173d31;
  --forest-2: #215b45;
  --leaf: #00bf19;
  --sand: #f7f1e5;
  --sand-2: #fffaf0;
  --gold: #b58b40;
  --ink: #1d2924;
  --muted: #596270;
  --line: #ded4c3;
  --white: #fffdf8;
  --success: #2f7d4f;
  --warning: #aa7624;
  --danger: #a33d3d;
  --radius: 28px;
  --shadow: 0 20px 60px rgba(32, 43, 37, .12);
  --shadow-soft: 0 8px 28px rgba(32, 43, 37, .08);
}

/* Admin CRM UX polish: compact shell, grouped navigation, and consistent command cards */
#adminApp .compact-admin-hero {
  min-height: 0;
  padding: clamp(18px, 3vw, 30px);
  align-items: center;
  border-radius: 14px;
}

#adminApp .compact-admin-hero h1 {
  max-width: 780px;
  font-size: clamp(2rem, 3.4vw, 3rem);
  line-height: 1.03;
}

#adminApp .compact-admin-hero .hero-lede {
  max-width: 760px;
  font-size: 1rem;
}

.admin-utility-actions {
  align-self: center;
  justify-content: flex-end;
  padding: .55rem;
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: rgba(255,253,248,.78);
}

#adminApp .streamlined-admin-tabs {
  gap: .45rem;
  padding: .45rem;
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 14px;
}

#adminApp .streamlined-admin-tabs > .tab,
#adminApp .admin-more-summary {
  border-radius: 10px;
  min-height: 40px;
  padding: .65rem .85rem;
}

#adminApp .admin-more-panel {
  grid-template-columns: repeat(5, minmax(150px, 1fr));
  width: min(940px, calc(100vw - 2rem));
  align-items: start;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
}

.admin-more-group {
  display: grid;
  gap: .35rem;
  min-width: 0;
}

.admin-more-group h3 {
  margin: 0 0 .25rem;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
}

#adminApp .admin-more-group .tab {
  min-height: 38px;
  padding: .55rem .7rem;
  font-size: .86rem;
}

#adminApp .metrics-grid {
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  align-items: stretch;
}

#adminApp .metric-button {
  display: grid;
  gap: .2rem;
  min-height: 84px;
  text-align: left;
  border-radius: 12px;
}

#adminApp .metric-button span {
  overflow-wrap: anywhere;
}

#adminApp .metric-button small {
  align-self: end;
  color: var(--forest);
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
}

#dashboardPanel > .card,
#dashboardPanel > .grid > .card,
#guestsPanel > .card:first-child,
#requestsPanel > .card:first-child,
#diningPanel > .card:first-child,
#reportsPanel > .card:first-child,
#schedulePanel > .card:first-child,
#guidePanel > .card:first-child,
#propertyExperiencePanel > .card:first-child,
#experiencePanel > .card:first-child,
#partnersPanel > .card:first-child,
#resourcePanel > .card:first-child,
#tasksPanel .dispatch-shell,
#staffPanel > .card:first-child,
#shopPanel > .card:first-child,
#feedbackPanel > .card:first-child,
#announcementsPanel > .card:first-child,
#settingsPanel > .card:first-child {
  border-radius: 14px;
}

#guestsPanel .guest-status-card:has(.stay-checked-in) {
  border-left: 5px solid #2f7d4f;
}

#guestsPanel .guest-status-card:has(.stay-upcoming) {
  border-left: 5px solid #2f6fa8;
}

#guestsPanel .guest-status-card:has(.stay-checked-out),
#guestsPanel .guest-status-card:has(.stay-archived) {
  border-left: 5px solid #7a7468;
  background: #faf8f1;
}

#requestsPanel .triage-command-card + .card {
  border-style: dashed;
  background: rgba(255,253,248,.68);
}

#requestsPanel .triage-command-card + .card .section-heading .eyebrow::after {
  content: " / supporting";
}

#dashboardPanel .today-ops-queue {
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

#dashboardPanel .today-ops-item,
#dashboardPanel .dashboard-op-item,
#dashboardPanel .resource-mini-row {
  border-radius: 10px;
}

@media (max-width: 1100px) {
  #adminApp .admin-more-panel {
    grid-template-columns: repeat(3, minmax(160px, 1fr));
  }
}

@media (max-width: 760px) {
  #adminApp .compact-admin-hero {
    padding: 16px;
  }

  #adminApp .compact-admin-hero h1 {
    font-size: 2rem;
  }

  .admin-utility-actions {
    width: 100%;
    justify-content: stretch;
  }

  .admin-utility-actions .btn {
    flex: 1 1 0;
  }

  #adminApp .streamlined-admin-tabs.is-open,
  body.admin-mobile-nav-open #adminApp .streamlined-admin-tabs {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
    position: fixed;
    left: 10px;
    right: 10px;
    top: 74px;
    z-index: 90;
    max-height: 72vh;
    overflow: auto;
    width: auto;
    max-width: none;
    background: rgba(255,253,248,.98);
    box-shadow: 0 22px 70px rgba(23,61,49,.22);
  }

  #adminApp .streamlined-admin-tabs.is-open > .tab,
  body.admin-mobile-nav-open #adminApp .streamlined-admin-tabs > .tab,
  #adminApp .admin-more-summary {
    width: 100%;
    justify-content: center;
  }

  #adminApp .admin-more-menu,
  #adminApp .admin-more-panel {
    grid-column: 1 / -1;
  }

  #adminApp .admin-more-panel {
    grid-template-columns: 1fr;
    width: 100%;
    padding: .6rem;
    transform: none;
  }
}

/* Admin Experience Hub revamp final cascade guard. Keep this block at the end. */
#adminApp .streamlined-admin-tabs {
  position: sticky !important;
  top: calc(72px + env(safe-area-inset-top)) !important;
  z-index: 160 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: none !important;
  margin: 10px 0 16px !important;
  overflow: visible !important;
  border-radius: 16px !important;
  background: rgba(255,253,248,.97) !important;
  box-shadow: 0 14px 34px rgba(23,61,49,.12) !important;
}

#adminMobileQuickBar,
.admin-mobile-quickbar,
.admin-mobile-dock {
  display: none !important;
}

#adminApp .admin-more-panel {
  z-index: 180 !important;
}

.experience-fulfillment-board {
  margin: 14px 0;
}

.experience-fulfillment-columns {
  display: grid;
  grid-template-columns: repeat(5, minmax(220px, 1fr));
  gap: .8rem;
  overflow-x: auto;
  padding-bottom: .35rem;
}

.experience-fulfillment-column {
  min-width: 220px;
  display: grid;
  align-content: start;
  gap: .65rem;
  border: 1px solid rgba(23,61,49,.11);
  border-radius: 14px;
  background: #f8f6ec;
  padding: .75rem;
}

.experience-fulfillment-column header {
  display: flex;
  justify-content: space-between;
  gap: .65rem;
  align-items: flex-start;
}

.experience-fulfillment-column header strong,
.experience-fulfillment-column header small {
  display: block;
}

.experience-fulfillment-column header small {
  color: var(--muted);
  font-size: .75rem;
  line-height: 1.25;
}

.experience-fulfillment-column header em {
  min-width: 28px;
  min-height: 28px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: var(--forest);
  color: #fffdf8;
  font-style: normal;
  font-weight: 900;
}

.experience-fulfillment-list {
  display: grid;
  gap: .65rem;
}

.experience-fulfillment-card {
  display: grid;
  gap: .55rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 12px;
  background: #fffdf8;
  padding: .75rem;
  box-shadow: 0 8px 20px rgba(23,61,49,.06);
}

.experience-fulfillment-card.hop-on-card {
  border-color: rgba(181,139,64,.34);
  background: #fff9ea;
}

.experience-card-head {
  display: grid;
  gap: .35rem;
}

.experience-card-head strong,
.experience-fulfillment-card p,
.experience-card-context span {
  overflow-wrap: anywhere;
}

.experience-fulfillment-card p {
  margin: 0;
  color: var(--muted);
  font-size: .86rem;
}

.experience-card-context {
  display: grid;
  gap: .25rem;
  color: var(--forest);
  font-size: .82rem;
  font-weight: 800;
}

.experience-decline-note {
  display: grid;
  gap: .25rem;
  color: var(--muted);
  font-size: .75rem;
  font-weight: 800;
}

.experience-decline-note input {
  width: 100%;
  min-height: 36px;
}

@media (max-width: 760px) {
  #adminApp .streamlined-admin-tabs {
    display: none !important;
    position: fixed !important;
    left: 10px !important;
    right: 10px !important;
    top: calc(74px + env(safe-area-inset-top)) !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-height: min(72vh, calc(100dvh - 130px)) !important;
    overflow: auto !important;
    width: auto !important;
    margin: 0 !important;
  }

  #adminApp .streamlined-admin-tabs.is-open,
  body.admin-mobile-nav-open #adminApp .streamlined-admin-tabs {
    display: grid !important;
  }

  #adminApp .streamlined-admin-tabs .tab,
  #adminApp .admin-more-summary {
    width: 100% !important;
    justify-content: center !important;
  }

  #adminApp .admin-more-menu,
  #adminApp .admin-more-panel {
    grid-column: 1 / -1 !important;
  }

  #adminApp .admin-more-panel {
    position: static !important;
    width: 100% !important;
    transform: none !important;
    box-shadow: none !important;
  }

  .experience-fulfillment-columns {
    grid-template-columns: 1fr;
    overflow: visible;
  }

  .experience-fulfillment-column {
    min-width: 0;
  }
}

/* Operations Dispatch */
#tasksPanel > .toolbar,
#tasksPanel > .panel-card {
  display: none;
}

#tasksPanel .task-admin-grid {
  display: block;
}

#tasksPanel .task-board-shell {
  overflow: visible;
  min-height: 0;
  padding: 0;
}

.dispatch-shell {
  display: grid;
  gap: 16px;
  padding: 18px;
}

.dispatch-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.dispatch-header h2 {
  margin: 0;
  color: var(--forest);
}

.dispatch-header p {
  margin: 4px 0 0;
  color: var(--muted);
}

.dispatch-template-row,
.dispatch-critical-strip,
.dispatch-timeline {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dispatch-template-row {
  padding-bottom: 2px;
}

.dispatch-critical-strip {
  align-items: center;
  border: 1px solid rgba(163,61,61,.18);
  border-radius: 12px;
  background: #fff7f5;
  padding: 10px;
}

.dispatch-critical-strip strong {
  color: #7c2f28;
}

.dispatch-critical-strip button,
.dispatch-timeline button {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 10px;
  background: #fff;
  color: var(--forest);
  padding: 7px 9px;
  font-weight: 900;
  text-align: left;
  cursor: pointer;
}

.dispatch-critical-strip button span {
  display: block;
  color: #8a3a31;
  font-size: .7rem;
  text-transform: uppercase;
}

.dispatch-timeline {
  display: grid;
  grid-template-columns: 1.1fr 1fr .9fr;
}

.dispatch-timeline article {
  display: grid;
  gap: 7px;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 12px;
  background: #fff;
  padding: 10px;
}

.dispatch-timeline article > span {
  color: var(--forest);
  font-weight: 950;
  text-transform: uppercase;
  font-size: .78rem;
}

.dispatch-timeline button strong {
  display: inline-block;
  min-width: 54px;
  color: #245a43;
}

.dispatch-metrics,
.dispatch-dining-groups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
}

.dispatch-metrics span,
.dispatch-dining-group {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 12px;
  background: #fff;
  padding: 10px;
}

.dispatch-metrics strong {
  display: block;
  color: var(--forest);
  font-size: 1.4rem;
}

.dispatch-metrics small,
.dispatch-dining-group small {
  color: var(--muted);
  font-weight: 800;
}

.dispatch-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.dispatch-chip {
  border: 1px solid rgba(23,61,49,.16);
  border-radius: 999px;
  background: #fff;
  color: var(--forest);
  min-height: 38px;
  padding: 0 13px;
  font-weight: 900;
  cursor: pointer;
}

.dispatch-chip.active {
  background: var(--forest);
  color: #fff;
}

.dispatch-search {
  flex: 1 1 260px;
  min-width: 220px;
}

.dispatch-search input {
  min-height: 42px;
}

.dispatch-board-detail {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 14px;
  align-items: start;
}

.dispatch-kanban {
  display: grid;
  grid-template-columns: minmax(220px, 1.18fr) minmax(190px, .95fr) minmax(230px, 1.25fr) minmax(210px, 1.05fr) minmax(170px, .75fr);
  gap: 10px;
  margin: 0;
  overflow-x: auto;
}

.dispatch-lane {
  border-radius: 14px;
  background: #f6f8f4;
  min-height: 260px;
  padding: 10px;
  border-left: 4px solid #b9c3bd;
}

.lane-needs-owner { background: #f4f5f4; border-left-color: #7c8580; }
.lane-ready { background: #f4fbf5; border-left-color: #2f7d4f; }
.lane-active { background: #f3f8ff; border-left-color: #2f6fa8; }
.lane-blocked { background: #fff7f2; border-left-color: #b65d2f; }
.lane-done { background: #f6f6f3; border-left-color: #9aa09c; }

.lane-needs-owner .task-column-head strong { color: #535d58; }
.lane-ready .task-column-head strong { color: #20693d; }
.lane-active .task-column-head strong { color: #255e8f; }
.lane-blocked .task-column-head strong { color: #8a3d21; }
.lane-done .task-column-head strong { color: #606763; }

.dispatch-card-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: 8px;
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--forest);
  padding: 0;
  text-align: left;
  cursor: pointer;
}

.dispatch-card-main strong {
  display: block;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.dispatch-card-main small {
  display: block;
  color: var(--muted);
  font-weight: 800;
}

.dispatch-task-card {
  display: grid;
  gap: 8px;
  border-radius: 12px;
  padding: 10px;
  margin-bottom: 8px;
  cursor: grab;
}

.dispatch-task-card.status-blocked {
  border-color: #b94d3d;
  background: #fff7f5;
}

.dispatch-task-card.status-in-progress { border-color: rgba(47,111,168,.28); }
.dispatch-task-card.status-ready { border-color: rgba(47,125,79,.28); }
.dispatch-task-card.status-unassigned { border-color: rgba(90,98,93,.28); }
.dispatch-task-card.status-done { opacity: .78; }

.dispatch-card-top {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: start;
  gap: 8px;
}

.dispatch-card-top h3 {
  margin: 0;
  font-size: .98rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.dispatch-card-top small {
  display: block;
  color: var(--muted);
  font-weight: 800;
}

.task-icon {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: #eef4ec;
}

.dispatch-card-meta,
.dispatch-conflicts {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.dispatch-card-meta span,
.dispatch-assignee,
.dispatch-conflicts span {
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 999px;
  background: #eef4ec;
  color: var(--forest);
  padding: 3px 7px;
  font-size: .74rem;
  font-weight: 900;
}

.dispatch-assignee {
  cursor: pointer;
}

.dispatch-conflicts span {
  background: #fff0dc;
  color: #7b4a00;
}

.dispatch-conflicts.compact span {
  border-color: rgba(122,74,0,.24);
}

.task-card-detail summary {
  color: var(--forest);
  cursor: pointer;
  font-weight: 900;
}

.task-card-detail[open] {
  border-top: 1px solid rgba(23,61,49,.12);
  padding-top: 8px;
}

.task-detail-panel {
  position: sticky;
  top: 110px;
  display: grid;
  gap: 12px;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 14px;
  background: #fff;
  padding: 12px;
  box-shadow: 0 14px 32px rgba(23,61,49,.08);
}

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

.task-detail-meta,
.dispatch-warning-list,
.task-event-history {
  display: grid;
  gap: 7px;
}

.task-detail-meta {
  display: flex;
  flex-wrap: wrap;
}

.task-detail-meta span,
.workload-chip {
  border-radius: 999px;
  padding: 4px 8px;
  font-size: .75rem;
  font-weight: 900;
}

.task-detail-meta span {
  background: #eef4ec;
  color: var(--forest);
}

.dispatch-warning-list {
  border: 1px solid rgba(163,61,61,.18);
  border-radius: 12px;
  background: #fff7f5;
  padding: 10px;
}

.dispatch-warning-list h3,
.task-event-history h3,
.staff-quick-assign h3,
.task-detail-counts h3 {
  margin: 0;
  color: var(--forest);
  font-size: .95rem;
}

.dispatch-warning-list p,
.task-event-history p {
  margin: 0;
}

.task-event-history p {
  border-left: 3px solid rgba(23,61,49,.16);
  padding-left: 8px;
}

.task-event-history small,
.task-event-history span {
  display: block;
  color: var(--muted);
}

.staff-quick-assign {
  display: grid;
  gap: 8px;
}

.staff-assign-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 10px;
  background: #f8fbf7;
  color: var(--forest);
  padding: 9px;
  text-align: left;
  cursor: pointer;
}

.staff-assign-row small {
  display: block;
  color: var(--muted);
}

.workload-chip.available { background: #e7f3ec; color: #245b3b; }
.workload-chip.normal { background: #fff2d7; color: #74500f; }
.workload-chip.overloaded { background: #fdecec; color: #8d2c2c; }

.dispatch-dining-group {
  display: grid;
  gap: 6px;
}

.dispatch-dining-group div {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.dispatch-production-note {
  border: 1px dashed rgba(23,61,49,.2);
  border-radius: 12px;
  background: #fbfaf5;
  padding: 12px;
  color: var(--muted);
}

.dispatch-production-note h3 {
  margin: 0 0 4px;
  color: var(--forest);
}

@media (max-width: 1100px) {
  .dispatch-board-detail {
    grid-template-columns: 1fr;
  }

  .task-detail-panel {
    position: static;
  }

  .dispatch-kanban {
    grid-template-columns: repeat(5, minmax(210px, 78vw));
  }

  .dispatch-timeline {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .dispatch-shell {
    padding: 12px;
  }

  .dispatch-header {
    display: grid;
  }

  .dispatch-kanban {
    grid-template-columns: 1fr;
    overflow: visible;
  }

  .dispatch-detail-actions {
    grid-template-columns: 1fr;
  }

  .task-bottom-sheet {
    position: sticky;
    bottom: 0;
    z-index: 30;
    border-radius: 16px 16px 0 0;
    max-height: 72vh;
    overflow: auto;
  }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 8% 4%, color-mix(in srgb, var(--leaf), transparent 86%), transparent 27%),
    radial-gradient(circle at 88% 10%, rgba(181,139,64,.18), transparent 25%),
    linear-gradient(135deg, var(--sand), #fffdf8 48%, #eef6ee);
  color: var(--ink);
  min-height: 100vh;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a { color: inherit; }
button, input, select, textarea { font: inherit; }
input, select, textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px 14px;
  background: #fffefb;
  color: var(--ink);
  outline: none;
}
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus {
  border-color: var(--leaf);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--leaf), transparent 85%);
}
input[type="color"] { min-height: 46px; padding: 4px; }
input[type="checkbox"] { width: auto; }
label { display: grid; gap: 7px; font-weight: 800; color: #26372f; font-size: .94rem; }
code { background: color-mix(in srgb, var(--forest), transparent 90%); padding: 2px 6px; border-radius: 7px; }
hr { width: 100%; border: 0; border-top: 1px solid var(--line); margin: 8px 0; }
pre { white-space: pre-wrap; overflow: auto; background: #162720; color: #eaffef; border-radius: 16px; padding: 16px; }

.hidden { display: none !important; }
.skip-link { position: absolute; left: -999px; top: 10px; background: #fff; padding: 10px; border-radius: 8px; z-index: 1000; }
.skip-link:focus { left: 10px; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px clamp(14px, 4vw, 42px);
  background: rgba(255,253,248,.9);
  border-bottom: 1px solid rgba(222,212,195,.7);
  backdrop-filter: blur(18px);
}
.topbar.glass { background: rgba(255,253,248,.72); }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; min-width: 0; }
.brand img {
  width: 74px;
  height: 54px;
  object-fit: contain;
  border-radius: 14px;
  background: white;
  box-shadow: var(--shadow-soft);
  padding: 4px;
}
.brand strong { display: block; font-size: 1rem; line-height: 1.1; }
.brand span { display: block; color: var(--muted); font-size: .82rem; line-height: 1.2; }
.topbar-actions, .top-nav, .actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.top-nav a { text-decoration: none; font-weight: 900; color: var(--forest); padding: 9px 10px; border-radius: 999px; }
.top-nav a:hover { background: color-mix(in srgb, var(--forest), transparent 92%); }

.shell { width: min(1220px, calc(100% - 28px)); margin: 0 auto; padding: 24px 0 64px; }
.landing-shell { padding-top: 32px; }
.card {
  background: rgba(255,253,248,.94);
  border: 1px solid rgba(222,212,195,.82);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: clamp(18px, 3vw, 30px);
}
.hero, .premium-hero { display: grid; grid-template-columns: 1.25fr .75fr; gap: 26px; align-items: center; }
.premium-hero {
  min-height: 430px;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at top left, rgba(181,139,64,.24), transparent 32%),
    linear-gradient(135deg, #fffdf8, #eef7ef);
}
.premium-hero:before, .brand-hero:before {
  content: "";
  position: absolute;
  inset: auto -80px -140px auto;
  width: 380px;
  height: 380px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--leaf), transparent 84%);
}
.hero-copy, .hero-card, .guest-hero > *, .admin-hero > * { position: relative; z-index: 2; }
.eyebrow { text-transform: uppercase; letter-spacing: .12em; color: var(--gold); font-weight: 950; font-size: .76rem; margin: 0 0 8px; }
.hero h1, .auth-card h1, .admin-hero h1, .guest-hero h1 {
  font-size: clamp(2.1rem, 6vw, 4.4rem);
  line-height: .98;
  margin: 0 0 16px;
  letter-spacing: -.06em;
  color: var(--forest);
}
.hero-lede { font-size: clamp(1.04rem, 2vw, 1.28rem); line-height: 1.6; color: #455b51; max-width: 760px; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 22px; }
.floating-card { background: linear-gradient(160deg, var(--forest), var(--forest-2)); color: white; border-color: rgba(255,255,255,.2); }
.mini-phone { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); border-radius: 28px; padding: 24px; min-height: 330px; display: grid; align-content: center; gap: 16px; }
.mini-phone-bar { width: 90px; height: 6px; background: rgba(255,255,255,.45); border-radius: 99px; margin: auto; }
.mini-phone h2 { font-size: 1.7rem; margin: 0; }
.mini-phone p { color: rgba(255,255,255,.82); }
.mini-actions { display: grid; gap: 10px; }
.mini-actions span { background: rgba(255,255,255,.12); padding: 12px; border-radius: 14px; }

.landing-topbar {
  gap: 14px;
}
.landing-topbar .brand {
  flex: 1 1 auto;
}
.landing-topbar .brand strong {
  max-width: 24ch;
}
.landing-topbar #installButton {
  flex: 0 0 auto;
}
.landing-portal-hero {
  align-items: stretch;
  min-height: 0;
}
.landing-portal-hero .hero-copy {
  display: grid;
  align-content: center;
}
.landing-portal-hero h1 {
  max-width: 720px;
}
.landing-primary-actions {
  display: grid;
  grid-template-columns: minmax(260px, 1.15fr) minmax(210px, .85fr) minmax(210px, .85fr);
  gap: 12px;
  margin-top: 22px;
}
.landing-portal-action {
  display: grid;
  gap: 5px;
  min-height: 92px;
  align-content: center;
  padding: 16px 18px;
  border: 1px solid rgba(23,61,49,.16);
  border-radius: 18px;
  background: rgba(255,255,255,.76);
  color: var(--forest);
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(23,61,49,.06);
}
.landing-portal-action:hover {
  border-color: rgba(23,61,49,.34);
  transform: translateY(-1px);
}
.landing-portal-action span {
  font-weight: 950;
  font-size: 1.06rem;
}
.landing-portal-action small {
  color: var(--muted);
  line-height: 1.35;
}
.landing-portal-action.guest-action {
  background: linear-gradient(135deg, var(--forest), var(--forest-2));
  color: #fff;
  border-color: rgba(23,61,49,.35);
}
.landing-portal-action.guest-action small {
  color: rgba(255,255,255,.84);
}
.landing-status-card {
  display: grid;
}
.landing-mini-panel {
  min-height: 0;
  align-content: start;
}
.landing-mini-panel .concierge-logo {
  justify-self: center;
}
.landing-more-card {
  margin-top: 18px;
}
.landing-secondary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
}
.landing-secondary-grid a {
  display: grid;
  gap: 4px;
  min-height: 86px;
  align-content: center;
  padding: 14px;
  border: 1px solid rgba(23,61,49,.13);
  border-radius: 16px;
  background: #fffefb;
  color: var(--forest);
  text-decoration: none;
}
.landing-secondary-grid a:hover {
  border-color: rgba(23,61,49,.3);
  background: #f7fbf5;
}
.landing-secondary-grid strong {
  font-size: 1rem;
}
.landing-secondary-grid small {
  color: var(--muted);
  line-height: 1.35;
}

.grid { display: grid; gap: 18px; }
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.feature-grid, .roadmap-card { margin-top: 18px; }
.roadmap-card { display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.feature-icon, .guide-card span, .upsell-icon { font-size: 2.1rem; }
.feature-card h2, .guide-card h2, .card h2, .upsell-card h2 { margin: .2rem 0 .6rem; color: var(--forest); }
.feature-card p, .guide-card p, .card p, .upsell-card p { color: #52675d; line-height: 1.55; }

.btn {
  border: 1px solid var(--line);
  background: #fffdf8;
  color: var(--forest);
  border-radius: 999px;
  padding: 11px 17px;
  text-decoration: none;
  font-weight: 900;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-shadow: 0 4px 14px rgba(26,33,28,.04);
}
.btn:hover { transform: translateY(-1px); }
.btn.primary { background: linear-gradient(135deg, var(--forest), var(--forest-2)); color: white; border-color: transparent; }
.btn.ghost { background: rgba(255,255,255,.55); }
.btn.small { font-size: .84rem; padding: 8px 12px; }
.btn.danger { color: var(--danger); border-color: rgba(163,61,61,.25); }
.btn.full { width: 100%; }
.fine-print { font-size: .86rem; color: var(--muted); }

.auth-card { max-width: 980px; margin: 36px auto; }
.premium-login { display: grid; grid-template-columns: .9fr 1.1fr; gap: 30px; align-items: center; overflow: hidden; }
.login-art {
  min-height: 360px;
  border-radius: 24px;
  background: linear-gradient(160deg, var(--forest), #2b6048);
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.admin-art { background: linear-gradient(160deg, #243848, var(--forest)); }
.login-logo { position: absolute; top: 22px; left: 22px; width: 120px; max-height: 90px; object-fit: contain; background: white; border-radius: 18px; padding: 8px; z-index: 4; box-shadow: var(--shadow-soft); }
.orb { position: absolute; border-radius: 50%; filter: blur(3px); opacity: .55; }
.orb.one { width: 220px; height: 220px; background: var(--gold); top: -70px; right: -70px; }
.orb.two { width: 180px; height: 180px; background: var(--leaf); bottom: -60px; left: -50px; }
.login-card-preview { position: relative; z-index: 2; width: 78%; min-height: 190px; border-radius: 24px; background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.22); color: white; padding: 26px; display: grid; align-content: center; gap: 10px; box-shadow: 0 20px 70px rgba(0,0,0,.18); }
.login-card-preview span { letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.72); font-size: .72rem; }
.login-card-preview strong { font-size: 1.8rem; line-height: 1.1; }
.login-card-preview small { color: rgba(255,255,255,.78); }
.stacked-form { display: grid; gap: 14px; }
.nested { margin-top: 14px; }
.two-col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.soft-details { margin-top: 18px; }
.soft-details summary { font-weight: 900; color: var(--forest); cursor: pointer; }

.guest-hero, .admin-hero {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 22px;
  align-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at top right, rgba(181,139,64,.18), transparent 30%),
    linear-gradient(135deg, #fffdf8, #eff7ef);
}
.guest-hero h1, .admin-hero h1 { font-size: clamp(2rem, 4.5vw, 3.5rem); }
.concierge-card { width: min(300px, 100%); background: #fff; border: 1px solid var(--line); border-radius: 22px; padding: 18px; display: grid; gap: 10px; box-shadow: var(--shadow-soft); }
.concierge-logo { width: 120px; max-height: 88px; object-fit: contain; background: white; border-radius: 16px; padding: 6px; justify-self: center; }
.concierge-label { color: var(--gold); font-weight: 950; text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; }
.stay-chips { display: flex; gap: 9px; flex-wrap: wrap; margin-top: 16px; }
.stay-chips span { background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 8px 11px; color: #4b5e55; }
.stay-chips strong { color: var(--forest); margin-right: 6px; }
.quick-actions { margin: 16px 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; padding: 14px; }
.quick-action { border: 1px solid var(--line); border-radius: 18px; background: #fffdf9; padding: 15px; text-align: left; text-decoration: none; cursor: pointer; color: var(--ink); display: grid; gap: 4px; }
.quick-action span { font-size: 1.5rem; }
.quick-action strong { color: var(--forest); }
.quick-action small { color: var(--muted); }

.tabs { display: flex; gap: 8px; overflow: auto; margin: 18px 0; padding: 6px; }
.sticky-tabs { position: sticky; top: 76px; z-index: 20; background: rgba(246,241,232,.82); backdrop-filter: blur(12px); border-radius: 999px; }
.tab { white-space: nowrap; border: 1px solid var(--line); background: #fffdf8; border-radius: 999px; padding: 10px 14px; font-weight: 900; color: var(--forest); cursor: pointer; }
.tab.active { background: var(--forest); color: white; border-color: var(--forest); }
.tab.has-request-activity {
  align-items: center;
  display: inline-flex;
  gap: 7px;
}

.tab-request-count {
  align-items: center;
  background: #eef5ef;
  border: 1px solid rgba(23, 61, 49, .18);
  border-radius: 999px;
  color: #173d31;
  display: inline-flex;
  font-size: .72rem;
  font-weight: 950;
  justify-content: center;
  line-height: 1;
  min-width: 22px;
  padding: 4px 7px;
}

.tab-request-count.is-new {
  background: #fff3c8;
  border-color: rgba(181, 139, 64, .28);
  color: #6f4d12;
}

.tab-request-count.is-urgent {
  background: #fdecea;
  border-color: rgba(180, 67, 50, .26);
  color: #873125;
}

.tab.active .tab-request-count {
  background: rgba(255, 255, 255, .18);
  border-color: rgba(255, 255, 255, .28);
  color: #fffdf8;
}
.tab-panel { display: none; }
.tab-panel.active { display: block; }
.section-heading { display: flex; justify-content: space-between; align-items: start; gap: 12px; margin-bottom: 14px; }
.section-heading h2 { margin: 0; }

.badge { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; background: color-mix(in srgb, var(--forest), transparent 91%); color: var(--forest); font-size: .78rem; font-weight: 900; padding: 5px 9px; }
.badges { display: flex; gap: 6px; flex-wrap: wrap; }
.status-open { background: rgba(170,118,36,.12); color: var(--warning); }
.status-in-progress { background: color-mix(in srgb, var(--forest), transparent 88%); color: var(--forest); }
.status-waiting-on-guest { background: rgba(97,97,128,.12); color: #55537b; }
.status-resolved, .status-closed { background: rgba(47,125,79,.13); color: var(--success); }
.priority-urgent { background: rgba(163,61,61,.13); color: var(--danger); }
.priority-high { background: rgba(170,118,36,.13); color: var(--warning); }
.priority-normal { background: rgba(47,125,79,.12); color: var(--success); }

.stack-list, .chat-list, .timeline-list { display: grid; gap: 12px; }
.request-item, .announcement, .guest-item, .notice-card, .meal-mini, .guide-admin-item { border: 1px solid var(--line); border-radius: 18px; padding: 15px; background: #fffdf9; }
.request-title, .guest-line { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.request-title h3, .guest-line h3, .announcement h3, .notice-card h3 { margin: 0; color: var(--forest); }
.request-meta, .item-meta, .message-meta { display: flex; gap: 8px; flex-wrap: wrap; color: var(--muted); font-size: .85rem; margin: 6px 0; }
.staff-note, .meal-note { background: color-mix(in srgb, var(--forest), transparent 94%); border-left: 4px solid var(--leaf); border-radius: 12px; padding: 10px !important; }
.request-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.message { border-radius: 18px; padding: 14px; max-width: 88%; box-shadow: var(--shadow-soft); }
.message.staff { background: #f2efe5; justify-self: start; }
.message.guest { background: #e8f3ea; justify-self: end; }
.message p { margin: .3rem 0 0; }
.whatsapp-box { border: 1px solid rgba(47,125,79,.23); background: linear-gradient(135deg,#eef8ee,#fffdf8); border-radius: 18px; padding: 16px; margin-bottom: 14px; }

.meal-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 12px; }
.admin-meal-calendar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.meal-card { border: 1px solid var(--line); border-radius: 18px; background: #fffdf9; padding: 14px; display: grid; gap: 12px; }
.meal-date { display: flex; justify-content: space-between; gap: 8px; color: var(--forest); }
.meal-section { display: grid; gap: 6px; }
.meal-section span { font-size: .72rem; color: var(--gold); font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.meal-section h3 { font-size: 1rem; margin: 3px 0; color: var(--forest); }
.meal-section p { font-size: .9rem; margin: 0; }
.muted-card { opacity: .62; }
.timeline-item { display: grid; grid-template-columns: 116px 1fr; gap: 14px; border: 1px solid var(--line); border-radius: 18px; padding: 14px; background: #fffdf9; }
.timeline-time { display: grid; gap: 3px; color: var(--forest); }
.timeline-time span { color: var(--muted); font-size: .82rem; }
.timeline-item h3 { margin: 0; color: var(--forest); }
.timeline-item p { margin: .25rem 0 0; }
.empty-state { border: 1px dashed var(--line); border-radius: 18px; padding: 20px; color: var(--muted); text-align: center; background: rgba(255,253,248,.6); }

.metrics-grid { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 12px; margin: 16px 0; }
.metric-card { background: var(--white); border: 1px solid var(--line); border-radius: 18px; padding: 16px; box-shadow: var(--shadow-soft); }
.metric-card span { display: block; color: var(--muted); font-size: .82rem; font-weight: 850; }
.metric-card strong { display: block; color: var(--forest); font-size: clamp(1.15rem, 2.2vw, 1.8rem); margin-top: 5px; }
.admin-hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.filters { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.filters label { min-width: 180px; }
.check-row { display: flex !important; grid-template-columns: auto 1fr !important; align-items: center; gap: 10px; }
.split-actions { justify-content: space-between; }
.wide-card { min-width: 0; }
.dashboard-lower { margin-top: 18px; }

.guide-intro { margin-bottom: 18px; }
.guide-card { min-height: 220px; position: relative; overflow: hidden; }
.guide-card.featured-guide { border-color: color-mix(in srgb, var(--leaf), transparent 55%); background: linear-gradient(135deg, #fffdf8, color-mix(in srgb, var(--leaf), white 92%)); }
.guide-admin-item { display: grid; grid-template-columns: 58px 1fr; gap: 14px; }
.guide-admin-icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 18px; background: color-mix(in srgb, var(--leaf), white 85%); font-size: 1.8rem; }
.upsell-card { display: grid; align-content: start; gap: 10px; }
.price-pill { display: inline-flex; width: fit-content; border-radius: 999px; color: var(--forest); background: color-mix(in srgb, var(--gold), white 78%); padding: 7px 11px; }
.review-card { border: 1px solid var(--line); border-radius: 22px; background: linear-gradient(135deg, #fffaf0, #fffdf8); padding: 22px; display: grid; gap: 12px; }
.review-stars { letter-spacing: .1em; color: #74500f; font-size: 1.2rem; }
.widget-preview { margin-top: 16px; }
.mini-metrics { grid-template-columns: repeat(3, minmax(0,1fr)); }

.feature-menu-card { margin-top: 18px; }
.feature-menu { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 22px; }
.compact-feature-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mini-feature-menu { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.feature-link {
  border: 0;
  text-align: left;
  background: transparent;
  display: grid;
  grid-template-columns: 42px 1fr;
  grid-template-areas: "icon title" "icon body";
  column-gap: 12px;
  row-gap: 2px;
  padding: 12px;
  border-radius: 16px;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}
.feature-link:hover { background: rgba(255,255,255,.7); box-shadow: var(--shadow-soft); }
.feature-link .feature-icon-box { grid-area: icon; }
.feature-link strong { grid-area: title; color: #333b4a; line-height: 1.25; }
.feature-link small { grid-area: body; color: #657095; line-height: 1.35; }
.feature-module-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.feature-module-group {
  display: grid;
  gap: 10px;
  align-content: start;
  padding: 14px;
  border: 1px solid rgba(23,61,49,.08);
  border-radius: 14px;
  background: rgba(255,255,255,.5);
}
.feature-module-group h3 { margin: 0; color: var(--forest); font-size: 1rem; }
.feature-module-group .mini-feature-menu { display: grid; grid-template-columns: 1fr; gap: 8px; }
.feature-module-group .feature-link { background: rgba(255,255,255,.38); border: 1px solid rgba(23,61,49,.06); }
.experience-workflow-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.experience-workflow-card {
  display: grid;
  gap: 6px;
  align-content: start;
  min-height: 168px;
  padding: 14px;
  border: 1px solid rgba(23,61,49,.13);
  border-radius: 14px;
  background: rgba(255,255,255,.64);
  text-align: left;
  cursor: pointer;
}
.experience-workflow-card:hover { box-shadow: var(--shadow-soft); background: #fff; }
.experience-workflow-card span { color: var(--muted); font-size: .82rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.experience-workflow-card strong { color: var(--forest); font-size: 1.7rem; line-height: 1; }
.experience-workflow-card small { color: var(--forest); font-weight: 800; }
.experience-workflow-card p { margin: 0; color: var(--muted); line-height: 1.35; }
.experience-workflow-card em { margin-top: auto; font-style: normal; color: var(--forest); font-weight: 900; }
.experience-command-grid { margin-bottom: 14px; }
.experience-attention-row { width: 100%; border: 0; background: rgba(255,255,255,.54); cursor: pointer; }
.quick-touch-menu { gap: 12px 18px; }
.quick-touch-link {
  grid-template-columns: 42px minmax(0, 1fr) auto;
  grid-template-areas: "icon title meta" "icon body meta";
  align-items: center;
  border: 1px solid rgba(23,61,49,.08);
  background: rgba(255,255,255,.48);
}
.quick-touch-link.warning { background: rgba(255, 248, 220, .62); border-color: rgba(146, 96, 12, .18); }
.quick-touch-link.ok { background: rgba(244, 250, 241, .72); border-color: rgba(32, 120, 74, .16); }
.quick-touch-meta { grid-area: meta; display: grid; justify-items: end; gap: 4px; min-width: 96px; color: var(--muted); font-size: .78rem; text-align: right; }
.quick-touch-meta .badge { width: fit-content; white-space: nowrap; }
.quick-touch-meta em { font-style: normal; color: var(--forest); font-weight: 800; }
.experience-command-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 16px;
  align-items: center;
  margin-bottom: 14px;
  padding: 16px;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 16px;
  background: linear-gradient(180deg, #fffef9, #f6faf3);
  box-shadow: 0 12px 28px rgba(23,61,49,.07);
}
.experience-command-hero h2 { margin: 0; color: var(--forest); font-size: 1.65rem; }
.experience-command-hero p { margin: 4px 0 0; color: var(--muted); max-width: 68ch; }
.dispatch-hero {
  grid-template-columns: minmax(0, 1fr) minmax(320px, auto) minmax(260px, auto);
}
.compact-dispatch-hero {
  align-items: stretch;
}
.experience-live-status-bar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  align-content: center;
}
.experience-live-status-bar .btn span {
  margin-left: 4px;
  opacity: .72;
}
.experience-hero-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(72px, 1fr));
  gap: 8px;
}
.experience-hero-metrics span {
  display: grid;
  gap: 2px;
  padding: 10px;
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: rgba(255,255,255,.78);
  text-align: center;
}
.experience-hero-metrics strong { color: var(--forest); font-size: 1.35rem; line-height: 1; }
.experience-hero-metrics small { color: var(--muted); font-size: .76rem; }
.experience-filter-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 360px);
  gap: 12px;
  align-items: end;
  margin: 0 0 14px;
}
.experience-filter-bar .request-actions { align-items: center; }
.experience-filter-bar label { margin: 0; }
.dispatch-filter-bar {
  position: sticky;
  top: 88px;
  z-index: 6;
  padding: 8px;
  border: 1px solid rgba(23,61,49,.08);
  border-radius: 16px;
  background: rgba(250, 246, 237, .92);
  backdrop-filter: blur(8px);
}
.experience-dispatch-shell {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}
.experience-next-action-rail {
  position: sticky;
  top: 164px;
  z-index: 2;
  display: grid;
  gap: 8px;
  margin-bottom: 14px;
}
.experience-next-action-rail strong {
  color: var(--forest);
  font-size: 1rem;
}
.experience-next-action-rail small {
  color: var(--muted);
  line-height: 1.35;
}
.experience-next-action-rail.all-clear {
  background: #f4faf1;
}
.experience-lane-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.experience-lane-card {
  display: grid;
  gap: 6px;
  min-height: 142px;
  padding: 14px;
  border: 1px solid rgba(23,61,49,.13);
  border-radius: 14px;
  background: rgba(255,255,255,.7);
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.experience-lane-card:hover,
.experience-priority-row:hover,
.experience-slot-day:hover,
.experience-provider-row:hover,
.experience-health-row:hover,
.experience-blocker-row:hover,
.experience-request-timeline-row:hover {
  border-color: rgba(39,92,66,.34);
  background: #fff;
  box-shadow: var(--shadow-soft);
}
.experience-lane-card span,
.experience-priority-type {
  color: var(--muted);
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.experience-lane-card strong { color: var(--forest); font-size: 1.8rem; line-height: 1; }
.experience-lane-card small { color: var(--muted); line-height: 1.35; }
.experience-lane-card em { width: fit-content; font-style: normal; }
.experience-lane-card b { margin-top: auto; color: var(--forest); }
.experience-lane-trend {
  display: inline-flex;
  width: fit-content;
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(23,61,49,.07);
}
.experience-stepper {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
  margin: 0 0 14px;
}
.experience-stepper span {
  position: relative;
  display: grid;
  gap: 3px;
  min-height: 58px;
  padding: 10px;
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: rgba(255,255,255,.62);
}
.experience-stepper span.active { border-color: rgba(181,139,64,.42); background: #fff8dd; }
.experience-stepper span.todo { opacity: .72; }
.experience-stepper strong { color: var(--forest); font-size: .85rem; }
.experience-stepper small { color: var(--muted); }
.experience-now-card,
.experience-today-card,
.experience-blocked-card,
.experience-request-timeline-card,
.experience-priority-card { margin-bottom: 14px; }
.experience-search-results {
  margin: 0 0 14px;
}
.experience-search-result-grid,
.experience-preview-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.experience-search-result-grid section,
.experience-preview-grid article {
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: rgba(255,255,255,.55);
}
.experience-search-result-grid strong,
.experience-preview-grid strong {
  color: var(--forest);
  font-size: .82rem;
}
.experience-search-result,
.experience-blocked-group {
  display: grid;
  width: 100%;
  min-width: 0;
  gap: 3px;
  padding: 8px;
  border: 1px solid rgba(23,61,49,.08);
  border-radius: 10px;
  background: rgba(255,255,255,.7);
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.experience-search-result span {
  color: var(--forest);
  font-weight: 900;
}
.experience-search-result small,
.experience-preview-grid small {
  color: var(--muted);
  line-height: 1.3;
}
.experience-priority-list,
.experience-now-list,
.experience-today-strip,
.experience-request-timeline-list,
.experience-slot-list,
.experience-provider-list,
.experience-resource-list,
.experience-health-list,
.experience-blocker-list,
.experience-blocked-groups,
.experience-cleanup-list {
  display: grid;
  gap: 8px;
}
.experience-priority-row,
.experience-now-row,
.experience-today-chip,
.experience-request-timeline-row,
.experience-trip-card,
.experience-slot-day,
.experience-provider-row,
.experience-resource-row,
.experience-health-row,
.experience-blocker-row,
.experience-cleanup-row {
  display: grid;
  width: 100%;
  min-width: 0;
  gap: 5px;
  padding: 12px;
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: rgba(255,255,255,.58);
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.experience-priority-row {
  grid-template-columns: minmax(120px, .24fr) minmax(0, .3fr) minmax(0, 1fr) auto;
  align-items: center;
}
.experience-priority-row .experience-row-timeline {
  grid-column: 1 / -1;
}
.experience-request-timeline-row {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}
.experience-trip-card {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
}
.experience-trip-card > button:first-child {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.experience-advance-btn {
  align-self: center;
  min-height: 38px;
}
.experience-request-timeline-row .experience-row-timeline,
.experience-trip-card .experience-row-timeline {
  grid-column: 1 / -1;
}
.experience-row-timeline {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 4px;
  margin-top: 4px;
}
.experience-row-timeline i {
  display: block;
  min-width: 0;
  padding: 4px 6px;
  border-radius: 999px;
  background: #edf1e9;
  color: var(--muted);
  font-size: .72rem;
  font-style: normal;
  font-weight: 800;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.experience-row-timeline i.done,
.experience-row-timeline i.current {
  background: #e7f3ec;
  color: var(--forest);
}
.experience-row-timeline i.current {
  outline: 2px solid rgba(39,92,66,.22);
}
.experience-priority-row.blocked,
.experience-blocker-row {
  border-color: rgba(169,68,66,.25);
  background: #fff7f5;
}
.experience-priority-row strong,
.experience-now-row strong,
.experience-today-chip strong,
.experience-provider-row strong,
.experience-resource-row strong,
.experience-health-row strong,
.experience-blocker-row strong,
.experience-cleanup-row strong { color: var(--forest); }
.experience-priority-row small,
.experience-now-row small,
.experience-today-chip small,
.experience-provider-row small,
.experience-resource-row small,
.experience-health-row small,
.experience-blocker-row small,
.experience-cleanup-row small { color: var(--muted); line-height: 1.35; }
.experience-priority-row em,
.experience-blocker-row em,
.experience-blocked-group em,
.experience-cleanup-row em {
  justify-self: end;
  color: var(--forest);
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}
.experience-now-list {
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}
.experience-now-sort {
  margin: 0 0 10px;
}
.experience-now-row {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
}
.experience-now-row small {
  grid-column: 1 / -1;
}
.experience-today-strip {
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}
.experience-today-chip {
  align-content: start;
}
.experience-today-chip em {
  width: fit-content;
  font-style: normal;
}
.experience-today-chip span {
  color: var(--forest);
  font-weight: 900;
}
.experience-queue-tabs {
  margin: 0 0 10px;
}
.experience-queue-tabs .btn span {
  margin-left: 4px;
  opacity: .75;
}
.experience-slot-day {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}
.experience-slot-day span,
.experience-slot-day small { grid-column: 1; }
.experience-slot-day strong { grid-column: 2; grid-row: 1 / span 2; color: var(--forest); }
.experience-slot-day i {
  grid-column: 1 / -1;
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8eee4;
}
.experience-slot-day i b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #1eb65c;
}
.experience-provider-row,
.experience-resource-row,
.experience-health-row,
.experience-blocker-row,
.experience-blocked-group,
.experience-cleanup-row {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}
.experience-preview-card {
  margin-bottom: 14px;
}
.experience-health-row.ok { background: #f4faf1; }
.experience-reference-details { margin-bottom: 14px; }
.experience-editor-drawer {
  margin-top: 12px;
}
.experience-editor-drawer > summary {
  min-height: 44px;
  display: flex;
  align-items: center;
  color: var(--forest);
  font-weight: 900;
}
.feature-icon-box {
  width: 38px;
  height: 38px;
  border-radius: 11px;
  display: grid;
  place-items: center;
  color: white;
  font-weight: 950;
}
.feature-icon-box.orange { background: #ff7a2f; }
.feature-icon-box.blue { background: #3766ff; }
.feature-icon-box.gold { background: #ffbd33; }
.feature-icon-box.purple { background: #a64be2; }
.feature-icon-box.green { background: #1eb65c; }
.feature-icon-box.google { background: #fff; color: #4285f4; border: 1px solid var(--line); }

.brand-upload-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 16px; }
.upload-preview-box { border: 1px solid var(--line); border-radius: 18px; padding: 14px; background: #fffdf9; display: grid; gap: 12px; }
.upload-preview-box img { width: 100%; max-height: 150px; object-fit: contain; background: white; border-radius: 14px; border: 1px solid #f0eadf; padding: 10px; }
.small-preview img { max-height: 92px; }
.colors-grid { margin-top: 4px; }

.settings-workspace {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr) 300px;
  gap: 16px;
  align-items: start;
  padding-bottom: 82px;
}
.settings-command-strip {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  border-radius: 18px;
}
.settings-command-strip h2 { margin: 0 0 4px; color: var(--forest); }
.settings-command-strip p:not(.eyebrow) { margin: 0; color: var(--muted); }
.settings-last-saved { margin-top: 5px !important; font-size: .84rem; font-weight: 800; }
.settings-command-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.settings-export-label {
  display: grid;
  grid-template-columns: auto minmax(110px, 1fr);
  align-items: center;
  gap: 7px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fffdf8;
  color: var(--forest);
  min-height: 43px;
  padding: 5px 7px 5px 13px;
  font-size: .84rem;
}
.settings-export-label select { min-height: 32px; border-radius: 999px; padding: 4px 9px; }
.settings-nav, .settings-preview {
  position: sticky;
  top: 150px;
  display: grid;
  gap: 14px;
}
.settings-main { display: grid; gap: 16px; min-width: 0; }
.settings-search { display: grid; gap: 8px; }
.settings-section-nav { display: grid; gap: 7px; }
.settings-section-nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 1px solid rgba(23,61,49,.09);
  border-radius: 12px;
  padding: 10px 11px;
  color: var(--forest);
  text-decoration: none;
  background: rgba(255,255,255,.54);
  font-weight: 900;
}
.settings-section-nav a.active, .settings-section-nav a:hover { background: #fff; box-shadow: var(--shadow-soft); }
.settings-section-nav a:focus-visible,
.settings-preview-tabs button:focus-visible,
.settings-command-actions .btn:focus-visible,
.settings-save-bar .btn:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--leaf), white 30%);
  outline-offset: 2px;
}
.settings-section-nav a span { display: inline-flex; align-items: center; gap: 8px; }
.settings-section-nav i {
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: color-mix(in srgb, var(--forest), white 88%);
  color: var(--forest);
  font-size: .72rem;
  font-style: normal;
  font-weight: 950;
}
.settings-section-nav a.active i { background: var(--forest); color: #fff; }
.settings-section-nav a.guided-hidden,
.settings-section.guided-hidden { display: none !important; }
.settings-section-nav strong { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; }
.settings-home {
  display: none;
  gap: 14px;
  scroll-margin-top: 160px;
}
.settings-home.active-settings-section { display: grid; }
.settings-readiness-lanes {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.settings-readiness-lanes article {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 14px;
  background: #fff;
  padding: 12px;
}
.settings-readiness-lanes strong, .settings-readiness-lanes span { display: block; }
.settings-readiness-lanes span { color: var(--muted); font-size: .84rem; font-weight: 900; margin: 3px 0 8px; }
.settings-readiness-lanes i {
  display: block;
  height: 8px;
  border-radius: 999px;
  background: #e8eee5;
  overflow: hidden;
}
.settings-readiness-lanes b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--leaf);
}
.settings-home-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.settings-quick-fixes {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
.settings-recent-changes { color: var(--muted); font-weight: 800; margin-top: 8px; }
.settings-health { display: grid; grid-template-columns: minmax(160px, 1fr) 120px minmax(0, 2.4fr); gap: 16px; align-items: start; }
.settings-health h2 { margin: 0; }
.settings-score-card {
  display: grid;
  place-items: center;
  min-height: 84px;
  border-radius: 16px;
  border: 1px solid rgba(23,61,49,.12);
  background: #fff;
}
.settings-score-card strong { color: var(--forest); font-size: 2rem; line-height: 1; }
.settings-score-card span { color: var(--muted); font-weight: 900; font-size: .78rem; }
.settings-health-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(80px, 1fr));
  gap: 8px;
  min-width: min(520px, 100%);
}
.settings-health-grid span {
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: #fff;
  padding: 9px;
}
.settings-health-grid strong, .settings-health-grid small { display: block; }
.settings-health-grid small { color: var(--muted); font-weight: 800; }
.settings-health-grid .needs-work { background: #fff8e8; border-color: rgba(170,118,36,.24); }
.settings-section { display: none; gap: 14px; scroll-margin-top: 160px; }
.settings-section.active-settings-section,
.settings-searching .settings-section { display: grid; }
.settings-section.is-collapsed > :not(.section-heading) { display: none !important; }
.compact-heading { margin: 4px 0 0; }
.compact-heading h3 { margin: 0; color: var(--forest); }
.settings-theme-presets { display: flex; gap: 8px; flex-wrap: wrap; }
.colors-grid label { align-content: start; }
.colors-grid input[type="color"] { width: 100%; }
.colors-grid [data-color-hex-for] { min-height: 38px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; text-transform: uppercase; }
.colors-grid small { color: var(--success); font-weight: 900; }
.colors-grid small.warning-text { color: var(--danger); }
.recommend-chip {
  display: inline-flex;
  width: fit-content;
  margin-left: 6px;
  border-radius: 999px;
  background: rgba(47,125,79,.12);
  color: #1d5b35;
  padding: 3px 7px;
  font-size: .68rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.helper-chip {
  display: inline-flex;
  width: fit-content;
  margin-left: 5px;
  border-radius: 999px;
  background: rgba(89,98,112,.11);
  color: #44505c;
  padding: 3px 7px;
  font-size: .68rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.settings-inline-alert, .settings-warning {
  border: 1px solid rgba(170,118,36,.24);
  border-radius: 12px;
  background: #fff8e8;
  color: #68460f;
  padding: 10px 12px;
}
.field-invalid { border-color: rgba(163,61,61,.72) !important; box-shadow: 0 0 0 3px rgba(163,61,61,.12) !important; }
.settings-dropzone { outline: 2px dashed transparent; transition: .18s ease; }
.settings-dropzone.is-dragging { outline-color: var(--leaf); background: #f4fbf2; }
.settings-dropzone small { color: var(--muted); font-weight: 800; }
.compact-empty {
  padding: 12px;
  text-align: left;
}
.integration-settings-list { display: grid; gap: 10px; }
.integration-row {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fffdf9;
  overflow: hidden;
}
.integration-row summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 14px;
  cursor: pointer;
  color: var(--forest);
  list-style: none;
}
.integration-row summary::-webkit-details-marker { display: none; }
.integration-row summary strong, .integration-row summary small { display: block; }
.integration-row summary small { color: var(--muted); font-weight: 700; margin-top: 2px; }
.integration-row-body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 0 14px 14px;
}
.integration-row-body label:has(textarea), .integration-row-body button { grid-column: 1 / -1; }
.launch-readiness-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 8px;
}
.launch-readiness-list span {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 12px;
  background: #fff;
  padding: 10px;
}
.launch-readiness-list span.needs-work { background: #fff8e8; border-color: rgba(170,118,36,.24); }
.launch-readiness-list strong, .launch-readiness-list small { display: block; }
.launch-readiness-list small { color: var(--muted); font-weight: 800; margin-top: 3px; }
.settings-preview-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding: 6px;
  border-radius: 14px;
  background: rgba(23,61,49,.06);
}
.settings-preview-tabs button {
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--forest);
  min-height: 34px;
  font-weight: 900;
  cursor: pointer;
}
.settings-preview-tabs button.active { background: #fff; box-shadow: var(--shadow-soft); }
.settings-preview-pane { display: none; }
.settings-preview-pane.active { display: grid; }
.settings-preview-phone {
  --preview-primary: var(--forest);
  --preview-accent: var(--leaf);
  display: grid;
  gap: 14px;
  width: min(100%, 255px);
  min-height: 430px;
  justify-self: center;
  border: 1px solid rgba(23,61,49,.13);
  border-radius: 28px;
  background: #fff;
  padding: 18px 14px;
  box-shadow: inset 0 0 0 7px #f1f3ef, 0 18px 38px rgba(23,61,49,.12);
}
.settings-preview-topbar { display: grid; grid-template-columns: 46px 1fr; gap: 10px; align-items: center; }
.settings-preview-topbar img { width: 46px; height: 46px; object-fit: contain; border: 1px solid var(--line); border-radius: 12px; padding: 4px; background: #fff; }
.settings-preview-topbar strong, .settings-preview-topbar span { display: block; }
.settings-preview-topbar span { color: var(--muted); font-size: .82rem; }
.settings-preview-hero {
  border-radius: 16px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--preview-primary), white 88%), #fffdf8);
  border: 1px solid color-mix(in srgb, var(--preview-primary), transparent 78%);
  padding: 18px 14px;
  min-height: 210px;
  align-content: end;
  display: grid;
}
.settings-preview-hero p { margin: 0 0 12px; color: var(--preview-primary); font-weight: 950; line-height: 1.18; }
.settings-admin-preview {
  --preview-primary: var(--forest);
  grid-template-columns: 46px 1fr;
  align-items: center;
  gap: 10px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(23,61,49,.13);
  padding: 14px;
  border-top: 5px solid var(--preview-primary);
}
.settings-admin-preview img { width: 46px; height: 46px; object-fit: contain; border-radius: 12px; border: 1px solid var(--line); padding: 4px; }
.settings-admin-preview strong, .settings-admin-preview span { display: block; }
.settings-admin-preview span { color: var(--muted); font-size: .82rem; }
.settings-print-preview {
  --preview-primary: var(--forest);
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 10px;
  align-items: center;
  border-left: 4px solid var(--preview-primary);
  border-radius: 14px;
  background: #fff;
  padding: 12px;
}
.settings-print-preview img { width: 36px; height: 36px; object-fit: contain; }
.settings-print-preview strong, .settings-print-preview span { display: block; }
.settings-print-preview span { color: var(--muted); font-size: .82rem; }
.settings-icon-preview {
  justify-items: center;
  gap: 8px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(23,61,49,.13);
  padding: 18px;
  text-align: center;
}
.settings-icon-preview img {
  width: 76px;
  height: 76px;
  object-fit: contain;
  border-radius: 20px;
  border: 1px solid var(--line);
  background: #fff;
  padding: 8px;
  box-shadow: var(--shadow-soft);
}
.settings-icon-preview span { color: var(--muted); font-size: .84rem; }
.settings-guest-summary {
  background: #fff;
}
.settings-guest-summary p {
  margin: 7px 0 0;
  color: var(--muted);
  line-height: 1.35;
}
.settings-guest-summary strong { color: var(--forest); }
.settings-save-bar {
  position: fixed;
  left: max(18px, env(safe-area-inset-left));
  right: max(18px, env(safe-area-inset-right));
  bottom: max(14px, env(safe-area-inset-bottom));
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid rgba(222,212,195,.86);
  border-radius: 18px;
  background: rgba(255,253,248,.95);
  box-shadow: 0 18px 50px rgba(23,61,49,.16);
  backdrop-filter: blur(14px);
  padding: 10px 12px;
}
#settingsDirtySummary { color: var(--muted); font-weight: 900; }
.has-unsaved-settings #settingsDirtySummary { color: #7a4f00; }
.settings-filtered-out { display: none !important; }
.warning-soft { background: rgba(170,118,36,.13); color: var(--warning); }
.settings-review-dialog { width: min(520px, calc(100vw - 24px)); }

@media (max-width: 1180px) {
  .settings-workspace { grid-template-columns: minmax(0, 1fr) 280px; }
  .settings-command-strip, .settings-nav { position: static; grid-column: 1 / -1; }
  .settings-section-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .settings-health { grid-template-columns: 1fr 120px; }
  .settings-health-grid { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
  .settings-workspace { grid-template-columns: 1fr; }
  .settings-command-strip { display: grid; }
  .settings-command-actions { justify-content: stretch; }
  .settings-command-actions .btn { flex: 1 1 135px; }
  .settings-nav {
    position: fixed;
    left: 10px;
    right: 10px;
    bottom: 92px;
    top: auto;
    z-index: 58;
    max-height: 68vh;
    overflow: auto;
    transform: translateY(120%);
    transition: transform .2s ease;
  }
  .settings-nav-open .settings-nav { transform: translateY(0); }
  .settings-preview { position: static; }
  .settings-section-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-readiness-lanes,
  .settings-home-grid { grid-template-columns: 1fr; }
  .settings-health { display: grid; }
  .settings-health-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; }
  .integration-row-body { grid-template-columns: 1fr; }
  .settings-save-bar { align-items: stretch; flex-direction: column; }
  .settings-save-bar .request-actions { width: 100%; }
  .settings-save-bar .btn { flex: 1 1 auto; }
}

.toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%,20px); background: var(--forest); color: white; padding: 13px 18px; border-radius: 999px; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transition: .22s; z-index: 60; }
.toast.show { opacity: 1; transform: translate(-50%,0); }

@media (max-width: 1040px) {
  .hero, .premium-hero, .guest-hero, .admin-hero, .premium-login { grid-template-columns: 1fr; }
  .landing-primary-actions { grid-template-columns: 1fr; }
  .landing-status-card { display: none; }
  .grid.two, .grid.three { grid-template-columns: 1fr; }
  .metrics-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .meal-calendar, .admin-meal-calendar { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .quick-actions { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .feature-menu, .mini-feature-menu, .compact-feature-menu { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .experience-workflow-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .experience-command-hero,
  .experience-filter-bar,
  .experience-lane-grid,
  .experience-stepper {
    grid-template-columns: 1fr;
  }
  .experience-hero-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .experience-priority-row { grid-template-columns: 1fr auto; }
  .experience-priority-row small { grid-column: 1 / -1; }
  .feature-module-groups { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .shell { width: min(100% - 18px, 1220px); padding-top: 14px; }
  .topbar { padding: 10px 12px; }
  .landing-topbar {
    align-items: center;
    gap: 8px;
  }
  .landing-topbar .brand {
    gap: 8px;
    min-width: 0;
  }
  .landing-topbar .brand img {
    width: 48px;
    height: 42px;
    border-radius: 12px;
  }
  .landing-topbar .brand strong {
    font-size: .92rem;
    line-height: 1.05;
    max-width: 12ch;
  }
  .landing-topbar #installButton {
    min-height: 40px;
    padding: 8px 11px;
    white-space: nowrap;
  }
  .brand img { width: 58px; height: 44px; }
  .brand span { display: none; }
  .topbar-actions .btn { padding: 9px 12px; }
  .landing-shell {
    padding-top: 12px;
  }
  .landing-portal-hero {
    padding: 18px;
  }
  .landing-portal-hero.hero h1 {
    font-size: 2.05rem;
    line-height: 1.02;
    margin-bottom: 10px;
  }
  .landing-portal-hero .hero-lede {
    font-size: 1rem;
    line-height: 1.42;
    margin: 0;
  }
  .landing-primary-actions {
    gap: 10px;
    margin-top: 16px;
  }
  .landing-portal-action {
    min-height: 74px;
    padding: 13px 14px;
    border-radius: 15px;
  }
  .landing-portal-action span {
    font-size: 1rem;
  }
  .landing-secondary-grid {
    grid-template-columns: 1fr;
    gap: 9px;
  }
  .landing-secondary-grid a {
    min-height: 64px;
    padding: 12px 14px;
  }
  .landing-more-card {
    margin-top: 12px;
  }
  .hero h1, .auth-card h1, .admin-hero h1, .guest-hero h1 { font-size: 2.15rem; }
  .card { border-radius: 20px; padding: 16px; }
  .login-art { min-height: 270px; }
  .metrics-grid, .mini-metrics { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .meal-calendar, .admin-meal-calendar, .quick-actions, .feature-menu, .mini-feature-menu, .compact-feature-menu, .brand-upload-grid, .two-col { grid-template-columns: 1fr; }
  .experience-workflow-grid, .feature-module-groups { grid-template-columns: 1fr; }
  .experience-command-hero { padding: 14px; }
  .dispatch-hero,
  .experience-dispatch-shell,
  .experience-live-status-bar,
  .experience-hero-metrics { grid-template-columns: 1fr; }
  .experience-lane-grid,
  .experience-stepper,
  .experience-filter-bar,
  .experience-search-result-grid,
  .experience-preview-grid { grid-template-columns: 1fr; }
  .experience-next-action-rail {
    position: sticky;
    top: auto;
    bottom: 10px;
    z-index: 7;
    box-shadow: 0 14px 36px rgba(23,61,49,.16);
  }
  .experience-priority-row,
  .experience-now-row,
  .experience-today-chip,
  .experience-request-timeline-row,
  .experience-trip-card,
  .experience-slot-day,
  .experience-provider-row,
  .experience-resource-row,
  .experience-health-row,
  .experience-blocker-row,
  .experience-blocked-group,
  .experience-cleanup-row {
    grid-template-columns: 1fr;
  }
  .experience-trip-card > button:first-child {
    grid-template-columns: 1fr;
  }
  .experience-row-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .experience-priority-row em,
  .experience-blocker-row em,
  .experience-blocked-group em,
  .experience-cleanup-row em { justify-self: start; white-space: normal; }
  .experience-workflow-card { min-height: 0; }
  .quick-touch-link { grid-template-columns: 42px minmax(0, 1fr); grid-template-areas: "icon title" "icon body" "meta meta"; }
  .quick-touch-meta { display: flex; flex-wrap: wrap; justify-content: flex-start; text-align: left; min-width: 0; }
  .timeline-item { grid-template-columns: 1fr; }
  .sticky-tabs { top: 67px; border-radius: 18px; }
  .message { max-width: 100%; }
}


/* v4 media, chat, Wi‑Fi, and channel enhancements */
.content-image {
  width: 100%;
  max-height: 260px;
  object-fit: contain;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  margin: 10px 0;
  padding: 6px;
}
.compact-image { max-height: 160px; }
.compact-upload { gap: 10px; }
.media-preview {
  width: 100%;
  max-height: 180px;
  object-fit: contain;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: white;
  padding: 8px;
}
.chat-workspace { align-items: start; }
.chat-thread-card { min-height: 560px; }
.interactive-chat {
  max-height: 520px;
  overflow: auto;
  padding: 8px;
  border: 1px solid rgba(222,212,195,.72);
  border-radius: 20px;
  background: rgba(255,255,255,.45);
}
.message-attachment {
  display: block;
  width: min(360px, 100%);
  max-height: 260px;
  object-fit: contain;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #fff;
  margin-top: 10px;
}
.quick-replies, .channel-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.contact-channel-panel {
  border: 1px solid rgba(47,125,79,.22);
  background: linear-gradient(135deg,#eef8ee,#fffdf8);
  border-radius: 18px;
  padding: 16px;
  margin-bottom: 14px;
  display: grid;
  gap: 10px;
}
.disabled-channel { opacity: .48; cursor: not-allowed; }
.wifi-card { margin: 18px 0; }
.wifi-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(210px, .35fr);
  gap: 18px;
  align-items: center;
}
.wifi-copy-block h3 { color: var(--forest); margin: .3rem 0 .6rem; }
.wifi-qr-box {
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  padding: 14px;
  display: grid;
  place-items: center;
}
.wifi-qr-box img { width: min(220px, 100%); height: auto; image-rendering: crisp-edges; }
.announcement.pinned { border-color: color-mix(in srgb, var(--leaf), transparent 48%); background: linear-gradient(135deg, #fffdf8, color-mix(in srgb, var(--leaf), white 92%)); }

@media (max-width: 1040px) {
  .quick-actions { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .wifi-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .quick-actions { grid-template-columns: 1fr; }
  .interactive-chat { max-height: 420px; }
}

/* v5 operational upgrades */
.modal-card {
  border: 0;
  border-radius: 24px;
  padding: 0;
  width: min(620px, calc(100vw - 28px));
  box-shadow: 0 30px 90px rgba(20, 40, 30, .28);
}
.modal-card::backdrop { background: rgba(16, 32, 26, .42); backdrop-filter: blur(5px); }
.modal-card form { padding: 24px; background: var(--paper, #fffdf7); border-radius: 24px; }
.compact-notifications .notice-card, .provider-card { border: 1px solid var(--line, #ded2bd); border-radius: 18px; padding: 14px; background: rgba(255,255,255,.72); }
.unread-note { border-left: 5px solid var(--leaf, #00bf19); }
.danger-soft { background: #ffe8e6 !important; color: #8b1d13 !important; }
.stay-meal-list { display: grid; grid-template-columns: 1fr; gap: 18px; }
.stay-meal-card, .admin-readable-meal { padding: 18px; }
.rsvp-meal-block { border: 1px solid rgba(55, 77, 67, .16); border-radius: 18px; padding: 14px; background: rgba(255,255,255,.58); margin-block: 12px; }
.meal-block-head { display: flex; justify-content: space-between; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 6px; }
.rsvp-grid { display: grid; grid-template-columns: repeat(3, minmax(90px, 1fr)); gap: 10px; margin: 10px 0; }
.compact-label textarea { margin-top: 6px; }
.experience-card { position: relative; overflow: hidden; }
.experience-card::after { content: ''; position: absolute; right: -35px; top: -35px; width: 90px; height: 90px; border-radius: 999px; background: rgba(0,191,25,.12); }
.provider-card h3, .experience-card h2 { margin-bottom: 6px; }
.admin-readable-meal .meal-section .item-meta { margin-top: 8px; }
.full { width: 100%; justify-content: center; }
button:disabled, .btn:disabled { opacity: .48; cursor: not-allowed; }
.storage-plan-card code { white-space: normal; }
@media (max-width: 720px) {
  .rsvp-grid { grid-template-columns: 1fr; }
  .meal-block-head { align-items: flex-start; }
}

/* v6 scheduled experiences, provider profiles, and install resilience */
.install-button, #installButton, #guestInstallButton, #adminInstallButton {
  display: inline-flex !important;
}
.wide-dialog { width: min(760px, calc(100vw - 28px)); }
.small-notice {
  border: 1px solid rgba(55,77,67,.18);
  background: rgba(0,191,25,.06);
  border-radius: 14px;
  padding: 10px 12px;
  font-size: .88rem;
  line-height: 1.45;
}
.provider-profile-row, .small-profile-row, .provider-mini {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.provider-profile-row { gap: 16px; }
.provider-photo, .placeholder-photo {
  width: 86px;
  height: 86px;
  border-radius: 20px;
  object-fit: cover;
  flex: 0 0 auto;
  border: 1px solid var(--line, #ded2bd);
  background: linear-gradient(135deg, rgba(0,191,25,.16), rgba(255,255,255,.74));
  box-shadow: 0 12px 26px rgba(32, 54, 42, .08);
}
.provider-photo.small, .provider-mini .provider-photo, .small-profile-row .provider-photo {
  width: 54px;
  height: 54px;
  border-radius: 15px;
}
.placeholder-photo {
  display: grid;
  place-items: center;
  font-weight: 800;
  color: var(--deep, #123f30);
  font-size: 1.3rem;
}
.experience-media {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 22px;
  border: 1px solid var(--line, #ded2bd);
  background: rgba(255,255,255,.64);
  box-shadow: 0 18px 34px rgba(32, 54, 42, .08);
}
.scheduled-experience-card, .experience-service-admin, .experience-status-card, .session-card {
  border: 1px solid var(--line, #ded2bd);
  border-radius: 24px;
  background: rgba(255,255,255,.74);
  padding: 16px;
  box-shadow: 0 16px 40px rgba(32, 54, 42, .07);
}
.scheduled-experience-card { overflow: hidden; display: grid; gap: 14px; }
.experience-service-admin { display: grid; gap: 14px; }
.session-card { display: grid; gap: 10px; }
.session-card.is-closed { opacity: .72; background: rgba(232,228,216,.58); }
.compact-provider-preview {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(55,77,67,.14);
  border-radius: 18px;
  background: rgba(255,255,255,.62);
}
.group-chat-box {
  display: grid;
  gap: 10px;
  max-height: 260px;
  overflow: auto;
  border: 1px solid rgba(55,77,67,.14);
  border-radius: 18px;
  padding: 12px;
  background: rgba(245, 242, 232, .44);
}
.mini-chat-message {
  border: 1px solid rgba(55,77,67,.13);
  border-radius: 16px;
  padding: 10px 12px;
  background: rgba(255,255,255,.72);
}
.mini-chat-message.guest { border-left: 4px solid var(--leaf, #00bf19); }
.mini-chat-message.staff { border-left: 4px solid var(--deep, #123f30); }
.mini-chat-message.provider { border-left: 4px solid var(--gold, #c89d42); }
.status-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(18, 63, 48, .08);
  font-size: .78rem;
  font-weight: 800;
  color: var(--deep, #123f30);
}
.status-pill.closed, .status-pill.cancelled { background: rgba(139,29,19,.08); color: #8b1d13; }
.status-pill.confirmed { background: rgba(0,191,25,.10); color: #0a5f23; }
.status-pill.waiting { background: rgba(200,157,66,.14); color: #6b4c14; }
.image-preview, #providerPhotoPreview, #serviceImagePreview, #sessionImagePreview {
  max-width: 180px;
  max-height: 130px;
  object-fit: cover;
  border-radius: 16px;
  border: 1px solid var(--line, #ded2bd);
  background: rgba(255,255,255,.7);
}
.provider-card.is-hidden { opacity: .68; }
.capacity-warning { color: #8b1d13; font-weight: 800; }
.capacity-open { color: #0a5f23; font-weight: 800; }
@media (max-width: 780px) {
  .provider-profile-row, .small-profile-row, .provider-mini, .compact-provider-preview {
    align-items: flex-start;
  }
  .provider-photo { width: 72px; height: 72px; }
  .scheduled-experience-card, .experience-service-admin, .experience-status-card, .session-card { padding: 14px; }
}
@media (max-width: 520px) {
  .provider-profile-row { flex-direction: column; }
  .provider-mini, .small-profile-row, .compact-provider-preview { gap: 10px; }
  .wide-dialog { width: calc(100vw - 18px); }
}

/* v8 clarity fixes */
.floating-card {
  background: linear-gradient(160deg, #173d31, #275745) !important;
  color: #fffdf8 !important;
}
.mini-phone {
  background: rgba(255,255,255,.14) !important;
  border-color: rgba(255,255,255,.34) !important;
  color: #fffdf8 !important;
}
.mini-phone h2,
.mini-phone strong,
.mini-phone span,
.mini-actions span { color: #fffdf8 !important; }
.mini-phone p { color: rgba(255,253,248,.9) !important; }
.mini-actions span { background: rgba(255,255,255,.18) !important; border: 1px solid rgba(255,255,255,.16); }
.simple-rsvp-card { background: #fffdf8; border: 1px solid rgba(222,212,195,.9); border-radius: 20px; padding: 16px; }
.clearer-rsvp-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dining-disclosure { background: color-mix(in srgb, var(--gold), transparent 88%); border: 1px solid color-mix(in srgb, var(--gold), transparent 72%); padding: 12px; border-radius: 14px; font-size: .9rem; color: #38433c; }
.policy-line { color: #435a50; font-size: .9rem; margin: 4px 0 0; }
.rsvp-status-line { background: color-mix(in srgb, var(--forest), transparent 94%); border-radius: 12px; padding: 9px 11px; color: #30443a; font-size: .92rem; }
.rsvp-status-line.late-charge { background: color-mix(in srgb, var(--danger), transparent 90%); color: #6e2727; }
.admin-dining-section { background: #fffefb; border-radius: 16px; padding: 14px; border: 1px solid rgba(222,212,195,.75); }
.report-controls { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: end; }
.report-table-wrap { overflow: auto; max-width: 100%; }
.report-table { width: 100%; border-collapse: collapse; min-width: 920px; font-size: .9rem; }
.report-table th, .report-table td { border-bottom: 1px solid var(--line); padding: 10px 9px; vertical-align: top; text-align: left; }
.report-table th { color: var(--forest); background: #fff8e8; position: sticky; top: 0; z-index: 1; }
.report-table small { color: var(--muted); }
.report-totals { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.report-total-pill { display: inline-flex; gap: 6px; align-items: center; border: 1px solid var(--line); background: #fff; color: var(--forest); border-radius: 999px; padding: 8px 10px; font-size: .88rem; }
.charge-row td { background: color-mix(in srgb, var(--danger), transparent 94%); }
@media (max-width: 920px) {
  .report-controls { grid-template-columns: 1fr; }
  .clearer-rsvp-grid { grid-template-columns: 1fr; }
}
@media print {
  .topbar, .tabs, .admin-hero, .metrics-grid, .btn, form, .request-actions { display: none !important; }
  body { background: white !important; }
  .card { box-shadow: none !important; border: 1px solid #ddd !important; }
  .tab-panel { display: none !important; }
  #reportsPanel { display: block !important; }
}

/* v8 dining/report polish */
.simple-rsvp-block {
  background: #fffdf8;
  border: 1px solid rgba(222,212,195,.9);
  border-radius: 20px;
  padding: 16px;
  box-shadow: 0 10px 24px rgba(18,63,48,.05);
}
.friendly-rsvp-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.policy-callout,
.charge-policy {
  background: color-mix(in srgb, var(--gold), transparent 88%);
  border: 1px solid color-mix(in srgb, var(--gold), transparent 70%);
  color: #3c3321;
  padding: 12px;
  border-radius: 14px;
  font-size: .92rem;
}
.policy-check {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  background: #fff8e8;
  border: 1px solid rgba(200,157,66,.38);
  border-radius: 14px;
  padding: 12px;
  color: var(--forest);
  font-weight: 800;
}
.policy-check input { margin-top: 3px; }
.status-line {
  background: color-mix(in srgb, var(--forest), transparent 94%);
  border: 1px solid color-mix(in srgb, var(--forest), transparent 84%);
  border-radius: 14px;
  padding: 10px 12px;
  color: #233f34;
}
.status-line.charge-review {
  background: color-mix(in srgb, var(--danger), transparent 91%);
  border-color: color-mix(in srgb, var(--danger), transparent 78%);
  color: #67271f;
}
.report-card { overflow: hidden; }
.table-wrap { overflow-x: auto; }
@media (max-width: 780px) {
  .friendly-rsvp-grid { grid-template-columns: 1fr; }
}

/* v8 UI revamp: dining, reports, and partner workflow */
.panel-help {
  color: var(--muted, #596270);
  max-width: 880px;
  line-height: 1.58;
}
.compact-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.dining-workbench {
  display: grid;
  grid-template-columns: minmax(320px, 0.88fr) minmax(420px, 1.22fr);
  gap: 18px;
  align-items: start;
}
.meal-editor-card { position: sticky; top: 18px; }
.meal-editor-form { display: grid; gap: 16px; }
.meal-editor-topline {
  display: grid;
  grid-template-columns: minmax(170px, 1fr) minmax(190px, auto);
  gap: 12px;
  align-items: end;
}
.publish-toggle {
  border: 1px solid var(--line, #ded2bd);
  background: #fffaf0;
  border-radius: 16px;
  padding: 13px 14px;
  height: 100%;
  justify-content: center;
}
.meal-type-editor-grid { display: grid; gap: 14px; }
.meal-type-editor {
  border: 1px solid rgba(222,212,195,.95);
  border-radius: 22px;
  padding: 16px;
  background: linear-gradient(180deg, #fffefb, #fbf7ee);
  box-shadow: 0 14px 32px rgba(18,63,48,.045);
}
.meal-type-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.meal-type-head > span {
  width: 44px;
  height: 44px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  background: rgba(18,63,48,.08);
  font-size: 1.35rem;
}
.meal-type-head h3 { margin: 2px 0 0; color: var(--forest, #173d31); }
.sticky-form-actions {
  position: sticky;
  bottom: 12px;
  background: rgba(255,253,248,.94);
  border: 1px solid rgba(222,212,195,.85);
  border-radius: 18px;
  padding: 10px;
  backdrop-filter: blur(8px);
}
.dining-board-card { min-width: 0; }
.admin-dining-board { display: grid; gap: 16px; }
.admin-day-card {
  border: 1px solid rgba(222,212,195,.95);
  border-radius: 24px;
  background: #fffdf9;
  padding: 18px;
  box-shadow: 0 16px 38px rgba(18,63,48,.06);
}
.admin-day-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
  border-bottom: 1px solid rgba(222,212,195,.72);
  padding-bottom: 12px;
  margin-bottom: 14px;
}
.admin-day-head h3 { margin: 2px 0 0; font-size: 1.35rem; color: var(--forest, #173d31); }
.admin-meal-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.admin-meal-summary {
  border: 1px solid rgba(55,77,67,.13);
  border-radius: 18px;
  padding: 14px;
  background: rgba(255,255,255,.74);
  display: grid;
  gap: 8px;
}
.admin-meal-summary-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: start;
}
.admin-meal-summary-head > div {
  display: flex;
  align-items: center;
  gap: 8px;
}
.meal-icon, .meal-emoji {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 12px;
  background: rgba(18,63,48,.08);
}
.admin-meal-summary h3 { margin: 0; font-size: 1rem; color: var(--forest, #173d31); }
.admin-meal-summary p { margin: 0; font-size: .91rem; color: var(--muted, #596270); }
.dining-count-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.dining-count-grid span {
  border-radius: 14px;
  background: rgba(18,63,48,.06);
  padding: 8px;
  text-align: center;
}
.dining-count-grid strong { display: block; color: var(--forest, #173d31); font-size: 1.15rem; }
.dining-count-grid small { color: var(--muted, #596270); font-size: .72rem; }
.admin-day-actions { margin-top: 14px; }

.guest-dining-summary-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: center;
  background: linear-gradient(135deg, #fffdf8, #fff6e3);
  border: 1px solid rgba(200,157,66,.42);
  border-radius: 22px;
  padding: 18px;
}
.guest-dining-summary-card h3 { margin: 4px 0; color: var(--forest, #173d31); }
.guest-dining-summary-card p { margin: 0; color: var(--muted, #596270); }
.dining-summary-stats {
  display: flex;
  gap: 10px;
}
.dining-summary-stats span {
  min-width: 96px;
  border: 1px solid rgba(222,212,195,.86);
  border-radius: 18px;
  padding: 12px;
  text-align: center;
  background: white;
}
.dining-summary-stats strong { display: block; font-size: 1.6rem; color: var(--forest, #173d31); }
.dining-summary-stats small { color: var(--muted, #596270); }
.guest-dining-day-card {
  border: 1px solid rgba(222,212,195,.98);
  border-radius: 26px;
  background: #fffdf9;
  box-shadow: 0 18px 44px rgba(18,63,48,.07);
  padding: 18px;
  display: grid;
  gap: 14px;
}
.guest-dining-day-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid rgba(222,212,195,.72);
  padding-bottom: 12px;
}
.guest-dining-day-head h2 { margin: 2px 0 0; color: var(--forest, #173d31); }
.guest-meal-option-list { display: grid; gap: 13px; }
.guest-meal-option {
  border: 1px solid rgba(55,77,67,.14);
  border-radius: 22px;
  background: rgba(255,255,255,.78);
  overflow: hidden;
}
.guest-meal-option.is-reserved { border-color: rgba(0, 129, 47, .34); background: linear-gradient(180deg, #fff, #f4fff7); }
.guest-meal-option.is-cancelled { opacity: .82; background: #faf7ef; }
.guest-meal-option.is-closed {
  border-color: rgba(83, 82, 75, .22);
  background: linear-gradient(180deg, #f2f1ed, #e8e6df);
  color: #5f625c;
}
.guest-meal-option.is-closed .guest-meal-option-main {
  opacity: .62;
  filter: grayscale(.2);
}
.guest-meal-option.is-closed .meal-emoji {
  filter: grayscale(1);
  opacity: .72;
}
.guest-meal-option-main { padding: 16px; display: grid; gap: 10px; }
.guest-meal-title-row {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: start;
}
.meal-title-lockup { display: flex; gap: 10px; align-items: start; }
.meal-title-lockup h3 { margin: 2px 0 0; color: var(--forest, #173d31); }
.rsvp-state-pill {
  border-radius: 999px;
  padding: 7px 10px;
  font-size: .78rem;
  font-weight: 900;
  white-space: nowrap;
  background: rgba(18,63,48,.08);
  color: var(--forest, #173d31);
}
.rsvp-state-pill.is-reserved { background: rgba(0,191,25,.12); color: #075b23; }
.rsvp-state-pill.is-cancelled { background: rgba(139,29,19,.08); color: #7a241a; }
.rsvp-state-pill.is-closed { background: #dedbd2; border: 1px solid rgba(67,64,56,.16); color: #555249; }
.guest-dining-policy-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.guest-dining-policy-row span {
  display: inline-flex;
  border-radius: 999px;
  background: rgba(200,157,66,.12);
  border: 1px solid rgba(200,157,66,.22);
  padding: 7px 10px;
  font-size: .82rem;
  color: #4a3b1f;
}
.rsvp-details {
  border-top: 1px solid rgba(222,212,195,.82);
  background: rgba(245,242,232,.46);
  padding: 0;
}
.rsvp-details summary {
  cursor: pointer;
  padding: 12px 16px;
  font-weight: 900;
  color: var(--forest, #173d31);
}
.rsvp-details[open] { padding-bottom: 14px; }
.rsvp-details[open] > label,
.rsvp-details[open] > .friendly-rsvp-grid,
.rsvp-details[open] > .request-actions,
.rsvp-details[open] > .status-line,
.rsvp-details[open] > .fine-print { margin-inline: 16px; }

.report-total-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.report-total-card {
  border: 1px solid rgba(222,212,195,.95);
  border-radius: 18px;
  padding: 12px;
  background: #fffaf0;
}
.report-total-card span { color: var(--muted, #596270); font-size: .8rem; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.report-total-card strong { display: block; color: var(--forest, #173d31); font-size: 1.8rem; }
.report-total-card small { color: var(--muted, #596270); }
.report-table-shell {
  overflow-x: auto;
  border: 1px solid rgba(222,212,195,.95);
  border-radius: 18px;
  background: #fff;
}
.polished-report-table { min-width: 1080px; }
.polished-report-table th {
  background: #f6ead4;
  color: var(--forest, #173d31);
  text-transform: uppercase;
  letter-spacing: .055em;
  font-size: .74rem;
}
.polished-report-table td { background: rgba(255,255,255,.82); }
.polished-report-table .number-cell { text-align: center; font-weight: 900; color: var(--forest, #173d31); }
.meal-type-pill {
  display: inline-flex;
  border-radius: 999px;
  padding: 5px 9px;
  background: rgba(18,63,48,.08);
  color: var(--forest, #173d31);
  font-weight: 900;
}
.muted-text { color: var(--muted, #596270); }
.empty-report-row td { color: #768176; background: #fffdf8; }

.partner-flow-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}
.partner-flow-strip span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(222,212,195,.92);
  background: #fffdf8;
  border-radius: 999px;
  padding: 9px 12px;
  color: var(--forest, #173d31);
  font-weight: 800;
}
.partner-flow-strip strong {
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: var(--forest, #173d31);
  color: white;
  font-size: .75rem;
}
.partner-subnav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 16px 0;
}
.partner-subtab {
  border: 1px solid rgba(222,212,195,.92);
  border-radius: 18px;
  background: #fffdf8;
  color: var(--forest, #173d31);
  padding: 13px 12px;
  cursor: pointer;
  font-weight: 950;
  box-shadow: 0 10px 24px rgba(18,63,48,.045);
}
.partner-subtab.active {
  background: var(--forest, #173d31);
  color: #fffdf8;
  border-color: var(--forest, #173d31);
}
.partner-subpanel { display: none; }
.partner-subpanel.active { display: block; }
.partner-grid-balanced { grid-template-columns: minmax(320px, .9fr) minmax(360px, 1.1fr); }
.compact-admin-form { gap: 13px; }
.form-details {
  border: 1px solid rgba(222,212,195,.95);
  border-radius: 16px;
  background: rgba(255,255,255,.62);
  padding: 0;
}
.form-details summary {
  padding: 12px 14px;
  cursor: pointer;
  font-weight: 900;
  color: var(--forest, #173d31);
}
.form-details[open] { padding-bottom: 12px; }
.form-details[open] > label,
.form-details[open] > .two-col,
.form-details[open] > .fine-print { margin-inline: 14px; }

@media (max-width: 1100px) {
  .dining-workbench, .partner-grid-balanced { grid-template-columns: 1fr; }
  .meal-editor-card { position: static; }
  .admin-meal-summary-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .meal-editor-topline, .guest-dining-summary-card, .guest-dining-day-head, .guest-meal-title-row { grid-template-columns: 1fr; display: grid; }
  .dining-summary-stats { width: 100%; }
  .dining-summary-stats span { flex: 1; }
  .partner-subnav { grid-template-columns: 1fr 1fr; }
  .report-total-grid { grid-template-columns: 1fr; }
}

.v26-legacy-schedule-grid{display:none!important}.v26-command-center{padding:1rem}.v26-command-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.v26-command-head h2{margin:.1rem 0}.v26-command-actions{display:flex;gap:.55rem;align-items:flex-end;flex-wrap:wrap;justify-content:flex-end}.v26-now-next{display:flex;justify-content:space-between;gap:1rem;align-items:center;border:1px solid rgba(23,61,49,.14);border-left:5px solid #3d8a5e;border-radius:15px;background:#fff;padding:.85rem;margin:1rem 0 0;box-shadow:0 8px 18px rgba(23,61,49,.045)}.v26-now-next h3{margin:.1rem 0;color:#173d31}.v26-now-next p{margin:.1rem 0;color:#596270}.v26-now-next.is-pending{border-left-color:#b58b40}.v26-now-next.is-draft{border-left-color:#7a8698}.v26-now-next.is-conflict{border-left-color:#8b2323;background:#fff8f6}.v26-now-next.is-empty{border-left-color:#69736d}.v26-summary-bar{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:.65rem;margin:1rem 0}.v26-summary-card{border:1px solid rgba(23,61,49,.12);border-radius:14px;background:#fff;padding:.75rem;text-align:left;box-shadow:0 8px 18px rgba(23,61,49,.045);cursor:pointer}.v26-summary-card span,.v26-summary-card small{display:block;color:#596270;font-size:.78rem}.v26-summary-card strong{display:block;color:#173d31;font-size:1.15rem;margin:.12rem 0}.v26-planner-tabs{margin:.8rem 0}.v26-filter-row{display:flex;justify-content:flex-end;margin:.35rem 0 .9rem}.v26-filter-row label{max-width:220px}.v26-timeline-feed{display:grid;gap:.85rem}.v26-day-card{border:1px solid rgba(23,61,49,.13);border-radius:16px;background:#fffdf8;padding:1rem;box-shadow:0 8px 20px rgba(23,61,49,.04)}.v26-day-card.has-conflicts{border-color:rgba(139,35,35,.35);background:#fff8f6}.v26-day-card>header{display:flex;justify-content:space-between;gap:.8rem;align-items:flex-start;border-bottom:1px solid rgba(23,61,49,.09);padding-bottom:.65rem;margin-bottom:.65rem}.v26-day-card h3{margin:.12rem 0 0}.v26-conflict-note{margin-bottom:.65rem}.v26-schedule-card{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:.8rem;align-items:start;border:1px solid rgba(23,61,49,.1);border-left:5px solid #8fa596;border-radius:14px;background:#fff;padding:.75rem;margin:.55rem 0}.v26-schedule-card time{font-weight:800;color:#173d31;line-height:1.35}.v26-schedule-title{display:flex;gap:.5rem;align-items:flex-start;justify-content:space-between}.v26-schedule-title strong{font-size:1rem;color:#182b23}.v26-schedule-main p,.v26-schedule-main small{display:block;margin:.18rem 0;color:#596270}.v26-schedule-actions{display:flex;gap:.45rem;align-items:flex-start}.v26-more-menu{position:relative}.v26-more-menu summary{list-style:none;border:1px solid rgba(23,61,49,.16);border-radius:999px;padding:.35rem .6rem;font-size:.78rem;font-weight:800;cursor:pointer;background:#fff}.v26-more-menu summary::-webkit-details-marker{display:none}.v26-more-menu[open] div{position:absolute;right:0;top:2.2rem;z-index:5;display:grid;gap:.35rem;min-width:120px;padding:.45rem;border:1px solid rgba(23,61,49,.14);border-radius:12px;background:#fff;box-shadow:0 14px 30px rgba(0,0,0,.13)}.v26-schedule-card.is-confirmed{border-left-color:#3d8a5e}.v26-schedule-card.is-pending{border-left-color:#b58b40}.v26-schedule-card.is-draft{border-left-color:#7a8698}.v26-schedule-card.is-conflict{border-left-color:#8b2323;background:#fff8f6}.v26-schedule-card.is-hidden{opacity:.72;border-left-color:#69736d;background:#f3f1eb}.badge.is-hidden{background:#ecebe5;color:#39453f}.badge.is-conflict{background:#ffe1dc;color:#84221d}.v26-empty-day{border:1px dashed rgba(23,61,49,.22);border-radius:14px;background:#fff;padding:.85rem}.v26-empty-day p{margin:0 0 .6rem;color:#596270}.v26-feed-note{margin:.8rem 0 0}.v26-requested-experiences{border:1px solid rgba(23,61,49,.1);border-radius:15px;background:#fff;padding:.85rem;margin-bottom:1rem}.v26-request-strip{display:grid;gap:.55rem}.v26-request-card{display:flex;justify-content:space-between;gap:.8rem;align-items:center;border:1px solid rgba(23,61,49,.08);border-radius:12px;background:#fbfaf5;padding:.65rem}.v26-request-card p{margin:.15rem 0 0;color:#596270}.v26-experience-filters{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:.65rem;margin:.7rem 0 1rem}.v26-experience-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:.85rem}.v26-experience-card{display:grid;grid-template-columns:94px minmax(0,1fr);gap:.75rem;border:1px solid rgba(23,61,49,.12);border-radius:14px;background:#fff;padding:.75rem}.v26-experience-card img{width:94px;height:90px;object-fit:cover;border-radius:10px;background:#edf0ea}.v26-experience-card.is-requested{border-color:rgba(181,139,64,.45);background:#fffaf0}.v26-experience-body p{margin:.25rem 0;color:#596270}.v26-experience-body .btn{margin-top:.45rem}.v26-experience-drawer{position:fixed;inset:0;z-index:80;display:none;background:rgba(12,28,22,.35);padding:clamp(.5rem,2vw,1.5rem);align-items:stretch;justify-content:flex-end}.v26-experience-drawer.open{display:flex}.v26-drawer-panel{width:min(880px,100%);height:100%;overflow:auto;border-radius:18px;background:#fffdf8;padding:1rem;box-shadow:0 24px 70px rgba(0,0,0,.28)}.v26-resource-workspace{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.85rem}.v26-resource-card{border:1px solid rgba(23,61,49,.12);border-radius:15px;background:#fff;padding:.85rem}.v26-resource-card header{display:flex;justify-content:space-between;gap:.7rem;border-bottom:1px solid rgba(23,61,49,.08);padding-bottom:.55rem;margin-bottom:.55rem}.v26-resource-card small{display:block;color:#596270}.v26-resource-card .v26-schedule-card{grid-template-columns:76px minmax(0,1fr)}.v26-resource-card .v26-schedule-actions{grid-column:1/-1}.v26-schedule-dialog .guest-form-section{border:1px solid rgba(23,61,49,.08);border-radius:14px;padding:.85rem;background:#fffdf8}.v26-schedule-dialog #v25ScheduleConflictBox:not(.hidden){display:block}
@media(max-width:920px){.v26-command-head,.v26-now-next{display:grid}.v26-command-actions{justify-content:flex-start}.v26-summary-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.v26-experience-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.v26-schedule-card{grid-template-columns:1fr}.v26-schedule-actions{justify-content:space-between}.v26-more-menu[open] div{left:0;right:auto}.v26-resource-card .v26-schedule-card{grid-template-columns:1fr}}@media(max-width:620px){.v26-command-center{padding:.75rem}.v26-command-actions{position:sticky;top:.25rem;z-index:4;background:#fffdf8;border:1px solid rgba(23,61,49,.12);border-radius:14px;padding:.55rem;box-shadow:0 10px 24px rgba(23,61,49,.08)}.v26-summary-bar{grid-template-columns:1fr}.v26-command-actions,.v26-filter-row{display:grid;grid-template-columns:1fr;width:100%}.v26-command-actions .btn,.v26-command-actions label,.v26-filter-row label{width:100%;max-width:none}.v26-day-card{padding:.8rem}.v26-day-card>header,.v26-schedule-title,.v26-request-card{display:grid}.v26-experience-filters,.v26-experience-grid,.v26-resource-workspace{grid-template-columns:1fr}.v26-experience-card{grid-template-columns:78px 1fr}.v26-experience-card img{width:78px;height:76px}.v26-drawer-panel{border-radius:14px;padding:.85rem}.v26-experience-drawer{padding:.35rem}}

.v26-flow-strip{display:grid;grid-template-columns:auto repeat(3,minmax(150px,1fr));gap:.65rem;align-items:stretch;margin:.75rem 0 0}.v26-flow-strip>div{border:1px solid rgba(23,61,49,.12);border-radius:14px;background:#f8f6ec;padding:.75rem}.v26-flow-strip h3{margin:.1rem 0 0;color:#173d31}.v26-flow-pill{display:grid;grid-template-columns:28px minmax(58px,auto) minmax(0,1fr);gap:.5rem;align-items:center;border:1px solid rgba(23,61,49,.12);border-left:5px solid #8fa596;border-radius:14px;background:#fff;padding:.75rem;text-align:left;cursor:pointer}.v26-flow-pill span{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#eef4ec;color:#173d31;font-weight:900}.v26-flow-pill strong{color:#173d31}.v26-flow-pill small{color:#596270;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v26-flow-pill.is-confirmed{border-left-color:#3d8a5e}.v26-flow-pill.is-pending{border-left-color:#b58b40}.v26-flow-pill.is-draft{border-left-color:#7a8698}.v26-flow-pill.is-conflict{border-left-color:#8b2323;background:#fff8f6}.v26-conflict-banner{display:flex;justify-content:space-between;gap:1rem;align-items:center;border:1px solid rgba(139,35,35,.28);border-left:5px solid #8b2323;border-radius:15px;background:#fff8f6;padding:.85rem;margin:.75rem 0}.v26-conflict-banner h3{margin:.1rem 0;color:#84221d}.v26-conflict-banner p{margin:.1rem 0;color:#596270}.v26-schedule-card{min-height:92px;padding:1rem}.v26-schedule-card time{font-size:1.02rem}.v26-schedule-title strong{font-size:1.08rem}.v26-schedule-actions .btn{min-height:38px}@media(max-width:920px){.v26-flow-strip{grid-template-columns:1fr}.v26-conflict-banner{display:grid}}@media(max-width:620px){.v26-flow-pill{grid-template-columns:28px 1fr}.v26-flow-pill small{grid-column:1/-1;white-space:normal}.v26-schedule-card{min-height:0;padding:.85rem}}
@media (max-width: 520px) {
  .partner-subnav { grid-template-columns: 1fr; }
  .dining-count-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .compact-actions { justify-content: flex-start; }
}

/* v9 refinements: clearer dining, modal editing, month grid, guest status controls */
.full-width-card { max-width: none; }
.dining-view-toolbar { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; margin-top: 1rem; }
.inline-control { display: inline-flex; align-items: center; gap: .5rem; border: 1px solid var(--line); border-radius: 999px; padding: .35rem .75rem; background: #fffaf0; font-weight: 700; color: var(--forest); }
.inline-control input { border: 0; background: transparent; padding: .25rem; min-width: 8rem; }
.admin-dialog, .crm-dialog { border: 0; border-radius: 28px; padding: 0; width: min(1080px, 94vw); max-height: 88vh; overflow: auto; background: #fffdf7; box-shadow: 0 30px 80px rgba(23, 61, 49, .28); }
.admin-dialog::backdrop, .crm-dialog::backdrop { background: rgba(17, 28, 23, .48); backdrop-filter: blur(4px); }
.modal-form { padding: 1.25rem; }
.dialog-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; border-bottom: 1px solid var(--line); padding-bottom: .75rem; margin-bottom: 1rem; position: sticky; top: 0; background: #fffdf7; z-index: 3; }
.dialog-head h2 { margin: .15rem 0 0; }
.task-editor-dialog { width: min(820px, 94vw); }
.task-modal-form { gap: .95rem; }
.task-editor-grid { align-items: end; }
.task-modal-form .admin-task-extra-fields { display: grid; gap: .85rem; }
.task-modal-form .form-details[open] > .three-col { margin-inline: 14px; }
.three-col { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.modal-meal-grid { display: grid; grid-template-columns: repeat(3, minmax(240px, 1fr)); gap: 1rem; }
.meal-type-editor { background: #fffaf1; border: 1px solid var(--line); border-radius: 20px; padding: 1rem; }
.meal-type-editor textarea { min-height: 82px; }
.month-calendar-shell { width: 100%; }
.weekday-row, .month-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(105px, 1fr)); gap: .65rem; }
.weekday-row span { text-transform: uppercase; letter-spacing: .08em; font-size: .72rem; font-weight: 900; color: var(--muted); padding: 0 .25rem; }
.month-cell { min-height: 136px; border: 1px solid var(--line); border-radius: 18px; padding: .75rem; background: rgba(255,255,255,.82); display: flex; flex-direction: column; gap: .55rem; }
.month-cell.empty { opacity: .25; background: transparent; border-style: dashed; }
.month-cell header { display: flex; justify-content: space-between; align-items: center; }
.month-cell header strong { font-size: 1.05rem; color: var(--forest); }
.month-cell header small { color: var(--muted); font-weight: 800; }
.month-cell.has-menu { background: linear-gradient(180deg, #fffdf8, #fff8eb); }
.month-cell.published { border-color: rgba(0, 191, 25, .32); box-shadow: inset 0 0 0 1px rgba(0,191,25,.08); }
.month-meal-toggle-row, .quick-meal-toggle-row { display: flex; flex-wrap: wrap; gap: .4rem; }
.month-meal-toggle, .meal-toggle-chip { border: 1px solid var(--line); border-radius: 999px; padding: .32rem .55rem; cursor: pointer; font-weight: 900; font-size: .78rem; background: #f3f0e8; color: var(--muted); }
.month-meal-toggle.on, .meal-toggle-chip.on { background: #e6f7e7; color: var(--forest); border-color: rgba(0,191,25,.4); }
.month-meal-toggle.off, .meal-toggle-chip.off { background: #fff0ea; color: #8b2d18; border-color: #efc4b4; }
.empty-day-note { font-size: .78rem; color: var(--muted); }
.btn.tiny { font-size: .72rem; padding: .32rem .55rem; border-radius: 999px; }
.list-mode .admin-day-card { max-width: none; }
.admin-meal-summary.is-off { background: #fff4ee; border-color: #efc4b4; opacity: .94; }
.cost-line, .cost-pill { display: inline-flex; align-items: center; border: 1px solid var(--line); background: #fffaf0; color: var(--forest); padding: .28rem .5rem; border-radius: 999px; font-size: .82rem; margin: .35rem 0; }
.guest-meal-option.is-unavailable { background: #fff7f0; border-color: #efc4b4; }
.rsvp-state-pill.is-unavailable { background: #fff0ea; color: #8b2d18; }
.guest-dialog { width: min(760px, 94vw); }
.guide-admin-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; }
.guide-admin-item { background: #fffdf7; border: 1px solid var(--line); border-radius: 20px; padding: 1rem; display: grid; grid-template-columns: auto 1fr; gap: .85rem; }
.guide-admin-icon { width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; background: #e8f6e8; font-size: 1.35rem; }
.guide-filters { margin-top: 1rem; }
.guide-command-card { display: grid; gap: 1rem; }
.guide-health-strip { display: grid; grid-template-columns: minmax(180px, 1.2fr) repeat(5, minmax(120px, 1fr)); gap: .65rem; }
.guide-health-title, .guide-health-metric { text-align: left; border: 1px solid rgba(23,61,49,.14); border-radius: 14px; background: #fffdf7; padding: .75rem .85rem; color: var(--forest); }
.guide-health-title { background: #eef7ec; }
.guide-health-title strong, .guide-health-title small { display: block; }
.guide-health-title strong { font-size: 1.15rem; }
.guide-health-title small { color: var(--muted); }
.guide-health-metric { cursor: pointer; }
.guide-health-metric span { display: block; color: var(--muted); font-size: .76rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.guide-health-metric strong { display: block; font-size: 1.45rem; margin-top: .15rem; }
.guide-toolbar { position: sticky; top: 92px; z-index: 4; display: grid; gap: .75rem; padding: .8rem; margin-inline: -.2rem; border: 1px solid rgba(23,61,49,.1); border-radius: 18px; background: rgba(255,253,247,.95); backdrop-filter: blur(12px); }
.segmented-control.guide-view-modes { display: flex; flex-wrap: wrap; gap: .45rem; }
.segmented-control.guide-view-modes button,
.guide-category-actions button { border: 1px solid rgba(23,61,49,.14); border-radius: 999px; background: #fff; color: var(--forest); font-weight: 800; padding: .48rem .72rem; cursor: pointer; }
.segmented-control.guide-view-modes button.active,
.guide-category-actions button.active { background: var(--forest); color: #fff; border-color: var(--forest); }
.guide-category-actions { display: flex; flex-wrap: wrap; gap: .45rem; }
.guide-category-actions button span { display: inline-grid; place-items: center; min-width: 1.35rem; margin-left: .25rem; border-radius: 999px; background: rgba(23,61,49,.09); padding: .05rem .35rem; font-size: .76rem; }
.guide-category-actions button.active span { background: rgba(255,255,255,.18); }
.guide-template-menu { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(220px, .6fr); gap: .75rem; padding: .75rem; border: 1px solid rgba(23,61,49,.12); border-radius: 16px; background: #f7fbf2; }
.guide-template-drawer-head { grid-column: 1 / -1; display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.guide-template-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .55rem; }
.guide-template-card { text-align: left; border: 1px solid rgba(23,61,49,.14); border-radius: 14px; background: #fff; padding: .85rem; cursor: pointer; min-height: 76px; }
.guide-template-card strong,
.guide-template-card small,
.guide-template-card span { display: block; }
.guide-template-card small, .guide-template-card span { color: var(--muted); margin-top: .15rem; }
.guide-template-preview { border: 1px solid rgba(23,61,49,.12); border-radius: 14px; background: #fff; padding: .85rem; }
.guide-template-preview strong, .guide-template-preview small { display: block; color: var(--forest); }
.guide-review-queue, .guide-recent-changes { margin-bottom: .85rem; }
.guide-review-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .55rem; }
.guide-review-head h3 { margin: .1rem 0 0; }
.guide-review-list, .guide-recent-details div { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .55rem; }
.guide-review-list button, .guide-recent-details button { text-align: left; border: 1px solid rgba(23,61,49,.12); border-radius: 14px; background: #fff; padding: .7rem; cursor: pointer; }
.guide-review-list strong, .guide-review-list small, .guide-recent-details strong, .guide-recent-details small { display: block; }
.guide-review-list small, .guide-recent-details small { color: var(--muted); margin-top: .18rem; }
.guide-recent-details { border: 1px solid rgba(23,61,49,.1); border-radius: 14px; background: #fffdf7; padding: .7rem; }
.guide-recent-details summary { cursor: pointer; font-weight: 900; color: var(--forest); }
.guide-command-workspace { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); gap: 1rem; align-items: start; }
.guide-admin-list { display: grid; gap: .65rem; }
.guide-admin-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .7rem; align-items: center; border: 1px solid rgba(23,61,49,.12); border-radius: 16px; background: #fffdf7; padding: .65rem; }
.guide-admin-row.is-selected { border-color: var(--forest); box-shadow: 0 0 0 3px rgba(23,61,49,.1); }
.guide-row-main { display: grid; grid-template-columns: 42px minmax(160px, 1.4fr) auto auto minmax(115px, .75fr) minmax(105px, .75fr) minmax(145px, .9fr); gap: .55rem; align-items: center; width: 100%; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.guide-row-title strong,
.guide-row-title small { display: block; }
.guide-row-title small { color: var(--muted); margin-top: .12rem; }
.guide-row-pill,
.guide-row-review { color: #40534b; font-size: .84rem; font-weight: 750; }
.guide-row-review.needs-review { color: #9b4b1f; }
.guide-row-actions { display: flex; flex-wrap: wrap; gap: .35rem; justify-content: flex-end; }
.guide-more-menu { position: relative; }
.guide-more-menu summary { list-style: none; border: 1px solid rgba(23,61,49,.14); border-radius: 999px; background: #fff; color: var(--forest); font-weight: 900; cursor: pointer; padding: .32rem .58rem; font-size: .74rem; }
.guide-more-menu summary::-webkit-details-marker { display: none; }
.guide-more-menu[open] div { position: absolute; right: 0; top: 2rem; z-index: 8; display: grid; gap: .35rem; min-width: 138px; padding: .45rem; border: 1px solid rgba(23,61,49,.14); border-radius: 13px; background: #fff; box-shadow: 0 16px 34px rgba(0,0,0,.14); }
.guide-more-menu button { border: 0; border-radius: 10px; background: #fffdf7; color: var(--forest); text-align: left; font-weight: 850; padding: .48rem .55rem; cursor: pointer; }
.guide-more-menu .danger-text { color: #a32929; }
.guide-detail-panel { position: sticky; top: 92px; display: grid; gap: .85rem; border: 1px solid rgba(23,61,49,.12); border-radius: 18px; background: #fffdf7; padding: 1rem; max-height: calc(100vh - 120px); overflow: auto; }
.guide-detail-head { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.guide-detail-head h3 { margin: .1rem 0 0; }
.guide-phone-preview { max-width: 360px; width: 100%; justify-self: center; border: 10px solid #17251f; border-radius: 30px; background: #17251f; padding: .7rem; box-shadow: 0 18px 45px rgba(0,0,0,.18); }
.guide-phone-speaker { width: 70px; height: 5px; border-radius: 999px; background: rgba(255,255,255,.32); margin: 0 auto .65rem; }
.guide-preview-card { box-shadow: none; margin: 0; }
.guide-preview-card h2 { font-size: 1.25rem; }
.guide-preview-toggle { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .35rem; }
.guide-preview-toggle button { border: 1px solid rgba(23,61,49,.14); border-radius: 999px; background: #fff; color: var(--forest); font-weight: 850; padding: .42rem .55rem; cursor: pointer; }
.guide-preview-toggle button.active { background: var(--forest); color: #fff; border-color: var(--forest); }
.guide-action-flow { display: grid; gap: .35rem; margin: .7rem 0; }
.guide-action-flow span { border: 1px solid rgba(23,61,49,.1); border-radius: 999px; padding: .38rem .6rem; background: #fffdf7; color: var(--forest); font-weight: 800; }
.guide-next-action { border: 1px solid rgba(181,139,64,.25); border-radius: 14px; background: #fff8e8; padding: .8rem; }
.guide-next-action strong, .guide-next-action p { display: block; margin: 0; }
.guide-next-action p { margin-top: .2rem; color: #4d4536; }
.guide-impact-panel, .guide-publish-checklist { display: grid; gap: .5rem; border: 1px solid rgba(23,61,49,.1); border-radius: 14px; background: #fff; padding: .8rem; }
.guide-impact-panel span { display: flex; align-items: center; justify-content: space-between; gap: .75rem; border-bottom: 1px solid rgba(23,61,49,.08); padding-bottom: .38rem; }
.guide-impact-panel span:last-child { border-bottom: 0; padding-bottom: 0; }
.guide-impact-panel small { color: var(--muted); font-weight: 800; }
.guide-impact-panel b { color: var(--forest); }
.guide-publish-checklist button { display: grid; grid-template-columns: 28px minmax(80px, .6fr) minmax(0, 1fr); align-items: center; gap: .45rem; border: 1px solid rgba(181,139,64,.22); border-radius: 12px; background: #fff8e8; color: #4d4536; text-align: left; padding: .55rem; cursor: pointer; }
.guide-publish-checklist button.is-done { background: #f1f8ee; border-color: rgba(34,120,74,.18); color: #173d31; }
.guide-publish-checklist button span { width: 24px; height: 24px; border-radius: 999px; display: grid; place-items: center; background: rgba(181,139,64,.18); font-weight: 900; }
.guide-publish-checklist button.is-done span { background: rgba(34,120,74,.18); }
.guide-publish-checklist small { color: var(--muted); }
.guide-empty-actions { display: grid; gap: .65rem; justify-items: start; }
.guide-detail-actions { display: flex; flex-wrap: wrap; gap: .45rem; }
.guide-sort-inline { display: grid; gap: .35rem; max-width: 170px; }
.guide-status-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.guide-status-grid span,
.guide-link-summary,
.guide-warning-box { border: 1px solid rgba(23,61,49,.1); border-radius: 14px; background: #fff; padding: .75rem; }
.guide-status-grid strong,
.guide-link-summary strong,
.guide-warning-box strong { display: block; color: var(--forest); margin-bottom: .2rem; }
.guide-warning-box { background: #fff7ed; border-color: rgba(181,85,40,.2); }
.guide-warning-box.is-ok { background: #f1f8ee; border-color: rgba(34,120,74,.18); }
.guide-warning-box ul { margin: .45rem 0 0 1.1rem; padding: 0; }
.guide-form-section { display: grid; gap: .75rem; border: 1px solid rgba(23,61,49,.1); border-radius: 16px; background: #fffdf7; padding: 1rem; }
.guide-form-section h3 { margin: 0; font-size: 1rem; }
.guide-editor-actions { position: sticky; bottom: 0; z-index: 2; background: rgba(255,253,247,.96); border-top: 1px solid rgba(23,61,49,.12); padding-top: .8rem; }
.guide-ready-ready-to-publish, .guide-ready-ready { background: #e7f6e8; color: #0e4b28; border-color: rgba(24,123,55,.24); }
.guide-ready-draft { background: #ecebe5; color: #39453f; }
.guide-ready-needs-asset, .guide-ready-needs-action, .guide-ready-needs-review { background: #fff2d6; color: #7a4b04; border-color: rgba(181,139,64,.3); }
.report-table-shell { overflow: auto; max-height: 62vh; }
.report-table th, .report-table td { white-space: normal; }
.partner-subnav { position: sticky; top: 88px; z-index: 4; background: rgba(250, 246, 237, .9); backdrop-filter: blur(8px); border-radius: 999px; padding: .35rem; box-shadow: 0 8px 24px rgba(23,61,49,.08); }
.session-card { border-left: 5px solid var(--leaf); }
.session-card .item-meta { gap: .45rem; }
.time-slot-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
  margin: 12px 0;
}
.time-slot-controls .provider-ops-viewbar {
  margin: 4px 0 0;
}
.time-slot-expand-actions {
  justify-content: flex-end;
  padding-bottom: 4px;
}
.time-slot-result-line {
  margin: 4px 0 10px;
}
.time-slot-group {
  border: 1px solid var(--line, #ded2bd);
  border-radius: 18px;
  background: rgba(255,255,255,.7);
  box-shadow: 0 12px 28px rgba(32,54,42,.055);
  overflow: hidden;
}
.time-slot-group + .time-slot-group {
  margin-top: 10px;
}
.time-slot-group > summary {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
}
.time-slot-group > summary::-webkit-details-marker {
  display: none;
}
.time-slot-group > summary strong,
.time-slot-group > summary small {
  display: block;
}
.time-slot-group > summary small {
  margin-top: 3px;
  color: var(--muted);
}
.time-slot-row-list {
  display: grid;
  gap: 8px;
  padding: 0 12px 12px;
}
.time-slot-row {
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) minmax(150px, .5fr) auto auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 14px;
  background: #fffdf8;
}
.time-slot-main {
  min-width: 0;
}
.time-slot-main strong,
.time-slot-main small {
  display: block;
}
.time-slot-main small,
.time-slot-main p {
  color: var(--muted);
}
.time-slot-main p {
  margin: 4px 0 0;
}
.time-slot-capacity {
  display: grid;
  gap: 5px;
}
.slot-capacity-track {
  display: block;
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(23,61,49,.1);
}
.slot-capacity-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--forest);
}
.time-slot-status {
  justify-content: flex-end;
}
.time-slot-actions {
  justify-content: flex-end;
}
@media (max-width: 980px) {
  .modal-meal-grid, .three-col { grid-template-columns: 1fr; }
  .weekday-row, .month-calendar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .month-cell.empty { display: none; }
  .partner-subnav { border-radius: 18px; }
  .time-slot-controls,
  .time-slot-row { grid-template-columns: 1fr; align-items: stretch; }
  .time-slot-expand-actions,
  .time-slot-status,
  .time-slot-actions { justify-content: flex-start; }
}
@media print {
  .sticky-tabs, .topbar, .tabs, .admin-hero, .dining-command-card, .report-controls { display: none !important; }
  body { background: white !important; }
  .card { box-shadow: none !important; border: 1px solid #ddd !important; }
}


/* v9 final polish: real month grid, modal workflows, guest-state locks */
.dining-view-panel { display: none; }
.dining-view-panel.active-view { display: block; }
.view-switcher { display: inline-flex; flex-wrap: wrap; gap: .45rem; padding: .35rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); border-radius: 999px; margin-top: .85rem; }
.view-chip { border: 0; background: transparent; border-radius: 999px; padding: .55rem .9rem; font-weight: 900; color: var(--forest); cursor: pointer; }
.view-chip.active { background: var(--forest); color: #fff; }
.provider-ops-viewbar { margin: .9rem 0 .45rem; max-width: 100%; }
.provider-ops-viewbar .view-chip { display: inline-flex; align-items: center; gap: .35rem; }
.provider-ops-viewbar .view-chip-count { min-width: 1.45rem; padding: .12rem .4rem; border-radius: 999px; background: rgba(20, 66, 52, .1); color: inherit; font-size: .78rem; line-height: 1.2; text-align: center; }
.provider-ops-viewbar .view-chip.active .view-chip-count { background: rgba(255,255,255,.18); }
.provider-ops-result-line { margin: .25rem 0 .65rem; }
.dining-month-grid { display: block; margin-top: 1rem; min-width: 0; }
.dining-month-scroll { overflow-x: auto; padding-bottom: .35rem; }
.dining-month-calendar { display: grid; gap: .7rem; min-width: 840px; }
.month-weekday-row,
.month-date-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(112px, 1fr));
  gap: .7rem;
}
.month-weekday-cell {
  padding: .35rem .55rem;
  color: #3d4d43;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: .72rem;
  min-width: 0;
}
.weekday-short {
  display: none;
}
.month-cell { min-height: 150px; }
.month-cell.is-today { outline: 2px solid rgba(23, 61, 49, .32); background: #fffdf1; }
.month-cell.empty { min-height: 70px; border: 1px dashed rgba(210,200,181,.7); background: rgba(255,255,255,.28); }
.month-day-head { display: flex; justify-content: space-between; align-items: center; gap: .45rem; color: var(--forest); }
.month-day-head span { font-size: .68rem; font-weight: 900; text-transform: uppercase; color: #16733c; background: #e5f6e6; padding: .18rem .45rem; border-radius: 999px; }
.month-day-open { padding-inline: .45rem; }
.meal-toggle-row { display: grid; gap: .38rem; }
.meal-mini-check { display: flex; align-items: center; justify-content: space-between; gap: .35rem; border: 1px solid var(--line); border-radius: 12px; padding: .42rem .5rem; font-weight: 950; font-size: .78rem; background: #fffdf8; color: var(--muted); cursor: pointer; }
.meal-mini-check input { accent-color: var(--forest); }
.meal-mini-check.on { background: #e8f7e9; color: var(--forest); border-color: rgba(24,123,55,.32); }
.meal-mini-check.off { background: #fff2eb; color: #8b2d18; border-color: #efc4b4; }
.month-cell-meta { font-size: .8rem; color: var(--muted); font-weight: 800; }
.month-cell-indicators { display: flex; flex-wrap: wrap; gap: .28rem; min-height: 20px; }
.month-cell-indicators span { border: 1px solid rgba(23,61,49,.14); background: #f6f3ea; color: #334039; border-radius: 999px; padding: .16rem .4rem; font-size: .68rem; font-weight: 900; }
.link-button.tiny { align-self: start; color: var(--forest); border: 1px solid var(--line); background: #fffaf0; border-radius: 999px; padding: .32rem .65rem; font-weight: 900; cursor: pointer; }
.wide-dialog { width: min(1180px, 96vw); }
.crm-dialog .dialog-frame { position: sticky; top: 0; z-index: 5; display: flex; justify-content: flex-end; padding: .5rem .75rem 0; background: transparent; }
.dialog-x { border: 1px solid var(--line); background: #fffdf8; color: var(--forest); border-radius: 999px; width: 38px; height: 38px; font-size: 1.45rem; line-height: 1; cursor: pointer; box-shadow: 0 8px 22px rgba(23,61,49,.12); }
.dialog-card { margin: 0; border: 0; box-shadow: none; }
.sticky-form-actions { position: sticky; bottom: 0; background: rgba(255,253,247,.95); backdrop-filter: blur(7px); border-top: 1px solid var(--line); padding-top: .75rem; z-index: 4; }
.compact-command-card { overflow: visible; }
.guest-meal-cost-row { display: flex; flex-wrap: wrap; gap: .5rem; margin: .6rem 0; }
.guest-meal-cost-row span, .price-pill, .cost-pill, .cost-line { background: #fffaf0; color: var(--forest); border: 1px solid var(--line); border-radius: 999px; padding: .35rem .65rem; font-weight: 900; font-size: .82rem; }
.status-lock { border-left: 4px solid #b46b1f; background: #fff3df; color: #6d3b09; border-radius: 12px; padding: .65rem .8rem; font-weight: 800; }
.status-checked-in { background: #e5f6e6 !important; color: #0e4b28 !important; }
.status-upcoming { background: #eef6ff !important; color: #17466d !important; }
.status-checked-out, .status-archived, .status-cancelled { background: #f1eee7 !important; color: #6c6258 !important; }
.admin-day-card { border-radius: 22px; }
.admin-meal-summary { min-width: 0; }
.admin-meal-summary h4 { overflow-wrap: anywhere; }
.admin-meal-summary-grid { align-items: stretch; }
.guide-admin-item { grid-template-columns: auto minmax(0,1fr); }
.guide-admin-item h3 { margin: .15rem 0; }
.guide-admin-item .content-image { max-height: 140px; object-fit: cover; }
@media (max-width: 760px) {
  .dining-month-calendar { min-width: 760px; }
  .weekday-full { display: none; }
  .weekday-short { display: inline; }
  .view-switcher { border-radius: 18px; }
  .kitchen-service-count-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Reports command center */
.report-command-card {
  position: sticky;
  top: 78px;
  z-index: 7;
  padding: 16px;
}
.report-command-heading {
  margin-bottom: 8px;
}
.report-command-bar {
  display: grid;
  grid-template-columns: auto minmax(132px, .8fr) minmax(150px, .9fr) auto;
  gap: 8px;
  align-items: end;
  margin-top: 10px;
  min-width: 0;
}
.report-command-bar > * {
  min-width: 0;
  max-width: 100%;
}
.segmented-control,
.report-subtabs {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 12px;
  background: #f4f2eb;
}
.segmented-control button,
.report-subtabs button {
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font-weight: 900;
  min-height: 36px;
  padding: 0 13px;
}
.segmented-control button.active,
.report-subtabs button.active {
  background: var(--forest);
  color: #fff;
  box-shadow: 0 7px 18px rgba(23,61,49,.12);
}
.report-command-bar label {
  margin: 0;
}
.report-now-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.report-now-strip span {
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 850;
  padding: 5px 9px;
}
.report-now-strip strong {
  color: var(--forest);
}
.report-readiness-strip {
  margin-top: 8px;
}
.report-readiness {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 14px;
  background: #fff;
  padding: 12px 14px;
}
.report-readiness span {
  display: block;
  color: var(--muted);
  font-size: .76rem;
  font-weight: 950;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.report-readiness strong {
  display: block;
  color: var(--forest);
  font-size: 1.35rem;
}
.report-readiness small {
  color: var(--muted);
}
.report-readiness b {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: #f4f4ef;
  color: var(--forest);
  font-size: 1.2rem;
}
.report-readiness.ready {
  background: #f4fbf4;
  border-color: rgba(32,120,74,.2);
}
.report-readiness.review {
  background: #fff8e4;
  border-color: rgba(181,139,64,.34);
}
.report-readiness.blocked {
  background: #fff0ec;
  border-color: rgba(179,65,43,.34);
}
.report-critical-toggle {
  width: fit-content;
  margin: 10px 0 0;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 999px;
  background: #fff;
  padding: 7px 10px;
}
.report-command-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
}
.icon-btn {
  width: 42px;
  min-width: 42px;
  padding-inline: 0;
  font-size: 1.05rem;
}
.report-export-menu {
  position: relative;
  min-width: 0;
}
.report-export-menu summary {
  list-style: none;
  cursor: pointer;
}
.report-export-menu summary::-webkit-details-marker {
  display: none;
}
.report-export-list {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  min-width: 165px;
  display: grid;
  gap: 4px;
  padding: 8px;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--shadow);
  z-index: 10;
}
.report-export-list button {
  border: 0;
  background: transparent;
  color: var(--forest);
  cursor: pointer;
  font-weight: 850;
  padding: 9px 10px;
  text-align: left;
  border-radius: 8px;
}
.report-export-list button:hover {
  background: #f6f0e2;
}
.report-range-label {
  margin: 12px 0 0;
  color: var(--forest);
  font-weight: 900;
}
.report-week-start,
.report-custom-end {
  display: none;
}
.week-report-active .report-week-start,
.custom-report-active .report-custom-end {
  display: grid;
}
.report-command-summary,
.report-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.report-service-timeline {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.report-timeline-step {
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: #fff;
  padding: 10px;
}
.report-timeline-step span,
.report-timeline-step small {
  display: block;
  color: var(--muted);
  font-size: .74rem;
  font-weight: 850;
}
.report-timeline-step strong {
  display: block;
  color: var(--forest);
  margin: 2px 0;
}
.report-timeline-step.ready {
  background: #f4fbf4;
}
.report-timeline-step.review {
  background: #fff8e4;
}
.report-timeline-step.blocked {
  background: #fff0ec;
}
.report-timeline-step.quiet {
  background: #f7f7f4;
}
.report-command-tile {
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: #fff;
  padding: 10px;
}
.report-command-tile span,
.report-meal-card span,
.report-kitchen-card span,
.report-attention-item span {
  display: block;
  color: var(--muted);
  font-size: .76rem;
  font-weight: 950;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.report-command-tile strong {
  display: block;
  color: var(--forest);
  font-size: 1.5rem;
  line-height: 1.05;
  margin: 3px 0;
}
.report-command-tile small {
  color: var(--muted);
}
.report-command-tile.alert {
  background: #fff0ec;
  border-color: rgba(179,65,43,.28);
}
.report-command-tile.watch {
  background: #fff8e4;
  border-color: rgba(181,139,64,.3);
}
.report-workspace-card {
  display: grid;
  gap: 14px;
  min-width: 0;
}
.report-subtabs {
  width: fit-content;
  max-width: 100%;
  box-sizing: border-box;
}
.report-subtabs button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.report-subtab-badge {
  display: inline-grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #b33f2f;
  color: #fff;
  font-size: .72rem;
  line-height: 1;
}
.report-active-pane {
  display: grid;
  gap: 12px;
  min-width: 0;
  max-width: 100%;
}
.report-meal-card,
.report-kitchen-card,
.report-preference-card,
.report-attention-item {
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: #fff;
  padding: 12px;
}
.report-active-pane > .report-meal-card {
  display: grid;
  gap: 7px;
}
.report-active-pane {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.report-attention-list,
.report-detail-table,
.report-preference-grid,
.report-kitchen-grid,
.report-empty-state {
  grid-column: 1 / -1;
  min-width: 0;
  max-width: 100%;
}
.report-meal-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: start;
}
.report-meal-head strong {
  color: var(--forest);
  font-size: 1.45rem;
  line-height: 1;
}
.report-meal-scan {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.report-meal-scan span {
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 999px;
  background: rgba(255,255,255,.7);
  color: var(--forest);
  font-size: .72rem;
  font-weight: 900;
  padding: 4px 7px;
  text-transform: none;
  letter-spacing: 0;
}
.report-flag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.report-flag-row span {
  border: 1px solid rgba(32,120,74,.18);
  border-radius: 999px;
  background: #eef7ef;
  color: #174b2b;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: 0;
  padding: 4px 7px;
  text-transform: none;
}
.report-card-actions {
  display: flex;
  justify-content: flex-start;
}
.report-meal-card p,
.report-kitchen-card p,
.report-attention-item p,
.report-preference-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.35;
}
.report-meal-card.needs-review,
.report-kitchen-card.is-off,
.report-attention-item.warning {
  background: #fff8e4;
  border-color: rgba(181,139,64,.34);
}
.report-meal-card.has-charge,
.report-attention-item.danger {
  background: #fff0ec;
  border-color: rgba(179,65,43,.34);
}
.report-meal-card.is-ready {
  background: #f4fbf4;
  border-color: rgba(32,120,74,.18);
}
.report-meal-card.is-quiet {
  background: #f7f7f4;
  border-color: rgba(96,104,96,.16);
}
.report-attention-list,
.report-kitchen-grid,
.report-preference-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.report-kitchen-handoff {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.report-kitchen-card {
  display: grid;
  gap: 8px;
}
.report-kitchen-card strong {
  color: var(--forest);
  font-size: 1.25rem;
}
.report-preference-card {
  display: grid;
  gap: 10px;
}
.report-note-filters {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1.2fr .8fr .8fr;
  gap: 8px;
}
.report-cabin-group {
  display: grid;
  gap: 8px;
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: #fffdf8;
  padding: 10px;
}
.report-cabin-group h3 {
  margin: 0;
  color: var(--forest);
  font-size: .98rem;
}
.report-guest-impact-lane {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: #fffdf8;
  padding: 12px;
}
.report-guest-impact-lane h3 {
  margin: 0;
  color: var(--forest);
}
.report-guest-impact-lane > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.report-guest-impact-lane article {
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 10px;
  background: #fff;
  padding: 10px;
}
.report-guest-impact-lane strong,
.report-guest-impact-lane small {
  display: block;
}
.report-guest-impact-lane small,
.report-guest-impact-lane p {
  color: var(--muted);
}
.report-guest-impact-lane p {
  margin: 5px 0 0;
}
.report-preference-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: start;
}
.report-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.report-chip-row span {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 999px;
  background: #f8f5ed;
  color: var(--forest);
  font-size: .78rem;
  font-weight: 850;
  padding: 5px 8px;
}
.preference-chips span {
  background: #eef7ef;
}
.report-office-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.report-detail-table-shell {
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}
.report-detail-table-shell summary {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  cursor: pointer;
  color: var(--forest);
  font-weight: 950;
  padding: 12px 14px;
}
.report-detail-table-shell summary span {
  color: var(--muted);
  font-size: .82rem;
}
.report-packet-dialog {
  max-width: min(1120px, 96vw);
}
.report-packet-dialog .dialog-card {
  max-height: 88vh;
  overflow: auto;
}
.report-packet-preview {
  margin-top: 1rem;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 14px;
  background: #fffdf7;
  padding: 1rem;
}
.report-print-packet {
  color: #173d31;
  display: grid;
  gap: 14px;
}
.report-print-packet header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  border-bottom: 2px solid #173d31;
  margin-bottom: 1rem;
  padding-bottom: .8rem;
}
.report-print-packet .print-section {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 12px;
  padding: 12px;
  background: #fff;
  break-inside: avoid;
}
.report-print-packet .print-section h2 {
  margin-top: 0;
}
.report-packet-front {
  display: grid;
  gap: 10px;
}
.print-summary-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.report-print-packet header img {
  width: 80px;
  height: 80px;
  object-fit: contain;
}
body.report-printing > *:not(#reportPacketDialog):not(#reportPacketPreview) {
  visibility: hidden;
}
body.report-printing #reportPacketPreview,
body.report-printing #reportPacketPreview * {
  visibility: visible;
}
body.report-printing #reportPacketPreview {
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  border: 0;
  padding: 0;
  background: #fff;
}
@media print {
  body.report-printing .topbar,
  body.report-printing .tabs,
  body.report-printing .admin-hero,
  body.report-printing .metrics-grid,
  body.report-printing .report-packet-dialog .dialog-head,
  body.report-printing .report-packet-dialog .actions {
    display: none !important;
  }
  body.report-printing #reportPacketDialog {
    display: block;
    position: static;
    width: auto;
    height: auto;
    max-width: none;
    max-height: none;
    border: 0;
    padding: 0;
  }
  body.report-printing #reportPacketDialog::backdrop {
    display: none;
  }
  body.report-printing .dialog-card {
    box-shadow: none !important;
    border: 0 !important;
    padding: 0 !important;
  }
  body.report-printing .report-table-shell {
    overflow: visible;
    max-height: none;
  }
}
@media (max-width: 1180px) {
  .report-command-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .report-command-actions {
    justify-content: start;
  }
  .report-command-summary,
  .report-grid,
  .report-active-pane,
  .report-service-timeline {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .report-command-card {
    position: static;
  }
  .report-command-bar,
  .report-command-summary,
  .report-grid,
  .report-active-pane,
  .report-attention-list,
  .report-kitchen-grid,
  .report-kitchen-handoff,
  .report-guest-impact-lane > div,
  .report-preference-grid,
  .report-note-filters,
  .report-service-timeline,
  .print-summary-strip {
    grid-template-columns: 1fr;
  }
  .report-subtabs,
  .segmented-control,
  .report-command-actions {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .report-command-actions {
    justify-content: flex-start;
  }
  .report-subtabs,
  .segmented-control {
    flex-wrap: wrap;
  }
  .report-subtabs button,
  .segmented-control button,
  .report-command-actions .btn {
    flex: 1 1 min(125px, 100%);
    min-width: 0;
  }
  .report-export-menu {
    flex: 1 1 min(125px, 100%);
  }
  .report-export-menu summary {
    display: grid;
    place-items: center;
  }
  .report-export-list {
    left: 0;
    right: auto;
    max-width: calc(100vw - 52px);
  }
  .report-preference-head {
    display: grid;
  }
}

/* v9 status badge aliases for admin stay cards */
.stay-checked-in { background: #e5f6e6 !important; color: #0e4b28 !important; }
.stay-upcoming { background: #eef6ff !important; color: #17466d !important; }
.stay-checked-out, .stay-archived, .stay-cancelled { background: #f1eee7 !important; color: #6c6258 !important; }

/* v10 admin command-center refinements: clickable metrics, alert bell, catch-all triage, and resource calendar */
.alert-bell {
  position: relative;
  border: 1px solid var(--line);
  background: #fffdf8;
  color: var(--forest);
  border-radius: 999px;
  min-width: 44px;
  height: 40px;
  display: inline-grid;
  place-items: center;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(23,61,49,.08);
}
.alert-bell .bell-icon { font-size: 1.05rem; }
.alert-bell .alert-count {
  position: absolute;
  top: -8px;
  right: -8px;
  min-width: 22px;
  height: 22px;
  padding: 0 .35rem;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: #9b2d1f;
  color: #fff;
  font-size: .72rem;
  font-weight: 950;
  border: 2px solid #fffdf8;
}
.alert-bell:not(.has-alerts) .alert-count { background: #d7d0c2; color: var(--muted); }
.alert-tray {
  position: fixed;
  top: 74px;
  right: min(24px, 4vw);
  width: min(430px, calc(100vw - 32px));
  max-height: 70vh;
  overflow: auto;
  z-index: 200;
  background: #fffdf8;
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: 0 24px 70px rgba(23,61,49,.25);
  padding: 1rem;
}
.alert-tray-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; color: var(--forest); }
.alert-list { display: grid; gap: .65rem; }
.alert-item {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: .85rem;
  background: #fffaf0;
  cursor: pointer;
}
.alert-item.is-unread { border-color: rgba(0,191,25,.38); box-shadow: inset 4px 0 0 var(--leaf); }
.alert-item.is-read { opacity: .72; }
.alert-top { display: flex; justify-content: space-between; gap: .75rem; margin-bottom: .35rem; color: var(--muted); font-size: .8rem; }
.alert-item strong { color: var(--forest); display: block; margin-bottom: .25rem; }
.alert-item p { margin: 0 0 .25rem; }
.alert-item small { color: var(--muted); font-weight: 800; }
.metric-card.metric-button {
  text-align: left;
  cursor: pointer;
  border: 1px solid var(--line);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.metric-card.metric-button:hover,
.metric-card.metric-button:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(0,191,25,.45);
  box-shadow: 0 12px 32px rgba(23,61,49,.12);
  outline: none;
}
.triage-command-card { border-left: 6px solid var(--forest); }
.triage-filters { grid-template-columns: minmax(160px, .8fr) minmax(160px, .8fr) minmax(220px, 1.4fr); align-items: end; }
.triage-list { gap: .9rem; }
.triage-card {
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 1rem;
  background: linear-gradient(180deg, #fffdf8, #fff9ef);
  box-shadow: 0 10px 30px rgba(23,61,49,.045);
}
.triage-card.triage-experience { border-left: 5px solid var(--leaf); }
.triage-head { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; margin-bottom: .6rem; }
.triage-head h3 { margin: .1rem 0 .2rem; color: var(--forest); }
.triage-head p { margin: 0; color: var(--muted); font-weight: 750; }
.triage-grid { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: .75rem; margin: .75rem 0; }
.triage-card textarea { min-height: 74px; }
.dispatcher-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .65rem; margin-bottom: 1rem; }
.dispatch-summary-card { border: 1px solid rgba(23,61,49,.14); border-radius: 14px; background: #fff; padding: .75rem; text-align: left; cursor: pointer; box-shadow: 0 8px 18px rgba(23,61,49,.045); }
.dispatch-summary-card span { display: block; color: var(--muted); font-size: .8rem; font-weight: 800; }
.dispatch-summary-card strong { display: block; color: var(--forest); font-size: 1.3rem; margin-top: .15rem; }
.dispatcher-card { border-left: 5px solid var(--forest); }
.dispatcher-experience { border-left-color: var(--leaf); }
.dispatcher-task { border-left-color: #4b70b8; }
.dispatcher-dining { border-left-color: var(--gold); }
.dispatcher-message { border-left-color: #8a5a9f; }
.dispatch-recommendations { display: grid; gap: .45rem; margin: .8rem 0; }
.dispatch-rec-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .2rem .55rem; align-items: center; border: 1px solid rgba(23,61,49,.12); border-radius: 12px; background: #fff; padding: .6rem; text-align: left; cursor: pointer; }
.dispatch-rec-row strong { color: var(--forest); }
.dispatch-rec-row small { grid-column: 2; color: var(--muted); }
.dispatcher-detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .85rem; padding: 0 1rem 1rem; }
.dispatcher-timeline p { border-bottom: 1px solid rgba(23,61,49,.08); padding-bottom: .5rem; }
.dispatcher-timeline small, .dispatcher-timeline span { display: block; color: var(--muted); }
.danger-soft { background: #fff0ea !important; color: #8b2d18 !important; border-color: #efc4b4 !important; }
.resource-command-card { border-left: 6px solid var(--leaf); }
.resource-workspace { align-items: start; }
.resource-card, .resource-booking-card {
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 1rem;
  background: #fffdf8;
}
.resource-booking-card { border-left: 5px solid var(--gold); }
.resource-card .item-meta, .resource-booking-card .item-meta { gap: .45rem; }
.resource-allocation-card {
  display: grid;
  gap: .85rem;
  padding: 0;
  overflow: hidden;
  border-left: 0;
}
.allocation-card-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  padding: 1rem 1rem 0;
}
.allocation-card-head h3 { margin: .1rem 0 0; color: var(--forest); }
.allocation-card-head .badges { justify-content: flex-end; flex-wrap: wrap; }
.allocation-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem;
  padding: 0 1rem;
}
.allocation-detail-grid span {
  min-width: 0;
  border: 1px solid rgba(23,61,49,.10);
  border-radius: 12px;
  background: #fff;
  padding: .62rem .7rem;
}
.allocation-detail-grid small {
  display: block;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.allocation-detail-grid strong {
  display: block;
  color: var(--forest);
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.allocation-notes {
  margin: 0 1rem;
  color: #4f6258;
  line-height: 1.5;
}
.allocation-actions {
  border-top: 1px solid rgba(23,61,49,.09);
  padding: .85rem 1rem 1rem;
}
.resource-allocation-compact .allocation-actions {
  border-top: 0;
  padding: .2rem 0 0;
  justify-content: flex-start;
}
.resource-allocation-form textarea { min-height: 96px; }
@media (max-width: 860px) {
  .allocation-card-head { flex-direction: column; }
  .allocation-detail-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) {
  .allocation-detail-grid { grid-template-columns: 1fr; }
  .allocation-actions .btn { width: 100%; justify-content: center; }
}
.btn.disabled-channel, button:disabled { opacity: .56; cursor: not-allowed; }
@media (max-width: 1100px) {
  .triage-grid, .triage-filters { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
  .triage-head { flex-direction: column; }
  .triage-grid, .triage-filters { grid-template-columns: 1fr; }
  .alert-tray { top: 62px; }
}

/* v11/v13 refinements: menu templates, resource classes/calendar, guide details, stay intelligence, AI triage */
.template-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin-top: 18px; }
.menu-template-card { border: 1px solid rgba(23,61,49,.14); border-radius: 18px; padding: 16px; background: #fff; box-shadow: 0 10px 28px rgba(23,61,49,.06); }
.menu-template-card.is-inactive { opacity: .62; }
.template-picker-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: end; margin: 10px 0; padding: 10px; border: 1px solid rgba(23,61,49,.1); background: rgba(23,61,49,.035); border-radius: 14px; }
.template-picker-row label { margin: 0; }
.small-switcher { margin: 0 0 12px; justify-content: flex-end; }
.resource-month-grid { display: grid; grid-template-columns: repeat(7, minmax(92px, 1fr)); gap: 8px; }
.resource-month-cell { min-height: 102px; padding: 10px; border: 1px solid rgba(23,61,49,.12); border-radius: 14px; background: #fff; overflow: hidden; }
.resource-month-cell.empty { background: transparent; border-color: transparent; }
.resource-month-cell.selected { outline: 2px solid var(--accent); background: rgba(0,191,25,.05); }
.resource-day-link { width: 100%; justify-content: flex-start; margin-bottom: 6px; }
.resource-dot { display: block; font-size: .78rem; line-height: 1.25; padding: 4px 6px; margin-top: 4px; border-radius: 8px; background: rgba(23,61,49,.08); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.resource-card .badges { flex-wrap: wrap; }
.guide-card { cursor: pointer; transition: transform .16s ease, box-shadow .16s ease; }
.guide-card:hover, .guide-card:focus-visible { transform: translateY(-2px); box-shadow: 0 16px 36px rgba(23,61,49,.12); }
.guide-detail-body { display: grid; gap: 14px; }
.guide-detail-lede { font-size: 1.03rem; line-height: 1.6; }
.hero-guide-image { max-height: 360px; object-fit: cover; border-radius: 18px; }
.guide-detail-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.guide-options-card { display: grid; gap: 10px; }
.guide-option-list { display: grid; gap: 8px; }
.guide-option-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 0; border-top: 1px solid rgba(23,61,49,.1); }
.guide-option-row:first-child { border-top: 0; }
.guide-option-row strong { display: block; color: var(--forest); }
.guide-option-row small { display: block; color: var(--muted); line-height: 1.35; }
.admin-guide-options-dialog .dialog-card { max-width: 980px; max-height: 88vh; overflow: auto; }
.guide-options-body { display: grid; gap: 16px; }
.guide-options-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.guide-options-grid .notice-card { display: grid; align-content: start; gap: 10px; }
.stay-intelligence-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.intel-section.span-all { grid-column: 1 / -1; padding: 14px; border: 1px solid rgba(23,61,49,.12); border-radius: 18px; background: linear-gradient(135deg, rgba(23,61,49,.06), rgba(0,191,25,.06)); }
.intel-section-head { display: flex; gap: 10px; align-items: center; margin-bottom: 12px; }
.intel-section-head > span { font-size: 1.5rem; }
.forecast-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.mini-intel-card { display: grid; gap: 6px; padding: 13px; border: 1px solid rgba(23,61,49,.12); border-radius: 16px; background: #fff; }
.mini-intel-card strong { color: var(--primary); }
.mini-intel-card small, .mini-intel-card span { color: var(--muted); }
.ai-concierge-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: end; }
.ai-answer-box { margin-top: 12px; padding: 14px; border-radius: 14px; background: rgba(23,61,49,.055); border: 1px solid rgba(23,61,49,.12); white-space: pre-wrap; line-height: 1.55; }
@media (max-width: 760px) {
  .resource-month-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .template-picker-row, .ai-concierge-form { grid-template-columns: 1fr; }
}
@media print {
  .stay-intelligence-card, .ai-concierge-card, .notification-card { break-inside: avoid; }
}

/* v13 stability banner */
.render-health-alert{margin:14px 0;padding:12px 14px;border:1px solid #f0c36d;border-radius:14px;background:#fff7e0;color:#503b00;box-shadow:0 8px 20px rgba(0,0,0,.08)}
.render-health-alert.hidden{display:none}
.render-health-alert small{display:block;margin-top:4px;color:#6b5a2a}


/* v13 admin operations upgrades */
.dashboard-ops-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:18px;margin:18px 0}.ops-timeline,.resource-mini-board{display:grid;gap:10px}.dashboard-op-item,.resource-mini-row{border:1px solid var(--border);background:linear-gradient(135deg,#fff,#f8fbf7);border-radius:18px;padding:13px;text-align:left;display:grid;gap:5px;cursor:pointer;box-shadow:var(--shadow-soft)}.dashboard-op-item:hover,.resource-mini-row:hover{border-color:var(--primary);transform:translateY(-1px)}.dashboard-op-item span,.resource-mini-row span{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.dashboard-op-item strong,.resource-mini-row strong{color:var(--ink)}.dashboard-op-item small,.resource-mini-row small{color:var(--muted)}.polished-offering-card{overflow:hidden}.offering-card-media{border-radius:18px;overflow:hidden;border:1px solid rgba(39,92,66,.14);background:#eef4ec;margin-bottom:12px}.offering-card-media img{width:100%;height:150px;object-fit:cover;display:block}.resource-kanban-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.resource-board-column{border:1px solid var(--border);border-radius:20px;background:#fff;padding:12px;min-height:160px}.resource-board-head{display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:10px}.resource-board-head span{font-size:.78rem;color:var(--muted)}.resource-board-card{border:1px solid rgba(39,92,66,.14);border-radius:16px;padding:10px;background:#f8fbf7;display:grid;gap:4px;margin-bottom:8px}.resource-board-card span{font-size:.78rem;color:var(--muted)}.resource-board-card small{color:var(--muted)}.task-kanban{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:16px 0}.task-column{background:#f6f8f4;border:1px solid var(--border);border-radius:22px;padding:12px;min-height:180px}.task-column-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.task-column-head span{background:#fff;border:1px solid var(--border);border-radius:999px;padding:3px 9px}.task-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:12px;margin-bottom:10px;box-shadow:0 8px 20px rgba(39,92,66,.06)}.compact-empty{font-size:.9rem;padding:12px}.status-resolved{background:#e7f3ec;color:#245b3b}.danger-soft{background:#fdecec;color:#8d2c2c}@media(max-width:860px){.dashboard-ops-row{grid-template-columns:1fr}.offering-card-media img{height:120px}}


/* KMEC v13 admin refinements */
.dashboard-v13-overview { margin-top: 1rem; }
.compact-dashboard-list { gap: .75rem; }
.upcoming-activity-card, .task-card, .resource-board-item { border: 1px solid rgba(23,61,49,.12); border-radius: 18px; padding: .95rem; background: linear-gradient(145deg, #fffdf8, #f7fbf4); box-shadow: 0 12px 28px rgba(23,61,49,.06); }
.upcoming-activity-card { display: grid; gap: .7rem; }
.upcoming-activity-card strong, .task-card h3, .resource-board-item strong { color: var(--forest); }
.activity-pills, .provider-live-status { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .35rem; }
.resource-mini-board { display: grid; gap: .75rem; }
.resource-mini-col { border: 1px solid rgba(23,61,49,.12); border-radius: 16px; padding: .85rem; background: #fff; }
.resource-mini-col h3 { margin: 0 0 .45rem; font-size: .98rem; color: var(--forest); }
.resource-mini-col span { display: block; font-size: .84rem; color: var(--muted); margin: .25rem 0; }
.editor-state-pills { display: flex; gap: .35rem; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.provider-live-status span { background: rgba(23,61,49,.07); color: var(--forest); border-radius: 999px; padding: .28rem .55rem; font-size: .78rem; font-weight: 800; }
.provider-profile-card .provider-photo, .experience-image, .service-card img { object-fit: cover; }
.resource-board-calendar { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .85rem; }
.resource-board-column { min-height: 220px; border: 1px solid rgba(23,61,49,.14); border-radius: 20px; padding: .85rem; background: linear-gradient(180deg, #fff, #f8fbf5); }
.resource-board-column h3 { margin: 0; color: var(--forest); display: flex; justify-content: space-between; gap: .5rem; }
.resource-board-column h3 span { font-size: .72rem; color: var(--muted); font-weight: 700; }
.resource-board-item { margin-top: .65rem; background: #fff; }
.resource-board-item small, .resource-board-item span { display: block; color: var(--muted); margin-top: .25rem; }
.task-kanban { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .75rem; }
.kanban-col { border: 1px solid rgba(23,61,49,.12); border-radius: 18px; padding: .75rem; background: #fffdf8; min-height: 180px; }
.kanban-col h3 { margin: 0 0 .65rem; color: var(--forest); font-size: .95rem; display: flex; justify-content: space-between; }
.kanban-card { border-radius: 14px; background: #fff; border: 1px solid rgba(23,61,49,.10); padding: .65rem; margin-bottom: .5rem; cursor: pointer; }
.kanban-card strong { display: block; color: var(--forest); }
.kanban-card small { color: var(--muted); }
.status-open { background: #f7f1df; color: #78520f; }
.status-scheduled { background: #eaf2ff; color: #1d4f91; }
.status-in-progress { background: #e9f8ed; color: #145f32; }
.status-waiting { background: #fff1e8; color: #9b4a15; }
.status-done { background: #eff2f0; color: #41524b; }
.mini-empty { padding: .6rem; font-size: .85rem; }
@media print { .task-kanban, .resource-board-calendar { grid-template-columns: repeat(2, 1fr); } }

/* v15 polish: dining RSVP visibility, stay-intelligence visuals, shop, tasks */
.rsvp-details summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  cursor: pointer;
  padding: .95rem 1.1rem;
  border-radius: 18px;
  background: linear-gradient(135deg, var(--forest, #173d31), #24624d);
  color: #fffdf8;
  font-weight: 800;
  box-shadow: 0 12px 26px rgba(23,61,49,.18);
  list-style: none;
}
.rsvp-details summary::-webkit-details-marker { display: none; }
.rsvp-details summary::after {
  content: 'Tap to open →';
  font-size: .78rem;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: rgba(255,253,248,.9);
}
.rsvp-details[open] summary::after { content: 'Close ↑'; }
.guest-meal-option .request-actions .btn.primary,
.guest-meal-option .request-actions .btn.danger {
  min-height: 44px;
  border-radius: 999px;
  font-size: .95rem;
  padding-inline: 1.15rem;
}
.guest-meal-option.is-open .rsvp-details summary { background: linear-gradient(135deg, #1b563f, #3d8d61); }
.guest-meal-option.is-reserved .rsvp-details summary { background: linear-gradient(135deg, #0f4e62, #1e8ca3); }
.guest-meal-option.is-open .rsvp-details summary {
  background: linear-gradient(135deg, #0f5a3d, #1d9a63) !important;
  box-shadow: 0 16px 30px rgba(20, 132, 82, .25) !important;
}
.guest-meal-option.is-open .rsvp-details summary .summary-cta {
  background: #f4c95d;
  color: #173d31;
  border-radius: 999px;
  padding: .36rem .78rem;
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.08);
}
.meal-exception-details {
  margin-top: 1rem !important;
  border: 1px solid rgba(143, 74, 33, .28) !important;
  background: #fffaf1 !important;
  opacity: 1;
}
.meal-exception-details summary {
  background: linear-gradient(135deg, #873719, #ca6a25) !important;
  color: #fff !important;
  box-shadow: 0 16px 34px rgba(135, 55, 25, .28) !important;
}
.meal-exception-details summary::after { content: 'Ask staff' !important; }
.meal-exception-panel {
  display: grid;
  gap: .9rem;
  margin-inline: 16px;
}
.meal-exception-alert {
  margin: 0;
  border-left: 5px solid #ca6a25;
  border-radius: 14px;
  background: #fff3df;
  padding: .9rem 1rem;
  color: #53331c;
}
.meal-exception-panel label {
  display: grid;
  gap: .4rem;
  color: #27362f;
  font-weight: 800;
}
.meal-exception-panel textarea {
  background: #fffef9;
  border-color: rgba(143, 74, 33, .26);
}
.btn.meal-exception-btn {
  border-color: transparent;
  background: linear-gradient(135deg, #a8481e, #de7c2f);
  color: #fff;
  box-shadow: 0 14px 26px rgba(168, 72, 30, .24);
}
.btn.meal-exception-btn:hover {
  box-shadow: 0 18px 34px rgba(168, 72, 30, .3);
}

.stay-intelligence-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.span-all { grid-column: 1 / -1; }
.intel-hero-card,
.intel-section,
.route-intel-card,
.gauge-card,
.mini-intel-card.modern {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 26px;
  background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,253,248,.88));
  box-shadow: 0 18px 44px rgba(23,61,49,.08);
}
.intel-hero-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.25rem;
  background: radial-gradient(circle at top left, rgba(154,210,183,.32), transparent 35%), linear-gradient(135deg, #fffdf8, #eef7ee);
}
.stay-range-pill {
  padding: .7rem 1rem;
  border-radius: 999px;
  background: #173d31;
  color: #fffdf8;
  font-weight: 800;
  white-space: nowrap;
}
.intel-section { padding: 1rem; }
.intel-section-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: .8rem;
}
.intel-section-head > span { font-size: 2rem; }
.modern-forecast-strip,
.tide-graph-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: .85rem;
}
.modern-forecast-card,
.tide-graph-card {
  border-radius: 20px;
  padding: 1rem;
  background: #fff;
  border: 1px solid rgba(23,61,49,.1);
}
.modern-forecast-card strong { display: block; margin: .3rem 0 .8rem; }
.weather-bars {
  height: 58px;
  display: flex;
  align-items: end;
  gap: .35rem;
  margin: .4rem 0;
}
.weather-bars i {
  flex: 1;
  border-radius: 999px 999px 0 0;
  background: linear-gradient(180deg, #f4c96b, #2d8a62);
}
.tide-graph-card svg { width: 100%; height: 82px; color: #1676a2; background: linear-gradient(180deg, #eaf7ff, #fff); border-radius: 16px; padding: .4rem; }
.mini-scale { display: flex; justify-content: space-between; color: var(--muted); font-size: .75rem; }
.route-intel-card,
.gauge-card,
.mini-intel-card.modern { padding: 1rem; }
.route-intel-card { display: flex; gap: 1rem; align-items: center; }
.route-meter {
  width: 78px; height: 78px; border-radius: 999px;
  display: grid; place-items: center;
  background: conic-gradient(#2e8a64 0 72%, #e7eee9 72% 100%);
  color: #173d31;
  font-weight: 900;
  flex: 0 0 auto;
}
.route-meter.kona { background: conic-gradient(#b58b40 0 84%, #f0e7d5 84% 100%); }
.route-meter span { font-size: 1.2rem; line-height: 1; }
.route-meter small { display: block; font-size: .65rem; }
.gauge-card { text-align: center; }
.gauge-ring {
  --value: 50;
  width: 92px; height: 92px; border-radius: 999px;
  margin: 0 auto .75rem;
  display: grid; place-items: center;
  background: conic-gradient(#2e8a64 calc(var(--value)*1%), #edf1ed 0);
  font-weight: 900;
  color: #173d31;
}
.gauge-card.volcano .gauge-ring { background: conic-gradient(#d67432 28%, #edf1ed 0); }

.modern-experience-card {
  overflow: hidden;
  padding: 0;
  border-radius: 28px;
  background: #fff;
  border: 1px solid rgba(23,61,49,.12);
  box-shadow: 0 18px 42px rgba(23,61,49,.08);
}
.modern-experience-media {
  position: relative;
  min-height: 180px;
  background: linear-gradient(135deg, #173d31, #5da578);
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 3rem;
}
.modern-experience-media img { width: 100%; height: 220px; object-fit: cover; display: block; }
.experience-category-chip {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  background: rgba(255,253,248,.92);
  color: #173d31;
  padding: .4rem .75rem;
  border-radius: 999px;
  font-weight: 800;
  font-size: .78rem;
}
.modern-experience-body { padding: 1rem; }
.experience-facts {
  display: flex;
  gap: .45rem;
  flex-wrap: wrap;
  margin: .75rem 0;
}
.experience-facts span {
  background: #f3f7f2;
  border: 1px solid rgba(23,61,49,.08);
  border-radius: 999px;
  padding: .35rem .6rem;
  font-size: .78rem;
}
.modern-provider-mini { background: #fbf8ef; border-radius: 18px; padding: .7rem; margin: .8rem 0; }
.experience-cta { margin-top: .8rem; min-height: 46px; }

.task-admin-grid { margin: 1rem 0; align-items: start; }
.task-board-shell { overflow-x: auto; }
.task-kanban { display: grid; grid-template-columns: repeat(3, minmax(240px, 1fr)); gap: 1rem; }
.task-column { background: #f8faf7; border: 1px dashed rgba(23,61,49,.18); border-radius: 22px; padding: .8rem; min-height: 190px; }
.task-drop-zone { display: grid; gap: .75rem; min-height: 120px; }
.draggable-task { cursor: grab; }
.draggable-task:active { cursor: grabbing; }
.task-card-actions .btn { pointer-events: auto; }
.compact-staff-card { padding: .85rem; }

.shop-admin-grid,
.shop-guest-grid { align-items: stretch; }
.shop-item-card {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 26px;
  padding: 1rem;
  background: #fff;
  box-shadow: 0 16px 36px rgba(23,61,49,.07);
  display: flex;
  flex-direction: column;
  gap: .7rem;
}
.shop-item-image {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 20px;
  background: #eef4ee;
}
.guest-shop-footer { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: auto; }
.guest-shop-footer strong { font-size: 1.3rem; color: #173d31; }

@media (max-width: 900px) {
  .stay-intelligence-grid { grid-template-columns: 1fr; }
  .intel-hero-card { flex-direction: column; align-items: flex-start; }
  .task-kanban { grid-template-columns: 1fr; }
}

.guest-quick-request-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;margin:0 0 1.2rem;padding:.85rem;border:1px solid rgba(23,61,49,.14);border-radius:18px;background:linear-gradient(135deg,rgba(253,250,242,.95),rgba(231,239,228,.72));}
.guest-quick-request-strip button{border:1px solid rgba(23,61,49,.18);border-radius:16px;background:#fff;color:#173d31;font-weight:800;padding:.9rem .75rem;box-shadow:0 8px 24px rgba(23,61,49,.08);cursor:pointer;text-align:left;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;}
.guest-quick-request-strip button:hover,.guest-quick-request-strip button:focus{transform:translateY(-2px);box-shadow:0 14px 34px rgba(23,61,49,.14);border-color:#c49148;outline:none;}
.rsvp-details{margin-top:1rem;padding:1rem 1.1rem;border-radius:18px;border:1px solid rgba(23,61,49,.14);background:#fffdf7;}
.rsvp-details[open]{box-shadow:inset 0 0 0 1px rgba(196,145,72,.28),0 12px 26px rgba(23,61,49,.08);}
.rsvp-details summary{padding:.95rem 1rem;margin:-.35rem -.35rem .95rem;border-radius:15px;background:linear-gradient(135deg,#173d31,#295e4d);color:#fff;gap:1rem;}
.rsvp-details summary small{color:rgba(255,255,255,.82);display:block;margin-top:.2rem;}
.rsvp-details .summary-cta{background:#f6d28a;color:#173d31;border-radius:999px;padding:.35rem .75rem;font-weight:900;white-space:nowrap;}
.friendly-rsvp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin:1rem 0 1.1rem;}
.rsvp-details label{display:block;margin:.85rem 0;}
.rsvp-details textarea{min-height:84px;}
.policy-check{display:flex!important;align-items:flex-start;gap:.65rem;padding:.85rem;border:1px dashed rgba(196,145,72,.4);border-radius:14px;background:#fff8e8;}
.policy-check input{margin-top:.2rem;}
.mobile-menu-toggle{display:none;width:100%;margin:.75rem 0;padding:.85rem 1rem;border-radius:16px;border:1px solid rgba(23,61,49,.18);background:#173d31;color:#fff;font-weight:900;text-align:left;}
.ai-concierge-fab{position:fixed;right:1rem;bottom:1.25rem;z-index:80;border:0;border-radius:999px;padding:.9rem 1.1rem;background:#173d31;color:#fff;font-weight:900;box-shadow:0 16px 40px rgba(23,61,49,.28);cursor:pointer;}
.ai-concierge-drawer{position:fixed;right:1rem;bottom:5rem;width:min(390px,calc(100vw - 2rem));max-height:75vh;overflow:auto;z-index:85;border:1px solid rgba(23,61,49,.16);border-radius:24px;background:#fffdf7;box-shadow:0 24px 70px rgba(7,24,20,.32);padding:1.2rem;transform:translateY(22px) scale(.96);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;}
.ai-concierge-drawer.is-open{opacity:1;pointer-events:auto;transform:translateY(0) scale(1);}
.drawer-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.75rem;}
.ai-drawer-form{display:flex;gap:.5rem;margin:1rem 0;}
.ai-drawer-form input{flex:1;}
.ai-drawer-answer{border-radius:18px;background:#eef5ef;border:1px solid rgba(23,61,49,.12);padding:1rem;line-height:1.55;min-height:96px;}
.ai-prompts{margin-top:1rem;}
.app-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:.85rem 1.2rem;align-items:center;padding:2rem 1rem;margin:2rem auto 0;max-width:1180px;color:#586760;border-top:1px solid rgba(23,61,49,.14);}
.app-footer a,.app-footer button{color:#173d31;font-weight:800;text-decoration:none;}
.v15-intel-hero,.v15-tide-card,.v15-route-card,.v15-gauge-card,.v15-volcano-card{border-radius:24px;border:1px solid rgba(23,61,49,.12);background:linear-gradient(145deg,#fffdf7,#f1f7f1);box-shadow:0 12px 34px rgba(23,61,49,.08);padding:1.1rem;}
.v15-intel-hero{display:grid;grid-template-columns:minmax(220px,.8fr) 1.5fr;gap:1rem;align-items:center;}
.v15-weather-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:.65rem;}
.v15-weather-tile{position:relative;overflow:hidden;border-radius:18px;background:#fff;padding:.8rem;border:1px solid rgba(23,61,49,.1);min-height:128px;display:grid;gap:.2rem;}
.v15-weather-tile span{font-size:1.45rem}.v15-weather-tile b{font-size:1.6rem;color:#173d31}.v15-weather-tile i{display:block;height:5px;background:linear-gradient(90deg,#c49148,var(--green,#173d31));border-radius:999px;width:var(--v);}
.v15-tide-svg{width:100%;height:170px;color:#1d6c75;stroke:#1d6c75;fill:#1d6c75;background:linear-gradient(180deg,#e9f7fb,#fffdf7);border-radius:18px;padding:.75rem;margin:.5rem 0;}
.v15-route-card{display:grid;gap:.75rem}.v15-route-line{height:12px;border-radius:999px;background:#e2e9e4;overflow:hidden}.v15-route-line i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#173d31,#c49148)}
.v15-gauge-card,.v15-volcano-card{text-align:center}.v15-ring{--pct:42;width:132px;height:132px;margin:.5rem auto;border-radius:999px;background:conic-gradient(#173d31 calc(var(--pct) * 1%),#e5ece7 0);display:grid;place-items:center;position:relative}.v15-ring:after{content:"";position:absolute;inset:13px;border-radius:inherit;background:#fffdf7}.v15-ring strong,.v15-ring span{z-index:1}.v15-ring strong{font-size:1.8rem;color:#173d31}.v15-ring span{font-size:.75rem;font-weight:800;color:#66736b;display:block;margin-top:2.1rem;position:absolute}.v15-tilt-bars{height:126px;display:flex;gap:.45rem;align-items:end;justify-content:center;padding:1rem;border-radius:18px;background:#f3f6f2}.v15-tilt-bars i{width:24px;border-radius:999px 999px 0 0;background:linear-gradient(180deg,#c49148,#173d31);}
.personal-schedule-item{border-left:4px solid #c49148;}
.conversation-heading{align-items:flex-start}.conversation-actions{display:flex;gap:.5rem;flex-wrap:wrap}.conversation-filter-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin:-.25rem 0 1rem;padding:.6rem .8rem;border-radius:14px;background:#f5f8f3;border:1px solid rgba(23,61,49,.12)}.archive-details{margin-top:1rem}.hidden{display:none!important;}
.staff-command-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1rem}.staff-card p{margin:.25rem 0 0;color:#65736b}.staff-card .request-actions{align-self:center}.task-column.drag-over{outline:3px dashed #c49148;outline-offset:4px;background:#fff8e8}.task-card.dragging{opacity:.55;transform:scale(.98)}
@media(max-width:760px){.mobile-menu-toggle{display:block}.tabs.sticky-tabs{display:none;position:sticky;top:.25rem;z-index:30;grid-template-columns:1fr;background:#fffdf7;border:1px solid rgba(23,61,49,.16);border-radius:18px;padding:.6rem;box-shadow:0 16px 40px rgba(23,61,49,.18)}.tabs.sticky-tabs.is-open{display:grid}.tabs.sticky-tabs .tab{text-align:left;width:100%;justify-content:flex-start}.v15-intel-hero{grid-template-columns:1fr}.ai-concierge-fab{right:.85rem;bottom:.85rem}.ai-concierge-drawer{right:.65rem;bottom:4.4rem;width:calc(100vw - 1.3rem)}.friendly-rsvp-grid{grid-template-columns:1fr}.guest-quick-request-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.app-footer{padding-bottom:5rem}.conversation-filter-row{align-items:flex-start;flex-direction:column}.ai-drawer-form{flex-direction:column}}

/* v15 interaction polish: mobile nav, RSVP spacing, floating AI, conversations, staff/tasks */
.menu-toggle { display: none; }
.quick-request-panel { border: 1px solid rgba(23,61,49,.12); background: linear-gradient(135deg, rgba(255,253,248,.98), rgba(240,248,239,.92)); }
.quick-request-bar { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .85rem; }
.quick-request-chip { border: 1px solid rgba(23,61,49,.16); background: #fffdf8; border-radius: 18px; padding: 1rem; text-align: left; display: grid; gap: .25rem; box-shadow: 0 12px 28px rgba(23,61,49,.08); cursor: pointer; transition: transform .16s ease, box-shadow .16s ease; }
.quick-request-chip:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(23,61,49,.13); }
.quick-request-chip span { font-size: 1.45rem; }
.quick-request-chip strong { color: var(--forest); }
.quick-request-chip small { color: var(--muted); }
.rsvp-details { margin-top: 1.05rem; border-radius: 18px; border: 1px solid rgba(23,61,49,.13); background: #fffdf8; padding: .2rem; }
.rsvp-details summary { list-style: none; cursor: pointer; margin: 0; padding: 1rem 1.15rem; border-radius: 15px; background: linear-gradient(135deg, var(--forest), #245949); color: #fff; font-weight: 800; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.rsvp-details summary::-webkit-details-marker { display: none; }
.rsvp-details summary::after { content: "Open"; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; opacity: .86; }
.rsvp-details[open] summary { margin-bottom: 1rem; }
.rsvp-details[open] summary::after { content: "Close"; }
.rsvp-details[open] { padding: .2rem 1.1rem 1.15rem; }
.friendly-rsvp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1rem; margin: 1rem 0; }
.policy-check { display: grid; grid-template-columns: auto 1fr; gap: .7rem; align-items: start; margin: 1rem 0; padding: 1rem; border-radius: 16px; background: rgba(181,139,64,.08); border: 1px solid rgba(181,139,64,.18); }
.stay-intelligence-grid { gap: 1rem; }
.intel-hero-panel, .intel-visual-card, .mini-intel-card { border-radius: 22px; box-shadow: 0 14px 38px rgba(23,61,49,.08); }
.intel-hero-panel { background: radial-gradient(circle at top right, rgba(0,191,25,.15), transparent 34%), linear-gradient(135deg, #fdfaf2, #eef7ee); border: 1px solid rgba(23,61,49,.12); padding: 1.25rem; }
.weather-forecast-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(125px, 1fr)); gap: .8rem; }
.weather-day-card { min-height: 145px; border-radius: 20px; padding: .9rem; background: linear-gradient(180deg, #fffdf8, #eef8f0); border: 1px solid rgba(23,61,49,.11); display: grid; align-content: space-between; }
.weather-day-card > span { font-size: 1.7rem; }
.weather-bar { height: 8px; border-radius: 999px; background: rgba(23,61,49,.09); overflow: hidden; }
.weather-bar i { display:block; height:100%; border-radius:999px; background: linear-gradient(90deg, var(--leaf), var(--gold)); }
.intel-visual-card { background: #fffdf8; border: 1px solid rgba(23,61,49,.12); padding: 1.1rem; }
.tide-chart { color: #2e7568; width: 100%; height: 130px; margin: .5rem 0; background: linear-gradient(180deg, rgba(46,117,104,.06), rgba(46,117,104,.02)); border-radius: 18px; }
.aqi-gauge { width: 132px; height: 132px; border-radius: 50%; margin: .5rem auto; display: grid; place-items: center; background: conic-gradient(var(--leaf) calc(var(--aqi) * 1%), rgba(23,61,49,.1) 0); position: relative; }
.aqi-gauge::after { content:""; width: 92px; height: 92px; border-radius: 50%; background: #fffdf8; position: absolute; }
.aqi-gauge strong, .aqi-gauge span { position: relative; z-index: 1; display: block; text-align: center; }
.aqi-gauge strong { font-size: 2rem; color: var(--forest); }
.tilt-bars { height: 130px; display: flex; align-items: end; gap: .55rem; padding: .8rem; border-radius: 18px; background: linear-gradient(180deg, rgba(181,139,64,.08), rgba(23,61,49,.04)); }
.tilt-bars i { flex: 1; border-radius: 999px 999px 0 0; background: linear-gradient(180deg, var(--gold), var(--forest)); min-height: 18px; }
.floating-ai-widget { position: fixed; right: 1rem; bottom: 1rem; z-index: 80; max-width: min(420px, calc(100vw - 2rem)); }
.floating-ai-toggle { border: 0; border-radius: 999px; background: linear-gradient(135deg, var(--forest), #245949); color: white; padding: .9rem 1.15rem; font-weight: 800; box-shadow: 0 16px 44px rgba(23,61,49,.28); cursor: pointer; }
.floating-ai-panel { margin-top: .75rem; border-radius: 24px; background: #fffdf8; border: 1px solid rgba(23,61,49,.16); box-shadow: 0 20px 70px rgba(23,61,49,.22); padding: 1rem; }
.floating-ai-head { display:flex; align-items:center; justify-content:space-between; gap: 1rem; margin-bottom:.4rem; }
.floating-ai-form { display:grid; grid-template-columns: 1fr auto; gap: .5rem; margin: .85rem 0; }
.compact-ai-answer { max-height: 220px; overflow:auto; white-space: pre-line; }
.guest-footer { margin: 2rem auto 1rem; max-width: 1180px; padding: 1.4rem; border-radius: 24px; background: #173d31; color: #fff; display:flex; justify-content:space-between; gap: 1rem; align-items:center; }
.guest-footer p { margin: .2rem 0 0; color: rgba(255,255,255,.78); }
.guest-footer nav { display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; }
.guest-footer a, .guest-footer .link-button { color:#fff; border-color: rgba(255,255,255,.25); }
.personal-schedule-item { border-left: 4px solid var(--gold); background: rgba(181,139,64,.06); }
.conversation-admin-controls { border: 1px solid rgba(23,61,49,.12); border-radius: 16px; padding: .75rem; background: rgba(23,61,49,.03); display: grid; gap: .6rem; }
.compact-check { margin: 0; }
.conversation-archive-details { margin-top: 1rem; }
.staff-member-row p { margin: .35rem 0 0; color: var(--muted); font-size: .9rem; }
.task-kanban { display: grid; grid-template-columns: repeat(3, minmax(220px, 1fr)); gap: 1rem; align-items: stretch; }
.v15-task-column { min-height: 300px; background: rgba(23,61,49,.035); border: 1px dashed rgba(23,61,49,.16); border-radius: 20px; padding: .85rem; }
.task-drop-zone { display: grid; gap: .75rem; min-height: 230px; }
.task-card.dragging { opacity: .5; transform: rotate(-1deg); }
.task-card { cursor: grab; }
.task-card-actions { margin-top: .7rem; }
.admin-shop-card .shop-image, .shop-guest-grid .shop-image { aspect-ratio: 16/10; object-fit: cover; border-radius: 18px; width: 100%; background: #eef7ee; }
@media (max-width: 760px) {
  .menu-toggle { display: inline-flex; }
  #guestTabs.guest-tabs { display: none; position: sticky; top: 74px; z-index: 50; background: rgba(255,253,248,.98); border-radius: 20px; box-shadow: 0 20px 60px rgba(23,61,49,.18); padding: .75rem; grid-template-columns: 1fr; }
  #guestTabs.guest-tabs.open, #guestTabs.guest-tabs.is-open { display: grid; }
  .topbar { gap: .6rem; }
  .topbar-actions { gap: .45rem; }
  .topbar-actions .btn:not(.menu-toggle) { padding-inline: .75rem; }
  .quick-actions { grid-template-columns: repeat(2, 1fr); }
  .guest-footer { flex-direction: column; align-items: flex-start; margin-inline: 1rem; }
  .floating-ai-widget { right: .75rem; bottom: .75rem; }
  .floating-ai-form { grid-template-columns: 1fr; }
  .task-kanban { grid-template-columns: 1fr; }
}

/* v15 guest intelligence overrides */
.v15-intel-hero, .v15-tide-card, .v15-route-card, .v15-gauge-card, .v15-volcano-card {
  border: 1px solid rgba(23,61,49,.12); border-radius: 24px; background: #fffdf8; box-shadow: 0 18px 48px rgba(23,61,49,.09); padding: 1.15rem;
}
.v15-intel-hero { background: radial-gradient(circle at 85% 15%, rgba(0,191,25,.16), transparent 35%), linear-gradient(135deg, #fffaf0, #eef8ee); display: grid; gap: 1rem; }
.v15-weather-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: .75rem; }
.v15-weather-tile { border: 1px solid rgba(23,61,49,.1); border-radius: 20px; padding: .85rem; background: rgba(255,255,255,.78); display: grid; gap: .18rem; min-height: 132px; }
.v15-weather-tile span { font-size: 1.55rem; }
.v15-weather-tile b { font-size: 1.75rem; color: var(--forest); }
.v15-weather-tile i { display:block; height: 7px; border-radius: 999px; background: linear-gradient(90deg, var(--leaf) var(--v), rgba(23,61,49,.1) 0); margin-top: .35rem; }
.v15-tide-svg { width:100%; height: 150px; color: #2f786c; background: linear-gradient(180deg, rgba(47,120,108,.08), rgba(47,120,108,.025)); border-radius: 20px; margin:.8rem 0; }
.v15-tide-svg path, .v15-tide-svg circle { stroke: currentColor; fill: currentColor; }
.v15-route-card { display: grid; gap: .8rem; }
.v15-route-line { height: 10px; border-radius: 999px; background: rgba(23,61,49,.1); overflow:hidden; }
.v15-route-line i { display:block; height:100%; border-radius:999px; background: linear-gradient(90deg, var(--leaf), var(--gold)); }
.v15-route-line.long i { background: linear-gradient(90deg, var(--gold), var(--forest)); }
.v15-ring { width: 132px; height: 132px; border-radius: 50%; margin: 1rem auto; display: grid; place-items:center; background: conic-gradient(var(--leaf) calc(var(--pct) * 1%), rgba(23,61,49,.1) 0); position: relative; }
.v15-ring::after { content:""; position:absolute; width: 92px; height: 92px; background:#fffdf8; border-radius:50%; }
.v15-ring strong, .v15-ring span { position: relative; z-index:1; display:block; text-align:center; }
.v15-ring strong { font-size: 2rem; color: var(--forest); }
.v15-tilt-bars { height: 120px; display:flex; gap:.5rem; align-items:end; padding:.8rem; border-radius: 18px; background: linear-gradient(180deg, rgba(181,139,64,.09), rgba(23,61,49,.04)); }
.v15-tilt-bars i { flex:1; min-height:20px; border-radius: 999px 999px 0 0; background: linear-gradient(180deg, var(--gold), var(--forest)); }

/* v15 clean integration helpers */
.menu-toggle{display:none}
@media(max-width:760px){.menu-toggle{display:inline-flex}.tabs.sticky-tabs.is-open{display:grid!important}}
.friendly-rsvp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin:1rem 0}.reserve-meal-summary,.meal-reserve-toggle{padding:1rem 1.2rem!important;border-radius:16px!important;background:#173d31!important;color:#fff!important;font-weight:900}.task-column.drag-over,.v15-task-column.drag-over{outline:3px dashed #00bf19;outline-offset:4px}.staff-panel-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.7fr);gap:1rem}.conversation-filter-row{display:flex;gap:1rem;align-items:center;justify-content:space-between;margin:.75rem 0}.conversation-actions{display:flex;flex-wrap:wrap;gap:.5rem}.staff-roster-standalone{display:grid;gap:.75rem}
@media(max-width:840px){.staff-panel-grid{grid-template-columns:1fr}}


/* v16 linked provider, staff user, shop, and quick experience polish */
.credential-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.provider-credential-strip{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:12px 14px;border:1px solid rgba(23,61,49,.14);border-radius:16px;background:#fbfaf5;margin:12px 0;color:var(--forest)}
.linked-provider-details{margin-top:12px}.linked-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:10px}.linked-pill{display:flex;justify-content:space-between;gap:10px;width:100%;border:1px solid rgba(23,61,49,.12);background:#fff;border-radius:14px;padding:10px 12px;margin:6px 0;text-align:left;color:var(--forest);cursor:pointer}.linked-pill:hover{border-color:var(--leaf);box-shadow:0 8px 20px rgba(23,61,49,.08)}.linked-provider-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}.linked-provider-row .linked-pill{width:auto;margin:0}.v16-provider-card{border-left:5px solid var(--gold)}.staff-user-card{background:linear-gradient(135deg,#fff,#f6faf2)}.shop-media-tools{margin:10px 0}.quick-experience-strip{margin:18px 0 22px}.quick-strip-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.quick-strip-head h3{margin:0}.quick-strip-scroll{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.quick-experience-card{border:1px solid rgba(23,61,49,.12);border-radius:20px;background:#fff;text-align:left;padding:10px;box-shadow:0 12px 30px rgba(23,61,49,.08);cursor:pointer;display:grid;gap:6px}.quick-experience-card img{width:100%;height:110px;object-fit:cover;border-radius:16px;background:#f7f4ec}.quick-experience-card span{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--gold);font-weight:800}.quick-experience-card strong{color:var(--forest);line-height:1.15}.quick-experience-card small{color:var(--muted)}.quick-experience-card:hover{transform:translateY(-1px);border-color:var(--leaf)}
@media (max-width:780px){.credential-grid,.linked-mini-grid{grid-template-columns:1fr}.provider-credential-strip{display:block}.quick-strip-scroll{grid-template-columns:1fr}}

/* v16 admin/guest polish */
.icon-picker{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}.icon-choice{border:1px solid rgba(23,61,49,.15);background:#fffaf0;border-radius:999px;padding:.35rem .55rem;font-size:1.05rem;cursor:pointer}.icon-choice:hover{box-shadow:0 0 0 3px rgba(181,139,64,.18)}
.credential-details{border-color:rgba(181,139,64,.35);background:linear-gradient(180deg,#fffaf0,#ffffff)}.provider-linked-summary,.linked-relations-card{margin-top:1rem;border:1px solid rgba(23,61,49,.12);background:#fffdf7;border-radius:18px;padding:1rem}.provider-linked-body{display:grid;gap:.75rem}.linked-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.linked-stat-grid span{background:#f4f7ef;border:1px solid rgba(23,61,49,.1);border-radius:14px;padding:.65rem;text-align:center}.linked-stat-grid strong{display:block;font-size:1.35rem;color:var(--forest)}.linked-stat-grid small{display:block;color:var(--muted)}.linked-pills{display:flex;flex-wrap:wrap;gap:.4rem}.mini-pill,.muted-pill{border:1px solid rgba(23,61,49,.14);border-radius:999px;background:#fff;padding:.35rem .6rem;font-size:.82rem}.mini-pill{cursor:pointer}.mini-pill:hover{background:#eff5ec}.credential-row,.linked-reverse-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-radius:14px;padding:.7rem .85rem;background:#f4f7ef;margin:.55rem 0}.credential-row.needs-review{background:#fff3e8;border:1px solid rgba(181,85,40,.22)}.credential-row.ok{background:#eef7ec;border:1px solid rgba(34,120,74,.18)}.spotlight-card{outline:4px solid rgba(181,139,64,.35);transition:outline .25s}.user-access-card{margin-bottom:1rem}.user-card{background:#fff;border:1px solid rgba(23,61,49,.12);border-radius:18px;padding:1rem}.user-card-grid{align-items:stretch}.shop-media-preview{max-height:180px;object-fit:cover;border-radius:16px;margin-top:.75rem}.file-btn{display:inline-flex}.visually-hidden-file{position:absolute;left:-9999px}.quick-experience-strip{margin-bottom:1rem}.quick-experience-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.quick-experience-card{display:grid;grid-template-columns:64px 1fr auto;gap:.75rem;align-items:center;background:#fffdf7;border:1px solid rgba(23,61,49,.12);border-radius:18px;padding:.75rem;box-shadow:0 12px 28px rgba(23,61,49,.06)}.quick-experience-card img,.quick-experience-icon{width:64px;height:64px;border-radius:16px;object-fit:cover;background:#f4f7ef;display:grid;place-items:center;font-size:1.8rem}.quick-experience-card strong,.quick-experience-card span,.quick-experience-card small{display:block}.quick-experience-card span{color:var(--forest)}.quick-experience-card small{color:var(--muted)}.v16-shop-action-note{margin-top:.5rem}.compact-empty{padding:.65rem}.provider-card .soft-details,.experience-service-admin .soft-details{margin-top:.75rem}
@media(max-width:720px){.quick-experience-card{grid-template-columns:54px 1fr}.quick-experience-card .btn{grid-column:1/-1}.linked-stat-grid{grid-template-columns:1fr}.credential-row,.linked-reverse-row{align-items:flex-start;flex-direction:column}.user-card-grid{grid-template-columns:1fr!important}}

/* v16 relationship, credential, user, and quick-join polish */
.relationship-box { border: 1px solid rgba(23,61,49,.12); background: #fffdf8; }
.checkbox-grid.compact-checkbox-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .55rem; margin-top: .65rem; }
.checkbox-card { border: 1px solid rgba(23,61,49,.12); border-radius: 14px; padding: .65rem .75rem; background: #fff; align-items: flex-start; }
.checkbox-card span { display: grid; gap: .15rem; }
.checkbox-card small { color: var(--muted); font-size: .76rem; }
.linked-preview-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .75rem; margin-top: .9rem; }
.chip-list { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .45rem; }
.chip.mini-chip { border: 1px solid rgba(23,61,49,.14); background: #f6f8f3; color: var(--forest); border-radius: 999px; padding: .35rem .55rem; font-size: .76rem; text-decoration: none; cursor: pointer; }
button.chip.mini-chip:hover, .image-choice:hover { border-color: var(--leaf); transform: translateY(-1px); }
.muted-text { color: var(--muted); font-size: .82rem; }
.v16-provider-details, .v16-offering-links, .v16-guest-service-details { border-top: 1px solid rgba(23,61,49,.1); margin-top: .85rem; padding-top: .85rem; }
.v16-staff-login-line { display: block; color: var(--muted); margin-top: .18rem; }
.shop-media-builder .media-preview { min-height: 120px; max-height: 180px; object-fit: contain; background: #fff; border: 1px solid rgba(23,61,49,.12); border-radius: 16px; padding: .4rem; }
.image-option-row { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .55rem; }
.image-choice { display: inline-flex; align-items: center; gap: .35rem; }
.image-choice img { width: 28px; height: 28px; border-radius: 7px; object-fit: cover; }
.guest-quick-experience-wrap { margin: 1rem 0 1.2rem; padding: .95rem; border-radius: 22px; background: linear-gradient(135deg, rgba(23,61,49,.05), rgba(0,191,25,.07)); border: 1px solid rgba(23,61,49,.1); }
.quick-join-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: .8rem; }
.quick-join-card { display: grid; grid-template-columns: 58px 1fr auto; gap: .7rem; align-items: center; padding: .75rem; border: 1px solid rgba(23,61,49,.12); background: #fff; border-radius: 18px; box-shadow: 0 12px 26px rgba(23,61,49,.06); }
.quick-join-card strong { display:block; line-height: 1.1; }
.quick-join-card small { display:block; color: var(--muted); margin-top:.15rem; }
.quick-join-media { width: 58px; height: 58px; border-radius: 16px; overflow: hidden; display: grid; place-items: center; background: #eef6ef; font-size: 1.6rem; }
.quick-join-media img { width: 100%; height: 100%; object-fit: cover; }
.compact-empty { padding: .75rem; }
.slim-heading { margin-bottom: .7rem; }
.provider-profile-card .provider-photo { background: #f7f4e8; }
.provider-profile-card .danger-soft, .badge.danger-soft { background: #fff1e9; color: #8a2e11; border-color: rgba(138,46,17,.18); }
@media (max-width: 720px) {
  .quick-join-card { grid-template-columns: 48px 1fr; }
  .quick-join-card .btn { grid-column: 1 / -1; width: 100%; }
  .linked-preview-grid { grid-template-columns: 1fr; }
  .checkbox-grid.compact-checkbox-grid { grid-template-columns: 1fr; }
}

/* === KMEC v17 stability + UI cleanup === */
.v17-hidden-form-grid > article:first-child { display: none !important; }
#tasksPanel .staff-roster-card { display: none !important; }
.task-admin-grid { grid-template-columns: minmax(0, 1fr) !important; }
.task-board-shell { min-height: 520px; }
.task-kanban { display: grid; grid-template-columns: repeat(3, minmax(220px, 1fr)); gap: 1rem; align-items: start; }
.v17-task-column { background: #f8f6ef; border: 1px solid rgba(23,61,49,.12); border-radius: 22px; padding: .85rem; min-height: 340px; }
.task-column-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:.75rem; color:#173d31; }
.task-column-head span { background:#fff; border:1px solid rgba(23,61,49,.12); border-radius:999px; padding:.15rem .55rem; font-size:.85rem; }
.task-drop-zone { display: grid; gap: .75rem; min-height: 220px; }
.v17-task-card { border: 1px solid rgba(23,61,49,.14); background: #fffdf8; box-shadow: 0 14px 28px rgba(23,61,49,.08); cursor: grab; }
.v17-task-card.dragging { opacity:.64; transform: rotate(-.5deg); }
.v17-task-card .request-actions { margin-top: .85rem; }
.v17-staff-card, .v17-shop-card { border: 1px solid rgba(23,61,49,.14); background:#fffdf8; border-radius: 20px; padding: 1rem; box-shadow: 0 12px 26px rgba(23,61,49,.07); }
.staff-roster-standalone { display:grid; gap:.85rem; }
.shop-v17-image-tools { border: 1px solid rgba(23,61,49,.12); border-radius: 18px; padding: .95rem; background: #f8f6ef; display:grid; gap:.75rem; }
.shop-item-image { background:#f4efe3; }
.v17-schedule-command { margin-bottom: 1rem; }
.v17-schedule-month-grid { display:grid; grid-template-columns: repeat(7, minmax(105px, 1fr)); gap: .65rem; }
.v17-schedule-cell { min-height: 132px; padding:.65rem; border-radius: 18px; background:#fffdf8; border:1px solid rgba(23,61,49,.12); display:grid; gap:.35rem; align-content:start; }
.v17-schedule-cell.empty { background: transparent; border: 1px dashed rgba(23,61,49,.08); }
.v17-schedule-cell-head { display:flex; justify-content:space-between; align-items:center; }
.v17-schedule-pill { border-radius: 12px; padding:.4rem; background:#edf4ea; border:1px solid rgba(23,61,49,.1); display:grid; gap:.25rem; }
.v17-schedule-pill.is-hidden { opacity:.55; background:#eee; }
.v17-schedule-pill .link-button { text-align:left; display:grid; gap:.12rem; color:#173d31; }
.tiny-toggle { border:0; border-radius: 999px; padding:.2rem .45rem; background:#fff; color:#173d31; font-size:.75rem; cursor:pointer; justify-self:start; }
#v17GuideIconSelect { margin-top:.4rem; min-height:42px; }
.partner-settings-card { margin-bottom:1rem; }
.guest-meal-option details.rsvp-details { padding: 1rem 1.1rem 1.2rem; border-radius: 20px; background:#fffaf0; border:1px solid rgba(23,61,49,.14); margin-top: 1rem; }
.guest-meal-option details.rsvp-details[open] { box-shadow: 0 12px 26px rgba(23,61,49,.08); }
.guest-meal-option details.rsvp-details summary { padding: .9rem 1rem; margin: -1rem -1.1rem 1.15rem; border-radius: 18px; background: linear-gradient(135deg, #173d31, #335f4d); color:#fff; font-weight: 800; cursor:pointer; list-style: none; }
.guest-meal-option details.rsvp-details summary::-webkit-details-marker { display:none; }
.friendly-rsvp-grid { gap: 1rem !important; margin: .65rem 0 1rem; }
.policy-check { margin: 1rem 0; padding: .9rem; border-radius: 16px; background:#f3efe4; }
.meal-policy-dialog .dialog-card { max-width: 680px; }
.guest-footer { background:#173d31 !important; color:#fff !important; border-top: 4px solid #d5b56d; }
.guest-footer p, .guest-footer a, .guest-footer button, .guest-footer strong { color:#fff !important; }
.guest-footer a, .guest-footer .link-button { text-decoration: underline; text-decoration-color: rgba(255,255,255,.55); }
.quick-request-bar { grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); }
.quick-request-chip { background:#fffdf8; border:1px solid rgba(23,61,49,.16); color:#173d31; box-shadow: 0 12px 24px rgba(23,61,49,.07); transition: transform .16s ease, box-shadow .16s ease; }
.quick-request-chip:hover { transform: translateY(-2px); box-shadow:0 16px 30px rgba(23,61,49,.12); }
.v17-intel-card { background: #fffdf8; border: 1px solid rgba(23,61,49,.14); border-radius: 24px; padding: 1rem; box-shadow: 0 14px 32px rgba(23,61,49,.08); color:#173d31; }
.v17-intel-card.span-all { grid-column: 1 / -1; }
.v17-chart { width: 100%; min-height: 118px; margin: .5rem 0; }
.chart-fill { fill:#dfeadb; opacity:.85; }
.chart-line { fill:none; stroke:#173d31; stroke-width:5; stroke-linecap:round; stroke-linejoin:round; }
.chart-fill.ocean { fill:#dbeaf0; }
.chart-line.ocean { stroke:#2f6987; }
.v17-date-strip { display:grid; grid-template-columns: repeat(auto-fit, minmax(76px, 1fr)); gap:.5rem; }
.v17-date-strip span { background:#f3efe4; border-radius:14px; padding:.55rem; display:grid; gap:.15rem; text-align:center; }
.route-visual { height: 12px; border-radius:999px; background:#e8e3d6; overflow:hidden; margin:.85rem 0; }
.route-visual i { display:block; height:100%; background:linear-gradient(90deg, #173d31, #d5b56d); border-radius:999px; }
.route-visual.kona i { background:linear-gradient(90deg, #173d31, #8aa386, #d5b56d); }
.v17-gauge { --pct: 45; width: 132px; height:132px; border-radius:50%; display:grid; place-items:center; margin:.7rem auto; background: conic-gradient(#173d31 calc(var(--pct) * 1%), #e6e1d5 0); position:relative; }
.v17-gauge::after { content:""; position:absolute; inset:12px; background:#fffdf8; border-radius:50%; }
.v17-gauge strong, .v17-gauge span { position:relative; z-index:1; display:block; text-align:center; }
.v17-gauge strong { font-size:2rem; }
.v17-gauge span { font-size:.78rem; color:#50665b; }
.tilt-mini { height:110px; display:flex; align-items:end; gap:.45rem; padding:.8rem; background:#f3efe4; border-radius:18px; margin:.75rem 0; }
.tilt-mini i { flex:1; border-radius:999px 999px 0 0; background:linear-gradient(180deg, #d5b56d, #173d31); min-height:15%; }
.v17-quick-join img, .v17-service-img { width:100%; height:120px; object-fit:cover; border-radius:16px; background:#f3efe4; }
.quick-join-card.is-disabled { opacity:.55; filter: grayscale(.35); }
.quick-join-card.is-disabled button { cursor:not-allowed; }
.v17-service-img { margin-bottom:.8rem; }
@media (max-width: 800px) {
  .task-kanban { grid-template-columns: 1fr; }
  .v17-schedule-month-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v17-schedule-cell.empty { display:none; }
  .v17-intel-card.span-all { grid-column:auto; }
}
.admin-footer { background:#173d31; color:#fff; min-height:64px; }
.admin-footer a, .admin-footer span { color:#fff; }

/* v18 guest schedule: grouped by day for easier stay planning */
.schedule-day-list { display: grid; gap: 1rem; }
.schedule-summary-card { display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:1rem; border:1px solid rgba(23,61,49,.12); border-radius:22px; background:linear-gradient(135deg,#fffdf7,#edf4ea); }
.schedule-summary-card h3 { margin:.1rem 0 .3rem; color:var(--forest); }
.schedule-summary-card p { margin:0; color:var(--muted); }
.schedule-summary-stats { display:flex; gap:.6rem; flex-wrap:wrap; }
.schedule-summary-stats span { min-width:72px; text-align:center; border-radius:18px; background:#fff; border:1px solid rgba(23,61,49,.1); padding:.65rem .75rem; box-shadow:0 8px 18px rgba(23,61,49,.06); }
.schedule-summary-stats strong { display:block; color:var(--forest); font-size:1.1rem; }
.schedule-summary-stats small { color:var(--muted); }
.schedule-day-group { border:1px solid rgba(23,61,49,.14); border-radius:24px; background:#fffefb; overflow:hidden; box-shadow:0 12px 32px rgba(23,61,49,.05); }
.schedule-day-head { display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:1rem 1.1rem; background:linear-gradient(135deg,rgba(23,61,49,.08),rgba(196,145,72,.12)); border-bottom:1px solid rgba(23,61,49,.1); }
.schedule-day-head h2 { margin:.1rem 0 0; color:var(--forest); font-size:1.15rem; }
.schedule-day-events { display:grid; gap:.65rem; padding:1rem; }
.schedule-day-item { display:grid; grid-template-columns:88px 42px minmax(0,1fr) auto; gap:.85rem; align-items:start; padding:.9rem; border:1px solid rgba(23,61,49,.12); border-radius:18px; background:#fff; }
.schedule-day-item.is-urgent { border-color:rgba(180,72,72,.35); background:#fff7f5; }
.schedule-item-time strong { display:inline-flex; justify-content:center; min-width:74px; border-radius:999px; background:#173d31; color:#fffdf7; padding:.48rem .6rem; font-size:.86rem; white-space:nowrap; }
.schedule-item-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:16px; background:#edf4ea; font-size:1.25rem; }
.schedule-item-copy h3 { margin:.25rem 0 .15rem; color:var(--forest); font-size:1rem; }
.schedule-item-copy p { margin:0; color:var(--muted); }
.schedule-jump { align-self:center; }
.schedule-gap-pill { display:flex; align-items:center; gap:.5rem; width:max-content; margin:.05rem 0 .05rem 118px; padding:.32rem .65rem; border-radius:999px; background:#f7f0df; border:1px dashed rgba(196,145,72,.4); color:#6d5a2f; font-size:.82rem; }
.schedule-gap-pill strong { color:#173d31; }
@media (max-width: 720px) {
  .schedule-summary-card, .schedule-day-head { align-items:flex-start; flex-direction:column; }
  .schedule-day-item { grid-template-columns:1fr; gap:.5rem; }
  .schedule-item-time strong { justify-content:flex-start; }
  .schedule-jump { justify-self:start; }
  .schedule-gap-pill { margin-left:0; }
}

/* === KMEC v18 guest schedule day grouping === */
.guest-day-itinerary { display: grid; gap: 1.1rem; }
.guest-schedule-summary { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem; border:1px solid rgba(23,61,49,.13); border-radius:22px; background:linear-gradient(135deg,#fffdf8,#f4efe2); box-shadow:0 12px 28px rgba(23,61,49,.07); }
.guest-schedule-summary h3 { margin:.1rem 0 0; }
.compact-stats { min-width: 190px; }
.guest-schedule-day { border:1px solid rgba(23,61,49,.14); background:#fffdf8; border-radius:24px; overflow:hidden; box-shadow:0 14px 34px rgba(23,61,49,.08); }
.guest-schedule-day.is-today { border-color:rgba(191,142,63,.55); box-shadow:0 16px 38px rgba(191,142,63,.16); }
.guest-schedule-day-head { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 1.1rem; background:linear-gradient(135deg,#173d31,#244f43); color:#fffdf8; }
.guest-schedule-day-head .eyebrow, .guest-schedule-day-head h2 { color:#fffdf8; margin:0; }
.guest-schedule-day-head .badge { background:rgba(255,253,248,.15); color:#fffdf8; border-color:rgba(255,253,248,.28); }
.guest-schedule-day-items { display:grid; gap:0; padding:.55rem 1rem 1rem; }
.guest-schedule-row { display:grid; grid-template-columns:92px 18px 1fr; gap:.8rem; align-items:start; padding:1rem 0; border-bottom:1px solid rgba(23,61,49,.1); }
.guest-schedule-row:last-child { border-bottom:0; }
.guest-schedule-time { display:grid; gap:.12rem; color:#173d31; }
.guest-schedule-time strong { font-size:1rem; line-height:1.1; }
.guest-schedule-time span { font-size:.78rem; color:#607267; }
.guest-schedule-dot { width:14px; height:14px; border-radius:999px; margin-top:.18rem; background:#173d31; box-shadow:0 0 0 5px rgba(23,61,49,.1); }
.guest-schedule-row.is-dining .guest-schedule-dot { background:#bf8e3f; box-shadow:0 0 0 5px rgba(191,142,63,.16); }
.guest-schedule-row.is-experience .guest-schedule-dot { background:#4f7f61; box-shadow:0 0 0 5px rgba(79,127,97,.16); }
.guest-schedule-row.is-request .guest-schedule-dot { background:#6b7280; box-shadow:0 0 0 5px rgba(107,114,128,.14); }
.guest-schedule-copy h3 { margin:.25rem 0 .25rem; font-size:1.02rem; }
.guest-schedule-copy p { margin:0; color:#4f6259; }
.guest-schedule-gap { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin:.1rem 0 .1rem 110px; padding:.55rem .75rem; border:1px dashed rgba(23,61,49,.18); border-radius:16px; background:#f8f6ef; color:#50665b; font-size:.86rem; }
.guest-schedule-gap span { text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; color:#718278; }
.guest-schedule-open-block { display:grid; gap:.2rem; margin:.85rem 0 0; padding:1rem; border:1px dashed rgba(23,61,49,.2); border-radius:18px; background:#f8f6ef; color:#50665b; }
.guest-schedule-open-block strong { color:#173d31; }
.badge.is-dining { background:#fff1d8; color:#7a521b; border-color:#e8cc98; }
.badge.is-experience { background:#e9f4e9; color:#315d3e; border-color:#c9ddc9; }
.badge.is-request { background:#eef0f2; color:#4b5563; border-color:#d7dce0; }
.badge.is-facility { background:#eaf1ee; color:#173d31; border-color:#cfdcd6; }
@media (max-width: 720px) {
  .guest-schedule-summary { display:grid; }
  .compact-stats { min-width:0; }
  .guest-schedule-day-head { align-items:flex-start; }
  .guest-schedule-row { grid-template-columns:74px 14px 1fr; gap:.62rem; }
  .guest-schedule-gap { margin-left:86px; display:grid; gap:.15rem; }
}

/* v19 admin stability polish */
.task-kanban.v19-task-board { align-items: stretch; gap: 1rem; min-height: 360px; }
.v19-task-column { min-height: 320px; }
.v19-task-column .task-drop-zone { min-height: 250px; }
.v19-task-card.dragging { opacity: .62; transform: scale(.99); }
.v19-dialog .dialog-card { max-height: min(86vh, 980px); overflow: auto; }
.v19-staff-card, .v19-shop-card, .v19-task-card { overflow-wrap: anywhere; }
#staffPanel, #tasksPanel, #shopPanel { min-height: 760px; }
#staffRosterListStandalone, #shopInventoryList, #taskBoard { contain: layout paint; }
.v19-icon-select { margin-top: .45rem; width: 100%; }
.shop-v19-image-tools { margin-top: .75rem; }
.shop-v19-image-tools .media-preview { width: 100%; max-height: 220px; object-fit: cover; border-radius: 18px; border: 1px solid rgba(23,61,49,.15); }

/* v19 admin stabilization */
.v19-task-card,
.v19-staff-card,
.v19-shop-card {
  border: 1px solid rgba(23, 61, 49, 0.12);
  box-shadow: 0 10px 24px rgba(23, 61, 49, 0.07);
}
.v19-task-column {
  min-height: 220px;
  background: #fbfaf6;
  border: 1px solid rgba(23, 61, 49, 0.11);
  border-radius: 20px;
  padding: 0.85rem;
}
.v19-task-column .task-drop-zone {
  min-height: 150px;
  display: grid;
  gap: 0.75rem;
}
.v19-task-card.dragging {
  opacity: .62;
  outline: 2px dashed rgba(23, 61, 49, .45);
}
.v19-dialog .dialog-card {
  max-height: min(86vh, 920px);
  overflow: auto;
}
.shop-v19-image-tools .image-option-row,
.shop-v19-image-tools .quick-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .5rem;
}
.shop-v19-image-tools .image-choice img {
  width: 28px;
  height: 28px;
  object-fit: cover;
  border-radius: 8px;
  margin-right: .25rem;
}
.guide-icon-select {
  width: 100%;
  margin-top: .35rem;
  border: 1px solid rgba(23, 61, 49, .16);
  border-radius: 12px;
  padding: .7rem .8rem;
  background: #fffef9;
}
.render-health:not(.hidden) {
  border-left: 5px solid #b58b40;
}
.staff-roster-standalone,
#staffRosterList,
#taskBoard,
#taskScheduleList,
#shopInventoryList {
  overflow-anchor: none;
}

/* --- v20 stability / UX refinements --- */
.v20-command-head { margin-bottom: 1rem; }
.v20-task-board { display: grid; grid-template-columns: repeat(3, minmax(220px, 1fr)); gap: 1rem; align-items: stretch; }
.v20-task-col { background: #f7faf6; border: 1px solid rgba(23,61,49,.12); border-radius: 22px; padding: .8rem; min-height: 260px; }
.v20-col-head { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-bottom: .8rem; color: var(--forest); }
.v20-col-head span { display: inline-grid; place-items: center; min-width: 1.9rem; height: 1.9rem; border-radius: 999px; background: #fff; border: 1px solid rgba(23,61,49,.16); font-weight: 800; }
.v20-task-dropzone { min-height: 190px; display: grid; gap: .75rem; align-content: start; }
.v20-task-card, .v20-staff-card, .shop-admin-card { border: 1px solid rgba(23,61,49,.14); border-radius: 20px; background: #fffef9; padding: 1rem; box-shadow: 0 10px 26px rgba(23,61,49,.07); }
.v20-task-card.dragging { opacity: .65; transform: rotate(-1deg); }
.v20-task-card .request-actions, .v20-staff-card .request-actions, .shop-admin-card .request-actions { margin-top: .75rem; flex-wrap: wrap; }
.shop-admin-card .shop-thumb, .shop-guest-card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: 18px; background: #eef4ee; border: 1px solid rgba(23,61,49,.1); }
.shop-guest-card { display: flex; flex-direction: column; gap: .85rem; border: 1px solid rgba(23,61,49,.12); border-radius: 24px; padding: 1rem; background: #fffef9; box-shadow: 0 12px 28px rgba(23,61,49,.07); }
.task-dining-counts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(74px, 1fr));
  gap: .45rem;
  margin: .65rem 0;
}
.task-dining-counts span {
  display: grid;
  gap: .05rem;
  padding: .5rem .55rem;
  border: 1px solid rgba(23,61,49,.13);
  border-radius: 10px;
  background: #f4f8f2;
  color: #173d31;
}
.task-dining-counts strong {
  font-size: 1.05rem;
  line-height: 1;
}
.task-dining-counts small {
  color: #526057;
  font-weight: 800;
  line-height: 1.1;
}
.dining-task-sync-card {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr) auto;
  gap: 1rem;
  align-items: center;
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 16px;
  background: linear-gradient(135deg, #f8fbf5, #fffdf8);
}
.dining-task-sync-card h3 {
  margin: .1rem 0 .25rem;
  color: #173d31;
}
.dining-task-sync-card p {
  margin: 0;
  color: #526057;
}
.dining-task-sync-stats {
  display: grid;
  grid-template-columns: repeat(5, minmax(70px, 1fr));
  gap: .45rem;
}
.dining-task-sync-stats span {
  display: grid;
  gap: .1rem;
  padding: .55rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 10px;
  background: #fff;
  color: #173d31;
}
.dining-task-sync-stats strong {
  font-size: 1.25rem;
  line-height: 1;
}
.dining-task-sync-stats small {
  color: #526057;
  font-weight: 800;
  line-height: 1.1;
}
@media (max-width: 920px) {
  .dining-task-sync-card { grid-template-columns: 1fr; }
  .dining-task-sync-stats { grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); }
}
.shop-guest-grid.shop-guest-workspace {
  display: block;
}
.guest-shop-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 360px);
  align-items: end;
  gap: 1rem;
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 22px;
  background: #f8fbf5;
}
.guest-shop-toolbar h3 {
  margin: .12rem 0 0;
  color: var(--forest);
}
.guest-shop-search {
  display: grid;
  gap: .35rem;
  font-weight: 800;
  color: var(--forest);
}
.guest-shop-search input {
  min-height: 44px;
}
.guest-shop-category-row {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin: .75rem 0 1rem;
}
.guest-shop-category-chip {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  border: 1px solid #d8c8a8;
  border-radius: 999px;
  padding: .55rem .75rem;
  background: #fffdf8;
  color: var(--forest);
  font-weight: 900;
  cursor: pointer;
}
.guest-shop-category-chip small {
  display: inline-grid;
  place-items: center;
  min-width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
  background: #eef4ee;
  color: #173d31;
  font-size: .76rem;
}
.guest-shop-category-chip.active,
.guest-shop-category-chip:hover,
.guest-shop-category-chip:focus-visible {
  background: var(--forest);
  border-color: var(--forest);
  color: #fff;
  outline: none;
}
.guest-shop-category-chip.active small,
.guest-shop-category-chip:hover small,
.guest-shop-category-chip:focus-visible small {
  background: rgba(255,255,255,.2);
  color: #fff;
}
.guest-shop-section {
  display: grid;
  gap: .85rem;
  margin-top: 1rem;
}
.guest-shop-section + .guest-shop-section {
  padding-top: 1.1rem;
  border-top: 1px solid rgba(23,61,49,.1);
}
.guest-shop-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
}
.guest-shop-section-head h3 {
  margin: .1rem 0 0;
  color: var(--forest);
}
.guest-shop-section-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem;
}
.shop-guest-placeholder {
  width: 100%;
  aspect-ratio: 16/10;
  display: grid;
  place-items: center;
  gap: .2rem;
  border-radius: 18px;
  background: linear-gradient(135deg, #edf5ef, #f7eedb);
  border: 1px solid rgba(23,61,49,.1);
  color: var(--forest);
  text-align: center;
}
.shop-guest-placeholder span {
  display: block;
  font-size: 2.15rem;
  line-height: 1;
}
.shop-guest-placeholder small {
  max-width: 90%;
  color: #334039;
  font-weight: 800;
}
.schedule-day-group, .v20-schedule-day { display: grid; gap: .7rem; margin-bottom: 1rem; }
.v20-day-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1.05rem; border-radius: 20px; background: linear-gradient(135deg, #173d31, #245344); color: #fff; }
.v20-day-heading h3 { margin: 0; color: #fff; }
.v20-day-heading span { color: rgba(255,255,255,.82); font-size: .9rem; }
.v20-schedule-row, .v20-schedule-gap, .v20-schedule-open { display: grid; grid-template-columns: 92px 36px 1fr; gap: .7rem; align-items: start; padding: .85rem 1rem; border-radius: 18px; background: #fffef9; border: 1px solid rgba(23,61,49,.12); }
.v20-schedule-gap { grid-template-columns: 140px 1fr; background: #f5f0e3; color: #4d432e; }
.v20-schedule-open { display: block; background: #f8faf7; }
.v20-schedule-time { font-weight: 900; color: var(--forest); }
.v20-schedule-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 999px; background: #edf5ef; }
.v20-schedule-row strong, .v20-schedule-gap strong { color: var(--forest); }
.v20-schedule-row p, .v20-schedule-gap p, .v20-schedule-open p { margin: .18rem 0 0; color: var(--muted); }
.v20-guest-alertbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: 0 0 1rem; padding: 1rem 1.1rem; border-radius: 22px; color: #fff; background: linear-gradient(135deg, #173d31, #315f4f); box-shadow: 0 18px 34px rgba(23,61,49,.18); }
.v20-guest-alertbar p { margin: .15rem 0 0; color: rgba(255,255,255,.88); }
.v20-guest-alertbar .btn { border-color: rgba(255,255,255,.45); color: #fff; background: rgba(255,255,255,.13); }
.v20-quick-join-card { min-width: 250px; display: grid; grid-template-columns: 62px 1fr auto; align-items: center; gap: .8rem; border: 1px solid rgba(23,61,49,.12); border-radius: 20px; padding: .75rem; background: #fffef9; box-shadow: 0 10px 24px rgba(23,61,49,.07); }
.v20-quick-join-card img { width: 62px; height: 62px; object-fit: cover; border-radius: 16px; background: #eef4ee; }
.v20-quick-join-card small { display: block; color: var(--muted); margin-top: .1rem; }
.v20-quick-join-card.is-disabled { opacity: .6; filter: grayscale(.25); }
.quick-join-strip { display: flex; overflow-x: auto; gap: .85rem; padding-bottom: .25rem; scroll-snap-type: x proximity; }
.quick-join-strip > * { scroll-snap-align: start; }
.v20-intel-polish .mini-intel-card, .v20-intel-polish .stay-intel-card, .v20-intel-polish .intel-card { border-radius: 24px !important; box-shadow: 0 18px 36px rgba(23,61,49,.1); }
.calendar-day-card .schedule-mini { border-radius: 10px; padding: .35rem .45rem; margin-top: .25rem; background: #f4f8f4; font-size: .82rem; }
.calendar-day-card .schedule-mini.is-muted, .timeline-item.is-muted { opacity: .55; }
.v20-validation-note { padding: .8rem 1rem; border-radius: 16px; background: #eaf6ec; border: 1px solid rgba(23,61,49,.12); color: var(--forest); }

@media (max-width: 820px) {
  .v20-task-board { grid-template-columns: 1fr; }
  .v20-schedule-row { grid-template-columns: 76px 32px 1fr; }
  .v20-schedule-gap { grid-template-columns: 1fr; }
  .v20-guest-alertbar { align-items: flex-start; flex-direction: column; }
  .v20-quick-join-card { min-width: 82vw; grid-template-columns: 58px 1fr; }
  .v20-quick-join-card .btn { grid-column: 1 / -1; width: 100%; }
  .guest-shop-toolbar { grid-template-columns: 1fr; }
  .guest-shop-category-row { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .25rem; }
  .guest-shop-category-chip { flex: 0 0 auto; }
  .guest-shop-section-head { align-items: flex-start; flex-direction: column; }
}

/* v21 repair: notifications and schedule readability */
.v20-guest-alertbar, .v21-guest-statusbar { border: 1px solid rgba(181,139,64,.35); background: #fff8e7; color: #173d31; border-radius: 18px; padding: .85rem 1rem; display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin: 0 0 1rem; box-shadow: 0 10px 30px rgba(23,61,49,.08); }
.v21-guest-statusbar.is-success { background: #edf8ef; border-color: rgba(0,127,50,.25); }
.v21-guest-statusbar.is-warning { background: #fff5df; border-color: rgba(181,139,64,.4); }
.v21-guest-statusbar.is-hidden { display: none; }
.v20-schedule-day, .v21-schedule-day { border: 1px solid rgba(23,61,49,.14); background: #fffef8; border-radius: 20px; padding: 1rem; margin-bottom: 1rem; }
.v20-day-heading, .v21-day-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; border-bottom: 1px solid rgba(23,61,49,.1); padding-bottom: .6rem; margin-bottom: .65rem; }
.v20-day-heading h3, .v21-day-heading h3 { margin: 0; color: #173d31; }
.v20-schedule-row, .v21-schedule-row { display: grid; grid-template-columns: 92px 34px 1fr; gap: .75rem; align-items: start; padding: .65rem 0; border-bottom: 1px solid rgba(23,61,49,.06); }
.v20-schedule-row:last-child, .v21-schedule-row:last-child { border-bottom: 0; }
.v20-schedule-time, .v21-schedule-time { font-weight: 800; color: #173d31; }
.v20-schedule-icon, .v21-schedule-icon { font-size: 1.25rem; }
.v20-schedule-gap, .v21-schedule-gap { display: grid; grid-template-columns: 126px 1fr; gap: .75rem; padding: .55rem .75rem; margin: .45rem 0; background: #f4f0e7; border-radius: 14px; color: #596270; }
@media (max-width: 620px) {
  .v20-guest-alertbar, .v21-guest-statusbar { align-items: stretch; flex-direction: column; }
  .v20-schedule-row, .v21-schedule-row { grid-template-columns: 74px 28px 1fr; font-size: .93rem; }
  .v20-schedule-gap, .v21-schedule-gap { grid-template-columns: 1fr; }
}

/* v22 guest/admin polish */
.v22-service-shortcuts-card { border: 1px solid rgba(23,61,49,.14); background: linear-gradient(135deg, rgba(255,250,240,.98), rgba(233,247,229,.92)); }
.v22-service-shortcuts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.v22-service-button { text-align: left; border: 1px solid rgba(23,61,49,.14); background: #fffaf0; border-radius: 18px; padding: 14px; display: grid; gap: 6px; cursor: pointer; box-shadow: 0 8px 20px rgba(23,61,49,.06); }
.v22-service-button:hover { transform: translateY(-1px); border-color: rgba(23,61,49,.28); }
.v22-service-button span { font-size: 1.6rem; }
.v22-service-button strong { color: var(--forest); }
.v22-service-button small { color: var(--muted); line-height: 1.35; }
.v22-dining-summary { border-left: 5px solid var(--gold); }
.v22-meal-day { display: grid; gap: 16px; }
.v22-meal-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: stretch; }
.v22-meal-card { overflow: hidden; border: 1px solid rgba(23,61,49,.14); border-radius: 22px; background: #fffdf7; box-shadow: 0 12px 30px rgba(23,61,49,.08); display: flex; flex-direction: column; }
.v22-meal-card.unavailable { opacity: .72; background: #f7f7f2; }
.v22-meal-card > img { width: 100%; aspect-ratio: 16/9; object-fit: cover; background: #e8eee5; }
.v22-meal-content { padding: 15px; display: grid; gap: 11px; }
.v22-meal-title { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.v22-meal-title h3 { margin: 0; color: var(--forest); font-size: 1.08rem; }
.v22-meal-title .badge { white-space: nowrap; }
.v22-meal-meta { display: grid; gap: 5px; color: var(--muted); font-size: .9rem; border-top: 1px solid rgba(23,61,49,.08); border-bottom: 1px solid rgba(23,61,49,.08); padding: 9px 0; }
.v22-rsvp-details { margin-top: 4px; border: 1px solid rgba(23,61,49,.13); border-radius: 17px; background: #f7f4e9; }
.v22-rsvp-details summary { list-style: none; cursor: pointer; padding: 14px 16px; display: flex; justify-content: space-between; gap: 12px; align-items: center; font-weight: 800; color: var(--forest); }
.v22-rsvp-details summary::-webkit-details-marker { display:none; }
.v22-rsvp-details summary span::before { content: '▸'; display: inline-block; margin-right: 8px; transition: transform .18s ease; }
.v22-rsvp-details[open] summary span::before { transform: rotate(90deg); }
.v22-rsvp-details summary small { font-weight: 500; color: var(--muted); }
.v22-rsvp-inner { padding: 4px 16px 16px; display: grid; gap: 16px; }
.v22-rsvp-inner .friendly-rsvp-grid { gap: 14px; }
.v22-rsvp-inner label { gap: 6px; }
.v22-rsvp-inner textarea, .v22-rsvp-inner input { min-height: 42px; }
.v22-schedule-controls { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 14px; }
.v22-itinerary-day { border: 1px solid rgba(23,61,49,.14); border-radius: 22px; background: #fffdf7; margin-bottom: 16px; overflow: hidden; }
.v22-itinerary-day header { display:flex; justify-content:space-between; align-items:center; padding: 14px 16px; background: linear-gradient(135deg, rgba(23,61,49,.08), rgba(181,139,64,.10)); border-bottom: 1px solid rgba(23,61,49,.1); }
.v22-itinerary-day h3 { margin:0; color: var(--forest); }
.v22-itinerary-day header span { color: var(--muted); font-size:.9rem; }
.v22-itinerary-row { display:grid; grid-template-columns: 86px 34px 1fr; gap: 12px; padding: 12px 16px; border-bottom: 1px solid rgba(23,61,49,.08); align-items:start; }
.v22-itinerary-row:last-child { border-bottom: 0; }
.v22-itinerary-row time { color: var(--forest); font-weight: 800; }
.v22-itinerary-row p { margin: .18rem 0 0; color: var(--muted); }
.v22-itinerary-open { padding: 16px; color: var(--muted); }
.v22-packet-dialog { max-width: min(1120px, 96vw); }
.v22-packet-preview { background: #fff; border: 1px solid rgba(23,61,49,.12); border-radius: 18px; padding: 18px; max-height: 65vh; overflow: auto; }
.v22-sheet-head { display:grid; grid-template-columns: 90px 1fr 180px; gap: 18px; align-items:center; border-bottom: 3px solid var(--forest); padding-bottom: 14px; margin-bottom: 16px; }
.v22-sheet-head img { max-width: 90px; }
.v22-qr-box { text-align:center; }
.v22-qr-box img { width: 150px; border: 1px solid rgba(23,61,49,.14); border-radius: 14px; padding: 4px; background: #fff; }
.v22-code-box { display:grid; grid-template-columns: 220px 1fr; gap: 14px; background: #f7f4e9; border: 1px solid rgba(23,61,49,.12); border-radius: 18px; padding: 14px; margin-bottom: 16px; }
.v22-code-box code { font-size: 1.25rem; font-weight: 900; color: var(--forest); }
.v22-sheet-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.v22-mini-meal { display:flex; justify-content:space-between; gap: 12px; padding: 9px 0; border-bottom:1px solid rgba(23,61,49,.08); }
.v22-dining-preview-grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
.v22-dining-preview-row { display:flex; justify-content:space-between; gap: 10px; padding: 8px 0; border-bottom:1px solid rgba(23,61,49,.08); }
.v22-compact-schedule { width:100%; border-collapse: collapse; }
.v22-compact-schedule th, .v22-compact-schedule td { border-top:1px solid rgba(23,61,49,.10); padding: 10px; vertical-align: top; }
.v22-compact-schedule thead th { text-align:left; background: rgba(247,244,233,.8); color: var(--forest); }
.v22-compact-schedule th[scope="row"] { width: 150px; }
.v22-compact-schedule th strong, .v22-compact-schedule th small { display:block; }
.v22-compact-schedule th small { color: var(--muted); font-weight: 500; margin-top: 2px; }
.v22-schedule-item { display:grid; grid-template-columns: 76px 1fr; gap: 9px; padding: 2px 0 5px; }
.v22-schedule-time { color: var(--forest); font-weight: 900; white-space: nowrap; }
.v22-schedule-item small { display:block; color: var(--muted); margin-top: 2px; }
.v22-schedule-more { color: var(--muted); font-size: .9rem; margin-top: 4px; }
.v22-print-day { border:1px solid rgba(23,61,49,.14); border-radius:16px; padding:12px; margin:12px 0; }
.v22-print-row { display:grid; grid-template-columns: 96px 30px 1fr; gap:10px; padding:8px 0; border-bottom:1px solid rgba(23,61,49,.08); }
.v22-print-row:last-child { border-bottom:0; }
.v22-meal-image-field, .v22-template-image-block { border: 1px dashed rgba(23,61,49,.22); border-radius: 14px; padding: 10px; background: rgba(255,250,240,.72); }
.v22-image-choice-row { display:flex; flex-wrap:wrap; gap: 8px; margin-top: 8px; }
.v22-template-thumb { width: 100%; max-height: 145px; object-fit: cover; border-radius: 16px; margin-bottom: 10px; border: 1px solid rgba(23,61,49,.1); }
@media (max-width: 980px) {
  .v22-service-shortcuts, .v22-meal-card-grid, .v22-sheet-grid { grid-template-columns: 1fr 1fr; }
  .v22-sheet-head { grid-template-columns: 70px 1fr; }
  .v22-qr-box { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .v22-service-shortcuts, .v22-meal-card-grid, .v22-sheet-grid, .v22-code-box, .v22-dining-preview-grid { grid-template-columns: 1fr; }
  .v22-itinerary-row { grid-template-columns: 74px 28px 1fr; }
  .v22-compact-schedule th[scope="row"] { width: 110px; }
  .v22-schedule-item { grid-template-columns: 68px 1fr; }
}

/* v23 coordinator/social polish */
.coordinator-shell .coordinator-hero { background: linear-gradient(135deg, rgba(23,61,49,.96), rgba(31,93,69,.88)), radial-gradient(circle at top right, rgba(181,139,64,.38), transparent 35%); color: #fff; }
.coordinator-shell .coordinator-hero .hero-lede, .coordinator-shell .coordinator-hero .eyebrow { color: rgba(255,255,255,.88); }
.coordinator-card-mini { background: rgba(255,255,255,.94); color: var(--forest); }
.coordinator-dining-grid { display: grid; gap: 18px; }
.coordinator-meal-day header, .coordinator-day-card header { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; border-bottom:1px solid var(--line); padding-bottom:10px; margin-bottom:12px; }
.coordinator-meal-builder { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:14px; }
.coord-meal-block { border:1px solid var(--line); background: linear-gradient(180deg,#fff,#fbfaf3); border-radius:18px; padding:16px; display:grid; gap:12px; }
.meal-mini-head { display:flex; justify-content:space-between; gap:10px; align-items:center; color:var(--forest); }
.coordinator-day-card { border:1px solid var(--line); border-radius:18px; padding:14px; background:#fff; }
.coordinator-day-card + .coordinator-day-card { margin-top:12px; }
.mini-row { display:grid; grid-template-columns:90px 1fr; gap:12px; padding:9px 0; border-bottom:1px solid rgba(23,61,49,.1); }
.mini-row:last-child { border-bottom:0; }
.mini-row time { font-weight:800; color:var(--forest); }
.coordinator-guest-card { position:relative; overflow:hidden; }
.coordinator-guest-card::before { content:""; position:absolute; inset:0 0 auto; height:5px; background:linear-gradient(90deg,var(--leaf),var(--gold)); }
.retreat-group-card { border:1px solid var(--line); border-radius:18px; padding:16px; background:#fff; }
.v23-social-settings { border:1px solid rgba(23,61,49,.14); border-radius:18px; padding:14px; background:#fbfaf3; }
.v23-social-card { background:linear-gradient(135deg,#fff,#f7f3e4); }
.v23-social-links { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.v23-social-link { display:grid; grid-template-columns:42px 1fr; gap:10px; align-items:center; text-decoration:none; border:1px solid var(--line); border-radius:16px; padding:12px; background:#fff; color:var(--forest); box-shadow:0 8px 24px rgba(23,61,49,.06); }
.v23-social-link span { display:grid; place-items:center; width:42px; height:42px; border-radius:14px; background:rgba(0,191,25,.1); color:var(--forest); font-weight:900; }
.v23-social-link small { grid-column:2; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v23-retreat-plan-card { background:linear-gradient(135deg,#fffdf8,#eef6ed); }
.subtle-subhead { font-size:1rem; margin:14px 0 6px; color:var(--forest); }
.unread-note { border-left:5px solid var(--leaf); }
.clickable-metric { text-align:left; cursor:pointer; }
@media (max-width: 980px) { .coordinator-meal-builder { grid-template-columns:1fr; } .mini-row { grid-template-columns:74px 1fr; } }
@media print { .coordinator-tabs, .topbar, .guest-footer, .btn { display:none !important; } .tab-panel { display:block !important; } }

/* v24 coordinator/admin polish */
.admin-menu-toggle{display:none}
.admin-mobile-quickbar{display:none}
.admin-mobile-quickbar,.admin-mobile-quickbar *{box-sizing:border-box}
.v24-target-pulse{outline:4px solid rgba(181,139,64,.85)!important;box-shadow:0 0 0 8px rgba(181,139,64,.16),0 20px 44px rgba(23,61,49,.18)!important;border-radius:22px!important}
.v24-lodging-fields{margin:.75rem 0;padding:1rem;border:1px solid rgba(23,61,49,.12);border-radius:18px;background:rgba(255,255,255,.72)}
.v24-room-board-card{margin-bottom:1rem}.v24-room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem}.v24-room-card{border:1px solid rgba(23,61,49,.12);border-radius:18px;padding:1rem;background:linear-gradient(145deg,#fff,#f5f2ea)}.v24-room-card>div:first-child{display:flex;justify-content:space-between;gap:.7rem}.v24-room-card span{color:#66746d}.v24-room-card.over-capacity{border-color:#b24848;background:#fff5f2}.v24-room-card ul{margin:.5rem 0 0;padding-left:1rem}.v24-room-note{margin:.4rem 0 .7rem}.v24-snack-planner{margin:1rem 0}.v24-snack-grid{display:grid;gap:1rem}.v24-snack-day{border:1px solid rgba(23,61,49,.12);border-radius:20px;padding:1rem;background:#fbfaf5}.v24-snack-day h3{margin:.1rem 0 .8rem}.v24-snack-row{display:grid;grid-template-columns:minmax(145px,.8fr) minmax(160px,1fr) minmax(150px,1fr) 100px auto auto auto;gap:.55rem;align-items:center;padding:.55rem 0;border-top:1px solid rgba(23,61,49,.08)}.v24-snack-row:first-of-type{border-top:0}.v24-coordinator-planning{display:grid;gap:1rem;margin-bottom:1rem}.v24-plan-toolbar{margin-bottom:0}.v24-coord-view{display:grid;gap:1rem}.v24-coord-day{padding:1rem}.v24-coord-day header,.v24-gantt-day h3{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.7rem}.v24-plan-row{display:grid;grid-template-columns:110px 1fr auto;gap:.8rem;align-items:center;padding:.75rem;border-radius:16px;background:#fff;border:1px solid rgba(23,61,49,.1);margin:.45rem 0}.v24-plan-row time{font-weight:800;color:#173d31}.v24-plan-row.status-confirmed,.v24-gantt-bar.status-confirmed{border-color:rgba(0,128,72,.32);background:#effaf4}.v24-plan-row.status-pending-kmec-confirmation,.v24-plan-row.status-pending-confirmation,.v24-gantt-bar.status-pending-kmec-confirmation,.v24-gantt-bar.status-pending-confirmation{border-color:rgba(181,139,64,.4);background:#fff8e8}.v24-plan-row.status-cancelled,.v24-gantt-bar.status-cancelled{border-color:rgba(176,64,64,.35);background:#fff2f2}.v24-gantt-grid{display:grid;gap:1rem}.v24-gantt-day{position:relative;min-height:110px;border:1px solid rgba(23,61,49,.12);border-radius:18px;padding:1rem;background:#fbfaf5;overflow:hidden}.v24-gantt-day:before{content:"6a  9a  12p  3p  6p";display:block;font-size:.74rem;color:#71827a;letter-spacing:.05em;margin-bottom:.55rem}.v24-gantt-bar{position:relative;left:var(--start,0);width:var(--width,30%);min-width:150px;margin:.35rem 0;padding:.55rem .7rem;border-radius:999px;background:#eaf3ee;border:1px solid rgba(23,61,49,.14);display:flex;gap:.5rem;align-items:center;white-space:nowrap;box-shadow:0 7px 18px rgba(23,61,49,.08)}.v24-gantt-bar span{font-size:.75rem;color:#66746d}.v24-excursion-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.9rem}.v24-excursion-card{display:grid;grid-template-rows:130px auto auto;gap:.7rem;border:1px solid rgba(23,61,49,.12);border-radius:20px;padding:.8rem;background:#fff}.v24-excursion-card img{width:100%;height:130px;object-fit:cover;border-radius:16px;background:#e9efe9}.v24-retreat-schedule-card,.v24-schedule-group-blocks{border-color:rgba(181,139,64,.25)}.v24-guest-day{border:1px solid rgba(23,61,49,.1);border-radius:18px;padding:.9rem;background:#fff;margin:.65rem 0}.v24-itinerary-row{display:grid;grid-template-columns:120px 1fr;gap:.75rem;align-items:start;padding:.65rem 0;border-top:1px solid rgba(23,61,49,.08)}.v24-itinerary-row:first-of-type{border-top:0}.v24-itinerary-row time{font-weight:800;color:#173d31}.v24-bed-note{margin:.4rem 0}

@media (max-width: 760px){
  body{padding-bottom:72px}.admin-menu-toggle{display:inline-flex}.topbar .brand div span{display:none}.topbar-actions{gap:.35rem}.topbar-actions .admin-menu-toggle ~ .btn:not(#alertBell):not(#adminLogout),.topbar-actions .coordinator-menu-toggle ~ .btn:not(#coordinatorLogout){display:none}.admin-shell .sticky-tabs{display:none;position:fixed;z-index:80;left:10px;right:10px;top:74px;max-height:70vh;overflow:auto;background:rgba(255,255,255,.98);border:1px solid rgba(23,61,49,.14);border-radius:22px;padding:.75rem;box-shadow:0 30px 80px rgba(23,61,49,.22);backdrop-filter:blur(12px)}body.admin-mobile-nav-open .admin-shell .sticky-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.admin-shell .sticky-tabs .tab{width:100%;justify-content:center;border-radius:14px}.admin-mobile-quickbar{position:fixed;z-index:90;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;max-width:100vw;overflow:hidden;padding:.35rem .4rem calc(.35rem + env(safe-area-inset-bottom));background:rgba(23,61,49,.97);box-shadow:0 -16px 40px rgba(0,0,0,.2)}.admin-mobile-quickbar button{min-width:0;overflow:hidden;text-overflow:ellipsis;border:0;background:transparent;color:#fff;font-weight:800;font-size:.72rem;padding:.55rem .15rem;border-radius:12px}.admin-mobile-quickbar button:active,.admin-mobile-quickbar button:hover{background:rgba(255,255,255,.12)}.alert-tray{left:10px;right:10px;top:70px;max-width:none}.v24-snack-row{grid-template-columns:1fr}.v24-plan-row,.v24-itinerary-row{grid-template-columns:1fr}.v24-gantt-bar{left:0!important;width:100%!important;min-width:0}.v24-excursion-card{grid-template-rows:150px auto auto}.v24-room-grid{grid-template-columns:1fr}}

/* v24 refinements: admin mobile nav, coordinator lodging/snacks/Gantt, status colors */
.admin-menu-toggle,.coordinator-menu-toggle{display:none}.admin-mobile-dock{display:none}.v24-focus-pulse{outline:4px solid rgba(181,139,64,.55)!important;box-shadow:0 0 0 8px rgba(181,139,64,.18),0 18px 48px rgba(23,61,49,.2)!important;transition:box-shadow .2s ease}.lodging-fields{border:1px dashed rgba(23,61,49,.2);border-radius:18px;padding:.75rem;background:#fbf8ef}.room-chip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.65rem}.room-chip{display:grid;gap:.15rem;border:1px solid rgba(23,61,49,.15);background:#fffdf8;border-radius:16px;padding:.7rem}.room-chip small{color:var(--muted);line-height:1.35}.rooming-legend{grid-column:1/-1}.v24-snack-builder{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.v24-coord-meal-block{border-color:rgba(23,61,49,.14);background:linear-gradient(180deg,#fff,#fbf8ef)}.saved-plan{color:var(--forest);font-weight:700}.coordinator-toolbar{margin-bottom:1rem}.coord-service-group{display:grid;gap:.8rem;margin-bottom:1.2rem}.small-heading{margin-bottom:.2rem}.v24-service-card{display:grid;gap:.75rem}.service-card-media{border-radius:18px;overflow:hidden;border:1px solid rgba(23,61,49,.14);background:#eef4ec}.service-card-media img{width:100%;height:145px;object-fit:cover;display:block}.mini-slot-list{display:grid;gap:.45rem}.mini-slot{border:1px solid rgba(23,61,49,.16);background:#fffdf8;border-radius:999px;padding:.55rem .75rem;text-align:left;color:var(--forest);font-weight:700;cursor:pointer}.mini-slot:hover{background:#eef4ec}.v24-itinerary-row{display:grid;grid-template-columns:110px 1fr auto;gap:.75rem;align-items:start;border:1px solid rgba(23,61,49,.12);border-left:5px solid var(--forest);border-radius:16px;padding:.75rem;margin:.55rem 0;background:#fff}.v24-itinerary-row time{font-weight:800;color:var(--forest)}.v24-itinerary-row p{margin:.2rem 0 0;color:var(--muted)}.v24-itinerary-row.status-meal{border-left-color:#b58b40}.v24-itinerary-row.status-curriculum{border-left-color:#4b70b8}.v24-itinerary-row.status-excursion{border-left-color:#0f7a66}.v24-itinerary-row.status-provider{border-left-color:#8a5a9f}.v24-itinerary-row.status-property{border-left-color:#588a33}.status-pending-confirmation{background:#fff4d8;color:#7c5600}.status-confirmed{background:#e7f3ec;color:#245b3b}.status-draft{background:#edf0f3;color:#596270}.status-cancelled{background:#fdecec;color:#8d2c2c}.coord-gantt-card{overflow:hidden}.coord-gantt-chart{display:grid;gap:.85rem}.gantt-day{display:grid;grid-template-columns:170px minmax(0,1fr);gap:.75rem;align-items:center}.gantt-day-label strong{display:block;color:var(--forest)}.gantt-day-label small{color:var(--muted)}.gantt-track{position:relative;min-height:54px;border:1px solid rgba(23,61,49,.13);border-radius:18px;background:linear-gradient(90deg,rgba(23,61,49,.04),rgba(181,139,64,.06));overflow:hidden}.gantt-hours{position:absolute;inset:0;display:flex;justify-content:space-between;align-items:flex-start;color:rgba(23,61,49,.45);font-size:.72rem;padding:.25rem .5rem;pointer-events:none}.gantt-bar{position:absolute;top:1.45rem;height:1.75rem;border:0;border-radius:999px;padding:0 .55rem;background:var(--forest);color:#fff;font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 6px 14px rgba(23,61,49,.2);cursor:pointer;text-align:left}.gantt-bar span{opacity:.85;margin-right:.3rem}.gantt-meal{background:#b58b40}.gantt-curriculum{background:#4b70b8}.gantt-excursion{background:#0f7a66}.gantt-provider{background:#8a5a9f}.gantt-property{background:#588a33}.gantt-empty{position:absolute;top:1.55rem;left:1rem;color:var(--muted);font-style:italic}.v24-group-banner{border-left:5px solid var(--gold);background:linear-gradient(135deg,#fffdf8,#f3efe2)}.v24-schedule-row .badge{align-self:center}.clickable-note{cursor:pointer}.clickable-note:hover{border-color:var(--forest);transform:translateY(-1px)}
@media(max-width:760px){.admin-menu-toggle,.coordinator-menu-toggle{display:inline-flex}.admin-shell .tabs.sticky-tabs,#coordinatorTabs.sticky-tabs{display:none;position:sticky;top:70px;z-index:70;background:#fffdf8;border:1px solid rgba(23,61,49,.16);box-shadow:0 20px 60px rgba(23,61,49,.18);border-radius:20px;padding:.75rem;grid-template-columns:1fr}.admin-shell .tabs.sticky-tabs.is-open,#coordinatorTabs.sticky-tabs.is-open{display:grid!important}.admin-shell .tabs.sticky-tabs .tab,#coordinatorTabs.sticky-tabs .tab{text-align:left;justify-content:flex-start;width:100%}.topbar{align-items:flex-start}.topbar-actions{justify-content:flex-end}.alert-tray{left:.75rem;right:.75rem;top:76px;width:auto}.admin-mobile-dock{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:.65rem;right:.65rem;bottom:.65rem;z-index:100;background:rgba(255,253,248,.96);border:1px solid rgba(23,61,49,.16);border-radius:22px;padding:.45rem;box-shadow:0 18px 60px rgba(23,61,49,.22);backdrop-filter:blur(12px)}.admin-mobile-dock button{border:0;background:transparent;color:var(--forest);display:grid;gap:.1rem;justify-items:center;font-weight:800;font-size:1rem;padding:.35rem}.admin-mobile-dock button span{font-size:.7rem}.admin-footer{padding-bottom:5.4rem}.gantt-day{grid-template-columns:1fr}.v24-itinerary-row{grid-template-columns:88px 1fr}.v24-itinerary-row .badge{grid-column:1/-1;justify-self:start}.service-card-media img{height:120px}.coordinator-meal-builder.v24-snack-builder{grid-template-columns:1fr}.room-chip-grid{grid-template-columns:1fr}}

/* v24 coordinator/mobile-admin polish */
.admin-mobile-menu-toggle { display:none; width:100%; margin:.85rem 0; align-items:center; justify-content:space-between; gap:.75rem; }
.admin-mobile-menu-toggle small { display:block; font-size:.72rem; opacity:.82; font-weight:700; }
.v24-lodging-grid,.v24-room-grid,.v24-card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; }
.v24-room-card,.v24-curriculum-card,.v24-excursion-card,.v24-snack-day { border:1px solid rgba(23,61,49,.14); background:#fffdf8; border-radius:22px; padding:1rem; box-shadow:0 14px 34px rgba(23,61,49,.07); }
.v24-room-card.is-overbooked { border-color:#bb4b3b; background:#fff4f1; }
.danger-text { color:#96301f; font-weight:800; }
.v24-snack-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1rem; }
.v24-snack-row { border:1px solid rgba(23,61,49,.12); border-radius:18px; background:#fbfaf4; padding:.85rem; margin:.8rem 0 0; }
.v24-schedule-planner { position:relative; overflow:hidden; }
.v24-timeline-days { display:grid; gap:1rem; margin-top:1rem; }
.v24-timeline-day { border:1px solid rgba(23,61,49,.12); border-radius:22px; background:#fffdf8; padding:1rem; }
.v24-timeline-day h3 { margin:.1rem 0 .8rem; color:#173d31; }
.v24-schedule-row { display:grid; grid-template-columns:110px 1fr auto; gap:.8rem; align-items:start; border-left:5px solid #b58b40; background:#fff; border-radius:16px; padding:.75rem; margin:.55rem 0; }
.v24-schedule-row time { font-weight:900; color:#173d31; }
.v24-schedule-row p { margin:.15rem 0; color:#5c6d64; }
.v24-schedule-row small { color:#65736b; }
.v24-schedule-row.is-confirmed,.v24-curriculum-card.is-confirmed { border-left-color:#138f43; }
.v24-schedule-row.is-pending,.v24-curriculum-card.is-pending { border-left-color:#c49148; }
.v24-schedule-row.is-cancelled,.v24-curriculum-card.is-cancelled { border-left-color:#aa3b2d; opacity:.82; }
.v24-gantt { margin-top:1rem; border:1px solid rgba(23,61,49,.14); border-radius:22px; overflow:hidden; background:#fffdf8; }
.v24-gantt-head,.v24-gantt-row { display:grid; grid-template-columns:180px 1fr; gap:0; border-bottom:1px solid rgba(23,61,49,.1); }
.v24-gantt-head { grid-template-columns:180px repeat(3, 1fr); background:#173d31; color:#fff; font-weight:900; }
.v24-gantt-head span { padding:.8rem; border-left:1px solid rgba(255,255,255,.14); }
.v24-gantt-row strong { padding:.85rem; background:#f3f7f1; border-right:1px solid rgba(23,61,49,.1); }
.v24-gantt-track { min-height:58px; position:relative; background:linear-gradient(90deg,rgba(23,61,49,.04) 0 33%,rgba(196,145,72,.08) 33% 66%,rgba(23,61,49,.04) 66%); }
.v24-gantt-bar { position:absolute; top:10px; min-width:64px; height:38px; border:0; border-radius:999px; background:var(--bar,#173d31); color:#fff; font-size:.75rem; font-weight:900; padding:0 .55rem; overflow:hidden; box-shadow:0 8px 20px rgba(23,61,49,.18); cursor:pointer; }
.v24-gantt-bar.is-pending { background:#c49148; color:#173d31; }
.v24-gantt-bar.is-cancelled { background:#aa3b2d; }
.v24-excursion-card { display:grid; gap:.6rem; }
.v24-excursion-card img { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:16px; background:#eef4ec; }
.v24-excursion-card span { color:#65736b; font-weight:800; }
.v24-view-switcher { margin:.85rem 0 1rem; }
.v24-focus-pulse { outline:4px solid rgba(196,145,72,.65) !important; box-shadow:0 0 0 8px rgba(196,145,72,.22),0 20px 60px rgba(23,61,49,.22) !important; transition:outline .2s ease, box-shadow .2s ease; }
.v24-guest-notice-strip { max-width:1180px; margin:.75rem auto; padding:0 1rem; }
#v24GuestNoticeContent { display:grid; gap:.55rem; }
.v24-guest-note { border:1px solid rgba(196,145,72,.28); background:#fff8e4; border-radius:16px; padding:.75rem; display:grid; grid-template-columns:auto 1fr; gap:.55rem .75rem; text-align:left; color:#173d31; box-shadow:0 8px 24px rgba(23,61,49,.06); }
.v24-guest-note small { grid-column:2; color:#56655e; }
.v24-guest-day { border:1px solid rgba(23,61,49,.12); border-radius:18px; padding:.85rem; background:#fffdf8; margin:.7rem 0; }
.v24-guest-day h3 { margin:.1rem 0 .55rem; color:#173d31; }
@media (max-width:760px) {
  .admin-mobile-menu-toggle { display:flex; }
  #adminApp .tabs.sticky-tabs { display:none; position:sticky; top:.5rem; z-index:70; grid-template-columns:1fr; background:#fffdf8; border:1px solid rgba(23,61,49,.16); border-radius:18px; padding:.65rem; box-shadow:0 20px 60px rgba(23,61,49,.18); }
  #adminApp .tabs.sticky-tabs.is-open { display:grid !important; }
  #adminApp .tabs.sticky-tabs .tab { width:100%; justify-content:flex-start; text-align:left; }
  .alert-tray { width:calc(100vw - 1rem); right:.5rem; left:.5rem; top:74px; }
  .topbar-actions { justify-content:flex-end; }
  .admin-footer { padding-bottom:4.5rem; }
  .v24-schedule-row { grid-template-columns:1fr; }
  .v24-gantt-head,.v24-gantt-row { grid-template-columns:1fr; }
  .v24-gantt-head span:not(:first-child) { display:none; }
  .v24-gantt-row strong { border-right:0; border-bottom:1px solid rgba(23,61,49,.1); }
  .v24-gantt-track { min-height:90px; }
}

/* v24 admin mobile nav compatibility */
.admin-mobile-menu-toggle{display:none;width:100%;margin:.5rem 0 1rem;justify-content:center;gap:.5rem;align-items:center}.admin-mobile-menu-toggle small{display:block;font-weight:600;opacity:.75}.v24-focus-pulse{outline:4px solid rgba(181,139,64,.9)!important;box-shadow:0 0 0 8px rgba(181,139,64,.18),0 18px 46px rgba(23,61,49,.18)!important;border-radius:20px!important}.v24-lodging-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.85rem}.v24-rooming-summary{margin:1rem 0}.v24-room-card.is-overbooked{border-color:#b24848;background:#fff5f5}.danger-text{color:#a33;font-weight:800}.v24-view-switcher{margin-top:.8rem}.v24-timeline-days,.v24-card-grid{display:grid;gap:.85rem}.v24-timeline-day{border:1px solid rgba(23,61,49,.11);border-radius:20px;background:#fff;padding:1rem}.v24-schedule-row{display:grid;grid-template-columns:110px 1fr auto;gap:.75rem;padding:.7rem;border-radius:16px;margin:.45rem 0;background:#f7f6ef;border:1px solid rgba(23,61,49,.08)}.v24-schedule-row time{font-weight:800}.v24-schedule-row.is-confirmed,.v24-curriculum-card.is-confirmed{background:#eef9f2;border-color:rgba(0,128,72,.25)}.v24-schedule-row.is-pending,.v24-curriculum-card.is-pending{background:#fff8e8;border-color:rgba(181,139,64,.38)}.v24-schedule-row.is-cancelled,.v24-curriculum-card.is-cancelled{background:#fff0f0;border-color:rgba(176,64,64,.35)}.v24-gantt{display:grid;gap:.6rem}.v24-gantt-head,.v24-gantt-row{display:grid;grid-template-columns:180px 1fr;gap:.75rem;align-items:center}.v24-gantt-head{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#66746d}.v24-gantt-track{position:relative;min-height:58px;border:1px solid rgba(23,61,49,.12);border-radius:18px;background:linear-gradient(90deg,rgba(23,61,49,.04) 0 33%,rgba(181,139,64,.08) 33% 66%,rgba(23,61,49,.04) 66% 100%);overflow:hidden}.v24-gantt-bar{position:absolute;top:10px;height:38px;border:0;border-radius:999px;background:var(--bar,#173d31);color:#fff;padding:0 .7rem;font-weight:800;overflow:hidden;text-overflow:ellipsis}.v24-gantt-bar.is-pending{background:#b58b40}.v24-gantt-bar.is-cancelled{background:#a44}.v24-excursion-card,.v24-curriculum-card{border:1px solid rgba(23,61,49,.12);border-radius:20px;background:#fff;padding:.9rem;display:grid;gap:.55rem}.v24-excursion-card img{width:100%;height:130px;object-fit:cover;border-radius:16px;background:#edf2ec}.v24-snack-grid{display:grid;gap:1rem}.v24-snack-day{border:1px solid rgba(23,61,49,.1);border-radius:20px;padding:1rem;background:#fffdf7}.v24-snack-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(140px,1fr) 100px minmax(160px,1fr) auto;gap:.6rem;align-items:center;padding:.65rem 0;border-top:1px solid rgba(23,61,49,.08)}.v24-snack-row:first-of-type{border-top:0}.v24-guest-day{border:1px solid rgba(23,61,49,.1);border-radius:18px;padding:.9rem;background:#fff;margin:.65rem 0}.v24-itinerary-row{display:grid;grid-template-columns:120px 1fr;gap:.75rem;align-items:start;padding:.65rem 0;border-top:1px solid rgba(23,61,49,.08)}.v24-itinerary-row:first-of-type{border-top:0}.v24-itinerary-row time{font-weight:800;color:#173d31}
@media (max-width:760px){.admin-mobile-menu-toggle{display:flex}.admin-shell nav.tabs.sticky-tabs{display:none!important}.admin-shell nav.tabs.sticky-tabs.is-open{display:grid!important;grid-template-columns:1fr 1fr;gap:.45rem;position:sticky;top:70px;z-index:50;background:rgba(255,255,255,.98);border:1px solid rgba(23,61,49,.13);border-radius:20px;padding:.65rem;box-shadow:0 18px 50px rgba(23,61,49,.18)}.admin-shell nav.tabs.sticky-tabs.is-open .tab{width:100%;justify-content:center}.admin-mobile-quickbar{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));max-width:100vw}.admin-mobile-quickbar button{min-width:0}.v24-gantt-head,.v24-gantt-row{grid-template-columns:1fr}.v24-gantt-bar{position:relative;left:auto!important;width:100%!important;display:block;margin:.3rem 0}.v24-snack-row,.v24-schedule-row,.v24-itinerary-row{grid-template-columns:1fr}.v24-excursion-card img{height:150px}}

/* v25 coordinator, retreat group, resource, and guest alert polish */
.v25-hide-old-planner{display:none!important}.v25-coordinator-planner{margin-bottom:1.25rem}.v25-planner-head{align-items:flex-start}.v25-planner-head h2{max-width:780px}.v25-planner-tabs{margin:.9rem 0 1.1rem;gap:.55rem;flex-wrap:wrap}.v25-timeline-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1rem}.v25-day-card{border:1px solid rgba(23,61,49,.14);border-radius:18px;background:#fffdf8;padding:1rem;box-shadow:0 12px 30px rgba(23,61,49,.055)}.v25-day-card header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;border-bottom:1px solid rgba(23,61,49,.10);padding-bottom:.7rem;margin-bottom:.7rem}.v25-day-card h3{margin:.15rem 0 0}.v25-schedule-line{display:grid;grid-template-columns:98px 1fr auto;gap:.75rem;align-items:start;padding:.75rem 0;border-bottom:1px solid rgba(23,61,49,.08)}.v25-schedule-line:last-child{border-bottom:0}.v25-schedule-line time{font-weight:800;color:#173d31}.v25-schedule-line p,.v25-schedule-line small{margin:.18rem 0;color:#596270}.v25-gantt-shell{border:1px solid rgba(23,61,49,.14);border-radius:20px;background:linear-gradient(180deg,#fffdf8,#f8f6ec);padding:1rem}.v25-gantt-legend{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.9rem}.v25-gantt-legend span{padding:.3rem .55rem;border-radius:999px;font-size:.78rem;background:#fff;border:1px solid rgba(23,61,49,.12)}.v25-gantt-legend .confirmed{background:#e8f4ed}.v25-gantt-legend .pending{background:#fff5db}.v25-gantt-legend .draft{background:#edf0f4}.v25-gantt-legend .neutral{background:#f7eee2}.v25-gantt-scroll{overflow-x:auto;padding-bottom:.35rem}.v25-gantt-axis{min-width:980px;display:grid;grid-template-columns:190px repeat(9,1fr);gap:0;align-items:center;color:#596270;font-size:.8rem;font-weight:700;margin-bottom:.45rem}.v25-gantt-day{min-width:980px;display:grid;grid-template-columns:190px 1fr;gap:.85rem;align-items:stretch;margin-bottom:.72rem}.v25-gantt-date{background:#fff;border:1px solid rgba(23,61,49,.12);border-radius:14px;padding:.75rem}.v25-gantt-date strong{display:block}.v25-gantt-date small{color:#596270}.v25-gantt-track{position:relative;min-height:78px;background:#fff;border:1px solid rgba(23,61,49,.12);border-radius:14px;overflow:hidden}.v25-gantt-track>i{position:absolute;top:0;bottom:0;border-left:1px dashed rgba(23,61,49,.10)}.v25-gantt-item{position:absolute;top:12px;min-height:52px;border:0;border-radius:13px;padding:.55rem .65rem;text-align:left;overflow:hidden;box-shadow:0 8px 16px rgba(0,0,0,.08);cursor:pointer}.v25-gantt-item strong,.v25-gantt-item small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v25-gantt-item strong{font-size:.84rem}.v25-gantt-item small{font-size:.72rem;opacity:.88}.v25-gantt-item.is-confirmed{background:#dcefe5;color:#123a2e}.v25-gantt-item.is-pending{background:#f7e5b8;color:#4c3412}.v25-gantt-item.is-draft{background:#e7eaf0;color:#263445}.v25-gantt-item.is-cancelled{background:#f3d6d6;color:#5f1c1c}.v25-gantt-item.is-neutral{background:#e9e2d5;color:#173d31}.v25-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.v25-curriculum-card,.v25-excursion-card{border:1px solid rgba(23,61,49,.13);border-radius:18px;background:#fffdf8;padding:1rem;box-shadow:0 10px 22px rgba(23,61,49,.05)}.v25-excursion-card{display:grid;grid-template-columns:96px 1fr;gap:1rem;align-items:start}.v25-excursion-card img{width:96px;height:82px;object-fit:cover;border-radius:14px;background:#edf0ea}.v25-excursion-card .btn{grid-column:1/-1}.v25-retreat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.v25-retreat-card{border:1px solid rgba(23,61,49,.14);border-radius:18px;padding:1rem;background:#fff;box-shadow:0 8px 18px rgba(23,61,49,.045)}.v25-resource-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:1rem;max-height:650px;overflow:auto;padding:.25rem}.v25-resource-column{background:#f8f6ec;border:1px solid rgba(23,61,49,.11);border-radius:18px;padding:.85rem}.v25-resource-column header{border-bottom:1px solid rgba(23,61,49,.10);padding-bottom:.55rem;margin-bottom:.7rem}.v25-resource-column strong{display:block}.v25-resource-column span{color:#596270;font-size:.82rem}.v25-resource-booking{background:#fff;border-left:5px solid #173d31;border-radius:13px;padding:.7rem;margin-bottom:.55rem;box-shadow:0 6px 12px rgba(0,0,0,.045)}.v25-resource-booking.has-conflict{border-left-color:#9b2d2d;background:#fff7f7}.v25-resource-booking small{display:block;color:#596270}.v25-resource-booking p{margin:.2rem 0 0;color:#596270}.guest-alert-bell{display:inline-flex!important}.guest-alert-tray{right:1rem;left:auto}.v25-compact-service-card{background:linear-gradient(135deg,#fffdf8,#f3f0e4);border-color:rgba(23,61,49,.12)}.v25-group-schedule-notice{background:#fffdf8;border-color:rgba(23,61,49,.15)}.v25-schedule-dialog select{min-height:42px}.v25-resource-overview{margin-bottom:1rem}.danger-text{color:#8b2323;font-weight:700}.is-confirmed .badge,.badge.is-confirmed{background:#e8f4ed;color:#123a2e}.is-pending .badge,.badge.is-pending{background:#fff5db;color:#4c3412}.is-draft .badge,.badge.is-draft{background:#edf0f4;color:#263445}.is-cancelled .badge,.badge.is-cancelled{background:#f3d6d6;color:#5f1c1c}@media(max-width:720px){.v25-schedule-line{grid-template-columns:1fr}.v25-excursion-card{grid-template-columns:76px 1fr}.v25-excursion-card img{width:76px;height:70px}.v25-gantt-shell{padding:.75rem}.v25-gantt-axis,.v25-gantt-day{min-width:860px;grid-template-columns:150px 1fr}.guest-alert-tray{right:.5rem;left:.5rem;max-width:none}.v25-resource-board{grid-template-columns:1fr;max-height:none}}

/* v28 Resource Center allocation layout */
#resourcePanel.v25-resource-enhanced #v24LodgingSnapshot,
#resourcePanel.v25-resource-enhanced .resource-inventory-card{display:none!important}
#resourcePanel.v25-resource-enhanced .resource-workspace{grid-template-columns:minmax(0,1fr)}
.v25-resource-overview{overflow:hidden}
.v25-allocation-heading{align-items:flex-start}
.v25-allocation-heading .panel-help{max-width:760px;margin:.45rem 0 0}
.v25-resource-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin:.9rem 0 1rem}
.v25-resource-summary span{border:1px solid rgba(23,61,49,.11);border-radius:12px;background:#fffdf8;padding:.65rem .75rem;color:#596270;font-size:.86rem}
.v25-resource-summary strong{display:block;color:#173d31;font-size:1.15rem;line-height:1}
.v25-resource-dashboard{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:1rem;align-items:start}
.v25-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}
.v25-panel-head h3{margin:.05rem 0 0;font-size:1.05rem;line-height:1.2}
.v25-resource-management,.v25-resource-allocation-panel{min-width:0;border:1px solid rgba(23,61,49,.12);border-radius:14px;background:rgba(255,253,248,.78);padding:.9rem}
.v25-resource-management-grid{display:flex;flex-direction:column;gap:.55rem;max-height:640px;overflow:auto;padding-right:.15rem}
.v25-resource-manage-card{display:grid;gap:.45rem;border:1px solid rgba(23,61,49,.11);border-radius:12px;background:#fff;padding:.7rem;box-shadow:none}
.v25-resource-manage-card.is-inactive{background:#f1eee6;opacity:.78}
.v25-resource-manage-card header{display:flex;justify-content:space-between;gap:.65rem;align-items:flex-start;border-bottom:0;padding-bottom:0}
.v25-resource-manage-card h3{margin:0;font-size:.92rem;line-height:1.18}
.v25-resource-manage-card p{margin:0;color:#596270;font-size:.84rem}
.v25-resource-manage-card .item-meta{gap:.35rem;font-size:.78rem}
.v25-resource-manage-card .request-actions{gap:.35rem;margin-top:.1rem}
.v25-resource-manage-card .btn.small{padding:.42rem .62rem;font-size:.78rem}
.v25-resource-allocation-panel .v25-resource-board{display:grid;grid-template-columns:1fr;max-height:640px;overflow:auto;padding:.05rem .15rem .2rem;gap:.55rem}
.v25-resource-allocation-panel .v25-resource-column{display:grid;grid-template-columns:minmax(185px,230px) minmax(0,1fr);align-items:stretch;border-radius:12px;padding:0;background:#fff;overflow:hidden;min-height:86px}
.v25-resource-allocation-panel .v25-resource-column header{display:grid;align-content:start;gap:.18rem;margin:0;padding:.72rem .82rem;border-right:1px solid rgba(23,61,49,.10);border-bottom:0;background:#f8f6ec}
.v25-resource-allocation-panel .v25-resource-column header strong{line-height:1.18}
.v25-resource-allocation-panel .v25-resource-column header span{line-height:1.25}
.v25-resource-allocation-panel .v25-resource-column header em{font-style:normal;color:#596270;font-size:.78rem;line-height:1.25}
.v25-resource-slots{display:grid;gap:.45rem;padding:.58rem;align-content:start;min-width:0}
.v25-open-slot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:44px;border:1px dashed rgba(181,139,64,.35);border-radius:10px;background:#fffdf8;padding:.55rem .7rem;color:#596270}
.v25-open-slot strong{color:#173d31;line-height:1.15}
.v25-open-slot span{font-size:.82rem;line-height:1.25;text-align:right}
.v25-resource-allocation-panel .v25-resource-booking{display:grid;grid-template-columns:minmax(118px,.32fr) minmax(0,1fr) auto;gap:.65rem;align-items:center;margin:0;border-radius:10px;padding:.58rem .65rem;box-shadow:none;min-height:50px}
.v25-resource-allocation-panel .v25-resource-booking small,.v25-resource-allocation-panel .v25-resource-booking span{display:block;line-height:1.2}
.v25-resource-allocation-panel .v25-resource-booking strong{line-height:1.2}
.v25-resource-allocation-panel .v25-resource-booking p{margin:.12rem 0 0;color:#596270;line-height:1.25}
.v25-booking-time{min-width:0;color:#596270}
.v25-booking-time span{font-weight:800;color:#173d31}
.v25-booking-main{min-width:0}
.v25-resource-booking .badge{justify-self:end;align-self:center}
@media(max-width:720px){.v25-resource-allocation-panel .v25-resource-column{grid-template-columns:1fr}.v25-resource-allocation-panel .v25-resource-column header{border-right:0;border-bottom:1px solid rgba(23,61,49,.10)}.v25-resource-allocation-panel .v25-resource-booking{grid-template-columns:1fr}.v25-open-slot{align-items:flex-start;flex-direction:column}.v25-open-slot span{text-align:left}}
@media(max-width:980px){.v25-resource-dashboard{grid-template-columns:1fr}.v25-resource-management-grid,.v25-resource-allocation-panel .v25-resource-board{max-height:none}.v25-resource-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.v25-resource-summary{grid-template-columns:1fr}.v25-allocation-heading .compact-actions{width:100%;justify-content:flex-start}.v25-resource-management,.v25-resource-allocation-panel{padding:.75rem}}

/* v29 Lodging bed type editor */
#resourceForm .lodging-fields,
#resourceForm .lodging-bed-builder,
#resourceForm #v24LodgingFields{display:none}
#resourceForm.is-lodging .lodging-fields,
#resourceForm.is-lodging .lodging-bed-builder,
#resourceForm.is-lodging #v24LodgingFields{display:block}
.lodging-bed-builder{border:1px solid rgba(23,61,49,.12);border-radius:14px;background:#fffdf8;padding:.9rem}
.lodging-bed-builder .compact-heading{margin-bottom:.7rem}
.lodging-bed-builder h3{margin:.05rem 0 0;font-size:1rem}
.bed-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}
.bed-type-grid label{display:grid;gap:.35rem;border:1px solid rgba(23,61,49,.11);border-radius:12px;background:#fff;padding:.65rem;font-weight:800;color:#173d31}
.bed-type-grid input{min-height:40px;text-align:center}
@media(max-width:620px){.bed-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v30 Partner copy controls */
.linked-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;align-items:center;margin:.35rem 0}
.linked-action-row .linked-pill{margin:0}
.btn.mini{min-height:36px;padding:.42rem .65rem;border-radius:999px;font-size:.78rem}
@media(max-width:620px){.linked-action-row{grid-template-columns:1fr}.btn.mini{justify-self:start}}

/* v36 Guest mobile menu and notification bell */
.guest-alert-bell.hidden,
.guest-alert-tray.hidden{display:none!important}
.guest-alert-bell{display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 auto}
.guest-alert-tray{right:1rem;left:auto}
.alert-item.unread{border-color:rgba(0,191,25,.38);box-shadow:inset 4px 0 0 var(--leaf);background:#fffdf6}
@media(max-width:760px){
  #guestMenuToggle~#installButton.hidden,
  #guestMenuToggle~#guestNotifyButton.hidden{display:none!important}
  #guestMenuToggle~#installButton:not(.hidden),
  #guestMenuToggle~#guestNotifyButton:not(.hidden){display:inline-flex!important}
  #guestMenuToggle{flex:0 0 auto}
  .topbar-actions{flex-wrap:nowrap}
  #guestApp #guestTabs.guest-tabs{display:none!important}
  #guestApp #guestTabs.guest-tabs.is-open,
  #guestApp #guestTabs.guest-tabs.open{display:grid!important;grid-template-columns:1fr;gap:.45rem;position:fixed;top:calc(70px + env(safe-area-inset-top));bottom:calc(82px + env(safe-area-inset-bottom));left:.65rem;right:.65rem;z-index:230;max-height:calc(100vh - 152px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;margin:0;padding:.7rem;background:rgba(255,253,248,.98);border:1px solid rgba(23,61,49,.16);border-radius:20px;box-shadow:0 26px 76px rgba(23,61,49,.24);backdrop-filter:blur(14px)}
  #guestApp #guestTabs.guest-tabs .tab{width:100%;justify-content:flex-start;text-align:left;border-radius:14px}
  body.guest-mobile-nav-open{overflow:hidden}
  .guest-alert-tray{left:.65rem;right:.65rem;top:calc(70px + env(safe-area-inset-top));width:auto;max-height:calc(100vh - 92px - env(safe-area-inset-top));z-index:240}
}

/* v37 Live guest weather */
.weather-section-v37{
  background:linear-gradient(135deg,#fbfdfb,#eef7f4 58%,#f8f1df);
  border-color:rgba(22,118,162,.18);
}
.weather-intel-head{align-items:flex-start}
.weather-intel-head small{display:block;margin-top:.18rem;color:#596270;line-height:1.35}
.weather-section-icon{
  width:46px;
  height:46px;
  border-radius:15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#e8f4fb;
  box-shadow:inset 0 0 0 1px rgba(22,118,162,.13);
}
.weather-map-link{white-space:nowrap}
.weather-live-panel{
  display:grid;
  grid-template-columns:minmax(230px,.78fr) minmax(0,1.52fr);
  gap:1rem;
  align-items:start;
}
.weather-now-card{
  display:grid;
  gap:1rem;
  min-height:330px;
  border-radius:20px;
  padding:1rem;
  color:#fff;
  background:linear-gradient(155deg,#153c31 0%,#1f6957 62%,#c49148 100%);
  box-shadow:0 18px 42px rgba(23,61,49,.18);
}
.weather-now-main{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:.85rem;
  align-items:start;
}
.weather-now-icon{
  width:54px;
  height:54px;
  border-radius:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.16);
  font-size:1.85rem;
}
.weather-now-main span,
.weather-now-main small,
.weather-now-metrics small{color:rgba(255,255,255,.82)}
.weather-now-main strong{
  display:block;
  margin:.15rem 0;
  font-size:2.75rem;
  line-height:.95;
  letter-spacing:0;
}
.weather-now-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.5rem;
}
.weather-now-metrics span{
  border:1px solid rgba(255,255,255,.18);
  border-radius:14px;
  background:rgba(255,255,255,.12);
  padding:.55rem;
}
.weather-now-metrics strong{display:block;font-size:1.05rem}
.weather-status-pill-v37{
  align-self:end;
  margin:0;
  border-radius:999px;
  padding:.5rem .68rem;
  background:rgba(255,255,255,.18);
  color:#fffdf8;
  font-weight:800;
  font-size:.82rem;
}
.weather-status-pill-v37.is-live{background:#dff5e8;color:#173d31}
.weather-status-pill-v37.is-loading{background:#fff1c7;color:#4c3412}
.weather-status-pill-v37.is-fallback{background:#ffe0d0;color:#6f2418}
.weather-day-list-v37{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:.75rem;
}
.weather-day-card-v37{
  min-width:0;
  min-height:172px;
  display:grid;
  gap:.72rem;
  align-content:start;
  border:1px solid rgba(23,61,49,.12);
  border-radius:17px;
  background:#fff;
  padding:.85rem;
  box-shadow:0 10px 24px rgba(23,61,49,.055);
}
.weather-day-card-v37.is-primary{
  border-color:rgba(22,118,162,.32);
  box-shadow:inset 4px 0 0 #1676a2,0 10px 24px rgba(23,61,49,.055);
}
.weather-day-card-v37.is-loading{background:linear-gradient(110deg,#fff 0%,#f4f8f4 48%,#fff 100%)}
.weather-day-top{
  display:flex;
  gap:.68rem;
  align-items:flex-start;
  min-width:0;
}
.weather-day-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#edf7fc;
  box-shadow:inset 0 0 0 1px rgba(22,118,162,.12);
  font-size:1.35rem;
}
.weather-day-date{
  display:block;
  margin-bottom:.15rem;
  color:#596270;
  font-size:.84rem;
  line-height:1.2;
}
.weather-day-top strong{
  display:block;
  color:#24302c;
  line-height:1.18;
}
.weather-metric-row{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.38rem;
}
.weather-metric-row span{
  min-width:0;
  border:1px solid rgba(23,61,49,.1);
  border-radius:12px;
  background:#fbfaf4;
  padding:.5rem .42rem;
}
.weather-metric-row strong{
  display:block;
  color:#173d31;
  line-height:1.1;
}
.weather-metric-row small{
  display:block;
  color:#68766f;
  font-size:.72rem;
}
.weather-day-card-v37 p{
  margin:0;
  color:#53645c;
  font-size:.88rem;
  line-height:1.35;
}
@media(max-width:760px){
  .weather-live-panel{grid-template-columns:1fr}
  .weather-day-list-v37{grid-template-columns:1fr}
  .weather-intel-head{display:grid;grid-template-columns:auto 1fr;align-items:start}
  .weather-map-link{grid-column:1 / -1;width:100%;justify-content:center}
  .weather-now-card{min-height:auto}
}
@media(max-width:430px){
  .weather-now-main strong{font-size:2.35rem}
  .weather-now-metrics,
  .weather-metric-row{grid-template-columns:1fr 1fr 1fr}
  .weather-metric-row span{padding:.45rem .32rem}
}

/* v38 Live tide planning */
.tide-section-v38{
  background:linear-gradient(135deg,#f8fcff,#eef8f7 58%,#fff8e7);
  border-color:rgba(22,118,162,.22);
}
.tide-intel-head{align-items:flex-start}
.tide-intel-head small{display:block;margin-top:.18rem;color:#596270;line-height:1.35}
.tide-section-icon{
  width:46px;
  height:46px;
  border-radius:15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#e5f4fb;
  box-shadow:inset 0 0 0 1px rgba(22,118,162,.16);
}
.tide-map-link{white-space:nowrap}
.tide-live-panel-v38{
  display:grid;
  grid-template-columns:minmax(230px,.62fr) minmax(0,1.7fr);
  gap:1rem;
  align-items:start;
}
.tide-now-card-v38{
  display:grid;
  gap:1rem;
  min-height:240px;
  border-radius:20px;
  padding:1rem;
  color:#fffdf8;
  background:linear-gradient(150deg,#123a4a 0%,#1676a2 58%,#2d8a62 100%);
  box-shadow:0 18px 42px rgba(18,58,74,.16);
}
.tide-now-card-v38 small{
  display:block;
  color:rgba(255,255,255,.82);
  font-weight:800;
}
.tide-now-card-v38 strong{
  display:block;
  margin:.15rem 0;
  font-size:2.15rem;
  line-height:1;
  letter-spacing:0;
}
.tide-now-card-v38 span{display:block}
.tide-now-card-v38 p{margin:0;color:rgba(255,255,255,.86);line-height:1.45}
.tide-status-pill-v38{
  justify-self:start;
  border-radius:999px;
  padding:.46rem .68rem;
  background:rgba(255,255,255,.18);
  color:#fffdf8;
  font-weight:900;
  font-size:.82rem;
}
.tide-status-pill-v38.is-live{background:#dff5e8;color:#173d31}
.tide-status-pill-v38.is-loading{background:#fff1c7;color:#4c3412}
.tide-status-pill-v38.is-fallback{background:#ffe0d0;color:#6f2418}
.tide-day-list-v38{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:.75rem;
}
.tide-day-card-v38{
  min-width:0;
  display:grid;
  gap:.72rem;
  border:1px solid rgba(23,61,49,.12);
  border-radius:17px;
  background:#fff;
  padding:.85rem;
  box-shadow:0 10px 24px rgba(23,61,49,.055);
}
.tide-day-card-v38.is-primary{
  border-color:rgba(22,118,162,.32);
  box-shadow:inset 4px 0 0 #1676a2,0 10px 24px rgba(23,61,49,.055);
}
.tide-day-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.7rem;
  border-bottom:1px solid rgba(23,61,49,.08);
  padding-bottom:.55rem;
}
.tide-day-heading span{
  color:#596270;
  font-size:.86rem;
  line-height:1.2;
}
.tide-day-heading strong{
  color:#173d31;
  line-height:1.2;
  text-align:right;
}
.tide-event-list-v38{
  display:grid;
  gap:.45rem;
}
.tide-event-chip{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) auto;
  align-items:center;
  gap:.55rem;
  border:1px solid rgba(23,61,49,.1);
  border-radius:13px;
  background:#fbfaf4;
  padding:.52rem .58rem;
}
.tide-event-chip b{
  color:#173d31;
  font-size:.78rem;
}
.tide-event-chip strong{
  min-width:0;
  color:#24302c;
  line-height:1.15;
}
.tide-event-chip em{
  color:#596270;
  font-style:normal;
  font-size:.84rem;
}
.tide-event-chip.is-high{background:#eef8ff;border-color:rgba(22,118,162,.18)}
.tide-event-chip.is-low{background:#fff9ea;border-color:rgba(196,145,72,.2)}
.tide-event-chip.is-empty{grid-template-columns:54px 1fr;align-items:start}
.tide-event-chip.is-empty em{grid-column:2}
.tide-day-card-v38 p{
  margin:0;
  color:#53645c;
  font-size:.88rem;
  line-height:1.35;
}
@media(max-width:760px){
  .tide-live-panel-v38{grid-template-columns:1fr}
  .tide-day-list-v38{grid-template-columns:1fr}
  .tide-intel-head{display:grid;grid-template-columns:auto 1fr;align-items:start}
  .tide-map-link{grid-column:1 / -1;width:100%;justify-content:center}
  .tide-now-card-v38{min-height:auto}
}
@media(max-width:430px){
  .tide-event-chip{grid-template-columns:48px minmax(0,1fr);align-items:start}
  .tide-event-chip em{grid-column:2}
}

/* v39 Routes and island conditions */
.travel-section-v39{
  background:linear-gradient(135deg,#fffdf8,#f3f8f1 55%,#eef8ff);
  border-color:rgba(23,61,49,.14);
}
.travel-intel-head{align-items:flex-start}
.travel-intel-head small{display:block;margin-top:.18rem;color:#596270;line-height:1.35}
.travel-section-icon{
  width:46px;
  height:46px;
  border-radius:15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#eef7f1;
  box-shadow:inset 0 0 0 1px rgba(23,61,49,.12);
}
.travel-grid-v39{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.85rem;
}
.travel-card-v39{
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:.85rem;
  align-items:start;
  border:1px solid rgba(23,61,49,.12);
  border-radius:18px;
  background:#fff;
  padding:1rem;
  box-shadow:0 10px 24px rgba(23,61,49,.055);
}
.travel-card-v39.is-route{border-left:5px solid #2d8a62}
.travel-card-v39.is-kona{border-left-color:#c49148}
.travel-card-v39.is-condition{border-left-color:#1676a2}
.travel-card-v39.is-volcano{border-left-color:#d67432}
.travel-card-icon{
  width:48px;
  height:48px;
  border-radius:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#eef7f1;
  color:#173d31;
  font-weight:900;
  box-shadow:inset 0 0 0 1px rgba(23,61,49,.11);
}
.travel-card-v39.is-kona .travel-card-icon{background:#fff5df;color:#6d4a11}
.travel-card-v39.is-condition .travel-card-icon{background:#e9f6fc;color:#0e5578}
.travel-card-v39.is-volcano .travel-card-icon{background:#fff0e6;color:#7b3514}
.travel-card-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
  margin-bottom:.35rem;
}
.travel-card-heading span{
  color:#596270;
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.travel-card-heading strong{
  color:#173d31;
  font-size:1.08rem;
  line-height:1.15;
  text-align:right;
}
.travel-card-v39 p{
  margin:.2rem 0 .75rem;
  color:#53645c;
  line-height:1.45;
}
.travel-card-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
  margin-bottom:.8rem;
}
.travel-card-meta span{
  border:1px solid rgba(23,61,49,.1);
  border-radius:999px;
  background:#fbfaf4;
  padding:.32rem .55rem;
  color:#173d31;
  font-size:.78rem;
  font-weight:800;
}
@media(max-width:760px){
  .travel-grid-v39{grid-template-columns:1fr}
  .travel-intel-head{display:grid;grid-template-columns:auto 1fr;align-items:start}
}
@media(max-width:430px){
  .travel-card-v39{grid-template-columns:1fr}
  .travel-card-icon{width:44px;height:44px}
  .travel-card-heading{display:grid;gap:.2rem}
  .travel-card-heading strong{text-align:left}
}

/* v40 Schedule-aware daily prep */
.prep-section-v40{
  background:linear-gradient(135deg,#fffdf8,#f7fbf4 52%,#eef8ff);
  border-color:rgba(196,145,72,.2);
}
.prep-intel-head{align-items:flex-start}
.prep-intel-head small{display:block;margin-top:.18rem;color:#596270;line-height:1.35}
.prep-section-icon{
  width:46px;
  height:46px;
  border-radius:15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff3d6;
  box-shadow:inset 0 0 0 1px rgba(196,145,72,.2);
}
.prep-actions-v40{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  justify-content:flex-end;
}
.prep-day-grid-v40{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(245px,1fr));
  gap:.85rem;
}
.prep-day-card-v40{
  min-width:0;
  display:grid;
  gap:.78rem;
  align-content:start;
  border:1px solid rgba(23,61,49,.12);
  border-radius:18px;
  background:#fff;
  padding:1rem;
  box-shadow:0 10px 24px rgba(23,61,49,.055);
}
.prep-day-card-v40.is-primary{
  border-color:rgba(196,145,72,.35);
  box-shadow:inset 4px 0 0 #c49148,0 10px 24px rgba(23,61,49,.055);
}
.prep-day-head-v40{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:.75rem;
}
.prep-day-head-v40 span{
  display:block;
  color:#596270;
  font-size:.86rem;
  line-height:1.2;
}
.prep-day-head-v40 strong{
  display:block;
  margin-top:.18rem;
  color:#173d31;
  line-height:1.18;
}
.prep-weather-icon-v40{
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:14px;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  background:#edf7fc;
  box-shadow:inset 0 0 0 1px rgba(22,118,162,.12);
  font-size:1.35rem!important;
}
.prep-weather-row-v40{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.38rem;
}
.prep-weather-row-v40 span{
  border:1px solid rgba(23,61,49,.1);
  border-radius:12px;
  background:#fbfaf4;
  padding:.48rem .42rem;
}
.prep-weather-row-v40 b{
  display:block;
  color:#173d31;
  line-height:1.1;
}
.prep-weather-row-v40 small{
  display:block;
  color:#68766f;
  font-size:.72rem;
}
.prep-schedule-list-v40{
  display:grid;
  gap:.45rem;
}
.prep-schedule-pill-v40{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:.15rem .55rem;
  align-items:start;
  border:1px solid rgba(23,61,49,.1);
  border-radius:13px;
  background:#f8fbf7;
  padding:.55rem .62rem;
}
.prep-schedule-pill-v40 b{
  color:#173d31;
  font-size:.8rem;
  white-space:nowrap;
}
.prep-schedule-pill-v40 strong{
  min-width:0;
  color:#26302c;
  line-height:1.18;
}
.prep-schedule-pill-v40 small{
  grid-column:2;
  color:#596270;
  line-height:1.25;
}
.prep-schedule-pill-v40.is-empty{
  grid-template-columns:1fr;
  background:#fbfaf4;
}
.prep-schedule-pill-v40.is-empty small{grid-column:1}
.prep-more-v40{
  color:#596270;
  font-weight:800;
}
.prep-bring-list-v40{
  display:flex;
  flex-wrap:wrap;
  gap:.42rem;
}
.prep-bring-chip-v40{
  border:1px solid rgba(23,61,49,.11);
  border-radius:999px;
  background:#fffdf8;
  color:#173d31;
  padding:.38rem .58rem;
  font-size:.8rem;
  font-weight:900;
}
.prep-bring-chip-v40.is-sun{background:#fff5d8;border-color:rgba(196,145,72,.25)}
.prep-bring-chip-v40.is-rain{background:#eaf7ff;border-color:rgba(22,118,162,.22)}
.prep-bring-chip-v40.is-activity{background:#edf7ef;border-color:rgba(45,138,98,.2)}
.prep-bring-chip-v40.is-wind{background:#f0f3f6;border-color:rgba(74,92,110,.18)}
.prep-day-card-v40 p{
  margin:0;
  color:#53645c;
  font-size:.88rem;
  line-height:1.38;
}
@media(max-width:760px){
  .prep-intel-head{display:grid;grid-template-columns:auto 1fr;align-items:start}
  .prep-actions-v40{grid-column:1 / -1;justify-content:flex-start}
  .prep-actions-v40 .btn{flex:1 1 145px;justify-content:center}
  .prep-day-grid-v40{grid-template-columns:1fr}
}
@media(max-width:430px){
  .prep-weather-row-v40{grid-template-columns:repeat(3,minmax(0,1fr))}
  .prep-weather-row-v40 span{padding:.45rem .32rem}
  .prep-schedule-pill-v40{grid-template-columns:1fr}
  .prep-schedule-pill-v40 small{grid-column:1}
}

/* v41 Footer contact button contrast */
.guest-footer .link-button{
  appearance:none;
  border:1px solid rgba(213,181,109,.85)!important;
  border-radius:999px;
  background:#fffdf8!important;
  color:#173d31!important;
  padding:.42rem .72rem;
  font:inherit;
  font-weight:900;
  line-height:1.1;
  text-decoration:none!important;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(0,0,0,.16);
}
.guest-footer .link-button:hover,
.guest-footer .link-button:focus-visible{
  background:#f6d28a!important;
  color:#173d31!important;
  outline:2px solid rgba(255,255,255,.9);
  outline-offset:2px;
}
@media(max-width:760px){
  .guest-footer{
    padding-bottom:5.25rem;
  }
}

/* Guest personal stay usability pass */
.guest-schedule-toolbar,
.guest-dining-viewbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 14px;
}

.guest-print-meta {
  display: none;
}

.v20-day-heading,
.v26-schedule-day .v20-day-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  background: #f2eadb;
  border: 1px solid #a9874a;
  color: #173d31;
}

.v20-day-heading h3,
.v26-schedule-day .v20-day-heading h3 {
  margin: 0;
  color: #173d31;
}

.v20-day-heading span,
.v26-schedule-day .v20-day-heading span {
  color: #3f2d0b;
  font-weight: 900;
}

.v20-schedule-row.is-past,
.timeline-item.is-past,
.guest-highlight-item.is-past {
  background: #f1f0ea;
  border-color: #d2c9b7;
}

.v20-schedule-row.is-past .v20-schedule-time,
.v20-schedule-row.is-past strong,
.timeline-item.is-past strong,
.guest-highlight-item.is-past h4 {
  color: #526057;
}

.v20-schedule-row.is-past p,
.v20-schedule-row.is-past small,
.timeline-item.is-past p {
  color: #646b63;
}

.v20-schedule-row.is-past .v20-schedule-icon {
  filter: grayscale(.8);
  opacity: .75;
}

.guest-dining-overview {
  display: grid;
  gap: 14px;
  grid-column: 1 / -1;
}

.guest-dining-date-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
  gap: 10px;
}

.guest-dining-filterbar {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid #d8c8a8;
  border-radius: 16px;
  background: #fffef8;
}

.guest-dining-filter-group {
  display: grid;
  gap: 7px;
}

.guest-dining-filter-group strong {
  color: #173d31;
  font-size: .86rem;
}

.guest-dining-filterbar .quick-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.guest-dining-filterbar .filter-chip {
  border: 1px solid #d8c8a8;
  border-radius: 999px;
  padding: 7px 10px;
  background: #fffdf8;
  color: #173d31;
  font-weight: 900;
  cursor: pointer;
}

.guest-dining-filterbar .filter-chip.active,
.guest-dining-filterbar .filter-chip:hover,
.guest-dining-filterbar .filter-chip:focus-visible {
  border-color: #173d31;
  background: #173d31;
  color: #fff;
  outline: none;
}

.guest-dining-date-card {
  display: grid;
  gap: 4px;
  min-height: 128px;
  padding: 12px;
  border: 1px solid #d8c8a8;
  border-radius: 14px;
  background: #fffef8;
  color: #173d31;
  text-align: left;
  cursor: pointer;
}

.guest-dining-date-card.is-past-day {
  background: #f1f0ea;
  border-color: #d2c9b7;
}

.guest-dining-date-card.is-past-day strong,
.guest-dining-date-card.is-past-day small,
.guest-dining-date-card.is-past-day span {
  color: #526057;
}

.guest-dining-date-card.active,
.guest-dining-date-card:hover,
.guest-dining-date-card:focus-visible {
  border-color: #173d31;
  box-shadow: 0 12px 28px rgba(23,61,49,.13);
  outline: none;
}

.guest-dining-date-card strong {
  font-size: 1.1rem;
  color: #173d31;
}

.guest-dining-date-card small,
.guest-dining-date-card span {
  color: #334039;
  font-weight: 800;
}

.guest-dining-mini-slots {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-self: end;
}

.guest-dining-mini-slots span,
.guest-dining-mini-slots em {
  border-radius: 999px;
  padding: 3px 7px;
  font-size: .76rem;
  font-style: normal;
  font-weight: 900;
  background: #ece5d6;
  color: #334039;
}

.guest-dining-mini-slots .is-open { background: #dff0de; color: #173d31; }
.guest-dining-mini-slots .is-reserved { background: #173d31; color: #fff; }
.guest-dining-mini-slots .is-cancelled { background: #ffe6df; color: #5f1c1c; }
.guest-dining-mini-slots .is-closed,
.guest-dining-mini-slots .is-unavailable { background: #f3e1d6; color: #6d241d; }

.guest-dining-detail-list {
  display: grid;
  gap: 14px;
  grid-column: 1 / -1;
}

.guest-dining-overview-card {
  align-items: start;
}

.guest-dining-overview-card .expanded-stats {
  display: grid;
  grid-template-columns: repeat(5, minmax(84px, 1fr));
  align-items: start;
  align-self: start;
}

.guest-dining-overview-card .expanded-stats span {
  min-height: 0;
  padding: 9px 10px;
}

.dining-allergy-reminder {
  margin-top: 10px !important;
  padding: 9px 11px;
  border-radius: 12px;
  background: #fff1bf;
  border: 1px solid #8a6a20;
  color: #3f2d0b !important;
}

.guest-dining-date-card b {
  justify-self: start;
  border-radius: 999px;
  padding: 3px 8px;
  background: #fff1bf;
  border: 1px solid #8a6a20;
  color: #3f2d0b;
  font-size: .78rem;
}

.guest-dining-date-grid.monthly-view {
  grid-template-columns: repeat(7, minmax(96px, 1fr));
}

.guest-dining-day-accordion {
  border: 1px solid #d8c8a8;
  border-radius: 20px;
  background: #fffef8;
  overflow: hidden;
  box-shadow: 0 14px 32px rgba(23,61,49,.07);
}

.guest-dining-day-accordion.is-past-day {
  background: #f1f0ea;
  border-color: #d2c9b7;
}

.guest-dining-day-accordion > summary {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) minmax(280px, auto);
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
  background: #f2eadb;
  color: #173d31;
}

.guest-dining-day-accordion > summary::-webkit-details-marker {
  display: none;
}

.guest-dining-day-accordion > summary h2 {
  margin: 2px 0 0;
  color: #173d31;
}

.guest-dining-day-accordion.is-past-day > summary {
  background: #e8e4da;
}

.guest-dining-day-summary-wrap {
  display: grid;
  gap: 8px;
  justify-items: end;
}

.guest-dining-day-summary {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.guest-dining-day-summary span {
  border: 1px solid #cdbf9e;
  border-radius: 999px;
  padding: 5px 8px;
  background: #fffef8;
  color: #334039;
  font-weight: 900;
  font-size: .8rem;
}

.guest-dining-day-summary .needs-action {
  background: #fff1bf;
  color: #3f2d0b;
  border-color: #8a6a20;
}

.guest-dining-day-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.guest-dining-meal-grid {
  display: grid;
  gap: 10px;
  padding: 14px;
}

.guest-dining-meal-card {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 16px;
  background: #fffdf9;
  overflow: hidden;
}

.guest-dining-meal-card.is-reserved {
  border-color: rgba(0,129,47,.34);
  background: #f4fff7;
}

.guest-dining-meal-card.is-open {
  border-color: rgba(23,61,49,.24);
}

.guest-dining-meal-card.is-closed,
.guest-dining-meal-card.is-unavailable {
  background: #f3f1e8;
  border-color: rgba(49,55,48,.28);
}

.guest-dining-meal-card.is-cancelled {
  background: #fff8f2;
  border-color: rgba(113,29,18,.2);
}

.guest-dining-meal-card.is-rsvp-pending {
  opacity: .78;
}

.guest-dining-meal-card.is-past-meal {
  background: #f1f0ea;
  border-color: #d2c9b7;
}

.guest-dining-meal-card.is-past-meal .guest-dining-meal-main h3,
.guest-dining-meal-card.is-past-meal .guest-dining-meal-main p {
  color: #526057;
}

.guest-dining-meal-card.is-past-meal .eyebrow {
  color: #6f4d12;
}

.guest-dining-meal-card.is-exception,
.guest-dining-meal-card.is-approved,
.guest-dining-meal-card.is-denied {
  background: #fff8eb;
  border-color: #c49148;
}

.guest-dining-meal-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  padding: 14px;
  align-items: center;
}

.guest-dining-meal-main h3 {
  margin: 2px 0 4px;
  color: #173d31;
}

.guest-dining-meal-main p {
  margin: 0;
  color: #334039;
}

.guest-dining-meal-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.guest-dining-recovery-note {
  margin-top: 8px;
  color: #365246;
  font-size: .92rem;
  font-weight: 800;
}

.guest-dining-inline-status,
.guest-dining-filter-notice {
  margin-top: 10px;
  border: 1px solid rgba(0,129,47,.2);
  border-radius: 12px;
  background: #effaf1;
  color: #173d31;
  padding: 9px 11px;
  font-weight: 900;
}

.guest-dining-inline-status span,
.guest-dining-filter-notice span {
  display: block;
  margin-top: 3px;
  color: #40564d;
  font-size: .86rem;
  font-weight: 700;
}

.guest-dining-filter-notice {
  display: grid;
  gap: 2px;
}

.guest-dining-meal-meta span,
.guest-dining-meal-actions > span.badge {
  border-radius: 999px;
  padding: 5px 8px;
  font-weight: 900;
  font-size: .8rem;
  background: #eaf0eb;
  color: #173d31;
  border: 1px solid rgba(23,61,49,.14);
}

.guest-dining-meal-meta .is-reserved { background: #173d31; color: #fff; }
.guest-dining-meal-meta .is-open { background: #fff1bf; color: #3f2d0b; border-color: #8a6a20; }
.guest-dining-meal-meta .is-cancelled { background: #ffe6df; color: #5f1c1c; border-color: rgba(113,29,18,.22); }
.guest-dining-meal-meta .is-closed,
.guest-dining-meal-meta .is-unavailable { background: #f3e1d6; color: #6d241d; }
.guest-dining-meal-meta .is-exception,
.guest-dining-meal-meta .is-approved { background: #e5f6e6; color: #173d31; }
.guest-dining-meal-meta .is-denied { background: #f5dada; color: #5f1c1c; }

.guest-dining-meal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
}

.guest-dining-meal-details {
  border-top: 1px solid #d8c8a8;
  background: #fffaf0;
}

.guest-dining-meal-details > summary {
  padding: 10px 14px;
  cursor: pointer;
  font-weight: 900;
  color: #173d31;
}

.guest-dining-meal-details > .guest-meal-option {
  margin: 0 14px 14px;
}

.meal-rsvp-help {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: baseline;
  margin: 12px 0 6px;
  padding: 10px 12px;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 12px;
  background: #f4f8f2;
  color: #173d31;
}

.meal-rsvp-help span {
  color: #4a5a51;
}

.meal-beverage-selector,
.meal-option-selector {
  margin: 10px 0;
  padding: 12px;
  border: 1px solid #d8c8a8;
  border-radius: 14px;
  background: #fffdf8;
}

.meal-beverage-selector legend,
.meal-option-selector legend {
  padding: 0 6px;
  color: #173d31;
  font-weight: 900;
}

.meal-beverage-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
  margin-top: 8px;
}

.meal-beverage-grid label {
  gap: 5px;
  min-width: 0;
}

.guest-dining-empty-day {
  padding: 14px;
  border: 1px dashed #d8c8a8;
  border-radius: 16px;
  background: #fffef8;
}

.guest-meal-option.is-past {
  background: #f1f0ea;
  border-color: #d2c9b7;
}

.guest-meal-option.is-past .meal-emoji {
  filter: grayscale(.8);
  opacity: .75;
}

.guest-highlight-group {
  display: grid;
  gap: 8px;
  margin-bottom: 14px;
}

.guest-highlight-controls {
  display: grid;
  gap: 8px;
  margin-bottom: 14px;
}

.guest-highlight-controls .view-switcher {
  margin: 0;
}

.guest-highlight-day {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.guest-highlight-day + .guest-highlight-day {
  padding-top: 14px;
  border-top: 1px solid #d8c8a8;
}

.guest-highlight-day.is-past-day {
  opacity: .9;
}

.guest-highlight-day-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.guest-highlight-day-head h3 {
  margin: 0;
  color: #173d31;
}

.guest-highlight-group > h3,
.guest-highlight-group > h4 {
  margin: 0;
  color: #6f4d12;
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.guest-highlight-item h4,
.guest-highlight-item h5 {
  margin: 0;
  color: #173d31;
  font-size: 1rem;
}

.guide-category-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 4px;
}

.guide-category-chip {
  border: 1px solid #d8c8a8;
  border-radius: 999px;
  padding: 6px 10px;
  background: #fffef8;
  color: #173d31;
  font-weight: 900;
  font-size: .84rem;
}

.shared-experience-panel,
.shared-experience-mini-list {
  display: grid;
  gap: 10px;
  margin-bottom: 14px;
}

.shared-experience-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
  border: 1px solid #d8c8a8;
  border-radius: 16px;
  padding: 12px;
  background: #fffef8;
}

.shared-experience-card h3 {
  margin: 4px 0;
  color: #173d31;
}

.shared-experience-card p {
  margin: 3px 0;
  color: #334039;
}

.shared-experience-card.is-compact {
  grid-template-columns: 1fr;
}

@media (max-width: 760px) {
  .guest-schedule-toolbar,
  .guest-dining-viewbar,
  .v20-day-heading,
  .shared-experience-card {
    align-items: stretch;
    grid-template-columns: 1fr;
    flex-direction: column;
  }

  .guest-dining-date-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .guest-dining-date-grid.monthly-view {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .guest-dining-day-accordion > summary,
  .guest-dining-meal-main {
    grid-template-columns: 1fr;
  }

  .guest-dining-day-summary-wrap,
  .guest-dining-day-summary,
  .guest-dining-day-actions,
  .guest-dining-meal-actions {
    justify-items: start;
    justify-content: flex-start;
  }

  .guest-dining-overview-card .expanded-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media print {
  .guest-schedule-toolbar,
  .guest-dining-viewbar,
  .guest-dining-filterbar,
  .guest-dining-date-grid,
  .guest-dining-meal-actions,
  .guest-dining-day-actions,
  .guest-dining-meal-details > summary,
  .guest-tabs,
  .quick-actions,
  .topbar,
  .app-footer,
  .guest-alert-bell {
    display: none !important;
  }

  .guest-print-meta {
    display: grid;
    gap: 4px;
    margin-bottom: 16px;
    color: #173d31;
  }

  .v26-schedule-day {
    page-break-inside: avoid;
    box-shadow: none !important;
  }

  .guest-dining-day-accordion {
    page-break-inside: avoid;
    box-shadow: none !important;
  }

  .guest-dining-day-accordion,
  .guest-dining-day-accordion > summary,
  .guest-dining-meal-card {
    border-color: #999 !important;
    background: #fff !important;
  }

  .guest-dining-day-accordion:not([open]) > .guest-dining-meal-grid,
  .guest-dining-day-accordion:not([open]) > .meal-note {
    display: grid;
  }
}

/* Admin production workflow pass */
.admin-production-shell {
  margin: 0 0 18px;
  padding: 16px;
  border: 1px solid rgba(23, 61, 49, 0.12);
  border-radius: 18px;
  background: rgba(255, 254, 249, 0.92);
  box-shadow: 0 14px 34px rgba(23, 61, 49, 0.08);
}

.admin-production-subnav {
  margin: 12px 0;
  overflow-x: auto;
  justify-content: flex-start;
}

.admin-production-filters {
  align-items: end;
  margin: 10px 0 14px;
}

.admin-overview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.admin-overview-metric {
  display: grid;
  gap: 6px;
  text-align: left;
  border: 1px solid #d8c8a8;
  border-radius: 12px;
  padding: 12px;
  color: #173d31;
  background: #fffef9;
  box-shadow: 0 10px 22px rgba(23, 61, 49, 0.06);
}

.admin-overview-metric:not(.static) {
  cursor: pointer;
}

.admin-overview-metric:not(.static):hover,
.admin-overview-metric.active {
  border-color: #173d31;
  background: #eef6ef;
  box-shadow: 0 12px 28px rgba(23, 61, 49, 0.12);
}

.admin-overview-metric.active {
  outline: 3px solid rgba(23, 61, 49, 0.12);
}

.admin-overview-metric.static {
  cursor: default;
}

.admin-overview-metric span {
  color: #334039;
  font-size: 0.84rem;
  font-weight: 800;
}

.admin-overview-metric strong {
  color: #173d31;
  font-size: 1.6rem;
}

.guest-functions-panel {
  display: grid;
  gap: 12px;
  margin: 12px 0 14px;
  padding: 12px;
  border: 1px solid rgba(23, 61, 49, 0.16);
  border-radius: 12px;
  background: #f7fbf3;
  box-shadow: 0 12px 28px rgba(23, 61, 49, 0.08);
}

.guest-functions-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.guest-functions-head h3 {
  margin: 0;
  color: var(--forest);
}

.guest-function-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 8px;
}

.guest-function-action {
  display: grid;
  gap: 3px;
  min-height: 68px;
  padding: 12px;
  text-align: left;
  color: var(--forest);
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(255, 254, 249, 0.92);
  box-shadow: 0 8px 18px rgba(23, 61, 49, 0.06);
  cursor: pointer;
}

.guest-function-action:hover,
.guest-function-action:focus-visible {
  border-color: var(--forest);
  box-shadow: 0 10px 24px rgba(23, 61, 49, 0.14);
}

.guest-function-action.primary {
  color: #fff;
  border-color: var(--forest);
  background: var(--forest);
}

.guest-function-action small {
  color: var(--muted);
  font-weight: 800;
}

.guest-function-action.primary small {
  color: rgba(255, 255, 255, 0.78);
}

.guest-function-note {
  display: grid;
  gap: 3px;
  min-height: 68px;
  padding: 12px;
  color: var(--forest);
  border: 1px dashed var(--border);
  border-radius: 8px;
  background: rgba(255, 254, 249, 0.62);
}

.guest-function-note small {
  color: var(--muted);
  font-weight: 800;
  line-height: 1.25;
}

.admin-overview-metric small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.shop-overview-dashboard {
  display: grid;
  gap: 14px;
}

.shop-overview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
  align-items: start;
}

.shop-analytics-card {
  display: grid;
  gap: 12px;
  min-height: 100%;
  border-radius: 12px;
}

.shop-analytics-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(125px, 1fr));
  gap: 8px;
}

.shop-analytics-stat-grid > div {
  display: grid;
  gap: 4px;
  padding: 10px;
  border: 1px solid rgba(23, 61, 49, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.68);
}

.shop-analytics-stat-grid span,
.shop-bar-row small,
.shop-watch-row small,
.shop-request-row small {
  color: var(--muted);
  font-weight: 800;
}

.shop-analytics-stat-grid strong {
  color: var(--forest);
  font-size: 1.25rem;
}

.shop-readiness-list,
.shop-bar-list,
.shop-watch-list {
  display: grid;
  gap: 8px;
}

.shop-readiness-row,
.shop-bar-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.shop-readiness-row {
  padding: 8px 0;
  border-top: 1px solid rgba(23, 61, 49, 0.1);
  font-weight: 800;
}

.shop-bar-row > div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.shop-bar-row > span {
  color: var(--forest);
  font-size: 0.82rem;
  font-weight: 900;
  white-space: nowrap;
}

.shop-bar-track {
  display: block;
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(23, 61, 49, 0.1);
}

.shop-bar-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--forest);
}

.shop-category-drill {
  width: 100%;
  padding: 8px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;
}

.shop-category-drill:hover,
.shop-category-drill:focus-visible {
  background: rgba(23, 61, 49, 0.07);
}

.shop-category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}

.shop-category-card-button {
  width: 100%;
  display: grid;
  gap: 8px;
  min-height: 150px;
  cursor: pointer;
  color: inherit;
  text-align: left;
}

.shop-category-card-button:hover,
.shop-category-card-button:focus-visible {
  border-color: var(--forest);
  box-shadow: 0 12px 28px rgba(23, 61, 49, 0.12);
}

.shop-category-card {
  display: grid;
  gap: 8px;
  min-height: 150px;
}

.shop-category-card.is-muted {
  background: rgba(245, 241, 232, 0.65);
}

.shop-category-actions {
  margin-top: 4px;
}

.shop-category-create-form {
  margin: 12px 0;
}

.shop-category-detail-heading {
  margin: 14px 0 10px;
}

.shop-category-badges {
  margin: 8px 0;
}

.shop-watch-row,
.shop-request-row {
  align-items: center;
}

.shop-command-heading {
  align-items: flex-start;
  gap: 14px;
}

.shop-command-heading .request-actions {
  justify-content: flex-end;
}

.shop-production-card > summary {
  display: grid;
  grid-template-columns: minmax(250px, 1fr) minmax(220px, auto) minmax(360px, auto);
  gap: 12px;
  align-items: center;
}

.shop-card-summary {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-width: 0;
}

.shop-card-summary small {
  color: var(--muted);
  font-weight: 800;
}

.shop-card-thumb {
  width: 58px;
  height: 58px;
  border: 1px solid rgba(23, 61, 49, 0.12);
  border-radius: 10px;
  object-fit: cover;
  background: #f5f2e9;
}

.placeholder-thumb {
  display: inline-grid;
  place-items: center;
  color: var(--forest);
  font-weight: 900;
}

.shop-card-actions {
  justify-content: flex-end;
}

.shop-restock-inline {
  margin-top: 12px;
}

.shop-inventory-groups {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}

.request-filter-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin: 6px 0 12px;
  padding: 8px 10px;
  border: 1px solid rgba(23, 61, 49, .12);
  border-radius: 12px;
  background: #f7f4e9;
}

.request-heading-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.request-workspace-activity {
  align-items: center;
  background: #f7f4e9;
  border: 1px solid rgba(23, 61, 49, .14);
  border-radius: 999px;
  color: #334039;
  display: inline-flex;
  font-size: .82rem;
  font-weight: 900;
  gap: 6px;
  padding: 7px 10px;
  white-space: nowrap;
}

.request-workspace-activity strong {
  color: #173d31;
}

.request-workspace-activity.is-new {
  background: #fff7dc;
  border-color: rgba(181, 139, 64, .24);
  color: #6f4d12;
}

.request-workspace-activity.is-urgent {
  background: #fff1ee;
  border-color: rgba(180, 67, 50, .22);
  color: #873125;
}

.request-activity-dot {
  background: #5d8a6a;
  border-radius: 999px;
  box-shadow: 0 0 0 3px rgba(93, 138, 106, .14);
  display: inline-block;
  height: 8px;
  width: 8px;
}

.request-workspace-activity.is-new .request-activity-dot {
  background: #b58b40;
  box-shadow: 0 0 0 3px rgba(181, 139, 64, .14);
}

.request-workspace-activity.is-urgent .request-activity-dot {
  background: #b44332;
  box-shadow: 0 0 0 3px rgba(180, 67, 50, .12);
}

.admin-schedule-day-group {
  border: 1px solid #d8c8a8;
  border-radius: 16px;
  background: #fffef9;
  margin: 0 0 12px;
  overflow: hidden;
  box-shadow: 0 10px 22px rgba(23, 61, 49, .055);
}

.admin-schedule-day-group.is-today {
  border-color: rgba(23, 61, 49, .34);
  box-shadow: 0 12px 28px rgba(23, 61, 49, .10);
}

.admin-schedule-day-group > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 16px;
  cursor: pointer;
  color: #173d31;
  font-weight: 900;
  list-style: none;
}

.admin-schedule-day-group > summary::-webkit-details-marker {
  display: none;
}

.admin-schedule-day-group > summary::before {
  content: "›";
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  margin-right: 2px;
  border-radius: 999px;
  background: #eef6ef;
  color: #173d31;
  font-size: 1.15rem;
  transform: rotate(0deg);
  transition: transform .18s ease;
}

.admin-schedule-day-group[open] > summary::before {
  transform: rotate(90deg);
}

.admin-schedule-day-group > summary span:first-child {
  display: grid;
  gap: 2px;
  flex: 1 1 auto;
}

.admin-schedule-day-group > summary small {
  color: #59675f;
  font-weight: 700;
}

.admin-schedule-day-items {
  display: grid;
  gap: 10px;
  padding: 0 14px 14px;
}

.admin-schedule-row {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 14px;
  background: #fffdf8;
  padding: 12px;
}

.admin-schedule-time strong {
  display: inline-flex;
  justify-content: center;
  min-width: 86px;
  border-radius: 999px;
  background: #173d31;
  color: #fffdf8;
  padding: .48rem .65rem;
  font-size: .86rem;
  white-space: nowrap;
}

.admin-schedule-body h3 {
  margin: 0 0 4px;
}

.admin-schedule-body p {
  margin: 0 0 8px;
  color: #334039;
}

.schedule-command-card,
.schedule-list-card {
  border-radius: 8px;
}

.schedule-metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
  margin: 14px 0;
}

.schedule-metric {
  display: grid;
  gap: 3px;
  padding: 12px;
  border: 1px solid rgba(23, 61, 49, .12);
  border-radius: 8px;
  background: #fffdf8;
}

.schedule-metric span,
.schedule-next-card span,
.admin-schedule-time span {
  color: var(--muted);
  font-size: .76rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.schedule-metric strong {
  color: var(--forest);
  font-size: 1.6rem;
  line-height: 1;
}

.schedule-metric small,
.schedule-next-card small {
  color: var(--muted);
  font-weight: 800;
}

.schedule-now-next {
  margin: 0 0 14px;
}

.schedule-live-ops,
.schedule-dispatch-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  margin: 0 0 14px;
}

.schedule-day-rail {
  display: flex;
  gap: 9px;
  overflow-x: auto;
  padding: 2px 0 12px;
  margin: 4px 0 12px;
  scroll-snap-type: x proximity;
}

.schedule-day-card {
  display: grid;
  flex: 0 0 190px;
  gap: 3px;
  min-height: 104px;
  padding: 12px;
  text-align: left;
  color: var(--forest);
  border: 1px solid rgba(23, 61, 49, .14);
  border-radius: 8px;
  background: #fffdf8;
  cursor: pointer;
  scroll-snap-align: start;
}

.schedule-day-card.active {
  border-color: var(--forest);
  box-shadow: 0 0 0 3px rgba(23, 61, 49, .10);
}

.schedule-day-card.has-attention {
  border-color: rgba(181, 139, 64, .55);
  background: #fff8e8;
}

.schedule-day-card span,
.schedule-day-card em {
  color: var(--muted);
  font-size: .76rem;
  font-style: normal;
  font-weight: 900;
}

.schedule-day-card strong {
  font-size: 1rem;
}

.schedule-day-card small {
  color: #334039;
  font-weight: 800;
  line-height: 1.25;
}

.schedule-quick-create,
.schedule-day-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: end;
}

.schedule-day-tools label {
  min-width: 165px;
}

.schedule-primary-actions {
  display: grid;
  grid-template-columns: repeat(5, minmax(110px, 1fr));
  gap: 8px;
  margin: 0 0 12px;
}

.schedule-next-card {
  display: grid;
  width: 100%;
  gap: 3px;
  padding: 13px 14px;
  text-align: left;
  color: var(--forest);
  border: 1px solid rgba(23, 61, 49, .15);
  border-left: 5px solid var(--forest);
  border-radius: 8px;
  background: #eef6ef;
  cursor: pointer;
}

.schedule-next-card.needs-action {
  border-left-color: #b58b40;
  background: #fff8e8;
}

.schedule-next-card.is-empty {
  cursor: default;
  background: #fffdf8;
}

.schedule-toolbar {
  position: sticky;
  top: 84px;
  z-index: 20;
  display: grid;
  grid-template-columns: minmax(240px, 1.4fr) repeat(5, minmax(135px, 1fr));
  gap: 10px;
  align-items: end;
  padding: 12px;
  border: 1px solid rgba(23, 61, 49, .13);
  border-radius: 8px;
  background: rgba(255, 254, 249, .96);
  box-shadow: 0 12px 26px rgba(23, 61, 49, .08);
}

.schedule-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.schedule-chip-row .btn.active {
  color: #fffdf8;
  background: var(--forest);
  border-color: var(--forest);
}

.schedule-command-list {
  display: grid;
  gap: 12px;
}

.schedule-workspace {
  display: grid;
  grid-template-columns: minmax(220px, .72fr) minmax(0, 1.45fr) minmax(250px, .82fr);
  gap: 12px;
  align-items: start;
}

.schedule-dispatch-lane,
.schedule-timeline-lane {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.dispatch-lane-card {
  display: grid;
  width: 100%;
  gap: 3px;
  padding: 11px 12px;
  text-align: left;
  color: var(--forest);
  border: 1px solid rgba(23, 61, 49, .13);
  border-left: 5px solid var(--forest);
  border-radius: 8px;
  background: #fffdf8;
  cursor: pointer;
}

.dispatch-lane-card.needs-action {
  border-left-color: #b58b40;
  background: #fff8e8;
}

.dispatch-lane-card.is-empty {
  cursor: default;
  opacity: .8;
}

.dispatch-lane-card span {
  color: var(--muted);
  font-size: .75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.dispatch-lane-card small {
  color: var(--muted);
  font-weight: 800;
}

.schedule-guest-preview {
  display: grid;
  gap: 8px;
  padding: 12px;
  margin-bottom: 12px;
  border: 1px solid rgba(23, 61, 49, .13);
  border-radius: 8px;
  background: #eef6ef;
}

.schedule-workspace .schedule-guest-preview {
  position: sticky;
  top: 98px;
}

.schedule-preview-row {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 10px;
  padding: 8px 0;
  border-top: 1px solid rgba(23, 61, 49, .10);
}

.schedule-preview-row:first-of-type {
  border-top: 0;
}

.schedule-preview-row time {
  color: var(--forest);
  font-weight: 900;
}

.schedule-preview-row small {
  display: block;
  color: var(--muted);
  font-weight: 800;
}

.schedule-issue-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px;
  padding: 0 14px 12px;
}

.schedule-issue-card {
  display: grid;
  gap: 2px;
  padding: 9px 10px;
  text-align: left;
  color: #6e4713;
  border: 1px solid rgba(181, 139, 64, .42);
  border-radius: 8px;
  background: #fff8e8;
  cursor: pointer;
}

.schedule-issue-card span {
  color: #665849;
  font-size: .82rem;
  font-weight: 800;
}

.density-compact .admin-schedule-row {
  padding: 9px 12px;
}

.density-expanded .admin-schedule-row {
  box-shadow: 0 10px 22px rgba(181, 139, 64, .10);
}

.schedule-time-band {
  display: grid;
  gap: 8px;
  padding-left: 12px;
  border-left: 2px solid rgba(23, 61, 49, .16);
}

.schedule-time-band > span {
  color: var(--muted);
  font-size: .76rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.schedule-row-title {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  justify-content: space-between;
}

.schedule-row-title .badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px;
}

.admin-schedule-row {
  border-left: 6px solid var(--forest);
}

.admin-schedule-row.schedule-category-dining {
  border-left-color: #b58b40;
}

.admin-schedule-row.schedule-category-meditation {
  border-left-color: #588a33;
}

.admin-schedule-row.schedule-category-yoga {
  border-left-color: #0f7a66;
}

.admin-schedule-row.schedule-category-farm {
  border-left-color: #6f8f32;
}

.admin-schedule-row.schedule-category-experience {
  border-left-color: #4b70b8;
}

.admin-schedule-row.has-attention {
  background: #fff8e8;
  border-color: rgba(181, 139, 64, .42);
  border-left-color: #b58b40;
}

.admin-schedule-row.is-hidden-schedule {
  opacity: .74;
  background: #f4f2ec;
}

.admin-schedule-row.dispatch-complete {
  opacity: .78;
  background: #eef6ef;
}

.admin-schedule-row.dispatch-blocked,
.admin-schedule-row.dispatch-unassigned {
  border-left-color: #b58b40;
}

.admin-schedule-time {
  display: grid;
  gap: 6px;
}

.schedule-editor-dialog {
  max-width: 760px;
}

.schedule-editor-summary {
  margin: 0;
}

.schedule-prep-checklist {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0;
}

.schedule-prep-checklist span {
  border: 1px solid rgba(23, 61, 49, .13);
  border-radius: 999px;
  padding: 4px 8px;
  font-size: .76rem;
  font-weight: 900;
}

.schedule-prep-checklist .done {
  background: #eef6ef;
  color: var(--forest);
}

.schedule-prep-checklist .todo {
  background: #fff8e8;
  color: #6e4713;
}

.schedule-action-menu {
  position: relative;
}

.schedule-action-menu > summary {
  list-style: none;
  cursor: pointer;
}

.schedule-action-menu > summary::-webkit-details-marker {
  display: none;
}

.schedule-action-menu > div {
  position: absolute;
  right: 0;
  z-index: 30;
  display: grid;
  min-width: 180px;
  padding: 6px;
  border: 1px solid rgba(23, 61, 49, .14);
  border-radius: 8px;
  background: #fffdf8;
  box-shadow: 0 16px 38px rgba(23, 61, 49, .18);
}

.schedule-action-menu button {
  padding: 8px 9px;
  text-align: left;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--forest);
  cursor: pointer;
  font-weight: 800;
}

.schedule-action-menu button:hover {
  background: #eef6ef;
}

.schedule-action-menu button.danger {
  color: #8b2323;
}

.schedule-empty-guidance,
.schedule-publish-row {
  display: grid;
  gap: 5px;
  padding: 12px;
  border: 1px solid rgba(23, 61, 49, .13);
  border-radius: 8px;
  background: #fffdf8;
}

.schedule-publish-review {
  display: grid;
  gap: 8px;
}

.schedule-publish-summary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.schedule-publish-summary strong {
  padding: 10px;
  border-radius: 8px;
  background: #eef6ef;
}

.schedule-publish-row.is-blocked {
  border-color: rgba(181, 139, 64, .42);
  background: #fff8e8;
}

.schedule-mobile-nav {
  display: none;
}

@media (max-width: 900px) {
  .schedule-toolbar {
    position: static;
    grid-template-columns: 1fr 1fr;
  }

  .schedule-workspace {
    grid-template-columns: 1fr;
  }

  .schedule-workspace .schedule-guest-preview {
    position: static;
  }
}

@media (max-width: 680px) {
  .schedule-toolbar,
  .schedule-primary-actions,
  .admin-schedule-row,
  .schedule-preview-row,
  .schedule-row-title {
    grid-template-columns: 1fr;
  }

  #openScheduleEditor {
    position: fixed;
    right: 14px;
    bottom: 128px;
    z-index: 120;
    min-height: 48px;
    box-shadow: 0 12px 30px rgba(23, 61, 49, .26);
  }

  .schedule-mobile-nav {
    position: fixed;
    left: 10px;
    right: 10px;
    bottom: 68px;
    z-index: 119;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    padding: 6px;
    border: 1px solid rgba(23, 61, 49, .16);
    border-radius: 12px;
    background: rgba(255, 254, 249, .98);
    box-shadow: 0 16px 36px rgba(23, 61, 49, .22);
  }

  .schedule-mobile-nav button {
    min-height: 38px;
    border: 0;
    border-radius: 8px;
    background: #eef6ef;
    color: var(--forest);
    font-weight: 900;
  }

  .schedule-row-title {
    display: grid;
  }

  .schedule-row-title .badges {
    justify-content: flex-start;
  }
}

.admin-production-list {
  display: grid;
  gap: 10px;
}

.admin-expand-card {
  border: 1px solid #d8c8a8;
  border-radius: 12px;
  background: #fffef9;
  overflow: hidden;
}

.admin-expand-card > summary,
.request-accordion.admin-request-group > summary,
.task-calendar-day > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  cursor: pointer;
  color: #173d31;
  font-weight: 900;
}

.admin-expand-card > summary small {
  display: block;
  margin-top: 3px;
  color: #334039;
  font-weight: 700;
}

.request-production-card > summary {
  align-items: flex-start;
}

.request-summary-main {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.request-date-line {
  color: #6f4d12 !important;
  font-weight: 900 !important;
}

.request-aging-badge {
  text-transform: uppercase;
  letter-spacing: .02em;
}

.request-production-card.is-aging {
  border-color: #b58b40;
  box-shadow: 0 0 0 1px rgba(181, 139, 64, .14);
}

.request-dispatch-card > summary {
  display: grid;
  grid-template-columns: auto minmax(220px, 1fr) minmax(220px, auto);
  align-items: start;
}

.request-summary-checkbox {
  padding-top: 3px;
}

.request-dispatch-badges {
  justify-content: flex-end;
}

.request-dispatch-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  padding-top: 8px;
}

.request-linked-summary {
  margin: 0 14px 14px;
  padding: 14px;
  border: 1px solid rgba(37, 61, 49, .14);
  border-radius: 12px;
  background: #fbfcf8;
}

.experience-linked-summary {
  border-left: 4px solid #184a3a;
}

.request-timeline {
  display: grid;
  gap: 8px;
  margin: 14px 0;
  padding: 14px;
  border: 1px dashed #d8c8a8;
  border-radius: 12px;
  background: #fffdf6;
}

.request-timeline h3 {
  margin: 0;
  font-size: 1rem;
}

.request-timeline-item {
  display: grid;
  grid-template-columns: minmax(110px, .4fr) minmax(160px, .6fr) 1fr;
  gap: 10px;
  align-items: start;
  padding-top: 8px;
  border-top: 1px solid rgba(37, 61, 49, .1);
}

.request-timeline-item:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.request-timeline-item span {
  color: #184a3a;
  font-weight: 900;
}

.request-timeline-item p {
  margin: 0;
  color: #42554b;
}

.request-saved-views,
.request-bulk-toolbar,
.request-queue-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 14px 0;
}

.request-saved-views strong,
.request-bulk-toolbar strong {
  color: #173d31;
}

.request-bulk-toolbar {
  padding: 12px;
  border: 1px solid #d8c8a8;
  border-radius: 12px;
  background: #fbfcf8;
}

.request-bulk-toolbar label {
  min-width: 180px;
  margin: 0;
}

.request-filter-panel {
  display: grid;
  gap: 10px;
  margin: 10px 0 14px;
}

.request-filter-toolbar {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 10px 12px;
}

.request-search-control {
  flex: 1 1 320px;
  margin: 0;
  min-width: min(100%, 280px);
}

.request-search-control input {
  width: 100%;
}

.request-filter-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 1px;
}

.request-smart-filters {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  margin: 0;
}

.request-smart-filters:not(.is-open) {
  display: none;
}

.request-queue-header {
  justify-content: space-between;
  margin-top: 18px;
}

.request-queue-header h3 {
  margin: 2px 0 0;
  color: #173d31;
}

.request-edit-grid {
  margin-top: 12px;
}

.request-dispatch-list {
  gap: 10px;
}

.staff-production-card > summary {
  align-items: flex-start;
}

.staff-summary-main {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.staff-communication-icons {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}

.staff-comm-badge {
  align-items: center;
  background: #e9f2ec;
  border: 1px solid rgba(37, 101, 70, .22);
  border-radius: 999px;
  color: #173d31;
  display: inline-flex;
  font-size: .72rem;
  font-weight: 900;
  gap: 4px;
  line-height: 1;
  min-height: 24px;
  padding: 4px 8px;
  white-space: nowrap;
}

.staff-comm-badge.is-missing {
  background: #fbefe8;
  border-color: rgba(151, 75, 35, .22);
  color: #75421f;
}

.staff-comm-badge.is-warning {
  background: #fff3c8;
  border-color: rgba(181, 139, 64, .28);
  color: #6f4d12;
}

.staff-comm-badge.is-muted {
  background: #f1efe7;
  border-color: rgba(100, 96, 84, .22);
  color: #5a625d;
}

.admin-expand-card > :not(summary) {
  margin: 0 14px 12px;
}

.admin-record-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.admin-record-grid > div {
  border: 1px solid rgba(216, 200, 168, 0.8);
  border-radius: 10px;
  padding: 10px;
  background: #fffdf7;
}

.admin-record-grid strong,
.needs-pairing-production strong {
  color: #173d31;
}

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

.metric-card.metric-tone-stable {
  border-color: #87ad91;
  background: #f0f8f1;
}

.metric-card.metric-tone-info {
  border-color: #7195ac;
  background: #eef6fa;
}

.metric-card.metric-tone-urgent {
  border-color: #a94442;
  background: #fff0ee;
}

.metric-card.metric-tone-warning {
  border-color: #b58b40;
  background: #fff8dd;
}

.metric-card.metric-tone-pairing {
  border-color: #7b6fb1;
  background: #f3f0fb;
}

.metric-card.metric-tone-operations {
  border-color: #5d796f;
  background: #eef6f2;
}

.metric-card.metric-tone-review {
  border-color: #b07d55;
  background: #fff4ea;
}

.metric-card.metric-tone-partner {
  border-color: #758f4c;
  background: #f4f7eb;
}

.metric-card.metric-tone-urgent span,
.metric-card.metric-tone-warning span,
.metric-card.metric-tone-pairing span {
  color: #2a322d;
}

.admin-shop-card,
.shop-production-card {
  min-width: 0;
}

.danger-outline {
  border-color: #a94442 !important;
}

.warning-soft {
  background: #fff1bf;
  color: #3f2d0b;
  border-color: #8a6a20;
}

.admin-extra-dining-panel.active-view {
  display: block;
}

.admin-staff-extra-fields,
.admin-task-extra-fields {
  display: grid;
  gap: 10px;
}

.admin-legacy-tools {
  margin: 0 0 18px;
  border: 1px dashed #d8c8a8;
  border-radius: 14px;
  background: #fffdf7;
}

.admin-legacy-tools > summary {
  padding: 12px 14px;
  color: #173d31;
  font-weight: 900;
  cursor: pointer;
}

.admin-legacy-tool-body {
  display: grid;
  gap: 12px;
  padding: 0 12px 12px;
}

.admin-scope-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.admin-route-planner-dialog .dialog-card,
.admin-duplicate-dining-dialog .dialog-card {
  width: min(980px, calc(100vw - 28px));
  max-height: min(86vh, 920px);
  overflow: auto;
}

.admin-route-planner-dialog textarea,
.admin-duplicate-dining-dialog textarea {
  min-height: 96px;
}

.admin-task-view-shell {
  display: grid;
  gap: 14px;
}

.admin-task-focus-card,
.admin-task-day-column,
.admin-task-month-day,
.admin-staff-allocation-card {
  border: 1px solid #d8c8a8;
  border-radius: 14px;
  background: #fffef9;
  padding: 12px;
  box-shadow: 0 10px 24px rgba(23,61,49,.06);
}

.admin-task-focus-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 14px;
  align-items: center;
}

.admin-task-week-board {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 1fr);
  grid-template-columns: none;
  gap: 12px;
  overflow-x: auto;
  padding: 2px 2px 12px;
  scroll-snap-type: x proximity;
  scrollbar-gutter: stable;
}

.admin-task-day-column {
  min-width: 280px;
  max-width: 360px;
  display: grid;
  align-content: start;
  gap: 10px;
  scroll-snap-align: start;
}

.admin-task-day-column.is-today,
.admin-task-month-day.is-today,
.admin-task-calendar-cell.is-today {
  border-color: #173d31;
  box-shadow: 0 0 0 2px rgba(23,61,49,.08), 0 10px 24px rgba(23,61,49,.08);
}

.admin-task-day-column > header,
.admin-task-month-day > header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(23,61,49,.12);
}

.admin-task-day-column header strong,
.admin-task-month-day header strong {
  display: block;
  color: #173d31;
}

.admin-task-day-column header small,
.admin-task-month-day header small {
  display: block;
  color: #526057;
  font-weight: 800;
}

.admin-task-column-summary,
.admin-task-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.admin-task-column-summary span,
.admin-task-card-meta span {
  border-radius: 999px;
  padding: 4px 7px;
  background: #eaf0eb;
  color: #173d31;
  font-size: .75rem;
  font-weight: 900;
}

.admin-task-column-summary span {
  border: 1px solid rgba(23,61,49,.12);
  background: #f2eadb;
  font-size: .76rem;
}

.admin-task-card-stack {
  display: grid;
  gap: 8px;
}

.admin-task-card {
  display: grid;
  gap: 8px;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 12px;
  padding: 10px;
  background: #fff;
  color: #173d31;
}

.admin-task-card.compact {
  padding: 9px;
}

.admin-task-card.compact .admin-task-card-head {
  grid-template-columns: 1fr;
  gap: 7px;
}

.admin-task-card.compact .admin-task-card-head .badges {
  order: -1;
  justify-content: flex-start;
}

.admin-task-card.compact .admin-task-card-head strong {
  font-size: 1rem;
  line-height: 1.22;
  overflow-wrap: anywhere;
}

.admin-task-card.compact .admin-task-card-meta {
  display: grid;
  grid-template-columns: 1fr;
  gap: 5px;
}

.admin-task-card.compact .admin-task-card-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-task-card.compact .admin-task-card-actions .btn {
  width: 100%;
  min-height: 32px;
  justify-content: center;
}

.admin-task-card.is-overdue,
.admin-staff-allocation-card.is-overloaded {
  border-color: #b94d3d;
  background: #fff7f5;
}

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

.admin-task-card-head strong {
  display: block;
  color: #173d31;
  line-height: 1.2;
}

.admin-task-card-head small {
  color: #526057;
  font-weight: 800;
}

.admin-task-card-actions {
  gap: 5px;
}

.admin-task-week-section {
  border: 1px solid #d8c8a8;
  border-radius: 14px;
  background: #fffef9;
  overflow: hidden;
}

.admin-task-week-section > summary {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  cursor: pointer;
  color: #173d31;
  font-weight: 900;
  background: #f2eadb;
}

.admin-task-week-section > summary small {
  display: block;
  color: #526057;
}

.admin-task-week-days {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
  padding: 12px;
}

.admin-task-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(105px, 1fr));
  gap: 8px;
  overflow-x: auto;
}

.admin-task-calendar-dow {
  color: #173d31;
  font-weight: 900;
  text-align: center;
  padding: 6px;
}

.admin-task-calendar-cell {
  min-height: 132px;
  border: 1px solid #d8c8a8;
  border-radius: 12px;
  background: #fffef9;
  padding: 8px;
  display: grid;
  align-content: start;
  gap: 7px;
}

.admin-task-calendar-cell.is-out-month {
  background: #f1f0ea;
}

.admin-task-calendar-cell > header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.admin-task-calendar-cell > header span {
  border-radius: 999px;
  padding: 2px 7px;
  background: #eaf0eb;
  color: #173d31;
  font-weight: 900;
  font-size: .75rem;
}

.admin-task-calendar-item {
  display: block;
  width: 100%;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 8px;
  padding: 5px 6px;
  background: #fff;
  color: #173d31;
  font-size: .76rem;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
}

.admin-task-calendar-item.is-complete {
  color: #526057;
  background: #f1f0ea;
}

.admin-staff-allocation-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  gap: 12px;
}

.admin-staff-allocation-card.unassigned {
  align-self: start;
}

@media (max-width: 720px) {
  .admin-production-shell {
    padding: 12px;
    border-radius: 12px;
  }

  .admin-task-focus-card,
  .admin-task-card-head,
  .admin-staff-allocation-grid {
    grid-template-columns: 1fr;
  }

  .admin-task-week-board,
  .admin-task-calendar-grid {
    grid-template-columns: repeat(2, minmax(150px, 1fr));
  }

  .admin-expand-card > summary,
  .request-accordion.admin-request-group > summary,
  .task-calendar-day > summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-production-filters {
    grid-template-columns: 1fr;
  }

  .request-dispatch-card > summary,
  .request-timeline-item {
    grid-template-columns: 1fr;
  }

  .request-dispatch-badges,
  .request-dispatch-actions,
  .request-bulk-toolbar {
    justify-content: flex-start;
  }

  .request-bulk-toolbar label {
    min-width: 100%;
  }

  .admin-scope-banner {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* v43 Contextual guest header actions */
.topbar-actions #installButton.hidden,
.topbar-actions #guestNotifyButton.hidden{
  display:none!important;
}
#installButton,
#guestNotifyButton,
#guestLogout{
  white-space:nowrap;
}
.alert-action-short{
  display:none;
}
body.guest-alerts-enabled #guestNotifyButton{
  display:none!important;
}
@media(max-width:820px){
  #installButton,
  #guestNotifyButton{
    padding:.58rem .72rem;
    font-size:.9rem;
  }
  .topbar-actions{
    gap:.45rem;
  }
}
@media(max-width:560px){
  #guestNotifyButton .alert-action-full{
    display:none;
  }
  #guestNotifyButton .alert-action-short{
    display:inline;
  }
}
@media(max-width:430px){
  .topbar{
    gap:.45rem;
  }
  .topbar-actions{
    gap:.32rem;
  }
  #installButton,
  #guestNotifyButton,
  #guestLogout,
  #guestMenuToggle{
    padding:.52rem .58rem;
    font-size:.84rem;
  }
}

/* v45 Contrast hardening: WCAG AA pass for production readiness */
:root{
  --contrast-accent: #6f4d12;
  --contrast-accent-bg: #fff1bf;
  --contrast-accent-border: #8a6a20;
  --contrast-text: #1d2924;
  --contrast-muted: #334039;
  --contrast-closed-bg: #f3f1e8;
  --contrast-closed-text: #313730;
  --contrast-cancelled-bg: #fff3ec;
  --contrast-danger-text: #711d12;
  --contrast-success-text: #0a4f25;
}
.eyebrow,
.concierge-label{
  color: var(--contrast-accent);
}
.floating-card .eyebrow,
.guest-footer .eyebrow,
.guest-schedule-day-head .eyebrow,
.coordinator-shell .coordinator-hero .eyebrow{
  color: #fffdf8;
}
.fine-print,
.card p,
.upsell-card p,
.guide-card p,
.feature-card p{
  color: #45564e;
}
.badge{
  color: var(--forest);
}
.status-resolved,
.status-closed,
.status-confirmed,
.badge.is-confirmed,
.is-confirmed .badge{
  background: #e6f3eb;
  color: #123f2b;
}
.status-open,
.status-waiting,
.status-pending-confirmation,
.badge.is-pending,
.is-pending .badge{
  background: #fff1bf;
  color: #4a320b;
}
.status-done,
.status-draft,
.badge.is-draft,
.is-draft .badge{
  background: #e8edf0;
  color: #263445;
}
.status-cancelled,
.badge.is-cancelled,
.is-cancelled .badge{
  background: #f5dada;
  color: #5f1c1c;
}
.danger-soft,
.badge.danger-soft{
  background: #fff0ea !important;
  color: var(--contrast-danger-text) !important;
  border-color: #d99b87 !important;
}
.alert-bell .alert-count{
  background: var(--forest);
  color: #fffdf8;
}
.alert-bell:not(.has-alerts) .alert-count{
  background: #e9e2d5;
  color: var(--contrast-muted);
}
.guest-meal-option{
  color: var(--contrast-text);
}
.guest-meal-option.is-unavailable,
.guest-meal-option.is-closed{
  border-color: rgba(49,55,48,.28);
  background: var(--contrast-closed-bg);
  color: var(--contrast-closed-text);
}
.guest-meal-option.is-cancelled{
  opacity: 1;
  border-color: rgba(113,29,18,.2);
  background: var(--contrast-cancelled-bg);
  color: var(--contrast-closed-text);
}
.guest-meal-option.is-closed .guest-meal-option-main,
.guest-meal-option.is-unavailable .guest-meal-option-main,
.guest-meal-option.is-cancelled .guest-meal-option-main{
  opacity: 1;
  filter: none;
}
.guest-meal-option.is-closed .meal-emoji,
.guest-meal-option.is-unavailable .meal-emoji{
  opacity: 1;
  filter: none;
}
.meal-title-lockup h3,
.guest-meal-option.is-closed .meal-title-lockup h3,
.guest-meal-option.is-unavailable .meal-title-lockup h3,
.guest-meal-option.is-cancelled .meal-title-lockup h3{
  color: var(--forest);
}
.meal-title-lockup .eyebrow{
  color: var(--contrast-accent);
}
.guest-meal-option p,
.guest-meal-option small,
.guest-meal-option .fine-print{
  color: #34423b;
}
.rsvp-state-pill{
  background: #eaf0eb;
  border: 1px solid rgba(23,61,49,.16);
  color: var(--forest);
}
.rsvp-state-pill.is-reserved{
  background: #e3f4e8;
  color: var(--contrast-success-text);
}
.rsvp-state-pill.is-cancelled{
  background: #ffe6df;
  color: var(--contrast-danger-text);
}
.rsvp-state-pill.is-closed,
.rsvp-state-pill.is-unavailable{
  background: #ddd8cd;
  border-color: rgba(49,55,48,.22);
  color: #2e352f;
}
.guest-meal-cost-row span,
.price-pill,
.cost-pill,
.cost-line{
  color: var(--forest);
  background: #fffaf0;
  border-color: #cdbf9e;
}
.guest-dining-policy-row span{
  background: var(--contrast-accent-bg);
  border: 1px solid var(--contrast-accent-border);
  color: #3f2d0b;
}
.status-lock{
  background: #fff1bf;
  border-left-color: var(--contrast-accent-border);
  color: #3f2d0b;
}
.guest-meal-option details.rsvp-details{
  background: #fffaf0;
  color: var(--contrast-text);
  border-color: rgba(23,61,49,.18);
}
.guest-meal-option details.rsvp-details summary{
  color: #fffdf8;
  background: linear-gradient(135deg, #173d31, #245949);
}
.guest-meal-option details.rsvp-details summary small{
  color: rgba(255,253,248,.9);
}
.guest-meal-option details.rsvp-details label,
.guest-meal-option details.rsvp-details p,
.guest-meal-option details.rsvp-details small{
  color: #34423b;
}
.guest-meal-option details.rsvp-details .summary-cta{
  background: #f6d28a;
  color: var(--forest);
}
.meal-exception-details{
  background: #fff8eb !important;
  border-color: rgba(113,29,18,.32) !important;
}
.meal-exception-details summary{
  background: linear-gradient(135deg, #7b2b14, #b8521f) !important;
  color: #fffdf8 !important;
}
.meal-exception-alert{
  background: #fff1db;
  color: #472711;
}
.meal-exception-panel label,
.policy-check{
  color: #26372f;
}
.policy-check{
  background: #fff1bf;
  border-color: var(--contrast-accent-border);
}
.feature-icon-box,
.feature-icon,
.meal-emoji,
.meal-icon,
.upsell-icon{
  line-height: 1;
}

/* v46 Coordinator dining layout and retreat guest dining */
.coordinator-shell .card,
.coordinator-shell .notice-card,
.coordinator-shell .metric-card{
  background: #fffdf8;
}
.coordinator-shell .metric-grid{
  align-items: stretch;
}
.coordinator-metric-card,
.coordinator-shell .metric-card{
  color: var(--forest);
  border-color: rgba(23,61,49,.18);
}
.coordinator-metric-card span,
.coordinator-shell .metric-card span{
  color: #334039;
}
.coordinator-metric-card small,
.coordinator-shell .metric-card small,
.coordinator-day-card span,
.coordinator-day-card p{
  color: #334039;
}
.coordinator-shell .section-heading .eyebrow,
.coordinator-shell .coordinator-meal-day .eyebrow,
.coordinator-shell .v24-snack-planner .eyebrow{
  color: var(--contrast-accent);
}
.coordinator-dining-grid{
  display: grid;
  gap: 1rem;
  min-width: 0;
}
.coordinator-dining-day-card,
.coordinator-snack-day{
  overflow: hidden;
}
.coordinator-dining-day-card header,
.coordinator-snack-day h3{
  min-width: 0;
}
.coordinator-meal-form-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 285px), 1fr));
  gap: .9rem;
  min-width: 0;
}
.coordinator-meal-editor,
.coordinator-snack-row{
  display: grid;
  gap: .75rem;
  min-width: 0;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 18px;
  background: #fffaf0;
  padding: .9rem;
}
.coordinator-meal-editor label,
.coordinator-snack-row label,
.coordinator-meal-editor input,
.coordinator-meal-editor select,
.coordinator-meal-editor textarea,
.coordinator-snack-row input,
.coordinator-snack-row textarea{
  min-width: 0;
  max-width: 100%;
}
.coordinator-meal-editor textarea,
.coordinator-snack-row textarea{
  min-height: 88px;
}
.compact-two-col{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
  gap: .65rem;
  min-width: 0;
}
.coord-meal-actions{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
  min-width: 0;
}
.coord-meal-actions .check-row{
  width: auto;
  max-width: 100%;
}
.coordinator-snack-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr));
  gap: 1rem;
  min-width: 0;
}
.coordinator-snack-row{
  grid-template-columns: 1fr;
  align-items: stretch;
  margin: .75rem 0 0;
}
.coordinator-snack-row:first-of-type{
  margin-top: 0;
}
.coordinator-snack-row .meal-mini-head,
.coordinator-meal-editor .meal-mini-head{
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  align-items: flex-start;
  min-width: 0;
}
.coordinator-snack-row .meal-mini-head strong,
.coordinator-meal-editor .meal-mini-head strong{
  color: var(--forest);
  line-height: 1.2;
}
.coordinator-snack-row .meal-mini-head span,
.coordinator-meal-editor .meal-mini-head span{
  color: #334039;
  font-weight: 800;
  white-space: nowrap;
}
.guest-group-dining-day{
  background: #fffdf8;
}
.retreat-dining-summary{
  border-left: 5px solid var(--forest);
}
.guest-group-dining-list{
  display: grid;
  gap: .75rem;
}
.guest-group-dining-row{
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr) auto;
  gap: .85rem;
  align-items: center;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 18px;
  background: #fffaf0;
  padding: .85rem;
}
.guest-group-dining-time{
  display: grid;
  gap: .2rem;
}
.guest-group-dining-time strong{
  color: var(--forest);
}
.guest-group-dining-time span,
.guest-group-dining-main p{
  color: #334039;
}
.guest-group-dining-main{
  min-width: 0;
}
.guest-group-dining-main h3{
  margin: 0;
  color: var(--forest);
}
.guest-group-dining-empty{
  display: grid;
  gap: .45rem;
  align-items: start;
  border: 1px dashed var(--contrast-accent-border);
  border-radius: 18px;
  background: #fff8df;
  color: #3f2d0b;
  padding: .9rem;
}
.guest-group-dining-empty p{
  color: #4a3b1f;
  margin: 0;
}
@media(max-width: 760px){
  .coord-meal-actions,
  .guest-group-dining-row{
    grid-template-columns: 1fr;
  }
  .guest-group-dining-row{
    align-items: stretch;
  }
  .guest-group-dining-row .request-actions{
    justify-content: flex-start;
  }
}

.dining-slot-builder{
  display: grid;
  gap: .85rem;
  padding: .85rem;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 16px;
  background: #fffdf8;
}
.dining-slot-card{
  display: grid;
  gap: .8rem;
  padding: .9rem;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 14px;
  background: #fffaf0;
  min-width: 0;
}
.dining-slot-card.is-not-offered,
.coordinator-meal-editor.is-unavailable{
  background: #f3f1e8;
}
.dining-slot-card input,
.dining-slot-card select,
.dining-slot-card textarea,
.coord-slot-controls input,
.coord-slot-controls select{
  min-width: 0;
  max-width: 100%;
}
.coord-slot-controls{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 165px), 1fr));
  gap: .65rem;
  min-width: 0;
}
.dining-slot-quick-adds{
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}
#mealSlotQuickAdds{
  width: 100%;
  display: grid;
  gap: .6rem;
}
.meal-slot-quick-toolbar,
.custom-slot-inline{
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: .5rem;
}
.custom-slot-inline{
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 14px;
  background: #fffdf8;
  padding: .65rem;
}
.custom-slot-inline label{
  margin: 0;
  min-width: min(100%, 190px);
}

/* Admin dining calendar QA pass: daily/weekly/kitchen/template workspaces */
.admin-dining-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: .65rem;
  margin: .85rem 0 1rem;
}
.admin-dining-toolbar label {
  margin: 0;
  min-width: min(100%, 190px);
}
.admin-dining-day-nav {
  display: grid;
  grid-template-columns: minmax(0, auto) minmax(260px, 1fr) minmax(0, auto);
  align-items: center;
  gap: .55rem;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 18px;
  background: #fffdf8;
  padding: .45rem .65rem;
  margin: .65rem 0 .85rem;
}
.admin-dining-nav-group {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}
.admin-dining-nav-group.is-next {
  justify-content: flex-end;
}
.admin-dining-date-focus {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  justify-items: center;
  gap: .35rem .65rem;
  text-align: center;
  min-width: 0;
}
.admin-dining-date-focus .eyebrow {
  flex: 0 0 auto;
}
.admin-dining-date-focus strong {
  color: var(--forest);
  font-size: 1rem;
  flex: 0 1 auto;
}
.admin-dining-date-controls {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: end;
  gap: .35rem;
}
.admin-dining-date-controls label {
  display: flex;
  align-items: center;
  margin: 0;
  min-width: min(100%, 150px);
  gap: .18rem;
  font-size: .82rem;
}
.admin-dining-date-controls input {
  min-height: 40px;
  padding-block: .5rem;
}
.admin-dining-day-nav .btn.small {
  min-height: 38px;
  padding: .48rem .75rem;
}
.dining-edit-actions,
.dining-print-actions {
  margin: .7rem 0 1rem;
}
.template-library-action-row {
  display: flex;
  align-items: end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .75rem;
}
.template-library-action-row .admin-template-search {
  flex: 1 1 320px;
}
.admin-dining-day-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: .65rem;
  margin-bottom: 1rem;
}
.admin-dining-day-summary article {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 14px;
  background: #fffdf8;
  padding: .8rem;
}
.admin-dining-day-summary span {
  display: block;
  color: #4d5c53;
  font-size: .78rem;
  font-weight: 900;
}
.admin-dining-day-summary strong {
  display: block;
  color: var(--forest);
  font-size: 1.3rem;
  margin-top: .15rem;
}
.admin-dining-slot-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: .85rem;
  margin: 1rem 0;
}
.admin-dining-slot-card {
  display: grid;
  gap: .65rem;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 16px;
  background: #fffdf8;
  padding: .9rem;
  min-width: 0;
}
.admin-dining-slot-card.is-not-offered {
  background: #f3f1e8;
}
.admin-dining-slot-card.is-hidden-guest {
  border-style: dashed;
}
.admin-dining-slot-head {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: .75rem;
}
.admin-dining-slot-head h3 {
  margin: .12rem 0 0;
  color: var(--forest);
  font-size: 1.05rem;
}
.admin-dining-slot-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}
.admin-dining-slot-meta span,
.admin-dining-week-slot small {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 999px;
  background: #f8f4eb;
  color: #334039;
  font-weight: 850;
  font-size: .78rem;
  padding: .22rem .5rem;
}
.admin-dining-week-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: .85rem;
}
.admin-dining-week-day {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 16px;
  background: #fffdf8;
  padding: .85rem;
  display: grid;
  gap: .65rem;
}
.admin-dining-week-day.is-today {
  outline: 2px solid rgba(23,61,49,.28);
}
.admin-dining-week-day header {
  display: flex;
  justify-content: space-between;
  gap: .6rem;
}
.admin-dining-week-day h3 {
  margin: .12rem 0 0;
  color: var(--forest);
  font-size: 1rem;
}
.admin-dining-week-slot-list {
  display: grid;
  gap: .4rem;
}
.admin-dining-week-slot {
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: #fff;
  padding: .5rem;
  display: grid;
  gap: .15rem;
}
.admin-dining-week-slot.is-off {
  background: #f3f1e8;
}
.admin-dining-week-slot span,
.admin-dining-week-slot strong {
  color: #173d31;
}
.admin-template-library-controls {
  display: grid;
  gap: .75rem;
  margin: 1rem 0;
}
.admin-template-search {
  max-width: 460px;
}
.template-period-fieldset {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 14px;
  padding: .75rem;
}
.template-period-fieldset legend {
  color: #6f4d12;
  font-size: .78rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.template-picker-row select[multiple] {
  min-height: 112px;
}
.empty-kitchen-day {
  border-style: dashed;
}
.kitchen-day-card {
  overflow: hidden;
}
.kitchen-day-head {
  align-items: flex-start;
}
.kitchen-day-head .badges,
.admin-day-head .badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .35rem;
  min-width: 0;
}
.kitchen-overview-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
  gap: .55rem;
  margin: .7rem 0 1rem;
}
.kitchen-overview-strip span,
.kitchen-count-row span {
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: #f5f1e7;
  color: #334039;
  display: grid;
  gap: .08rem;
  padding: .55rem .65rem;
  min-width: 0;
}
.kitchen-overview-strip strong,
.kitchen-count-row strong {
  color: var(--forest);
  font-size: 1.08rem;
  line-height: 1;
}
.kitchen-overview-strip small,
.kitchen-count-row small {
  color: #59675f;
  font-size: .72rem;
  font-weight: 850;
}
.kitchen-slot-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 255px), 1fr));
  align-items: stretch;
  gap: .75rem;
}
.kitchen-slot-card {
  display: grid;
  align-content: start;
  gap: .55rem;
  min-width: 0;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 16px;
  background: #fffdf8;
  padding: .8rem;
  overflow: hidden;
  cursor: pointer;
}
.kitchen-slot-card:focus-visible,
.kitchen-slot-card:hover {
  border-color: rgba(23,61,49,.42);
  box-shadow: 0 12px 26px rgba(23,61,49,.12);
  outline: none;
}
.kitchen-slot-card.is-not-offered {
  background: #f3f1e8;
}
.kitchen-slot-card.is-internal {
  border-style: dashed;
}
.kitchen-slot-head {
  display: grid;
  gap: .45rem;
  min-width: 0;
}
.kitchen-slot-title {
  display: flex;
  align-items: center;
  gap: .45rem;
  min-width: 0;
}
.kitchen-slot-title > div {
  min-width: 0;
}
.kitchen-slot-title strong,
.kitchen-slot-card h4,
.kitchen-slot-card p,
.kitchen-slot-card .fine-print {
  overflow-wrap: anywhere;
}
.kitchen-slot-title small {
  color: #4f5f56;
  display: block;
  font-weight: 850;
}
.kitchen-slot-card h4 {
  color: var(--forest);
  font-size: 1rem;
  margin: 0;
}
.kitchen-slot-card p {
  color: #3f4f46;
  margin: 0;
}
.kitchen-slot-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
}
.kitchen-slot-badges .badge,
.kitchen-day-head .badge {
  font-size: .68rem;
  padding: .22rem .48rem;
  line-height: 1.2;
}
.kitchen-count-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .42rem;
}
.kitchen-service-count-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .42rem;
  align-items: end;
  padding: .48rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 12px;
  background: rgba(247,244,233,.72);
  cursor: default;
}
.kitchen-service-count-form label {
  margin: 0;
  gap: .2rem;
  color: #334039;
  font-size: .72rem;
  font-weight: 900;
}
.kitchen-service-count-form input {
  min-height: 34px;
  padding: .38rem .45rem;
}
.kitchen-recipe-dialog .dialog-card {
  display: grid;
  gap: 1rem;
}
.kitchen-recipe-summary,
.recipe-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
  gap: .55rem;
}
.kitchen-recipe-summary span,
.recipe-detail-grid span {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 12px;
  background: #f7f4e9;
  padding: .55rem;
}
.kitchen-recipe-summary strong,
.recipe-detail-grid strong {
  display: block;
  color: var(--forest);
  font-size: 1.05rem;
  overflow-wrap: anywhere;
}
.kitchen-recipe-summary small,
.recipe-detail-grid small {
  color: #59675f;
  font-size: .72rem;
  font-weight: 850;
}
.kitchen-recipe-template-list {
  display: grid;
  gap: .85rem;
}
.kitchen-recipe-template {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fffdf8;
  padding: .85rem;
}
.kitchen-recipe-template p {
  color: #334039;
}
.kitchen-template-replace,
.kitchen-template-add-row {
  display: grid;
  gap: .55rem;
  border: 1px dashed rgba(23,61,49,.18);
  border-radius: 12px;
  background: #fbf8ef;
  padding: .65rem;
}
.kitchen-template-add-row select,
.kitchen-template-replace select {
  min-height: 44px;
}
.admin-kitchen-upcoming {
  margin-top: 1rem;
}
.kitchen-upcoming-list {
  display: grid;
  gap: .45rem;
  margin-top: .7rem;
}
.kitchen-upcoming-day {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: .5rem;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 14px;
  background: #fffdf8;
  color: var(--forest);
  cursor: pointer;
  font-weight: 850;
  padding: .65rem .75rem;
  text-align: left;
}
.kitchen-upcoming-day span {
  border-radius: 999px;
  background: #f1eee7;
  color: #334039;
  font-size: .72rem;
  padding: .2rem .45rem;
  white-space: nowrap;
}
@media(max-width: 760px) {
  .admin-dining-day-nav {
    grid-template-columns: 1fr;
    padding: .75rem;
  }
  .admin-dining-date-focus {
    display: grid;
    gap: .35rem;
  }
  .admin-dining-date-focus strong {
    font-size: 1.08rem;
  }
  .admin-dining-date-controls label {
    display: grid;
    min-width: min(100%, 170px);
  }
  .admin-dining-nav-group,
  .admin-dining-nav-group.is-next {
    justify-content: stretch;
  }
  .admin-dining-nav-group .btn,
  .admin-dining-date-controls .btn {
    flex: 1 1 140px;
  }
  .custom-slot-inline label,
  .custom-slot-inline .btn {
    flex: 1 1 100%;
  }
  .kitchen-day-head,
  .kitchen-day-head .badges {
    justify-content: flex-start;
  }
  .kitchen-count-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .kitchen-upcoming-day {
    grid-template-columns: 1fr;
  }
  .kitchen-upcoming-day span {
    justify-self: start;
  }
}

/* v47 Coordinator hero readability */
.coordinator-shell .coordinator-hero{
  background: #fffdf8;
  color: var(--forest);
}
.coordinator-shell .coordinator-hero h1{
  color: var(--forest);
}
.coordinator-shell .coordinator-hero .eyebrow{
  color: var(--contrast-accent);
}
.coordinator-shell .coordinator-hero .hero-lede{
  color: #334039;
}
.coordinator-shell .coordinator-hero .stay-chips span,
.coordinator-shell .coordinator-hero .stay-chips .badge{
  background: #fffdf8;
  color: #334039;
  border-color: #d8c8a8;
}

/* v48 Coordinator guest access QR and retreat intake */
.guest-preview-banner{
  display: flex;
  align-items: center;
  gap: .6rem;
  border-left: 5px solid var(--forest);
  margin-bottom: 1rem;
}
.guest-preview-banner strong{
  color: var(--forest);
}
.guest-preview-banner span{
  color: #334039;
}
.retreat-intake-card{
  border-left: 5px solid var(--forest);
}
.retreat-intake-form{
  display: grid;
  gap: .85rem;
}
.retreat-intake-form textarea,
.retreat-intake-form input,
.retreat-intake-form select{
  min-width: 0;
  max-width: 100%;
}
.intake-no-allergy{
  background: #fff8df;
  border: 1px solid #d8c8a8;
  border-radius: 14px;
  padding: .7rem .8rem;
}
.guest-preview-mode .retreat-intake-card,
.guest-preview-mode #requestForm,
.guest-preview-mode #messageForm{
  position: relative;
}
.guest-preview-mode button[aria-disabled="true"],
.guest-preview-mode input[aria-disabled="true"],
.guest-preview-mode textarea[aria-disabled="true"],
.guest-preview-mode select[aria-disabled="true"]{
  cursor: not-allowed;
}
.coord-access-actions{
  margin-bottom: 1rem;
}
.coord-access-command{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.coordinator-guest-card{
  display: grid;
  gap: .85rem;
}
.coordinator-guest-access{
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: .9rem;
  align-items: start;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 18px;
  background: #fffaf0;
  padding: .85rem;
  min-width: 0;
}
.coord-qr-box{
  display: grid;
  gap: .35rem;
  justify-items: center;
  min-width: 0;
}
.coord-qr-box img{
  width: 116px;
  height: 116px;
  border: 1px solid #d8c8a8;
  border-radius: 12px;
  background: #fff;
  padding: .3rem;
}
.coord-qr-box small,
.coord-access-detail p{
  color: #334039;
}
.coord-access-detail{
  display: grid;
  gap: .5rem;
  min-width: 0;
}
.coord-access-detail code{
  color: var(--forest);
  font-weight: 800;
  white-space: normal;
  word-break: break-word;
}
.coord-access-detail .request-actions{
  justify-content: flex-start;
}
@media(max-width: 760px){
  .guest-preview-banner,
  .coord-access-command{
    align-items: flex-start;
    flex-direction: column;
  }
  .coordinator-guest-access{
    grid-template-columns: 1fr;
  }
  .coord-qr-box{
    justify-items: start;
  }
  .coord-qr-box img{
    width: 132px;
    height: 132px;
  }
}
/* v49 Property experience: garden map, self-guided tours, and meditations */
.property-admin-grid,
.property-experience-grid {
  align-items: start;
}

.property-experience-workspace {
  margin-top: 0;
}

.property-experience-workspace-head {
  margin-bottom: 4px;
}

.property-experience-subnav .partner-subtab {
  display: grid;
  gap: 2px;
  align-content: center;
  min-height: 54px;
  text-align: center;
}

.property-experience-subnav .partner-subtab span {
  color: inherit;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .08em;
  opacity: .86;
  text-transform: uppercase;
}

.property-experience-subnav .partner-subtab strong {
  color: inherit;
  font-size: .95rem;
  line-height: 1.1;
}

.property-experience-overview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.property-experience-metric {
  min-height: 112px;
}

.property-experience-metric strong {
  font-size: 1.35rem;
  line-height: 1.05;
}

.property-experience-metric small {
  color: #3f4c43;
  font-weight: 750;
}

.property-experience-overview-note {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.property-map-preview,
.property-experience-shell {
  display: grid;
  gap: 18px;
  min-width: 0;
}

.property-map-canvas {
  position: relative;
  min-height: 340px;
  width: 100%;
  overflow: hidden;
  border: 1px solid #d8c8a8;
  border-radius: 20px;
  background: #f9f7ef;
  box-shadow: inset 0 0 0 1px rgba(23, 61, 49, 0.04);
}

.property-map-asset {
  width: 100%;
  height: 100%;
  min-height: 340px;
  object-fit: cover;
  display: block;
}

.property-map-fallback {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  grid-template-rows: 1fr 1fr;
  gap: 10px;
  padding: 18px;
  background:
    linear-gradient(135deg, rgba(219, 238, 208, .95), rgba(255, 250, 239, .96)),
    radial-gradient(circle at 25% 60%, rgba(23, 61, 49, .16), transparent 28%),
    radial-gradient(circle at 70% 38%, rgba(181, 139, 64, .18), transparent 30%);
}

.property-map-fallback span {
  display: grid;
  place-items: center;
  min-height: 130px;
  border: 1px dashed #8a6a20;
  border-radius: 18px;
  color: #173d31;
  background: rgba(255, 253, 248, .74);
  font-weight: 800;
}

.property-map-pin {
  position: absolute;
  z-index: 2;
  transform: translate(-50%, -50%);
  width: 38px;
  height: 38px;
  border-radius: 999px;
  border: 3px solid #fff;
  background: #173d31;
  color: #fff;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(23, 61, 49, .28);
  cursor: pointer;
}

.property-map-pin:focus-visible {
  outline: 3px solid #b58b40;
  outline-offset: 3px;
}

.property-map-pin span {
  display: block;
  line-height: 1;
}

.property-admin-list,
.property-tour-list,
.property-stop-list,
.property-meditation-grid {
  display: grid;
  gap: 14px;
  min-width: 0;
}

.property-experience-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  gap: 18px;
}

.property-map-panel,
.property-tour-panel {
  min-width: 0;
}

.property-tour-card,
.property-meditation-card,
.property-stop-card,
.property-admin-item {
  border: 1px solid #d8c8a8;
  border-radius: 18px;
  background: #fffdf8;
  padding: 16px;
  min-width: 0;
}

.property-tour-card h3,
.property-meditation-card h3,
.property-stop-card h3,
.property-admin-item strong {
  color: #173d31;
}

.property-tour-card ol {
  margin: 10px 0 14px;
  padding-left: 22px;
}

.text-link-button {
  border: 0;
  background: transparent;
  color: #173d31;
  padding: 0;
  font: inherit;
  font-weight: 800;
  text-decoration: underline;
  cursor: pointer;
}

.property-stop-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 14px;
}

.property-stop-index {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: #173d31;
  color: #fff;
  font-weight: 900;
}

.property-meditation-card audio,
.property-stop-card audio {
  width: 100%;
  margin: 10px 0;
}

.property-share-actions {
  justify-content: flex-end;
}

@media (max-width: 900px) {
  .property-experience-grid {
    grid-template-columns: 1fr;
  }

  .property-map-canvas,
  .property-map-asset {
    min-height: 280px;
  }
}

@media (max-width: 560px) {
  .property-map-canvas,
  .property-map-asset {
    min-height: 240px;
  }

  .property-map-fallback {
    padding: 10px;
    gap: 8px;
  }

  .property-map-fallback span {
    min-height: 92px;
    font-size: .88rem;
  }

  .property-stop-card {
    grid-template-columns: 1fr;
  }

  .property-share-actions {
    justify-content: stretch;
  }
}

/* Coordinator production workflow hardening */
.coord-rhythm-controls,
.coord-notification-toolbar,
.wrap-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.coord-rhythm-controls {
  margin: 0 0 12px;
}

.rhythm-row.is-excursion {
  border-left: 4px solid #826a46;
  padding-left: 10px;
}

.coordinator-ops-grid {
  margin-top: 18px;
}

.coord-conflict-card,
.coordinator-guest-card.has-room-conflict,
.v24-room-card.is-overbooked,
.v25-day-details.has-conflicts {
  border-color: #9b2f23;
  box-shadow: 0 0 0 1px rgba(155, 47, 35, .18);
}

.conflict-item {
  background: #fff7f0;
}

.v24-room-card.is-private-room {
  background: #f7f4eb;
}

.coord-request-group,
.coord-note-group,
.v25-day-details {
  border: 1px solid #d8c8a8;
  border-radius: 14px;
  background: #fffdf8;
  overflow: hidden;
}

.arrival-intro-card {
  margin-bottom: .85rem;
}

.arrival-ops-shell {
  display: grid;
  gap: .85rem;
  margin-bottom: 1rem;
  min-width: 0;
  max-width: 100%;
}

.arrival-command-strip,
.arrival-controls,
.arrival-bulk-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .8rem;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 18px;
  background: #fffdf8;
  padding: .85rem;
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

.arrival-command-strip h2 {
  margin: .1rem 0 0;
}

.arrival-command-strip p:not(.eyebrow) {
  margin: .25rem 0 0;
  color: #53655d;
}

.arrival-command-actions,
.arrival-filter-row,
.arrival-bulk-bar,
.arrival-room-card .request-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.arrival-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .7rem;
}

.arrival-metrics button {
  text-align: left;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 16px;
  background: #173d31;
  color: #fff;
  padding: .85rem;
  box-shadow: 0 12px 28px rgba(23,61,49,.12);
}

.arrival-metrics span,
.arrival-metrics small {
  display: block;
  color: rgba(255,255,255,.78);
}

.arrival-metrics strong {
  display: block;
  font-size: 1.6rem;
  line-height: 1.1;
  margin: .2rem 0;
}

.arrival-flow-strip,
.arrival-needs-lane,
.arrival-packet-readiness,
.arrival-room-assign-strip {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .85rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 18px;
  background: #fffdf8;
  padding: .85rem;
}

.arrival-flow-strip p,
.arrival-needs-lane p,
.arrival-packet-readiness p,
.arrival-room-assign-strip p {
  margin: .2rem 0 0;
  color: #53655d;
}

.arrival-flow-items,
.arrival-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  justify-content: flex-end;
}

.arrival-flow-items button,
.arrival-command-results button,
.arrival-guest-chip {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 14px;
  background: #fff;
  color: var(--forest);
  padding: .55rem .7rem;
  text-align: left;
}

.arrival-flow-items button span,
.arrival-flow-items button small {
  display: block;
  color: #53655d;
}

.arrival-guest-chip.active {
  background: var(--forest);
  color: #fff;
}

.arrival-priority-group {
  display: grid;
  gap: .65rem;
}

.arrival-priority-group > header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(23,61,49,.12);
  padding: .35rem .1rem;
}

.arrival-priority-group h3 {
  margin: 0;
  color: var(--forest);
}

.arrival-ready-score {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 999px;
  background: #edf7ef;
  color: var(--forest);
  font-weight: 900;
  padding: .22rem .45rem;
}

.arrival-segmented {
  display: inline-flex;
  gap: .25rem;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 999px;
  background: #f6f1e8;
  padding: .25rem;
}

.arrival-segmented button {
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--forest);
  font-weight: 800;
  padding: .55rem .8rem;
}

.arrival-segmented button.active {
  background: var(--forest);
  color: #fff;
}

.arrival-search {
  flex: 1;
  min-width: 220px;
}

.arrival-search span {
  display: block;
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
  color: #66746d;
}

.arrival-search input {
  width: 100%;
}

.arrival-bulk-bar select {
  min-width: 170px;
}

.arrival-guests-list {
  display: grid;
  gap: .8rem;
}

.arrival-guest-row {
  border-radius: 16px;
  padding: .9rem;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.arrival-guest-row:focus-within,
.arrival-guest-row:hover {
  transform: translateY(-1px);
  box-shadow: 0 16px 36px rgba(23,61,49,.12);
}

.arrival-guest-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(150px, auto) auto;
  gap: .75rem;
  align-items: center;
}

.arrival-select {
  display: none;
  place-items: center;
}

.arrival-select.is-visible {
  display: grid;
}

.arrival-guest-person {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  display: block;
  min-width: 0;
  padding: 0;
  text-align: left;
}

.arrival-guest-person h3 {
  margin: 0;
}

.arrival-guest-person p,
.arrival-guest-signals {
  margin: .25rem 0 0;
  color: #53655d;
}

.arrival-guest-signals {
  display: grid;
  justify-items: end;
  gap: .25rem;
  font-size: .9rem;
}

.arrival-guest-drawer {
  margin-top: .75rem;
  border-top: 1px solid rgba(23,61,49,.1);
  padding-top: .65rem;
}

.arrival-guest-drawer > summary,
.arrival-more-actions > summary {
  cursor: pointer;
  font-weight: 800;
  color: var(--forest);
}

.arrival-more-actions {
  justify-self: end;
  min-width: 0;
  max-width: 100%;
  margin-right: 14px;
}

.arrival-more-actions > summary {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 999px;
  list-style: none;
  padding: .45rem .7rem;
}

.arrival-more-actions > summary::-webkit-details-marker {
  display: none;
}

.arrival-more-actions[open] {
  position: relative;
}

.arrival-more-actions[open] > .request-actions {
  position: static;
  z-index: 30;
  width: 220px;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  justify-content: flex-start;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 16px;
  background: #fffdf8;
  padding: .6rem;
  margin-top: .45rem;
  box-shadow: 0 20px 50px rgba(23,61,49,.18);
  max-width: min(320px, calc(100vw - 32px));
  overflow: hidden;
}

.arrival-more-actions[open] > .request-actions .btn {
  min-width: 0;
  white-space: normal;
}

.arrival-row-flash,
.arrival-feedback {
  border: 1px solid rgba(23,61,49,.16);
  border-radius: 999px;
  background: #edf7ef;
  color: var(--forest);
  font-weight: 800;
}

.arrival-row-flash {
  display: inline-block;
  margin-top: .35rem;
  padding: .2rem .55rem;
  font-size: .8rem;
}

.arrival-feedback {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .55rem .75rem;
}

.arrival-guest-row.is-selected {
  border-color: rgba(23,61,49,.42);
  box-shadow: 0 0 0 2px rgba(23,61,49,.08);
}

.arrival-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .9fr);
  gap: .85rem;
  margin-top: .65rem;
}

.arrival-room-board {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: .8rem;
}

.arrival-room-card {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 18px;
  background: #fffdf8;
  padding: .9rem;
  display: grid;
  gap: .7rem;
}

.arrival-room-card.is-selected {
  box-shadow: 0 0 0 3px rgba(23,61,49,.13);
}

.arrival-room-drop {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  text-align: left;
  width: 100%;
}

.arrival-room-board.is-assigning .arrival-room-card {
  cursor: pointer;
}

.arrival-room-card.is-occupied {
  border-color: rgba(23,61,49,.28);
}

.arrival-room-card.is-private {
  background: #f7f4eb;
  border-color: rgba(181,139,64,.38);
}

.arrival-room-card.is-overbooked,
.arrival-room-card.is-needs-review {
  background: #fff4f1;
  border-color: #9b2f23;
}

.arrival-room-head {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
}

.arrival-room-head h3 {
  margin: 0 0 .15rem;
}

.arrival-room-head p,
.arrival-room-meta span {
  margin: 0;
  color: #53655d;
}

.arrival-room-status {
  align-self: start;
  border: 1px solid rgba(23,61,49,.15);
  border-radius: 999px;
  padding: .2rem .55rem;
  font-size: .78rem;
  font-weight: 800;
  text-transform: capitalize;
}

.arrival-room-meter {
  height: 8px;
  border-radius: 999px;
  background: #e9e2d2;
  overflow: hidden;
}

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

.arrival-room-card.is-overbooked .arrival-room-meter span,
.arrival-room-card.is-needs-review .arrival-room-meter span {
  background: #9b2f23;
}

.arrival-room-meta {
  display: grid;
  gap: .2rem;
}

.arrival-empty {
  border: 1px dashed rgba(23,61,49,.25);
  border-radius: 18px;
}

.guest-form-section {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 18px;
  padding: .9rem;
  background: #fffdf8;
}

.arrival-side-sheet,
.arrival-quick-sheet {
  position: fixed;
  z-index: 95;
  right: 16px;
  top: 86px;
  bottom: 16px;
  width: min(440px, calc(100vw - 32px));
  overflow: auto;
  border: 1px solid rgba(23,61,49,.16);
  border-radius: 22px;
  background: #fffdf8;
  box-shadow: 0 26px 80px rgba(23,61,49,.24);
  padding: 1rem;
}

.arrival-quick-sheet {
  top: auto;
  bottom: 24px;
  width: min(520px, calc(100vw - 32px));
  z-index: 120;
}

.arrival-sheet-head {
  display: flex;
  justify-content: space-between;
  gap: .85rem;
  align-items: flex-start;
  border-bottom: 1px solid rgba(23,61,49,.1);
  padding-bottom: .75rem;
  margin-bottom: .85rem;
}

.arrival-sheet-head h2,
.arrival-sheet-head p {
  margin: 0;
}

.arrival-sheet-section {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  gap: .85rem;
  border-bottom: 1px solid rgba(23,61,49,.08);
  padding: .85rem 0;
}

.arrival-sheet-section:last-child {
  border-bottom: 0;
}

.arrival-sheet-tabs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .25rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 16px;
  background: #f6f1e8;
  padding: .25rem;
  margin-bottom: .85rem;
}

.arrival-sheet-tabs button {
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--forest);
  font-weight: 800;
  padding: .45rem .35rem;
}

.arrival-sheet-tabs button.active {
  background: var(--forest);
  color: #fff;
}

.arrival-command-palette {
  position: fixed;
  z-index: 110;
  top: 96px;
  left: 50%;
  width: min(560px, calc(100vw - 32px));
  transform: translateX(-50%);
  border: 1px solid rgba(23,61,49,.16);
  border-radius: 22px;
  background: #fffdf8;
  box-shadow: 0 26px 80px rgba(23,61,49,.24);
  padding: 1rem;
}

.arrival-command-results {
  display: grid;
  gap: .45rem;
  margin-top: .75rem;
}

@media(max-width: 860px) {
  .arrival-command-strip,
  .arrival-controls,
  .arrival-bulk-bar {
    align-items: stretch;
    flex-direction: column;
    width: 100%;
    overflow: hidden;
  }

  .arrival-command-actions,
  .arrival-filter-row,
  .arrival-bulk-bar {
    width: 100%;
    min-width: 0;
  }

  .arrival-command-actions .btn,
  .arrival-filter-row button,
  .arrival-bulk-bar .btn,
  .arrival-bulk-bar select {
    flex: 1 1 120px;
    min-width: 0;
  }

  .arrival-controls,
  .arrival-filter-row,
  .arrival-segmented button,
  .arrival-room-card,
  .arrival-guest-row {
    scroll-margin-bottom: 190px;
  }

  .arrival-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 100%;
    min-width: 0;
  }

  .arrival-metrics button {
    min-width: 0;
  }

  .arrival-flow-strip,
  .arrival-needs-lane,
  .arrival-packet-readiness,
  .arrival-room-assign-strip {
    align-items: stretch;
    flex-direction: column;
  }

  .arrival-flow-items,
  .arrival-chip-row {
    justify-content: stretch;
  }

  .arrival-flow-items button,
  .arrival-guest-chip,
  .arrival-command-results button {
    width: 100%;
  }

  .arrival-segmented {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    overflow: hidden;
    border-radius: 16px;
  }

  .arrival-segmented button {
    min-width: 0;
    padding-inline: .45rem;
  }

  .arrival-search {
    width: 100%;
    min-width: 0;
  }

  .arrival-guest-main {
    grid-template-columns: minmax(0, 1fr);
  }

  .arrival-select.is-visible {
    grid-row: 1;
  }

  .arrival-guest-signals {
    justify-items: start;
  }

  .arrival-guest-main > .btn {
    grid-column: 1 / -1;
    width: 100%;
  }

  .arrival-detail-grid,
  .coordinator-guest-access {
    grid-template-columns: 1fr;
  }

  .arrival-bulk-bar {
    position: static;
    box-shadow: 0 18px 60px rgba(23,61,49,.22);
  }

  .arrival-more-actions {
    justify-self: stretch;
  }

  .arrival-more-actions[open] > .request-actions {
    position: static;
    min-width: 0;
    margin-top: .45rem;
  }

  .arrival-side-sheet,
  .arrival-quick-sheet {
    inset: 0;
    width: auto;
    border-radius: 0;
    padding: 1rem;
  }

  .arrival-sheet-section {
    grid-template-columns: 1fr;
  }

  .arrival-sheet-tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .arrival-command-palette {
    inset: 0;
    width: auto;
    transform: none;
    border-radius: 0;
    overflow: auto;
  }
}

.coord-request-group + .coord-request-group,
.coord-note-group + .coord-note-group,
.v25-day-details + .v25-day-details {
  margin-top: 10px;
}

.coord-request-group > summary,
.coord-note-group > summary,
.v25-day-details > summary {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  cursor: pointer;
  color: #173d31;
  font-weight: 900;
}

.coord-request-group > summary strong,
.coord-note-group > summary strong,
.v25-day-details > summary strong,
.v25-day-details > summary em {
  color: #6f4d12;
  font-style: normal;
}

.coord-request-group .stack-list,
.coord-note-group .stack-list,
.v25-day-details .stack-list {
  padding: 0 14px 14px;
}

.coord-request-hero .request-actions {
  justify-content: flex-end;
}

.coord-file-panel {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 16px;
  background: #fffdf8;
}

.coord-file-panel > summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  padding: .85rem;
  cursor: pointer;
}

.coord-file-panel > summary small,
.coord-request-search span {
  display: block;
  color: #66746d;
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
}

.coord-file-panel > summary strong {
  display: block;
  color: var(--forest);
  font-size: 1.05rem;
}

.coord-file-panel > form,
.coord-file-panel > .stack-list,
.coord-file-panel > .coord-media-grid {
  margin: 0 .85rem .85rem;
}

.coord-request-command {
  display: grid;
  gap: .85rem;
  margin: 1rem 0;
}

.coord-request-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .65rem;
}

.coord-request-stat,
.coord-focus-chip {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 16px;
  background: #173d31;
  color: #fff;
  text-align: left;
  padding: .8rem;
  cursor: pointer;
  box-shadow: 0 12px 28px rgba(23,61,49,.12);
}

.coord-focus-chip {
  background: #fffdf8;
  color: var(--forest);
}

.coord-focus-chip.active {
  background: #173d31;
  color: #fff;
}

.coord-request-stat span,
.coord-focus-chip span {
  display: block;
  color: inherit;
  opacity: .8;
  font-size: .78rem;
  font-weight: 800;
}

.coord-request-stat strong,
.coord-focus-chip strong {
  display: block;
  font-size: 1.6rem;
  line-height: 1.1;
  margin-top: .15rem;
}

.coord-request-toolbar,
.coord-request-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: .65rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 18px;
  background: #fffdf8;
  padding: .75rem;
}

.coord-request-filters:not(.is-open) {
  display: none;
}

.coord-request-search {
  flex: 1 1 260px;
}

.coord-request-search input {
  width: 100%;
}

.coord-request-filters label {
  flex: 1 1 160px;
}

.coord-request-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, .42fr);
  gap: .9rem;
  align-items: start;
}

.coord-request-board,
.coord-queue-list,
.coord-timeline-board {
  display: grid;
  gap: .8rem;
}

.coord-queue-group > .coord-queue-list {
  padding: 0 14px 14px;
}

.coord-queue-card {
  position: relative;
  display: grid;
  grid-template-columns: 7px minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(23,61,49,.13);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(23,61,49,.08);
}

.coord-queue-card.is-selected {
  border-color: rgba(23,61,49,.45);
  box-shadow: 0 0 0 2px rgba(23,61,49,.08), 0 12px 30px rgba(23,61,49,.08);
}

.coord-request-rail {
  background: var(--forest);
}

.coord-queue-card.priority-high .coord-request-rail,
.coord-queue-card.priority-urgent .coord-request-rail {
  background: #9b4a15;
}

.coord-queue-card.status-needs-info .coord-request-rail {
  background: #9b2f23;
}

.coord-queue-card.status-completed .coord-request-rail {
  background: #2f7d4f;
}

.coord-queue-card.status-archived .coord-request-rail {
  background: #7a7168;
}

.coord-request-main {
  display: grid;
  gap: .7rem;
  padding: .9rem;
  min-width: 0;
}

.coord-request-card-head,
.coord-request-actions,
.coord-request-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
}

.coord-request-card-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  justify-content: stretch;
  align-items: center;
}

.coord-request-select {
  display: none;
}

.coord-request-select.is-visible {
  display: grid;
  place-items: center;
}

.coord-request-scan {
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  min-width: 0;
  padding: 0;
  text-align: left;
}

.coord-request-scan strong,
.coord-request-scan small {
  display: block;
}

.coord-request-scan strong {
  color: var(--forest);
  font-size: 1.02rem;
}

.coord-request-scan small {
  color: #53655d;
  line-height: 1.35;
  margin-top: .18rem;
}

.coord-request-preview {
  margin: 0;
  color: #41524b;
  overflow-wrap: anywhere;
}

.coord-request-facts {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

.coord-request-facts span {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 999px;
  background: #f6f1e8;
  color: #45564e;
  padding: .25rem .55rem;
  font-size: .82rem;
  font-weight: 700;
}

.coord-sla-pill {
  border-radius: 999px;
  display: inline-block;
  font-size: .78rem;
  font-weight: 900;
  padding: .24rem .55rem;
}

.coord-sla-pill.is-overdue,
.coord-sla-pill.is-needs-info {
  background: #fdecec;
  color: #8d2c2c;
}

.coord-sla-pill.is-due-today,
.coord-sla-pill.is-urgent,
.coord-sla-pill.is-waiting-long {
  background: #fff1c7;
  color: #6f4d12;
}

.coord-sla-pill.is-new-update,
.coord-sla-pill.is-on-track {
  background: #e7f3ec;
  color: #245b3b;
}

.coord-sla-pill.is-done {
  background: #eff2f0;
  color: #41524b;
}

.coord-request-inline {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap: .55rem;
}

.coord-request-inline label,
.coord-request-detail-grid label {
  min-width: 0;
}

.coord-request-inline select,
.coord-request-inline input,
.coord-request-detail-grid textarea {
  width: 100%;
}

.coord-request-more {
  position: relative;
}

.coord-request-more > summary {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 999px;
  color: var(--forest);
  cursor: pointer;
  font-weight: 800;
  list-style: none;
  padding: .48rem .75rem;
}

.coord-request-more > summary::-webkit-details-marker {
  display: none;
}

.coord-request-more[open] .request-actions {
  position: absolute;
  right: 0;
  top: calc(100% + .35rem);
  z-index: 30;
  min-width: 220px;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 16px;
  background: #fffdf8;
  padding: .6rem;
  box-shadow: 0 20px 50px rgba(23,61,49,.18);
}

.coord-request-drawer {
  border-top: 1px solid rgba(23,61,49,.1);
  padding-top: .55rem;
}

.coord-request-drawer > summary {
  color: var(--forest);
  cursor: pointer;
  font-weight: 800;
}

.coord-request-detail-grid {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(260px,.8fr);
  gap: .8rem;
  margin-top: .65rem;
}

.coord-request-detail-grid h4 {
  margin: 0 0 .4rem;
}

.coord-activity-list {
  display: grid;
  gap: .45rem;
}

.coord-activity-list div {
  border-left: 3px solid rgba(23,61,49,.25);
  padding-left: .6rem;
}

.coord-activity-list strong,
.coord-activity-list span {
  display: block;
}

.coord-activity-list span {
  color: #66746d;
  font-size: .86rem;
}

.coord-timeline-row {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: .75rem;
  align-items: start;
}

.coord-timeline-row > time {
  color: #66746d;
  font-weight: 800;
  padding-top: 1rem;
}

.coord-request-empty {
  border: 1px dashed rgba(23,61,49,.25);
  border-radius: 18px;
  background: #fffdf8;
  padding: 1.2rem;
  text-align: center;
}

.coord-request-empty h3 {
  margin: 0 0 .25rem;
}

.coord-request-sheet {
  position: sticky;
  top: 94px;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 20px;
  background: #fffdf8;
  box-shadow: 0 20px 60px rgba(23,61,49,.16);
  display: grid;
  gap: .85rem;
  max-height: calc(100vh - 120px);
  overflow: auto;
  padding: 1rem;
}

.coord-sheet-head {
  display: flex;
  justify-content: space-between;
  gap: .8rem;
}

.coord-sheet-head h2,
.coord-sheet-section h3 {
  margin: 0;
}

.coord-sheet-section {
  border-top: 1px solid rgba(23,61,49,.1);
  display: grid;
  gap: .6rem;
  padding-top: .8rem;
}

.coord-request-inline.is-sheet {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.coord-request-bulk,
.coord-request-sent {
  align-items: center;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 18px;
  background: #fffdf8;
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  padding: .65rem;
}

.coord-request-sent {
  margin-bottom: .85rem;
}

.coord-request-mobile-bar {
  display: none;
}

.coord-request-template-picker {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 16px;
  background: #fffdf8;
  padding: .65rem;
}

.coord-compose-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .35rem;
}

.coord-compose-steps button {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 999px;
  background: #fffdf8;
  color: var(--forest);
  font-weight: 900;
  padding: .5rem;
}

.coord-compose-steps button.active {
  background: var(--forest);
  color: #fff;
}

.coord-compose-panel {
  display: none;
  gap: .8rem;
}

.coord-compose-panel.active {
  display: grid;
}

.coord-request-review {
  display: grid;
  gap: .7rem;
}

.coord-request-template-picker .view-chip.active {
  background: var(--forest);
  color: #fff;
}

@media(max-width: 860px) {
  .coord-request-summary {
    display: flex;
    overflow-x: auto;
    padding-bottom: .25rem;
  }

  .coord-focus-chip {
    min-width: 138px;
  }

  .coord-request-toolbar,
  .coord-request-filters,
  .coord-request-hero .section-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .coord-request-toolbar .arrival-segmented {
    width: 100%;
    overflow-x: auto;
  }

  .coord-request-filters label,
  .coord-request-search {
    width: 100%;
    flex-basis: auto;
  }

  .coord-request-inline,
  .coord-request-detail-grid,
  .coord-timeline-row,
  .coord-request-layout,
  .coord-request-inline.is-sheet {
    grid-template-columns: 1fr;
  }

  .coord-request-card-head {
    grid-template-columns: minmax(0, 1fr);
  }

  .coord-request-badges {
    justify-content: flex-start;
  }

  .coord-request-actions .btn,
  .coord-request-more {
    flex: 1 1 145px;
  }

  .coord-request-actions .btn,
  .coord-request-more > summary {
    width: 100%;
    text-align: center;
  }

  .coord-request-more[open] .request-actions {
    position: static;
    min-width: 0;
    margin-top: .45rem;
  }

  .coord-request-mobile-bar {
    position: sticky;
    bottom: .65rem;
    z-index: 20;
    display: flex;
    gap: .55rem;
    border: 1px solid rgba(23,61,49,.14);
    border-radius: 18px;
    background: rgba(255,253,248,.96);
    padding: .65rem;
    box-shadow: 0 18px 60px rgba(23,61,49,.22);
  }

  .coord-request-mobile-bar .btn {
    flex: 1;
  }

  .coord-request-sheet {
    position: fixed;
    inset: 0;
    z-index: 60;
    border-radius: 0;
    max-height: none;
  }
}

.coordinator-team-row {
  align-items: start;
}

.compact-admin-form {
  gap: 10px;
  margin-top: 12px;
}

.coord-media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.coord-media-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid #d8c8a8;
  margin-bottom: 10px;
}

.coord-command-center {
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
}

.coord-readiness-banner {
  align-items: center;
  border: 1px solid rgba(23,61,49,.16);
  border-left: 6px solid var(--forest);
  border-radius: 20px;
  background: linear-gradient(135deg, #fffdf8, #f6fbf4);
  display: flex;
  gap: 18px;
  justify-content: space-between;
  padding: 18px;
  box-shadow: 0 16px 42px rgba(23,61,49,.1);
}

.coord-readiness-banner.is-attention {
  border-left-color: #9b2f23;
  background: #fff7f4;
}

.coord-readiness-banner.is-review {
  border-left-color: #b58b40;
  background: #fff9e8;
}

.coord-readiness-banner h2 {
  color: var(--forest);
  margin: 2px 0 4px;
}

.coord-readiness-banner p:not(.eyebrow) {
  color: #53655d;
  margin: 0;
}

.coord-score-ring {
  align-items: center;
  aspect-ratio: 1;
  background: conic-gradient(var(--forest) var(--score), #e8dfce 0);
  border-radius: 999px;
  color: var(--forest);
  display: grid;
  justify-items: center;
  min-width: 112px;
  padding: 12px;
  position: relative;
}

.coord-score-ring::before {
  background: #fffdf8;
  border-radius: inherit;
  content: "";
  inset: 12px;
  position: absolute;
}

.coord-score-ring strong,
.coord-score-ring span {
  position: relative;
  z-index: 1;
}

.coord-score-ring strong {
  font-size: 1.55rem;
}

.coord-score-ring span {
  color: #53655d;
  font-size: .78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.coord-readiness-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.coord-readiness-grid.compact {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  margin-bottom: 12px;
}

.coord-readiness-card,
.coord-countdown-grid button {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 16px;
  background: #fffdf8;
  color: var(--forest);
  cursor: pointer;
  display: grid;
  gap: 5px;
  padding: 12px;
  text-align: left;
}

.coord-readiness-card span,
.coord-countdown-grid span {
  color: #66746d;
  font-size: .76rem;
  font-weight: 900;
  text-transform: uppercase;
}

.coord-readiness-card strong,
.coord-countdown-grid strong {
  font-size: 1.25rem;
}

.coord-readiness-card small,
.coord-countdown-grid small {
  color: #53655d;
}

.coord-progress {
  background: #e8dfce;
  border-radius: 999px;
  height: 8px;
  overflow: hidden;
}

.coord-progress i {
  background: var(--leaf);
  border-radius: inherit;
  display: block;
  height: 100%;
}

.coord-mission-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1.05fr) minmax(260px, .75fr) minmax(280px, .9fr);
}

.coord-mission-panel,
.coord-countdown-panel,
.coord-handoff-panel {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 18px;
  background: #fffdf8;
  padding: 14px;
}

.coord-mission-item,
.coord-activity-list button {
  align-items: center;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 14px;
  background: #fff;
  color: inherit;
  cursor: pointer;
  display: grid;
  gap: 10px;
  grid-template-columns: 34px minmax(0, 1fr);
  margin-top: 8px;
  padding: 10px;
  text-align: left;
}

.coord-mission-item > span {
  align-items: center;
  background: #edf7ef;
  border-radius: 999px;
  color: var(--forest);
  display: inline-flex;
  font-weight: 950;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.coord-mission-item small,
.coord-activity-list span,
.coord-production-note p,
.coord-dining-risk p {
  color: #53655d;
}

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

.coord-production-note,
.coord-dining-risk,
.coord-action-required,
.coord-property-checklist {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 16px;
  background: #f8f6ec;
  margin-top: 10px;
  padding: 12px;
}

.coord-action-required {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.coord-action-required p {
  margin: 3px 0 0;
}

.coord-dining-command {
  margin-bottom: 14px;
}

.arrival-room-card.is-drop-target {
  outline: 3px solid rgba(0,191,25,.32);
  outline-offset: 3px;
}

.arrival-guest-row.is-dragging {
  opacity: .55;
}

.coord-mobile-dock {
  display: none;
}

@media(max-width: 980px) {
  .coord-readiness-grid,
  .coord-mission-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .coord-handoff-panel {
    grid-column: 1 / -1;
  }
}

@media(max-width: 760px) {
  .coord-readiness-banner,
  .coord-action-required {
    align-items: stretch;
    display: grid;
  }

  .coord-score-ring {
    justify-self: start;
    min-width: 96px;
  }

  .coord-readiness-grid,
  .coord-readiness-grid.compact,
  .coord-mission-grid,
  .coord-countdown-grid {
    grid-template-columns: 1fr;
  }

  .coord-mobile-dock {
    background: rgba(255,253,248,.97);
    border: 1px solid rgba(23,61,49,.16);
    border-radius: 20px;
    bottom: .6rem;
    box-shadow: 0 20px 60px rgba(23,61,49,.24);
    display: grid;
    gap: 4px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    left: .55rem;
    padding: .4rem;
    position: fixed;
    right: .55rem;
    z-index: 115;
  }

  .coord-mobile-dock button {
    background: transparent;
    border: 0;
    border-radius: 14px;
    color: var(--forest);
    display: grid;
    font-size: .72rem;
    font-weight: 900;
    justify-items: center;
    min-width: 0;
    padding: .35rem .1rem;
  }

  .coord-mobile-dock strong {
    font-size: .86rem;
  }

  .guest-footer {
    padding-bottom: 5.5rem;
  }
}

.guest-message-details {
  margin: 12px 0;
}

.compact-select-label {
  display: grid;
  gap: 4px;
  min-width: 190px;
  font-weight: 800;
  color: #173d31;
}

.v25-day-accordion {
  display: grid;
  gap: 10px;
}

@media (max-width: 720px) {
  .coord-notification-toolbar,
  .wrap-actions,
  .coord-rhythm-controls {
    align-items: stretch;
  }

  .coord-notification-toolbar > *,
  .wrap-actions > *,
  .coord-rhythm-controls > * {
    flex: 1 1 150px;
  }

  .coord-request-group > summary,
  .coord-note-group > summary,
  .v25-day-details > summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-schedule-row {
    grid-template-columns: 1fr;
  }

  .admin-schedule-day-group > summary {
    align-items: flex-start;
  }
}

/* Menu clipping hardening: production subnavs are multi-row grids, not
   single-row capsules. Keep active button corners fully visible. */
.partner-subnav.admin-production-subnav {
  position: relative;
  top: auto;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: 10px;
  margin: 16px 0;
  padding: 8px;
  overflow: visible;
  border-radius: 22px;
  background: rgba(250, 246, 237, .78);
  box-shadow: 0 10px 28px rgba(23, 61, 49, .07);
}

.partner-subnav.admin-production-subnav .partner-subtab {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: center;
  min-width: 0;
  min-height: 48px;
  border-radius: 18px;
  box-shadow: none;
}

.partner-subnav.admin-production-subnav .request-subnav-label {
  min-width: 0;
}

.request-subnav-count {
  align-items: center;
  background: #edf4ef;
  border: 1px solid rgba(23, 61, 49, .14);
  border-radius: 999px;
  color: #173d31;
  display: inline-flex;
  font-size: .72rem;
  font-weight: 950;
  justify-content: center;
  line-height: 1;
  min-width: 24px;
  padding: 5px 7px;
}

.request-subnav-count.is-new {
  background: #fff4cd;
  border-color: rgba(181, 139, 64, .25);
  color: #6f4d12;
}

.request-subnav-count.is-urgent {
  background: #fdecea;
  border-color: rgba(180, 67, 50, .25);
  color: #873125;
}

.partner-subnav.admin-production-subnav .partner-subtab.active .request-subnav-count {
  background: rgba(255, 255, 255, .18);
  border-color: rgba(255, 255, 255, .28);
  color: #fffdf8;
}

.partner-subnav.admin-production-subnav .partner-subtab.active {
  box-shadow: 0 10px 22px rgba(23, 61, 49, .14);
}

.tabs.sticky-tabs {
  padding-block: 8px;
  scroll-padding-inline: 12px;
}

.v25-schedule-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.v25-schedule-line.is-hidden-schedule,
.v25-curriculum-card.is-hidden-schedule {
  background: #f0eee7;
  border-color: #c9bfa8;
  opacity: .88;
}

.v25-schedule-line.is-hidden-schedule strong,
.v25-curriculum-card.is-hidden-schedule h3 {
  color: #334039;
}

.v25-gantt-item.is-hidden-schedule {
  background: #ded8cb;
  color: #334039;
  opacity: .72;
  outline: 2px dashed rgba(51, 64, 57, .35);
}

@media (min-width: 721px) {
  .v25-schedule-line {
    grid-template-columns: 98px minmax(0, 1fr) minmax(130px, auto);
  }
}

@media (max-width: 720px) {
  .v25-schedule-actions {
    justify-content: flex-start;
  }
}

/* Admin mobile menu hardening: the topbar Menu button owns the section menu.
   Keep the tab list as a floating panel instead of an in-flow block below
   dashboard metrics. */
@media (max-width: 760px) {
  #adminMobileMenuToggle {
    display: none !important;
  }

  .admin-shell #adminTabs.tabs.sticky-tabs {
    display: none !important;
    position: fixed !important;
    left: 12px !important;
    right: 12px !important;
    top: calc(74px + env(safe-area-inset-top)) !important;
    z-index: 140 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    max-height: min(70vh, calc(100dvh - 150px));
    margin: 0 !important;
    overflow: auto;
    padding: 10px !important;
    border: 1px solid rgba(23, 61, 49, .16) !important;
    border-radius: 18px !important;
    background: rgba(255, 253, 248, .98) !important;
    box-shadow: 0 24px 70px rgba(23, 61, 49, .24) !important;
    backdrop-filter: blur(14px);
  }

  .admin-shell #adminTabs.tabs.sticky-tabs.is-open {
    display: grid !important;
  }

  .admin-shell #adminTabs.tabs.sticky-tabs .tab {
    width: 100%;
    min-height: 42px;
    justify-content: center !important;
    text-align: center !important;
    border-radius: 12px !important;
  }
}

@media (max-width: 430px) {
  .admin-shell #adminTabs.tabs.sticky-tabs {
    grid-template-columns: 1fr !important;
  }
}

/* Admin sticky menu coordination: the main admin tab bar is the only sticky
   in-page menu. Nested workflow menus stay in normal flow so two sticky bars
   do not collide or cover the active workspace. */
.admin-shell #adminTabs.tabs.sticky-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  position: sticky;
  top: calc(76px + env(safe-area-inset-top));
  z-index: 60;
  margin: 14px 0 18px;
  padding: 8px;
  overflow: visible;
  border: 1px solid rgba(222, 212, 195, .72);
  border-radius: 24px;
  background: rgba(255, 253, 248, .94);
  box-shadow: 0 14px 34px rgba(23, 61, 49, .08);
  backdrop-filter: blur(14px);
}

.admin-shell #adminTabs.tabs.sticky-tabs .tab {
  min-height: 40px;
  padding: 9px 13px;
}

.admin-shell .partner-subnav:not(.admin-production-subnav) {
  position: relative !important;
  top: auto !important;
  z-index: 2;
  margin: 14px 0 18px;
  padding: 8px;
  overflow: visible;
  border-radius: 22px;
  background: rgba(250, 246, 237, .72);
  box-shadow: 0 10px 26px rgba(23, 61, 49, .06);
  backdrop-filter: none;
}

.admin-shell .experience-hub-subnav {
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
}

.admin-shell .partner-subnav:not(.admin-production-subnav) .partner-subtab {
  min-height: 48px;
  border-radius: 16px;
  box-shadow: none;
}

.admin-shell .tab-panel,
.admin-shell [id] {
  scroll-margin-top: 150px;
}

.staff-service-checklist {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
  gap: 8px;
}

.staff-account-card .admin-record-grid,
.staff-agreement-card .admin-record-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.staff-password-form {
  margin: 12px 0;
  padding: 12px;
  border: 1px dashed var(--border);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.58);
}

.shop-editor-quick-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(244, 250, 241, 0.84);
}

.quick-option-pill {
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  font-weight: 800;
}

.shop-editor-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(23, 61, 49, 0.12);
}

.shop-editor-tabs button {
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fffef9;
  color: var(--forest);
  font-weight: 800;
  padding: 9px 14px;
}

.shop-editor-tabs button.active {
  border-color: var(--forest);
  background: var(--forest);
  color: #fff;
}

.shop-editor-tab-panel {
  display: none;
  gap: 12px;
}

.shop-editor-tab-panel.active {
  display: grid;
}

.shop-category-picker {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px dashed var(--border);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.58);
}

.shop-category-choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.shop-category-choice {
  gap: 6px;
}

.shop-category-choice small {
  color: var(--muted);
  font-size: 0.74rem;
}

.align-end {
  align-items: end;
}

.webrezpro-import-dialog .dialog-card {
  max-width: 980px;
}

.guest-function-dialog .dialog-card {
  max-width: 760px;
}

.webrezpro-import-guide {
  margin-bottom: 10px;
}

.webrezpro-import-preview {
  margin-top: 14px;
}

.webrezpro-preview-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
  max-height: min(420px, 48vh);
  overflow: auto;
}

.webrezpro-preview-row.skipped {
  border-color: rgba(155, 44, 44, 0.28);
}

.admin-guest-access-card {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  margin: 12px 0;
  padding: 12px;
  border: 1px solid rgba(23, 61, 49, 0.14);
  border-radius: 8px;
  background: rgba(244, 250, 241, 0.74);
}

.admin-guest-qr-box {
  display: grid;
  justify-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 0.82rem;
  text-align: center;
}

.admin-guest-qr-box img {
  width: 126px;
  height: 126px;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
}

.admin-guest-access-detail {
  min-width: 0;
}

.admin-guest-open-actions {
  margin-top: 10px;
}

.admin-guest-open-actions .btn.primary.ghost {
  color: var(--forest);
  border-color: rgba(23, 61, 49, 0.28);
  background: #fffefa;
}

.guest-portal-url {
  overflow-wrap: anywhere;
}

.guest-progress-tracker {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 0;
  margin: 12px 0;
  list-style: none;
}

.guest-progress-tracker li {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
}

.guest-progress-tracker li > span {
  height: 6px;
  border-radius: 999px;
  background: rgba(23, 61, 49, .12);
}

.guest-progress-tracker li.done > span {
  background: var(--forest);
}

.guest-progress-tracker li.current {
  color: var(--forest);
}

.provider-eta-form,
.staff-next-action-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}

.provider-checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
}

.staff-next-action {
  margin-top: 12px;
}

.staff-next-action-card {
  padding: 12px;
  border: 1px solid rgba(23, 61, 49, .14);
  border-radius: 8px;
  background: rgba(255, 255, 255, .78);
}

.staff-next-action-card > div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.staff-next-action-card strong {
  color: var(--forest);
}

@media (max-width: 720px) {
  .admin-guest-access-card {
    grid-template-columns: 1fr;
    justify-items: start;
  }

  .admin-guest-qr-box {
    justify-items: start;
    text-align: left;
  }
}

.provider-portal-card {
  display: grid;
  gap: 16px;
}

body.provider-workspace-open .provider-intake-hero,
body.provider-workspace-open .provider-application-card,
body.provider-workspace-open #providerPortalLoginForm,
body.provider-workspace-open #providerPortalCard > .section-heading,
body.provider-workspace-open #providerPortalResult {
  display: none !important;
}

.provider-application-card > details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  color: var(--forest);
  font-weight: 900;
}

.provider-application-card > details > summary span {
  display: grid;
  gap: 2px;
}

.provider-application-card > details > summary small {
  color: var(--muted);
  font-weight: 700;
}

.compact-provider-login {
  max-width: 920px;
}

.provider-portal-workspace {
  display: grid;
  gap: 18px;
}

.provider-portal-heading {
  align-items: center;
  border-bottom: 1px solid var(--border);
  padding-bottom: 12px;
}

.provider-status-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.provider-status-grid .metric-card strong {
  font-size: clamp(1.15rem, 2vw, 1.65rem);
  line-height: 1.1;
}

.provider-command-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 10px;
  border: 1px solid rgba(23, 61, 49, 0.1);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.64);
}

.provider-command-row .btn {
  display: inline-flex;
  gap: 6px;
  align-items: center;
}

.provider-workspace-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}

.provider-update-card {
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.78);
  padding: 12px 14px;
  box-shadow: 0 12px 32px rgba(23, 61, 49, 0.06);
}

.provider-update-card > summary {
  cursor: pointer;
  color: var(--forest);
  font-weight: 900;
  padding: 4px 0;
}

.provider-update-card[open] > summary {
  margin-bottom: 12px;
  border-bottom: 1px solid rgba(23, 61, 49, 0.1);
  padding-bottom: 10px;
}

.provider-history-card {
  grid-column: 1 / -1;
}

.provider-history-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

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

.provider-ops-metrics {
  margin-bottom: 14px;
}

.provider-ops-card,
.provider-message-card,
.provider-accounting-card {
  border-left: 5px solid var(--forest);
}

.provider-payload-row {
  grid-template-columns: 110px minmax(0, 1fr);
  align-items: start;
}

.provider-app-shell {
  display: grid;
  gap: 16px;
  min-height: calc(100dvh - 130px);
}

.provider-app-header,
.provider-live-shell,
.provider-profile-preview,
.provider-next-action,
.provider-job-card {
  border: 1px solid rgba(23, 61, 49, .12);
  border-radius: 8px;
  background: rgba(255, 255, 255, .84);
  box-shadow: 0 12px 32px rgba(23, 61, 49, .06);
}

.provider-app-header,
.provider-live-shell,
.provider-profile-preview {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px;
}

.provider-app-header h1,
.provider-live-shell h2,
.provider-profile-preview h2 {
  margin: 0;
  font-size: clamp(1.25rem, 2vw, 1.85rem);
  letter-spacing: 0;
}

.provider-app-nav {
  position: sticky;
  top: calc(76px + env(safe-area-inset-top));
  z-index: 30;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  padding: 8px;
  border: 1px solid rgba(23, 61, 49, .12);
  border-radius: 8px;
  background: rgba(255, 253, 248, .96);
  box-shadow: 0 12px 28px rgba(23, 61, 49, .08);
}

.provider-app-nav button {
  display: grid;
  place-items: center;
  gap: 2px;
  min-width: 0;
  min-height: 44px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--forest);
  font-weight: 900;
  cursor: pointer;
}

.provider-app-nav i {
  font-style: normal;
  font-size: 1.05rem;
  line-height: 1;
}

.provider-app-nav button.active {
  background: var(--forest);
  color: #fff;
}

.provider-app-nav strong {
  display: inline-grid;
  min-width: 20px;
  height: 20px;
  place-items: center;
  margin-left: 4px;
  border-radius: 999px;
  background: var(--gold);
  color: #fff;
  font-size: .72rem;
}

.provider-app-content,
.provider-dashboard-layout,
.provider-home-view,
.provider-trips-view,
.provider-inbox-view,
.provider-earnings-view,
.provider-account-view,
.provider-job-list {
  display: grid;
  gap: 14px;
}

.provider-dashboard-layout {
  grid-template-columns: minmax(0, 1fr) 300px;
  align-items: start;
}

.provider-desktop-rail {
  position: sticky;
  top: 156px;
  display: grid;
  gap: 12px;
}

.provider-mobile-status-strip {
  display: none;
}

.provider-status-toggle,
.provider-status-cluster,
.provider-job-actions,
.provider-canned-replies,
.provider-checklist {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.provider-status-cluster {
  justify-content: flex-end;
}

.provider-status-toggle {
  padding: 4px;
  border: 1px solid rgba(23, 61, 49, .12);
  border-radius: 8px;
  background: #f7f4ec;
}

.provider-status-toggle button {
  border: 0;
  border-radius: 6px;
  background: transparent;
  padding: 8px 10px;
  color: var(--forest);
  font-weight: 900;
  cursor: pointer;
}

.provider-status-toggle button.active {
  background: var(--forest);
  color: #fff;
}

.provider-next-action,
.provider-job-card {
  padding: 14px;
}

.provider-job-card {
  cursor: pointer;
}

.provider-job-card:focus-visible {
  outline: 3px solid rgba(196, 154, 59, .7);
  outline-offset: 3px;
}

.provider-job-card.late-risk {
  border-color: rgba(181, 85, 40, .36);
  background: #fff8f1;
}

.provider-job-top,
.provider-route-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.provider-job-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  border-radius: 999px;
  background: rgba(23, 61, 49, .1);
  color: var(--forest);
  padding: 4px 9px;
  font-size: .78rem;
  font-weight: 900;
}

.provider-job-card h3 {
  margin: 10px 0;
  font-size: clamp(1.1rem, 2vw, 1.45rem);
  letter-spacing: 0;
}

.provider-route-line {
  padding: 12px 0;
  border-top: 1px solid rgba(23, 61, 49, .08);
  border-bottom: 1px solid rgba(23, 61, 49, .08);
  color: var(--forest);
}

.provider-route-line b {
  white-space: nowrap;
  font-size: 1.2rem;
}

.provider-job-meta,
.provider-notification-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: 8px;
  margin: 10px 0;
}

.provider-job-meta span {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(23, 61, 49, .1);
  border-radius: 8px;
  background: #fbfaf5;
}

.provider-job-meta strong,
.provider-job-meta small {
  overflow-wrap: anywhere;
}

.provider-safe-roster {
  display: grid;
  gap: 8px;
  margin: 10px 0;
}

.primary-actions .btn {
  min-height: 44px;
  flex: 1 1 120px;
}

.secondary-actions {
  margin-top: 8px;
}

.provider-job-drawer {
  margin-top: 10px;
  border-top: 1px solid rgba(23, 61, 49, .1);
  padding-top: 8px;
}

.provider-job-drawer summary {
  cursor: pointer;
  color: var(--forest);
  font-weight: 900;
}

.provider-status-timeline {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
  margin: 12px 0;
}

.provider-status-timeline span {
  min-width: 0;
  border-radius: 8px;
  background: #eee8db;
  padding: 8px 6px;
  color: var(--muted);
  font-size: .74rem;
  font-weight: 900;
  text-align: center;
}

.provider-status-timeline span.done {
  background: var(--forest);
  color: #fff;
}

.provider-location-card {
  border: 1px solid rgba(23, 61, 49, .1);
  border-radius: 8px;
  background: #fbfaf5;
  padding: 10px;
}

.provider-profile-preview .provider-photo {
  flex: 0 0 auto;
}

.provider-message-card,
.provider-accounting-card {
  padding: 14px;
  border: 1px solid rgba(23, 61, 49, .12);
  border-left: 5px solid var(--forest);
  border-radius: 8px;
  background: rgba(255, 255, 255, .82);
}

.provider-message-card.unread {
  border-left-color: var(--gold);
  background: #fffaf0;
}

.provider-receipt-grid,
.provider-report-actions {
  display: grid;
  gap: 10px;
}

.provider-report-actions {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 10px;
}

.provider-action-backdrop {
  position: fixed;
  z-index: 160;
  inset: 0;
  display: grid;
  align-items: end;
  background: rgba(13, 24, 20, .42);
}

.provider-detail-backdrop {
  position: fixed;
  z-index: 150;
  inset: 0;
  display: grid;
  align-items: end;
  background: rgba(13, 24, 20, .36);
}

.provider-detail-drawer {
  width: min(760px, calc(100vw - 24px));
  max-height: min(84dvh, 760px);
  overflow: auto;
  margin: 0 auto 12px;
  border-radius: 8px;
  background: #fffdf8;
  padding: 16px;
  box-shadow: 0 26px 80px rgba(0, 0, 0, .28);
}

.provider-action-drawer {
  width: min(620px, calc(100vw - 24px));
  margin: 0 auto 12px;
  border-radius: 8px;
  background: #fffdf8;
  padding: 16px;
  box-shadow: 0 26px 80px rgba(0, 0, 0, .28);
}

.provider-reason-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
  border: 0;
  padding: 0;
}

.provider-reason-grid legend {
  grid-column: 1 / -1;
  color: var(--forest);
  font-weight: 900;
}

.provider-quick-metrics .metric-card {
  cursor: pointer;
  text-align: left;
}

.provider-app-shell .segmented-control {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  border: 1px solid rgba(23, 61, 49, .12);
  border-radius: 8px;
  background: #fbfaf5;
}

.provider-app-shell .segmented-control button {
  border: 0;
  border-radius: 6px;
  background: transparent;
  padding: 8px 10px;
  color: var(--forest);
  font-weight: 900;
  cursor: pointer;
}

.provider-app-shell .segmented-control button.active {
  background: var(--forest);
  color: #fff;
}

.provider-floating-toast {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 180;
  max-width: min(360px, calc(100vw - 32px));
  border-radius: 8px;
  background: var(--forest);
  color: #fff;
  padding: 12px 14px;
  box-shadow: 0 18px 48px rgba(13, 24, 20, .24);
  font-weight: 800;
}

@media (max-width: 980px) {
  .provider-status-grid,
  .provider-dashboard-layout,
  .provider-workspace-grid,
  .provider-history-grid {
    grid-template-columns: 1fr;
  }

  .provider-desktop-rail {
    display: none;
  }

  .provider-payload-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .topbar .topbar-actions {
    display: none;
  }

  body.provider-workspace-open .provider-application-shell {
    padding-top: 72px;
  }

  .provider-application-shell {
    padding-bottom: calc(148px + env(safe-area-inset-bottom));
  }

  .provider-app-shell {
    gap: 10px;
  }

  .provider-mobile-status-strip {
    position: fixed;
    right: 10px;
    bottom: calc(70px + env(safe-area-inset-bottom));
    left: 10px;
    z-index: 91;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    min-height: 44px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 8px;
    background: rgba(255, 253, 248, .98);
    box-shadow: 0 12px 32px rgba(13, 24, 20, .2);
    padding: 8px 10px;
    color: var(--forest);
  }

  .provider-mobile-status-strip span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    border-radius: 999px;
    background: rgba(181, 85, 40, .12);
    padding: 4px 8px;
    font-weight: 900;
    font-size: .78rem;
  }

  .provider-mobile-status-strip span.online {
    background: rgba(23, 111, 74, .14);
  }

  .provider-mobile-status-strip strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .82rem;
  }

  .provider-mobile-status-strip button {
    min-height: 32px;
    border: 0;
    border-radius: 8px;
    background: var(--forest);
    color: #fff;
    padding: 4px 8px;
    font-weight: 900;
  }

  .provider-app-header,
  .provider-live-shell,
  .provider-profile-preview {
    align-items: stretch;
    flex-direction: column;
  }

  .provider-app-header {
    display: none;
  }

  .provider-app-nav {
    position: fixed;
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 92;
    border-radius: 0;
    padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
    background: rgba(23, 61, 49, .98);
  }

  .provider-app-nav button {
    min-height: 52px;
    color: #fff;
    font-size: .76rem;
  }

  .provider-app-nav button.active {
    background: rgba(255, 255, 255, .16);
  }

  .provider-app-nav span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .provider-live-shell {
    gap: 8px;
    padding: 8px 10px;
  }

  .provider-live-shell .eyebrow {
    margin-bottom: 2px;
  }

  .provider-live-shell h2 {
    font-size: 1.2rem;
  }

  .provider-live-shell small {
    line-height: 1.25;
  }

  .provider-status-cluster,
  .provider-status-toggle {
    width: 100%;
  }

  .provider-status-toggle {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .provider-status-cluster .btn {
    min-height: 38px;
    width: 100%;
  }

  .provider-status-toggle button {
    padding: 6px 8px;
  }

  .provider-next-action {
    padding: 10px;
  }

  .provider-job-card {
    padding: 10px;
  }

  .provider-job-meta {
    grid-template-columns: 1fr;
  }

  .provider-status-timeline {
    grid-template-columns: 1fr;
  }

  .provider-reason-grid {
    grid-template-columns: 1fr;
  }

  .provider-detail-drawer,
  .provider-action-drawer {
    width: 100vw;
    max-height: calc(100dvh - 88px);
    margin-bottom: 0;
    border-radius: 8px 8px 0 0;
  }

  .provider-floating-toast {
    right: 10px;
    bottom: calc(124px + env(safe-area-inset-bottom));
    left: 10px;
  }

  .provider-report-actions {
    grid-template-columns: 1fr;
  }
}

/* Staff Command Center */
.staff-today-bar .admin-overview-metric {
  text-align: left;
  cursor: pointer;
}

.staff-today-bar .admin-overview-metric.active {
  border-color: var(--forest);
  background: rgba(23, 61, 49, 0.08);
  box-shadow: inset 0 0 0 1px rgba(23, 61, 49, 0.24);
}

.staff-command-card {
  border-left: 4px solid rgba(23, 61, 49, 0.18);
}

.staff-command-card.needs-action {
  border-left-color: #d8a336;
}

.staff-command-card.is-ready {
  border-left-color: #2ba96a;
}

.staff-command-card > summary {
  display: grid;
  grid-template-columns: minmax(240px, 1.35fr) minmax(220px, 1fr) auto;
  gap: 12px;
  align-items: center;
}

.staff-summary-main {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.staff-summary-main small,
.staff-lane-head small,
.staff-lane-task small {
  color: var(--muted);
}

.staff-command-badges {
  justify-content: flex-start;
}

.staff-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.staff-detail-sections {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.staff-detail-sections section {
  border: 1px solid rgba(23, 61, 49, 0.1);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.7);
  padding: 12px;
}

.staff-detail-sections h3 {
  margin: 0 0 6px;
  font-size: .95rem;
}

.staff-detail-sections p {
  margin: 4px 0;
}

.staff-open-task-list {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.staff-open-task-list .mini-row {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.staff-open-task-list .mini-row .badge {
  justify-self: start;
  width: fit-content;
  white-space: nowrap;
}

.staff-dispatch-board,
.staff-readiness-panel,
.staff-communication-queue {
  margin-top: 16px;
}

.staff-lane-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  align-items: stretch;
}

.staff-lane {
  border: 1px solid rgba(23, 61, 49, 0.13);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.72);
  padding: 12px;
  min-height: 160px;
}

.staff-lane.is-unassigned {
  border-color: rgba(216, 163, 54, 0.55);
  background: rgba(255, 247, 220, 0.72);
}

.staff-lane-head {
  display: grid;
  gap: 3px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(23, 61, 49, 0.1);
}

.staff-lane-tasks {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.staff-lane-task {
  display: grid;
  gap: 3px;
  border: 1px solid rgba(23, 61, 49, 0.1);
  border-radius: 12px;
  background: #fffef9;
  padding: 9px;
}

.staff-command-grid {
  align-items: start;
}

.staff-readiness-panel .mini-row,
.staff-communication-queue .mini-row {
  grid-template-columns: minmax(0, 1fr) auto;
}

.staff-editor-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(23, 61, 49, 0.12);
}

.staff-editor-tabs button {
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fffef9;
  color: var(--forest);
  font-weight: 800;
  padding: 9px 14px;
}

.staff-editor-tabs button.active {
  border-color: var(--forest);
  background: var(--forest);
  color: #fff;
}

.staff-editor-tab-panel {
  display: none;
  gap: 12px;
}

.staff-editor-tab-panel.active {
  display: grid;
}

.staff-service-checklist {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.staff-modal-form .sticky-form-actions {
  position: sticky;
  bottom: 0;
  z-index: 2;
  background: linear-gradient(180deg, rgba(255, 253, 248, 0.65), #fffdf8 38%);
  padding-top: 12px;
}

@media (max-width: 900px) {
  .staff-command-card > summary,
  .staff-detail-sections,
  .staff-service-checklist {
    grid-template-columns: 1fr;
  }

  .staff-card-actions {
    justify-content: flex-start;
  }

  .shop-production-card > summary,
  .shop-command-heading {
    grid-template-columns: 1fr;
  }

  .shop-card-actions,
  .shop-command-heading .request-actions {
    justify-content: flex-start;
  }
}

.tab-panel.reviews-growth-panel:not(.active) {
  display: none;
}

.staff-daily-actions {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.staff-daily-actions .quick-action span {
  font-size: 1.35rem;
}

.thread-button {
  width: 100%;
  text-align: left;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fffdf9;
  cursor: pointer;
}

.thread-button.active {
  border-color: var(--forest);
  box-shadow: inset 0 0 0 1px rgba(23, 61, 49, .24);
}

.staff-task-row {
  border: 1px solid rgba(23, 61, 49, .12);
  border-radius: 16px;
  padding: 12px;
  background: #fffdf9;
}

@media (max-width: 900px) {
  .staff-daily-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.staff-login-preview,
.staff-offline-banner {
  margin: 8px 0;
}

.form-error {
  min-height: 1.1rem;
  margin: 0;
  color: var(--danger);
  font-weight: 800;
}

.staff-control-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 12px 0;
}

.staff-control-row input,
.staff-control-row select {
  width: auto;
  min-width: 150px;
}

.staff-toggle {
  align-items: center;
  display: inline-flex;
  gap: 7px;
  font-weight: 900;
}

.staff-shift-card,
.staff-dispatch-board {
  margin-bottom: 16px;
}

.staff-urgent-strip,
.staff-category-strip,
.staff-template-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0;
}

.staff-urgent-card {
  cursor: pointer;
  text-align: left;
}

.staff-ops-pulse {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
}

.staff-pulse-card {
  border: 1px solid rgba(23, 61, 49, .12);
  border-radius: 14px;
  background: #fffdf9;
  color: var(--forest);
  cursor: pointer;
  display: grid;
  gap: 2px;
  min-height: 72px;
  padding: 10px;
  text-align: left;
}

.staff-pulse-card strong {
  font-size: 1.35rem;
}

.staff-pulse-card.needs-action {
  border-color: rgba(163, 61, 61, .26);
  background: #fff7f5;
  color: #7c2f28;
}

.staff-dispatch-filters,
.staff-quick-task-form {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(130px, 1fr));
  margin: 12px 0;
}

.staff-dispatch-filters label,
.staff-quick-task-form label {
  min-width: 0;
}

.staff-quick-create {
  border: 1px solid rgba(23, 61, 49, .12);
  border-radius: 14px;
  background: rgba(255, 253, 248, .76);
  margin: 10px 0 14px;
  padding: 10px 12px;
}

.staff-quick-create summary {
  color: var(--forest);
  cursor: pointer;
  font-weight: 900;
}

.staff-quick-task-notes {
  grid-column: span 2;
}

.staff-workload-panel {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  margin: 10px 0 16px;
}

.staff-workload-card {
  align-items: center;
  background: #fffdf9;
  border: 1px solid rgba(23, 61, 49, .12);
  border-radius: 14px;
  display: grid;
  gap: 6px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 10px;
}

.staff-workload-card small,
.staff-workload-card span:not(.badge) {
  color: var(--muted);
  font-size: .78rem;
}

.staff-task-window {
  display: grid;
  gap: 9px;
  margin-bottom: 14px;
}

.staff-window-head {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.staff-task-row.is-overdue {
  border-color: rgba(163, 61, 61, .32);
  box-shadow: inset 4px 0 0 rgba(163, 61, 61, .65);
}

.staff-task-row .request-actions,
.staff-card-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.staff-card-actions {
  align-items: center;
  display: flex;
  gap: 6px;
}

.staff-card-actions select {
  min-width: 126px;
  max-width: 150px;
  padding: 7px 9px;
}

.staff-card-actions .btn {
  min-width: 68px;
  padding-inline: 8px;
}

.staff-status-history {
  background: rgba(23, 61, 49, .05);
  border: 1px solid rgba(23, 61, 49, .1);
  border-radius: 12px;
  display: grid;
  gap: 5px;
  padding: 10px;
}

.staff-detail-drawer {
  bottom: 0;
  pointer-events: none;
  position: fixed;
  right: 0;
  top: 0;
  transform: translateX(105%);
  transition: transform .18s ease;
  width: min(430px, 100vw);
  z-index: 120;
}

.staff-detail-drawer.is-open {
  pointer-events: auto;
  transform: translateX(0);
}

.staff-drawer-card {
  background: #fffdf8;
  border-left: 1px solid rgba(23, 61, 49, .16);
  box-shadow: -20px 0 70px rgba(23, 61, 49, .22);
  display: grid;
  gap: 12px;
  height: 100%;
  overflow: auto;
  padding: 22px;
}

.sticky-form-actions {
  bottom: 0;
  position: sticky;
  background: linear-gradient(180deg, rgba(255, 253, 248, .7), #fffdf8 45%);
  padding-top: 10px;
}

.staff-mobile-dock {
  display: none;
}

.staff-logged-in .staff-mobile-dock {
  display: none;
}

@media (max-width: 760px) {
  body.staff-logged-in {
    padding-bottom: 76px;
  }

  .staff-shell .staff-tabs.sticky-tabs {
    display: flex !important;
    overflow-x: auto;
    position: sticky;
    top: 68px;
    z-index: 35;
  }

  .staff-shell .staff-tabs.sticky-tabs .tab {
    min-width: max-content;
  }

  .staff-logged-in .staff-mobile-dock {
    background: rgba(23, 61, 49, .98);
    box-shadow: 0 -16px 42px rgba(0, 0, 0, .22);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    left: 0;
    padding: 7px 8px calc(7px + env(safe-area-inset-bottom));
    position: fixed;
    right: 0;
    bottom: 0;
    z-index: 110;
  }

  .staff-mobile-dock button {
    background: transparent;
    border: 0;
    border-radius: 12px;
    color: rgba(255, 255, 255, .82);
    font-size: .76rem;
    font-weight: 900;
    min-width: 0;
    padding: 10px 4px;
  }

  .staff-mobile-dock button.active,
  .staff-mobile-dock button:focus-visible {
    background: rgba(255, 255, 255, .14);
    color: #fff;
    outline: 2px solid rgba(255, 255, 255, .34);
  }

  .staff-control-row {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }

  .staff-control-row input,
  .staff-control-row select {
    min-width: 0;
    width: 100%;
  }

  .staff-ops-pulse {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .staff-dispatch-filters,
  .staff-quick-task-form {
    grid-template-columns: 1fr;
  }

  .staff-quick-task-notes {
    grid-column: auto;
  }

  .staff-task-row {
    grid-template-columns: 1fr;
  }

  .staff-task-row .request-actions,
  .staff-card-actions {
    justify-content: flex-start;
  }

  .staff-card-actions select {
    max-width: none;
    width: 100%;
  }

  .staff-detail-drawer {
    width: 100vw;
  }
}

.reviews-growth-panel.active {
  display: grid;
  gap: 16px;
}

.reviews-command-card {
  position: sticky;
  top: 76px;
  z-index: 5;
  min-width: 0;
  border-radius: 8px;
  padding: 18px;
}

.review-funnel-copy {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: .88rem;
  font-weight: 800;
}

.review-today-action {
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 18px;
  background: linear-gradient(135deg, #fffdf8, #eff7ef);
}

.review-today-action h2,
.review-today-action p {
  margin: 0;
}

.review-growth-head {
  align-items: center;
}

.review-command-strip {
  grid-template-columns: repeat(5, minmax(130px, 1fr));
}

.reviews-workflow-grid {
  display: grid;
  grid-template-columns: minmax(440px, 1.45fr) minmax(360px, .9fr);
  gap: 16px;
  align-items: start;
}

.review-lane {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-content: start;
  min-width: 0;
  border-radius: 8px;
  padding: 18px;
}

.review-invite-lane {
  grid-row: span 3;
}

.reviews-workflow-grid > *,
.review-growth-head > *,
.review-command-strip > *,
.review-funnel-grid > * {
  min-width: 0;
}

.review-lane .section-heading {
  margin-bottom: 0;
  align-items: start;
}

.review-lane .section-heading > div {
  min-width: 0;
}

.review-lane .section-heading h2 {
  line-height: 1.15;
}

.review-lane .section-heading .badge {
  flex: 0 0 auto;
  max-width: 46%;
  justify-content: center;
  text-align: center;
  white-space: normal;
}

.review-growth-filters {
  grid-template-columns: minmax(180px, 1fr) minmax(150px, .7fr);
  gap: 12px;
  margin: 0;
}

.review-growth-filters label,
.review-growth-filters input,
.review-growth-filters select {
  min-width: 0;
  width: 100%;
}

.review-next-best,
.review-link-utility,
.review-template-quality,
.review-selected-summary,
.review-readiness-list,
.review-post-send {
  border: 1px solid rgba(23,61,49,.12);
  background: #fff;
  border-radius: 8px;
  padding: 10px;
}

.review-next-best,
.review-link-utility {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.review-next-best strong,
.review-next-best small {
  display: block;
  min-width: 0;
}

.review-next-best small {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.review-selected-summary {
  display: grid;
  gap: 8px;
}

.review-selected-summary strong,
.review-selected-summary small {
  display: block;
}

.review-selected-summary small {
  color: var(--muted);
}

.review-link-utility {
  flex-wrap: wrap;
}

.review-link-utility .btn {
  min-width: 92px;
  justify-content: center;
}

.review-guest-cards {
  display: grid;
  gap: 12px;
  max-height: 360px;
  overflow: auto;
  padding-right: 4px;
}

.review-queue-group {
  display: grid;
  gap: 8px;
}

.review-queue-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--forest);
  font-weight: 900;
}

.review-later-queue {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 8px;
  background: rgba(255,255,255,.72);
  padding: 8px;
}

.review-later-queue summary {
  cursor: pointer;
  color: var(--forest);
  font-weight: 900;
}

.review-guest-card {
  width: 100%;
  border: 1px solid rgba(23,61,49,.14);
  background: #fff;
  border-radius: 8px;
  padding: 10px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  text-align: left;
  color: var(--ink);
  cursor: pointer;
  min-width: 0;
}

.review-why {
  grid-column: 1 / -1;
  border-top: 1px solid rgba(23,61,49,.08);
  padding-top: 8px;
  color: var(--muted);
  font-size: .78rem;
}

.review-why strong {
  display: inline;
  margin-right: 6px;
  color: var(--forest);
}

.review-guest-card:hover,
.review-guest-card:focus-visible,
.review-guest-card.selected {
  border-color: rgba(23,61,49,.42);
  box-shadow: 0 10px 24px rgba(23,61,49,.08);
  outline: none;
}

.review-guest-card strong,
.review-guest-card small,
.review-card-side em {
  display: block;
}

.review-guest-card small,
.review-card-side em {
  color: var(--muted);
  font-size: .78rem;
  font-style: normal;
}

.review-card-side {
  display: grid;
  justify-items: end;
  gap: 2px;
  min-width: 104px;
  text-align: right;
}

.review-template-buttons,
.review-channel-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.review-template-segments {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 8px;
  background: #fff;
  padding: 4px;
}

.review-template-segments .btn {
  border-radius: 6px;
}

.review-do-not-ask {
  border: 1px solid rgba(23,61,49,.12);
  background: #fff;
  border-radius: 8px;
  padding: 9px 10px;
}

.muted-disabled {
  opacity: .56;
}

.review-invite-form textarea {
  min-height: 116px;
}

.review-preview-card p {
  margin: 6px 0 0;
  color: var(--ink);
  overflow-wrap: anywhere;
  word-break: break-word;
}

.review-template-quality {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.review-readiness-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.review-template-quality span,
.review-readiness-list span {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 999px;
  background: #fffdf8;
  padding: 4px 8px;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
}

.review-template-quality .warning,
.review-readiness-list .is-missing {
  border-color: rgba(181,85,40,.25);
  color: #9a4a24;
  background: #fff3e8;
}

.review-readiness-list .is-ok {
  border-color: rgba(34,120,74,.2);
  color: var(--forest);
  background: #eef7ec;
}

.review-snooze-row,
.review-post-send {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.review-post-send {
  background: #eef7ec;
}

.review-funnel-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
  gap: 8px;
}

.review-funnel-step {
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 8px;
  background: #fff;
  padding: 10px;
  min-width: 0;
}

.review-funnel-step span,
.review-funnel-step strong {
  display: block;
}

.review-funnel-step span {
  color: var(--muted);
  font-size: .74rem;
  font-weight: 850;
  line-height: 1.18;
  overflow-wrap: anywhere;
}

.review-funnel-step strong {
  color: var(--forest);
  font-size: 1.28rem;
  margin-top: 4px;
}

.review-feedback-card {
  display: grid;
  gap: 8px;
  border-radius: 8px;
  min-width: 0;
}

.review-feedback-card .request-title {
  align-items: start;
  gap: 10px;
}

.review-feedback-card .request-title > div {
  min-width: 0;
}

.review-feedback-card .request-title h3 {
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.review-feedback-card .item-meta {
  gap: 5px 8px;
}

.review-feedback-card p {
  margin: 0;
  overflow-wrap: anywhere;
}

.review-widget-preview,
.review-preview-card {
  min-width: 0;
}

#reviewRecoveryList,
#testimonialList,
#feedbackList,
#guestPhotoModerationList {
  display: grid;
  gap: 10px;
}

#reviewRecoveryList .empty-state {
  margin: 0;
}

#reviewDestinations {
  display: grid;
  gap: 8px;
}

#reviewDestinations .mini-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(96px, auto);
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}

#reviewDestinations .mini-row > div {
  min-width: 0;
}

#reviewDestinations .mini-row strong,
#reviewDestinations .mini-row small {
  display: block;
  min-width: 0;
}

#reviewDestinations .mini-row strong {
  line-height: 1.2;
  overflow-wrap: anywhere;
}

#reviewDestinations .mini-row small {
  color: var(--muted);
}

#reviewDestinations .mini-row .btn {
  justify-self: end;
  min-width: 92px;
  text-align: center;
}

.review-widget-preview blockquote {
  margin: 0 0 8px;
  padding: 0 0 0 12px;
  border-left: 3px solid var(--gold);
  color: var(--forest);
}

.review-widget-preview pre {
  white-space: pre-wrap;
}

.review-mini-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.review-mini-tabs button {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 999px;
  background: #fff;
  color: var(--forest);
  font-weight: 900;
  padding: 7px 10px;
}

.review-mini-tabs button.active {
  background: var(--forest);
  color: #fff;
}

.review-testimonial-board {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.review-testimonial-board section,
.review-testimonial-board details {
  display: grid;
  gap: 8px;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 8px;
  background: rgba(255,255,255,.7);
  padding: 10px;
  min-width: 0;
}

.review-feedback-card.is-approved {
  border-color: rgba(34,120,74,.24);
}

.review-feedback-card.is-hidden {
  opacity: .68;
}

@media (max-width: 1280px) {
  .reviews-workflow-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .review-invite-lane {
    grid-row: auto;
  }

  .review-command-strip {
    grid-template-columns: repeat(3, minmax(130px, 1fr));
  }
}

@media (max-width: 980px) {
  .review-funnel-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .reviews-command-card {
    position: static;
  }

  .reviews-workflow-grid,
  .review-growth-filters,
  .review-command-strip,
  .review-funnel-grid {
    grid-template-columns: 1fr;
  }

  .review-guest-card {
    grid-template-columns: 1fr;
  }

  .review-card-side {
    justify-items: start;
    text-align: left;
  }

  .review-lane .section-heading {
    display: grid;
    gap: 8px;
  }

  .review-lane .section-heading .badge {
    max-width: none;
    justify-self: start;
  }

  .review-next-best,
  .review-link-utility,
  #reviewDestinations .mini-row {
    grid-template-columns: 1fr;
  }

  .review-next-best {
    display: grid;
  }

  .review-link-utility .btn,
  #reviewDestinations .mini-row .btn {
    justify-self: stretch;
    width: 100%;
  }

  .review-growth-head .actions {
    width: 100%;
  }

  .review-growth-head .actions .btn {
    flex: 1 1 140px;
  }

  .review-today-action {
    display: grid;
  }

  .review-primary-action,
  .review-channel-row .btn.primary {
    position: sticky;
    bottom: calc(12px + env(safe-area-inset-bottom));
    z-index: 8;
  }
}

/* Dining calendar operations refresh */
.dining-command-card {
  display: grid;
  gap: .85rem;
}

.dining-ops-summary {
  display: grid;
  grid-template-columns: minmax(240px, 1.25fr) minmax(0, 2fr);
  gap: .75rem;
  align-items: stretch;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 14px;
  background: #fffdf8;
  padding: .75rem;
}

.dining-ops-primary strong {
  display: block;
  color: var(--forest);
  font-size: 1.02rem;
  line-height: 1.25;
}

.dining-ops-metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(88px, 1fr));
  gap: .45rem;
}

.dining-ops-metrics span,
.admin-dining-day-summary article {
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: #fff;
  padding: .58rem .65rem;
}

.dining-ops-metrics span.needs-review {
  background: #fff3df;
  border-color: #e8bd7c;
}

.dining-ops-metrics strong {
  display: block;
  color: var(--forest);
  font-size: 1.15rem;
}

.dining-ops-metrics small {
  color: var(--muted);
  font-weight: 850;
}

.dining-segmented-control {
  width: fit-content;
  max-width: 100%;
}

.admin-dining-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
  gap: 1rem;
  align-items: start;
}

.dining-service-card {
  border-radius: 12px;
  background: #fff;
  box-shadow: none;
}

.dining-service-card .admin-dining-slot-head {
  align-items: flex-start;
}

.dining-inline-toggles {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .75rem;
  border-top: 1px solid rgba(23,61,49,.1);
  padding-top: .65rem;
}

.dining-inline-toggles .check-row {
  margin: 0;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 999px;
  padding: .32rem .55rem;
  background: #fffdf8;
  font-size: .82rem;
}

.ghost-danger {
  background: #fff7f4;
}

.dining-day-inspector {
  position: sticky;
  top: 92px;
  display: grid;
  gap: .65rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 14px;
  background: #fffdf8;
  padding: .85rem;
}

.dining-day-inspector h3 {
  margin: 0;
  color: var(--forest);
}

.guest-visible-preview {
  display: grid;
  gap: .4rem;
}

.guest-visible-preview div {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: .45rem;
  align-items: baseline;
  border: 1px solid rgba(23,61,49,.08);
  border-radius: 10px;
  background: #fff;
  padding: .45rem .5rem;
}

.guest-visible-preview strong {
  color: var(--forest);
  font-size: .82rem;
}

.guest-visible-preview span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.month-bulk-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items: center;
  justify-content: space-between;
  margin: .65rem 0;
}

.dining-month-tile {
  display: grid;
  gap: .55rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 12px;
  background: #fff;
  padding: .65rem;
  min-height: 132px;
  cursor: default;
}

.dining-month-tile.has-menu {
  background: #fffdf8;
}

.month-select-check {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin: 0;
  font-size: 1rem;
}

.month-select-check input {
  accent-color: var(--forest);
}

.month-meal-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: .28rem;
}

.month-meal-chip {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 999px;
  min-width: 34px;
  min-height: 30px;
  padding: .18rem .45rem;
  background: #f3f1e8;
  color: #56615a;
  font-weight: 950;
  cursor: pointer;
}

.month-meal-chip.on {
  background: #e5f6e6;
  border-color: rgba(24,123,55,.32);
  color: #0e4b28;
}

.meal-editor-section {
  display: grid;
  gap: .75rem;
  padding: .85rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 14px;
  background: #fffdf8;
}

@media (max-width: 980px) {
  .dining-ops-summary,
  .admin-dining-workspace {
    grid-template-columns: 1fr;
  }

  .dining-day-inspector {
    position: static;
  }

  .dining-ops-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .dining-segmented-control {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-radius: 16px;
  }

  .dining-segmented-control .view-chip {
    border-radius: 12px;
  }

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

  .month-bulk-actions .actions {
    width: 100%;
  }

  .month-bulk-actions .btn {
    flex: 1 1 136px;
  }
}

@media (max-width: 1100px) {
  .guide-health-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .guide-health-title { grid-column: 1 / -1; }
  .guide-command-workspace { grid-template-columns: 1fr; }
  .guide-detail-panel { position: static; max-height: none; }
  .guide-row-main { grid-template-columns: 42px minmax(0, 1fr); }
  .guide-row-main .badge,
  .guide-row-main .muted-pill,
  .guide-row-pill,
  .guide-row-review { margin-left: 48px; }
}

@media (max-width: 640px) {
  .guide-health-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guide-toolbar { top: 76px; }
  .guide-admin-row { grid-template-columns: 1fr; }
  .guide-row-actions { justify-content: flex-start; padding-left: 48px; }
  .guide-more-menu[open] div { position: fixed; inset: auto .75rem .75rem .75rem; z-index: 100; border-radius: 18px; padding: .75rem; }
  .guide-status-grid { grid-template-columns: 1fr; }
  .guide-review-list, .guide-recent-details div { grid-template-columns: 1fr; }
  .guide-phone-preview { border-width: 7px; border-radius: 24px; }
  .guide-template-menu { grid-template-columns: 1fr; }
  .guide-publish-checklist button { grid-template-columns: 28px 1fr; }
  .guide-publish-checklist small { grid-column: 2; }
}

.guest-today-command-card,
.guest-help-command-card,
.today-ops-card {
  border-color: rgba(23,61,49,.18);
}

.guest-today-hub,
.guest-help-hub,
.today-ops-queue {
  display: grid;
  gap: .85rem;
}

.today-primary-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  border-radius: 16px;
  background: #f4fbf4;
  border: 1px solid rgba(24,123,55,.18);
}

.today-primary-action h3 {
  margin: .35rem 0 .25rem;
  font-size: clamp(1.2rem, 2vw, 1.65rem);
}

.today-primary-action p {
  margin: 0;
  color: #40524b;
}

.today-mini-grid,
.help-action-grid,
.guided-request-options,
.today-ops-queue {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .7rem;
}

.today-mini-grid button,
.help-action,
.today-ops-item {
  text-align: left;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 14px;
  background: #fffdf8;
  color: #173d31;
  padding: .85rem;
  cursor: pointer;
  display: grid;
  gap: .25rem;
  text-decoration: none;
}

.today-mini-grid button:hover,
.help-action:hover,
.today-ops-item:hover {
  border-color: rgba(24,123,55,.34);
  box-shadow: 0 10px 22px rgba(23,61,49,.08);
}

.today-mini-grid span,
.help-action span,
.today-ops-item small,
.today-ops-item em {
  color: #66736c;
  font-size: .86rem;
  font-style: normal;
}

.primary-help {
  background: #173d31;
  color: #fff;
}

.primary-help span {
  color: rgba(255,255,255,.78);
}

.guest-bottom-nav {
  display: none;
}

.guided-request-dialog {
  max-width: 720px;
}

.guided-request-step {
  display: grid;
  gap: .65rem;
  padding: .85rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 14px;
  background: #fffdf8;
}

.step-label {
  margin: 0;
  font-weight: 900;
  color: #173d31;
}

.guided-request-options {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.guided-request-options button {
  border: 1px solid rgba(23,61,49,.14);
  background: #fff;
  border-radius: 12px;
  padding: .75rem;
  text-align: left;
  font-weight: 850;
  color: #173d31;
  cursor: pointer;
}

.guided-request-options button.active {
  background: #e5f6e6;
  border-color: rgba(24,123,55,.42);
  box-shadow: inset 0 0 0 1px rgba(24,123,55,.18);
}

.request-history-filters {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: 0 0 .8rem;
}

.request-history-filters .view-chip span {
  margin-left: .25rem;
  opacity: .72;
}

.request-title-button {
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  padding: 0;
  text-align: left;
  cursor: pointer;
}

.request-title-button:hover,
.request-title-button:focus-visible {
  color: #187b37;
  outline: none;
  text-decoration: underline;
}

.request-item.selected {
  border-color: rgba(24,123,55,.42);
  box-shadow: 0 0 0 3px rgba(24,123,55,.10);
}

.request-expectation-row,
.request-expectation-preview,
.request-detail-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem;
  margin: .75rem 0;
}

.request-detail-summary {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.request-expectation-row span,
.request-expectation-preview span,
.request-detail-summary span,
.request-map-placeholder {
  min-height: 58px;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 12px;
  background: #fffdf8;
  padding: .65rem;
  display: grid;
  gap: .15rem;
  color: #43524b;
  font-size: .9rem;
}

.request-expectation-row strong,
.request-expectation-preview strong,
.request-detail-summary strong,
.request-map-placeholder strong {
  color: #173d31;
  font-size: .76rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.request-detail-card {
  display: grid;
  gap: .75rem;
}

.request-map-placeholder {
  min-height: 74px;
  background: repeating-linear-gradient(135deg, #fffdf8, #fffdf8 10px, #f2f6ef 10px, #f2f6ef 20px);
}

.request-map-placeholder span {
  color: #52615a;
}

.guided-toiletries-panel {
  display: grid;
  gap: .7rem;
  padding: .8rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 12px;
  background: #f7fbf6;
}

.guided-toiletries-panel.hidden {
  display: none;
}

.guided-toiletries-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .45rem;
}

.guided-toiletries-options label {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: .45rem;
  padding: .55rem .6rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 10px;
  background: #fff;
  color: #173d31;
  font-weight: 750;
}

.guest-status-timeline {
  list-style: none;
  padding: .2rem 0 .2rem .15rem;
  margin: .75rem 0;
  display: grid;
  gap: .45rem;
}

.guest-status-timeline li {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: .5rem;
  align-items: start;
}

.guest-status-timeline li > span {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: #b8c8bf;
  margin-top: .25rem;
}

.guest-status-timeline li.current > span {
  background: #187b37;
  box-shadow: 0 0 0 4px rgba(24,123,55,.12);
}

.guest-status-timeline strong {
  display: block;
  color: #173d31;
}

.guest-status-timeline small {
  color: #66736c;
}

.today-ops-queue {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.today-ops-type {
  width: max-content;
  padding: .18rem .5rem;
  border-radius: 999px;
  background: #e9f3ed;
  color: #173d31;
  font-size: .78rem;
  font-weight: 900;
}

@media (max-width: 900px) {
  .today-mini-grid,
  .help-action-grid,
  .today-ops-queue {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  body:has(#guestApp:not(.hidden)) {
    padding-bottom: 82px;
  }

  .guest-tabs {
    display: none;
  }

  .guest-bottom-nav {
    position: fixed;
    z-index: 60;
    left: 0;
    right: 0;
    bottom: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .25rem;
    padding: .45rem max(.5rem, env(safe-area-inset-left)) calc(.45rem + env(safe-area-inset-bottom)) max(.5rem, env(safe-area-inset-right));
    background: rgba(255,253,248,.96);
    border-top: 1px solid rgba(23,61,49,.14);
    box-shadow: 0 -12px 30px rgba(23,61,49,.12);
    backdrop-filter: blur(14px);
  }

  .ai-concierge-fab {
    bottom: calc(5.35rem + env(safe-area-inset-bottom));
  }

  .ai-concierge-drawer {
    bottom: calc(9rem + env(safe-area-inset-bottom));
    max-height: calc(100vh - 10rem - env(safe-area-inset-bottom));
  }

  .guest-bottom-nav button {
    display: grid;
    justify-items: center;
    gap: .12rem;
    border: 0;
    border-radius: 14px;
    background: transparent;
    color: #596270;
    padding: .4rem .2rem;
    min-width: 0;
  }

  .guest-bottom-nav button.active,
  .guest-bottom-nav [data-open-guest-menu].active,
  .guest-bottom-nav [data-open-guided-request] {
    color: #173d31;
    background: #e5f6e6;
  }

  .guest-bottom-nav span {
    font-size: 1.05rem;
    line-height: 1;
  }

  .guest-bottom-nav strong {
    font-size: .72rem;
    line-height: 1.1;
  }

  .today-primary-action {
    grid-template-columns: 1fr;
  }

  .today-mini-grid,
  .help-action-grid,
  .guided-request-options {
    grid-template-columns: 1fr;
  }

  .guided-toiletries-options {
    grid-template-columns: 1fr;
  }

  .request-expectation-row,
  .request-expectation-preview,
  .request-detail-summary {
    grid-template-columns: 1fr;
  }
}

/* Guest overview command surface */
.guest-priority-actions {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

#overviewPanel.v26-stable-overview:not(.active) {
  display: none;
}

#overviewPanel.v26-stable-overview.active {
  display: grid;
  gap: 14px;
}

.guest-today-command-card {
  padding: 18px;
}

.overview-command-hero {
  border-radius: 18px;
  background: #f2faf4;
  border-color: rgba(24, 123, 55, .2);
}

.overview-command-hero h3 {
  font-size: clamp(1.35rem, 2vw, 1.95rem);
}

.overview-status-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.overview-status-grid button,
.overview-request-status,
.overview-condition-tile {
  text-align: left;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 14px;
  background: #fffdf8;
  color: var(--forest);
  padding: 12px;
  cursor: pointer;
  display: grid;
  gap: 4px;
  min-width: 0;
}

.overview-status-grid span,
.overview-condition-tile small,
.overview-request-status span {
  color: #66736c;
  font-size: .78rem;
  font-weight: 850;
  text-transform: uppercase;
}

.overview-status-grid strong,
.overview-condition-tile strong,
.overview-request-status strong {
  overflow-wrap: anywhere;
}

.overview-status-grid small,
.overview-condition-tile em,
.overview-request-status small {
  color: #66736c;
  font-style: normal;
}

.overview-fast-requests {
  display: grid;
  grid-template-columns: minmax(150px, .8fr) minmax(0, 1.6fr);
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 14px;
  background: #fbf8ef;
}

.overview-fast-requests strong,
.overview-track-head strong {
  display: block;
  color: var(--forest);
}

.overview-fast-requests small {
  display: block;
  color: var(--muted);
  margin-top: 2px;
}

.overview-fast-requests > div:last-child {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.overview-request-chip {
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 999px;
  background: #fff;
  color: var(--forest);
  min-height: 36px;
  padding: 0 12px;
  font-weight: 900;
  cursor: pointer;
}

.overview-request-track {
  display: grid;
  gap: 8px;
}

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

.overview-request-status {
  grid-template-columns: 110px minmax(0, 1fr);
  align-items: center;
}

.overview-request-status small {
  grid-column: 2;
}

.overview-request-status.status-progress {
  border-color: rgba(31,111,168,.24);
  background: #f3f8ff;
}

.overview-request-status.status-pending {
  border-color: rgba(170,118,36,.22);
  background: #fff9ef;
}

.overview-emergency-note {
  margin: 0;
  padding: 10px 12px;
  border-radius: 12px;
  background: #fff6f5;
  border: 1px solid rgba(163,61,61,.18);
  color: #7f2f2f;
  font-weight: 900;
}

.overview-wifi-copy h3 {
  margin-bottom: 4px;
}

.overview-wifi-copy p {
  margin: 3px 0;
}

#stayIntelligenceCard .stay-intelligence-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

#stayIntelligenceCard .overview-condition-tile {
  position: relative;
  min-height: 178px;
  overflow: hidden;
  isolation: isolate;
  border: 0;
  border-radius: 18px;
  padding: 0;
  background: #173d31;
  box-shadow: 0 18px 38px rgba(23,61,49,.16);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

#stayIntelligenceCard .overview-condition-tile:hover,
#stayIntelligenceCard .overview-condition-tile:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 24px 48px rgba(23,61,49,.22);
  filter: saturate(1.04);
}

#stayIntelligenceCard .overview-condition-tile:focus-visible {
  outline: 3px solid rgba(255,255,255,.92);
  outline-offset: 3px;
}

.condition-tile-photo,
.condition-tile-scrim {
  position: absolute;
  inset: 0;
}

.condition-tile-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.01);
  transition: transform .22s ease;
  z-index: -2;
}

#stayIntelligenceCard .overview-condition-tile:hover .condition-tile-photo,
#stayIntelligenceCard .overview-condition-tile:focus-visible .condition-tile-photo {
  transform: scale(1.06);
}

.condition-tile-scrim {
  background:
    linear-gradient(180deg, rgba(8,24,20,.08) 0%, rgba(8,24,20,.3) 42%, rgba(8,24,20,.88) 100%),
    linear-gradient(135deg, rgba(8,24,20,.82) 0%, rgba(8,24,20,.22) 54%, rgba(8,24,20,.14) 100%);
  z-index: -1;
}

.condition-tile-content {
  min-height: 178px;
  display: grid;
  align-content: end;
  gap: 7px;
  padding: 16px;
  color: #fffdf8;
}

.condition-tile-topline {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.condition-icon {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  background: rgba(255,255,255,.86);
  color: var(--forest);
  font-weight: 950;
  box-shadow: 0 8px 18px rgba(0,0,0,.18);
}

#stayIntelligenceCard .overview-condition-tile small {
  color: rgba(255,255,255,.82);
  letter-spacing: .1em;
}

#stayIntelligenceCard .overview-condition-tile strong {
  color: #fff;
  font-size: 1.03rem;
  line-height: 1.22;
  text-shadow: 0 2px 12px rgba(0,0,0,.38);
}

#stayIntelligenceCard .overview-condition-tile em {
  color: rgba(255,255,255,.78);
  font-weight: 750;
}

.overview-highlight-list {
  display: grid;
  gap: 8px;
}

.overview-highlight-row {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 10px 0;
  border-bottom: 1px solid rgba(23,61,49,.1);
}

.overview-highlight-row:last-child {
  border-bottom: 0;
}

.overview-highlight-row h5 {
  margin: 0 0 2px;
  color: var(--forest);
  font-size: .98rem;
}

.overview-highlight-row p {
  margin: 0;
  color: var(--muted);
}

.overview-highlight-row .timeline-time small {
  display: block;
  color: var(--muted);
  font-size: .76rem;
}

.guest-condition-dialog {
  max-width: min(980px, calc(100vw - 24px));
}

.guest-condition-dialog .dialog-card {
  max-height: min(84vh, 880px);
  overflow: auto;
}

.condition-detail-grid {
  grid-template-columns: 1fr;
}

.condition-detail-grid .intel-section {
  margin: 0;
}

@media (max-width: 920px) {
  .guest-priority-actions,
  .overview-status-grid,
  #stayIntelligenceCard .stay-intelligence-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #stayIntelligenceCard .overview-condition-tile,
  .condition-tile-content {
    min-height: 168px;
  }

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

@media (max-width: 640px) {
  .guest-priority-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .guest-priority-actions .quick-action:first-child {
    grid-column: 1 / -1;
  }

  .overview-status-grid,
  #stayIntelligenceCard .stay-intelligence-grid {
    grid-template-columns: 1fr;
  }

  #stayIntelligenceCard .overview-condition-tile,
  .condition-tile-content {
    min-height: 150px;
  }

  .overview-request-status,
  .overview-highlight-row {
    grid-template-columns: 1fr;
  }

  .overview-request-status small {
    grid-column: auto;
  }

  .overview-fast-requests > div:last-child {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .overview-request-chip {
    border-radius: 12px;
    min-height: 40px;
  }
}

.marketplace-metric-grid {
  display: grid;
  gap: 12px;
  margin: 14px 0;
}

.marketplace-lane-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.marketplace-metric-card {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}

.marketplace-metric-card:hover {
  border-color: var(--primary);
  box-shadow: 0 8px 24px rgba(39, 92, 66, .08);
}

.marketplace-metric-card span,
.marketplace-metric-card small {
  color: var(--muted);
}

.marketplace-metric-card strong {
  font-size: 1.55rem;
  line-height: 1;
  color: var(--forest);
}

.marketplace-flow-strip {
  grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
}

.marketplace-next-actions {
  display: grid;
  grid-template-columns: auto repeat(auto-fit, minmax(170px, 1fr));
  gap: 8px;
  align-items: stretch;
}

.marketplace-next-actions > strong {
  align-self: center;
  color: var(--forest);
}

.marketplace-next-actions button {
  display: grid;
  gap: 2px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}

.provider-supply-controls,
.offering-catalog-controls {
  display: grid;
  grid-template-columns: minmax(220px, 1.3fr) repeat(4, minmax(130px, 1fr)) auto;
  gap: 10px;
  align-items: end;
  margin: 12px 0;
}

.provider-supply-controls label,
.offering-catalog-controls label {
  min-width: 0;
}

.provider-supply-controls input,
.provider-supply-controls select,
.offering-catalog-controls input,
.offering-catalog-controls select {
  width: 100%;
}

.offering-quick-filters {
  margin: 10px 0 4px;
}

.offering-density-switch {
  justify-content: flex-end;
}

.marketplace-offering-card {
  display: grid;
  grid-template-columns: minmax(160px, 220px) minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.marketplace-offering-card .offering-card-media {
  margin: 0;
  border-radius: 8px;
}

.marketplace-offering-card .offering-card-media img {
  height: 100%;
  min-height: 160px;
}

.marketplace-offering-card .request-actions {
  grid-column: 1 / -1;
}

.marketplace-offering-card.is-list-density {
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 10px;
}

.marketplace-offering-card.is-list-density .offering-card-media img {
  min-height: 92px;
}

.marketplace-offering-card.is-list-density .marketplace-offering-stats {
  grid-template-columns: repeat(4, minmax(70px, 1fr));
}

.marketplace-offering-body {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.marketplace-offering-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
  gap: 8px;
}

.marketplace-offering-stats span {
  display: grid;
  gap: 2px;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #f8fbf7;
}

.marketplace-offering-stats strong,
.marketplace-offering-stats small {
  overflow-wrap: anywhere;
}

.account-access-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.2fr) minmax(180px, .9fr) minmax(max-content, auto);
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  min-width: 0;
}

.account-access-row strong,
.account-access-row small {
  display: block;
  overflow-wrap: anywhere;
  word-break: normal;
}

.account-access-row > div {
  min-width: 0;
}

.account-access-row .badges,
.account-access-row .request-actions {
  min-width: 0;
  flex-wrap: wrap;
}

.account-access-row .request-actions {
  justify-content: flex-end;
}

.account-access-row .btn {
  white-space: nowrap;
}

.provider-account-access-row {
  background: #f8fbf7;
}

.provider-access-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #f8fbf7;
}

.supply-dispatch-board,
.booking-fulfillment-board {
  margin: 14px 0;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
}

.supply-board-columns,
.booking-stage-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}

.supply-board-column,
.booking-stage-column {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 140px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #f8fbf7;
}

.supply-board-column header,
.booking-stage-column header {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
}

.supply-board-column header span,
.booking-stage-column header span {
  min-width: 1.6rem;
  padding: 2px 7px;
  border-radius: 999px;
  background: #fff;
  text-align: center;
}

.supply-board-card,
.booking-stage-card {
  display: grid;
  gap: 4px;
  padding: 9px;
  border: 1px solid rgba(39,92,66,.14);
  border-radius: 8px;
  background: #fff;
}

.supply-board-card strong,
.supply-board-card small,
.supply-board-card span,
.booking-stage-card strong,
.booking-stage-card small,
.booking-stage-card span {
  overflow-wrap: anywhere;
}

.marketplace-booking-stage {
  border-radius: 8px;
}

.department-shell {
  padding-bottom: 64px;
}

.department-hero .concierge-card {
  min-width: 240px;
}

.department-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}

.department-summary-card {
  display: grid;
  align-content: center;
  min-height: 86px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
}

.department-summary-card span,
.department-summary-card strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.department-summary-card span {
  color: var(--muted);
  font-size: .84rem;
}

.department-summary-card strong {
  font-size: clamp(1.05rem, 1rem + .4vw, 1.45rem);
}

.department-queue-modebar {
  position: sticky;
  top: 74px;
  z-index: 8;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(255, 253, 248, .96);
  backdrop-filter: blur(12px);
}

.department-queue-modebar .view-chip {
  min-width: 112px;
  justify-content: center;
}

.department-queue-modebar .view-chip strong {
  margin-left: 4px;
}

.department-work-card {
  align-items: start;
}

.department-card-main {
  min-width: 0;
}

.department-card-main strong,
.department-card-main small,
.department-card-main p,
.department-card-main span {
  overflow-wrap: anywhere;
}

.department-work-card label {
  margin-top: 8px;
}

.department-work-card textarea {
  min-height: 72px;
}

.department-request-controls {
  display: grid;
  min-width: 170px;
  gap: 8px;
}

.department-action-stack {
  display: grid;
  grid-template-columns: repeat(2, minmax(74px, 1fr));
  min-width: 176px;
}

.department-action-stack .btn,
.department-request-controls .btn {
  width: 100%;
}

.department-request-controls select {
  min-width: 0;
}

.department-tabs .tab {
  white-space: nowrap;
}

.department-detail-panel {
  margin-top: 10px;
  padding: 10px;
  border: 1px solid rgba(39,92,66,.14);
  border-radius: 8px;
  background: #f8fbf7;
}

.department-detail-panel summary {
  cursor: pointer;
  font-weight: 700;
}

.department-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin: 10px 0;
}

.department-detail-grid > div,
.department-status-history {
  display: grid;
  gap: 4px;
}

.department-detail-grid span,
.department-status-history span {
  font-size: .86rem;
  color: var(--muted);
  overflow-wrap: anywhere;
}

.department-mobile-dock {
  display: none;
}

@media (max-width: 980px) {
  .provider-supply-controls,
  .offering-catalog-controls,
  .marketplace-offering-card,
  .account-access-row,
  .department-work-card {
    grid-template-columns: 1fr;
  }

  .marketplace-offering-card .offering-card-media img {
    min-height: 140px;
  }

  .marketplace-next-actions {
    grid-template-columns: 1fr;
  }

  .account-access-row .request-actions {
    justify-content: flex-start;
  }

  .department-request-controls {
    width: 100%;
  }

  .department-action-stack {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 760px) {
  .department-shell {
    padding-bottom: 96px;
  }

  .department-queue-modebar {
    top: 62px;
    overflow-x: auto;
    flex-wrap: nowrap;
  }

  .department-queue-modebar .view-chip {
    flex: 0 0 auto;
  }

  .department-action-stack {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .department-mobile-dock {
    position: fixed;
    left: 10px;
    right: 10px;
    bottom: calc(10px + env(safe-area-inset-bottom));
    z-index: 50;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    padding: 8px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: rgba(255,253,248,.96);
    box-shadow: 0 16px 40px rgba(0,0,0,.16);
    backdrop-filter: blur(14px);
  }

  .department-mobile-dock button {
    min-width: 0;
    min-height: 42px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--text);
    font-weight: 800;
  }

  .department-mobile-dock button.active {
    background: var(--primary);
    color: #fff;
  }
}

/* Streamlined admin navigation and task workspace */
#adminApp .streamlined-admin-tabs {
  align-items: center;
  flex-wrap: nowrap;
  width: max-content;
  max-width: calc(100vw - 2rem);
  margin-inline: auto;
}

.admin-more-menu {
  position: relative;
}

.admin-more-menu summary {
  list-style: none;
  cursor: pointer;
}

.admin-more-summary {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  border: 1px solid var(--line);
  background: #fffdf8;
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 900;
  color: var(--forest);
}

.admin-more-menu summary::-webkit-details-marker {
  display: none;
}

.admin-more-panel {
  position: fixed;
  right: 1rem;
  top: 142px;
  z-index: 90;
  display: grid;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  gap: .45rem;
  width: min(520px, calc(100vw - 2rem));
  padding: .75rem;
  border: 1px solid rgba(23,61,49,.14);
  border-radius: 18px;
  background: rgba(255,253,248,.98);
  box-shadow: 0 22px 70px rgba(23,61,49,.2);
  backdrop-filter: blur(14px);
}

.admin-more-panel .tab {
  justify-content: flex-start;
  width: 100%;
  border-radius: 13px;
  text-align: left;
}

#tasksPanel > .section-heading,
#tasksPanel > .toolbar,
#tasksPanel > .panel-card {
  display: none !important;
}

#tasksPanel .task-admin-grid {
  display: block !important;
  margin: 0 !important;
}

#tasksPanel .task-board-shell {
  max-width: 1220px;
  margin: 0 auto;
  border-radius: 18px;
  overflow: visible;
}

#tasksPanel .dispatch-shell {
  gap: 14px;
  padding: clamp(14px, 2vw, 22px);
}

#tasksPanel .dispatch-header {
  align-items: center;
  border-bottom: 1px solid rgba(23,61,49,.09);
  padding-bottom: 12px;
}

.dispatch-top-row {
  display: grid;
  grid-template-columns: minmax(150px, .75fr) minmax(150px, .8fr) minmax(160px, .8fr) minmax(240px, 1.4fr);
  gap: .7rem;
  align-items: end;
}

.dispatch-top-row label,
.dispatch-search {
  display: grid;
  gap: .25rem;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
}

.dispatch-top-row input,
.dispatch-top-row select,
.dispatch-search input {
  width: 100%;
  min-height: 42px;
}

#tasksPanel .dispatch-metrics {
  grid-template-columns: repeat(5, minmax(110px, 1fr));
}

.task-workspace-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  border-top: 1px solid rgba(23,61,49,.08);
  padding-top: .8rem;
}

.dispatch-workspace {
  min-height: 260px;
}

.dispatch-focus-view {
  display: grid;
  gap: .8rem;
}

#tasksPanel .dispatch-critical-strip {
  border-radius: 12px;
}

#tasksPanel .dispatch-timeline {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

#tasksPanel .dispatch-timeline article {
  min-height: 210px;
}

#tasksPanel .dispatch-timeline button {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: .25rem .55rem;
  align-items: start;
  min-height: 58px;
}

#tasksPanel .dispatch-timeline button span,
#tasksPanel .dispatch-timeline button small {
  min-width: 0;
  overflow-wrap: anywhere;
}

#tasksPanel .dispatch-timeline button small {
  grid-column: 2;
  color: var(--muted);
  font-size: .75rem;
}

#tasksPanel .dispatch-kanban {
  grid-template-columns: repeat(5, minmax(220px, 1fr));
  overflow-x: auto;
  padding-bottom: .4rem;
}

.dispatch-staff-workload {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: .8rem;
}

.dispatch-staff-card {
  display: grid;
  gap: .55rem;
  border: 1px solid rgba(23,61,49,.12);
  border-radius: 14px;
  background: #fff;
  padding: .85rem;
}

.dispatch-staff-card header,
.dispatch-staff-card button {
  display: flex;
  justify-content: space-between;
  gap: .7rem;
  align-items: flex-start;
}

.dispatch-staff-card strong,
.dispatch-staff-card small,
.dispatch-staff-card span {
  display: block;
}

.dispatch-staff-card small {
  color: var(--muted);
}

.dispatch-staff-card button {
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 10px;
  background: #fbfaf5;
  color: var(--forest);
  padding: .55rem .65rem;
  text-align: left;
  cursor: pointer;
}

.task-detail-overlay {
  position: fixed;
  inset: 0;
  z-index: 240;
  display: flex;
  justify-content: flex-end;
  background: rgba(13,31,24,.28);
}

.task-detail-scrim {
  position: absolute;
  inset: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

#tasksPanel .task-detail-panel {
  position: relative;
  z-index: 1;
  width: min(440px, calc(100vw - 1rem));
  height: 100%;
  max-height: none;
  overflow: auto;
  border-radius: 22px 0 0 22px;
  border: 0;
  box-shadow: -22px 0 60px rgba(0,0,0,.22);
}

body.task-detail-open,
body:has(.task-detail-overlay) {
  overflow: hidden;
}

@media (max-width: 900px) {
  .dispatch-top-row,
  #tasksPanel .dispatch-metrics,
  #tasksPanel .dispatch-timeline {
    grid-template-columns: 1fr;
  }

  #tasksPanel .dispatch-header {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 760px) {
  body:has(#adminApp) .topbar .topbar-actions {
    display: flex !important;
  }

  #adminMenuToggle.admin-menu-toggle {
    display: inline-flex !important;
  }

  #adminApp .streamlined-admin-tabs.is-open,
  body.admin-mobile-nav-open #adminApp .streamlined-admin-tabs {
    width: auto;
    max-width: none;
  }

  .admin-more-menu,
  .admin-more-panel {
    position: static;
    width: 100%;
  }

  .admin-more-summary {
    justify-content: center;
    width: 100%;
    border-radius: 14px;
  }

  .admin-more-panel {
    grid-template-columns: 1fr;
    margin-top: .45rem;
    box-shadow: none;
  }

  .task-detail-overlay {
    align-items: flex-end;
    justify-content: stretch;
    padding-top: 20vh;
  }

  #tasksPanel .task-detail-panel {
    width: 100%;
    height: min(82vh, 720px);
    border-radius: 22px 22px 0 0;
    box-shadow: 0 -18px 54px rgba(0,0,0,.24);
  }
}

/* Final admin shell overrides kept at the end to win over older versioned admin CSS. */
#adminApp .compact-admin-hero {
  min-height: 0;
  padding: clamp(18px, 3vw, 30px);
  align-items: center;
  border-radius: 14px;
}

#adminApp .compact-admin-hero h1 {
  max-width: 780px;
  font-size: clamp(2rem, 3.4vw, 3rem);
  line-height: 1.03;
}

#adminApp .compact-admin-hero .hero-lede {
  max-width: 760px;
  font-size: 1rem;
}

#adminApp .admin-utility-actions {
  align-self: center;
  justify-content: flex-end;
  padding: .55rem;
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 12px;
  background: rgba(255,253,248,.78);
}

#adminApp .streamlined-admin-tabs {
  gap: .45rem;
  padding: .45rem;
  border: 1px solid rgba(23,61,49,.1);
  border-radius: 14px;
}

#adminApp .streamlined-admin-tabs > .tab,
#adminApp .admin-more-summary {
  border-radius: 10px;
  min-height: 40px;
  padding: .65rem .85rem;
}

#adminApp .admin-more-panel {
  grid-template-columns: repeat(5, minmax(150px, 1fr));
  width: min(940px, calc(100vw - 2rem));
  align-items: start;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
}

#adminApp .admin-more-group {
  display: grid;
  gap: .35rem;
  min-width: 0;
}

#adminApp .admin-more-group h3 {
  margin: 0 0 .25rem;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
}

#adminApp .admin-more-group .tab {
  min-height: 38px;
  padding: .55rem .7rem;
  font-size: .86rem;
}

#adminApp .metrics-grid {
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  align-items: stretch;
}

#adminApp .metric-button {
  display: grid;
  gap: .2rem;
  min-height: 84px;
  text-align: left;
  border-radius: 12px;
}

#adminApp .metric-button span {
  overflow-wrap: anywhere;
}

#adminApp .metric-button small {
  align-self: end;
  color: var(--forest);
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
}

#guestsPanel .guest-status-card:has(.stay-checked-in) {
  border-left: 5px solid #2f7d4f;
}

#guestsPanel .guest-status-card:has(.stay-upcoming) {
  border-left: 5px solid #2f6fa8;
}

#guestsPanel .guest-status-card:has(.stay-checked-out),
#guestsPanel .guest-status-card:has(.stay-archived) {
  border-left: 5px solid #7a7468;
  background: #faf8f1;
}

#requestsPanel .triage-command-card + .card {
  border-style: dashed;
  background: rgba(255,253,248,.68);
}

#requestsPanel .triage-command-card + .card .section-heading .eyebrow::after {
  content: " / supporting";
}

#dashboardPanel .today-ops-queue {
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

@media (max-width: 1100px) {
  #adminApp .admin-more-panel {
    grid-template-columns: repeat(3, minmax(160px, 1fr));
  }
}

@media (max-width: 760px) {
  #adminApp .compact-admin-hero {
    padding: 16px;
  }

  #adminApp .compact-admin-hero h1 {
    font-size: 2rem;
  }

  #adminApp .admin-utility-actions {
    width: 100%;
    justify-content: stretch;
  }

  #adminApp .admin-utility-actions .btn {
    flex: 1 1 0;
  }

  #adminApp .streamlined-admin-tabs.is-open,
  body.admin-mobile-nav-open #adminApp .streamlined-admin-tabs {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
    position: fixed;
    left: 10px;
    right: 10px;
    top: 74px;
    z-index: 90;
    max-height: 72vh;
    overflow: auto;
    width: auto;
    max-width: none;
    background: rgba(255,253,248,.98);
    box-shadow: 0 22px 70px rgba(23,61,49,.22);
  }

  #adminApp .streamlined-admin-tabs.is-open > .tab,
  body.admin-mobile-nav-open #adminApp .streamlined-admin-tabs > .tab,
  #adminApp .admin-more-summary {
    width: 100%;
    justify-content: center;
  }

  #adminApp .admin-more-menu,
  #adminApp .admin-more-panel {
    grid-column: 1 / -1;
  }

  #adminApp .admin-more-panel {
    grid-template-columns: 1fr;
    width: 100%;
    padding: .6rem;
    transform: none;
  }
}
