@charset "UTF-8";
/*
  HitchRoute's AdminCTL token file — the ONLY file that carries brand colors/type.
  Loaded AFTER the compiled AdminCTL structural bundle (vendor/adminctl/adminctl.css), so these
  declarations win the cascade for every --brand-* and --bs-* custom property, even though the vendor
  bundle happens to also contain Mastakel's default token values (Vite merged them together at
  AdminCTL's own build time — harmless here since CSS custom properties resolve last-declared-wins
  for equal specificity, and both files target :root).
*/

:root {
  /* ---- Layer 1: brand ---- */
  --brand-1: #1E6F5E; /* Primary — Pine Green: buttons, links, active nav, focus ring */
  --brand-1-rgb: 30, 111, 94;
  --brand-2: #0F1F2E; /* Secondary — Deep Navy: header/sidebar chrome, body text */
  --brand-2-rgb: 15, 31, 46;
  --brand-3: #5B636B; /* Tertiary — Slate Gray: muted text, badges */
  --brand-3-rgb: 91, 99, 107;
  --brand-4: #E8A93A; /* Quaternary — Sunset Gold: accent/CTA highlight */
  --brand-4-rgb: 232, 169, 58;

  /* ---- Layer 3: structure ---- */
  --surface-bg: #F7F8FA;   /* Cloud White — page background */
  --surface-ink: #0F1F2E;  /* Deep Navy — page text on light bg */
  --header-bg: #F7F8FA;
  --header-ink: #0F1F2E;
  --sidebar-bg: #0F1F2E;   /* Deep Navy — dark sidebar */
  --sidebar-ink: #F7F8FA;
  --radius-base: 0.5rem;

  /* ---- Typography ---- */
  --bs-body-font-family: 'Poppins', system-ui, -apple-system, sans-serif;

  /* ---- Bridge: global Bootstrap variables ---- */
  --bs-primary: var(--brand-1);
  --bs-primary-rgb: var(--brand-1-rgb);
  --bs-primary-text-emphasis: color-mix(in srgb, var(--brand-1) 80%, black);
  --bs-primary-bg-subtle: color-mix(in srgb, var(--brand-1) 15%, white);
  --bs-primary-border-subtle: color-mix(in srgb, var(--brand-1) 40%, white);

  --bs-secondary: var(--brand-2);
  --bs-secondary-rgb: var(--brand-2-rgb);
  --bs-secondary-text-emphasis: color-mix(in srgb, var(--brand-2) 80%, black);
  --bs-secondary-bg-subtle: color-mix(in srgb, var(--brand-2) 15%, white);
  --bs-secondary-border-subtle: color-mix(in srgb, var(--brand-2) 40%, white);

  --bs-tertiary: var(--brand-3);
  --bs-tertiary-rgb: var(--brand-3-rgb);
  --bs-quaternary: var(--brand-4);
  --bs-quaternary-rgb: var(--brand-4-rgb);

  --bs-link-color: var(--brand-1);
  --bs-link-color-rgb: var(--brand-1-rgb);
  --bs-link-hover-color: color-mix(in srgb, var(--brand-1) 85%, black);
  --bs-link-hover-color-rgb: var(--brand-1-rgb);

  --bs-body-bg: var(--surface-bg);
  --bs-body-color: var(--surface-ink);

  --bs-border-radius: var(--radius-base);
  --bs-border-radius-sm: calc(var(--radius-base) * 0.7);
  --bs-border-radius-lg: calc(var(--radius-base) * 1.4);
  --bs-border-radius-xl: calc(var(--radius-base) * 2);
  --bs-border-radius-pill: 50rem;
}

/* ---- Bridge: component-scoped variables Bootstrap doesn't chain automatically ---- */

.btn-primary {
  --bs-btn-bg: var(--brand-1);
  --bs-btn-border-color: var(--brand-1);
  --bs-btn-hover-bg: color-mix(in srgb, var(--brand-1) 85%, black);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--brand-1) 80%, black);
  --bs-btn-active-bg: color-mix(in srgb, var(--brand-1) 75%, black);
  --bs-btn-active-border-color: color-mix(in srgb, var(--brand-1) 70%, black);
  --bs-btn-disabled-bg: var(--brand-1);
  --bs-btn-disabled-border-color: var(--brand-1);
  --bs-btn-focus-shadow-rgb: var(--brand-1-rgb);
}
.btn-outline-primary {
  --bs-btn-color: var(--brand-1);
  --bs-btn-border-color: var(--brand-1);
  --bs-btn-hover-bg: var(--brand-1);
  --bs-btn-hover-border-color: var(--brand-1);
  --bs-btn-active-bg: var(--brand-1);
  --bs-btn-active-border-color: var(--brand-1);
  --bs-btn-disabled-color: var(--brand-1);
  --bs-btn-disabled-border-color: var(--brand-1);
  --bs-btn-focus-shadow-rgb: var(--brand-1-rgb);
}
.btn-secondary {
  --bs-btn-bg: var(--brand-2);
  --bs-btn-border-color: var(--brand-2);
  --bs-btn-hover-bg: color-mix(in srgb, var(--brand-2) 85%, black);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--brand-2) 80%, black);
  --bs-btn-active-bg: color-mix(in srgb, var(--brand-2) 75%, black);
  --bs-btn-active-border-color: color-mix(in srgb, var(--brand-2) 70%, black);
  --bs-btn-disabled-bg: var(--brand-2);
  --bs-btn-disabled-border-color: var(--brand-2);
}
.btn-outline-secondary {
  --bs-btn-color: var(--brand-2);
  --bs-btn-border-color: var(--brand-2);
  --bs-btn-hover-bg: var(--brand-2);
  --bs-btn-hover-border-color: var(--brand-2);
  --bs-btn-active-bg: var(--brand-2);
  --bs-btn-active-border-color: var(--brand-2);
}

.form-control:focus,
.form-select:focus {
  border-color: color-mix(in srgb, var(--brand-1) 50%, white);
  box-shadow: 0 0 0 0.25rem rgba(var(--brand-1-rgb), 0.25);
}

.page-link {
  --bs-pagination-active-bg: var(--brand-1);
  --bs-pagination-active-border-color: var(--brand-1);
  --bs-pagination-color: var(--brand-1);
  --bs-pagination-hover-color: color-mix(in srgb, var(--brand-1) 85%, black);
}

.badge.text-bg-tertiary,
.badge.bg-tertiary {
  background-color: var(--brand-3) !important;
  color: #FFFFFF !important;
}

.auth-brand {
  color: var(--brand-1);
  font-weight: 700;
}

.auth-card--wide {
  max-width: 440px;
}

.site-brand {
  color: var(--brand-1);
  font-weight: 700;
  text-decoration: none;
}

.customer-menu-toggle {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  overflow: hidden;
  border: 2px solid color-mix(in srgb, var(--brand-1) 45%, white);
  border-radius: 50%;
  background: var(--surface-bg);
  color: var(--brand-1);
  box-shadow: 0 2px 8px rgba(var(--brand-2-rgb), 0.12);
}

.customer-menu-toggle:hover,
.customer-menu-toggle:focus-visible {
  border-color: var(--brand-1);
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(var(--brand-1-rgb), 0.16);
}

.customer-menu-toggle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Customer top nav (site-header): a plain flex row on desktop, collapsing into an
   off-canvas panel below the lg breakpoint (see site-nav.js for the open/close JS). */
.site-nav-backdrop {
  display: none;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 1rem;
}

@media (max-width: 991.98px) {
  .site-nav {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1050;
    display: block;
    width: min(280px, 80vw);
    height: 100vh;
    height: 100dvh;
    margin: 0;
    padding: calc(3.5rem + env(safe-area-inset-top, 0px)) 1.25rem calc(7rem + env(safe-area-inset-bottom, 0px));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    background: var(--surface-bg);
    box-shadow: -8px 0 24px rgba(0, 0, 0, 0.2);
    transform: translateX(100%);
    transition: transform 0.2s ease;
  }

  .site-nav .nav {
    flex-direction: column;
    gap: 0.25rem;
  }

  .site-nav > button,
  .site-nav > a.btn {
    width: 100%;
    margin-top: 0.5rem;
  }

  .site-shell.site-nav-open .site-nav {
    transform: translateX(0);
  }

  .site-shell.site-nav-open .site-nav-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: rgba(0, 0, 0, 0.4);
  }
}

.wallet-card-tile {
  border: 1px solid rgba(var(--brand-2-rgb), 0.15);
}

.container-narrow {
  max-width: 560px;
}

.min-w-220 {
  min-width: 220px;
}

.w-limit {
  width: 6rem;
}

.discovery-log {
  max-height: 400px;
  overflow: auto;
}

.review-photo-thumb {
  width: 100px;
  height: 75px;
  object-fit: cover;
  border-radius: var(--radius-base);
  border: 1px solid rgba(var(--brand-2-rgb), 0.15);
}

/* Stripe Elements mounts an iframe inside this div — styled to match a Bootstrap .form-control */
.card-element-container {
  padding: 0.6rem 0.75rem;
  border: 1px solid var(--bs-border-color, #ced4da);
  border-radius: var(--bs-border-radius);
  background: var(--surface-bg);
}
.card-element-container.StripeElement--focus {
  border-color: color-mix(in srgb, var(--brand-1) 50%, white);
  box-shadow: 0 0 0 0.25rem rgba(var(--brand-1-rgb), 0.25);
}
.card-element-container.StripeElement--invalid {
  border-color: #dc3545;
}

/* Customer campground marketplace */
.campground-search-form {
  width: min(100%, 360px);
}

.campground-searches {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: end;
  gap: 0.75rem;
}

.campground-search-box {
  min-width: 0;
}

.campground-search-divider {
  padding-bottom: 0.45rem;
  color: var(--brand-3);
  font-size: 0.8rem;
  text-transform: uppercase;
}

.campground-results {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr));
  gap: 1rem;
}
.campground-card--partner{border-color:rgba(30,111,94,.32);box-shadow:0 9px 25px rgba(30,111,94,.1)}
.campground-partner-label{display:flex;align-items:center;gap:.3rem;margin:-.05rem 0 .3rem;color:#1e6f5e;font-size:.68rem;font-weight:700;letter-spacing:.02em}
.campground-partner-label i{color:#1e6f5e;font-size:.8rem}
.nearby-map-marker--partner{background:#efa928!important;color:#0d2535!important;border-color:#fff!important;box-shadow:0 3px 12px rgba(13,37,53,.35)}
.campground-map-partner{display:block;margin:.1rem 0;color:#1e6f5e;font-size:.68rem;font-weight:700}.campground-map-partner i{margin-right:.2rem}
.campground-view-toggle{display:inline-flex;padding:.2rem;border:1px solid rgba(var(--brand-2-rgb),.12);border-radius:999px;background:#f3f6f5}.campground-view-toggle button{display:flex;align-items:center;gap:.35rem;padding:.4rem .7rem;border:0;border-radius:999px;background:transparent;color:var(--brand-3);font-size:.72rem;font-weight:600}.campground-view-toggle button.active{background:#fff;color:var(--brand-1);box-shadow:0 2px 8px rgba(var(--brand-2-rgb),.1)}.campground-results-map{position:relative;z-index:1;height:clamp(350px,58vh,610px);overflow:hidden;border:1px solid rgba(var(--brand-2-rgb),.12);border-radius:var(--bs-border-radius-lg);background:#e5f1ed}.campground-map-popup strong,.campground-map-popup span{display:block}.campground-map-popup span{margin:.15rem 0 .45rem;color:#5f6c74;font-size:.75rem}.campground-map-popup a{color:var(--brand-1);font-weight:700}.campground-results-map[hidden]{display:none!important}

.campground-card {
  overflow: hidden;
  border: 1px solid rgba(var(--brand-2-rgb), 0.15);
  border-radius: var(--bs-border-radius-lg);
  background: #fff;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.campground-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(var(--brand-2-rgb), 0.12);
}

.campground-card-link {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr) auto;
  align-items: stretch;
  min-height: 150px;
  color: inherit;
  text-decoration: none;
}

.campground-card-media {
  display: grid;
  place-items: center;
  overflow: hidden;
  background: color-mix(in srgb, var(--brand-1) 12%, white);
  color: var(--brand-1);
  font-size: 2rem;
}

.campground-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.campground-card-body {
  min-width: 0;
  padding: 1rem;
}

.campground-card-description {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.campground-card-meta,
.space-feature-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.8rem;
}

.campground-card-arrow {
  align-self: center;
  padding-right: 0.75rem;
  color: var(--brand-1);
}

.campground-gallery {
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-auto-rows: 180px;
  gap: 0.5rem;
  overflow: hidden;
  max-height: 368px;
  border-radius: var(--bs-border-radius-lg);
}

.campground-gallery-item {
  position: relative;
  padding: 0;
  overflow: hidden;
  border: 0;
  background: rgba(var(--brand-2-rgb), 0.08);
  cursor: zoom-in;
}

.campground-gallery-item--primary {
  grid-row: span 2;
}

.campground-gallery img,
.space-card-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.campground-hero-placeholder {
  display: grid;
  place-items: center;
  min-height: 260px;
  border-radius: var(--bs-border-radius-lg);
  background: color-mix(in srgb, var(--brand-1) 12%, white);
  color: var(--brand-1);
  font-size: 4rem;
}

.campground-description {
  line-height: 1.7;
}

.amenity-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.75rem 1rem;
}

.space-card {
  overflow: hidden;
}

.space-card-image {
  min-height: 210px;
}

.campground-contact-card {
  position: sticky;
  top: 1rem;
}

.gallery-more {
  position: absolute;
  right: 0.75rem;
  bottom: 0.75rem;
  padding: 0.4rem 0.65rem;
  border-radius: 999px;
  background: rgba(15, 31, 46, 0.82);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
}

.lightbox-open {
  overflow: hidden;
}

.gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  grid-template-columns: minmax(3rem, 0.1fr) minmax(0, 1fr) minmax(3rem, 0.1fr);
  place-items: center;
  padding: 4rem 1rem 1rem;
  background: rgba(5, 13, 19, 0.96);
  color: #fff;
  touch-action: pan-y;
}

.gallery-lightbox[hidden] {
  display: none;
}

.gallery-lightbox-toolbar {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1rem;
  font-size: 0.85rem;
}

.gallery-lightbox button {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.gallery-lightbox-toolbar button {
  margin-left: auto;
}

.gallery-lightbox figure {
  grid-column: 2;
  max-width: 100%;
  max-height: 100%;
  margin: 0;
  text-align: center;
}

.gallery-lightbox figure img {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 8rem);
  margin: auto;
  object-fit: contain;
}

.gallery-lightbox figcaption {
  padding-top: 0.6rem;
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.8rem;
}

.gallery-lightbox-prev { grid-column: 1; }
.gallery-lightbox-next { grid-column: 3; }

.spaces-cta-icon {
  display: grid;
  place-items: center;
  flex: 0 0 3.25rem;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 1rem;
  background: color-mix(in srgb, var(--brand-1) 14%, white);
  color: var(--brand-1);
  font-size: 1.35rem;
}

.container-spaces {
  max-width: 980px;
}

.space-list-grid {
  display: grid;
  gap: 1rem;
}

.space-list-card {
  display: grid;
  grid-template-columns: minmax(190px, 0.34fr) minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(var(--brand-2-rgb), 0.13);
  border-radius: var(--bs-border-radius-lg);
  background: #fff;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.space-list-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(var(--brand-2-rgb), 0.1);
}

.space-list-media {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 210px;
  overflow: hidden;
  background: color-mix(in srgb, var(--brand-1) 12%, white);
  color: var(--brand-1);
  font-size: 2.2rem;
}

.space-list-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.space-list-media > span {
  position: absolute;
  right: 0.65rem;
  bottom: 0.65rem;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  background: rgba(15, 31, 46, 0.78);
  color: #fff;
  font-size: 0.7rem;
}

.space-reaction-badge {
  position: absolute;
  top: 0.65rem;
  left: 0.65rem;
  padding: 0.3rem 0.55rem;
  border-radius: 999px;
  background: #fff;
  color: var(--brand-1);
  font-size: 0.7rem;
  box-shadow: 0 4px 14px rgba(var(--brand-2-rgb), 0.15);
}

.space-reaction-badge.dislike { color: var(--brand-3); }

.space-list-body {
  min-width: 0;
  padding: 1.25rem;
}

.space-list-body strong small,
.space-detail-price small {
  display: block;
  color: var(--brand-3);
  font-size: 0.65rem;
  font-weight: 400;
  text-align: right;
}

.space-rating {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.space-rating span { color: var(--brand-4); font-weight: 600; }
.space-rating small { color: var(--brand-3); }
.space-detail-price { font-size: 1.4rem; }

.space-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 0.75rem;
}

.space-detail-grid > span {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0 0.6rem;
  padding: 0.8rem;
  border-radius: var(--bs-border-radius);
  background: color-mix(in srgb, var(--brand-1) 7%, white);
  color: var(--brand-3);
  font-size: 0.75rem;
}

.space-detail-grid > span > i {
  grid-row: span 2;
  color: var(--brand-1);
  font-size: 1.1rem;
}

.space-detail-grid > span > b { color: var(--brand-2); }

@media (max-width: 575.98px) {
  .campground-search-form {
    width: 100%;
  }

  .campground-searches {
    grid-template-columns: 1fr;
  }

  .campground-search-divider {
    padding: 0;
    text-align: center;
  }

  .campground-card-link {
    grid-template-columns: 96px minmax(0, 1fr) auto;
  }

  .campground-gallery {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 150px;
  }

  .campground-gallery-item--primary {
    grid-column: span 2;
    grid-row: auto;
  }

  .gallery-lightbox {
    grid-template-columns: 1fr;
    padding-inline: 0;
  }

  .gallery-lightbox figure { grid-column: 1; }
  .gallery-lightbox-nav { position: absolute; bottom: 1rem; z-index: 1; }
  .gallery-lightbox-prev { left: 1rem; }
  .gallery-lightbox-next { right: 1rem; }

  .space-list-card {
    grid-template-columns: 1fr;
  }

  .space-list-media { min-height: 190px; }
}

/* Customer helpdesk */
.support-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem}.support-quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.support-quick-card{display:flex;align-items:center;gap:.85rem;padding:1rem;border:1px solid rgba(var(--brand-2-rgb),.1);border-radius:14px;background:#fff;color:inherit;text-align:left;box-shadow:0 5px 18px rgba(var(--brand-2-rgb),.04)}.support-quick-card:hover{border-color:var(--brand-1);background:rgba(var(--brand-1-rgb),.04)}.support-quick-card>i{display:grid;place-items:center;flex:0 0 2.7rem;height:2.7rem;border-radius:50%;background:rgba(var(--brand-1-rgb),.1);color:var(--brand-1)}.support-quick-card span{display:flex;min-width:0;flex-direction:column}.support-quick-card small{color:var(--brand-3);font-size:.7rem}.support-ticket-list{display:grid}.support-ticket-row{display:flex;align-items:center;gap:.8rem;padding:.9rem .25rem;border-bottom:1px solid rgba(var(--brand-2-rgb),.08);color:inherit;text-decoration:none}.support-ticket-row:last-child{border-bottom:0}.support-ticket-row:hover{color:inherit;background:rgba(var(--brand-1-rgb),.035)}.support-ticket-icon{display:grid;place-items:center;flex:0 0 2.7rem;height:2.7rem;border-radius:50%;background:rgba(var(--brand-1-rgb),.1);color:var(--brand-1)}.support-ticket-copy{min-width:0;flex:1}.support-ticket-copy strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.support-status{display:inline-flex;align-items:center;width:max-content;padding:.18rem .48rem;border-radius:999px;background:#e8eef1;color:#51616d;font-size:.65rem;font-weight:700;white-space:nowrap}.support-status--open{background:#fff1d6;color:#8a5a00}.support-status--pending{background:#e2f2ed;color:#166454}.support-status--resolved{background:#e9edf0;color:#53606a}.support-empty{padding:2rem;color:var(--brand-3);text-align:center}.support-thread-card{overflow:hidden}.support-thread-heading{padding:1rem 1.25rem;border-bottom:1px solid rgba(var(--brand-2-rgb),.1);background:#fff}.support-message-list{display:flex;overflow-y:auto;flex-direction:column;gap:.75rem;min-height:360px;max-height:58vh;padding:1rem;background:#f4f7f6}.support-message{display:flex}.support-message--customer{justify-content:flex-end}.support-message-bubble{max-width:min(82%,650px);padding:.75rem .9rem;border-radius:15px 15px 15px 4px;background:#fff;box-shadow:0 2px 10px rgba(var(--brand-2-rgb),.06)}.support-message--customer .support-message-bubble{border-radius:15px 15px 4px 15px;background:var(--brand-1);color:#fff}.support-message--system .support-message-bubble{max-width:100%;background:#e8eef1;color:#4c5c67}.support-message-meta{margin-bottom:.3rem;font-size:.65rem;font-weight:600;opacity:.72}.support-message-bubble p{margin:0;white-space:pre-wrap}.support-reply-form{padding:1rem;border-top:1px solid rgba(var(--brand-2-rgb),.1);background:#fff}.support-new-dialog{width:min(94vw,580px)}@media(max-width:767.98px){.support-hero{align-items:flex-start;flex-direction:column}.support-hero .btn{width:100%}.support-quick-grid{grid-template-columns:1fr}.support-ticket-row{padding:.85rem 0}.support-ticket-copy .d-flex{align-items:flex-start;flex-direction:column;gap:.25rem!important}.support-thread-page{margin-inline:-.75rem}.support-thread-card{border:0;border-radius:0}.support-message-list{min-height:calc(100dvh - 25rem)}.support-message-bubble{max-width:88%}}

/* Mobile app navigation and curated nearby discovery */
.customer-bottom-nav {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1030;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: 0.45rem 0.35rem calc(0.4rem + env(safe-area-inset-bottom));
  border-top: 1px solid rgba(var(--brand-2-rgb), 0.12);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 -8px 24px rgba(var(--brand-2-rgb), 0.09);
  backdrop-filter: blur(14px);
}

.customer-bottom-nav.has-active-stay { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.customer-bottom-nav a {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.3rem 0.15rem;
  border-radius: 0.75rem;
  color: var(--brand-3);
  font-size: 0.62rem;
  font-weight: 500;
  text-decoration: none;
}

.customer-bottom-nav a i { font-size: 1.1rem; }
.customer-bottom-nav a.active { color: var(--brand-1); background: color-mix(in srgb, var(--brand-1) 8%, white); }

@media (max-width: 390px) {
  .customer-bottom-nav { padding-inline: .2rem; }
  .customer-bottom-nav a { gap:.12rem; padding:.28rem .05rem; font-size:.56rem; }
  .customer-bottom-nav a i { font-size:1.02rem; }
}

/* Camper store */
.store-container { max-width: 1180px; }
.store-checkout-container { max-width: 1050px; }
.store-public-header { justify-content: space-between; }
.store-toolbar { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:1rem; }
.store-title { font-size:clamp(1.7rem, 4vw, 2.65rem); letter-spacing:-.04em; }
.store-eyebrow { color:var(--brand-1); font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.store-back-link { display:inline-flex; align-items:center; gap:.45rem; margin-bottom:1rem; font-size:.88rem; font-weight:600; text-decoration:none; }
.store-cart-button { display:flex; align-items:center; gap:.55rem; border:0; border-radius:999px; background:#102636; color:#fff; padding:.75rem 1rem; font-weight:600; box-shadow:0 10px 28px rgba(16,38,54,.18); }
.store-cart-button b { display:grid; place-items:center; min-width:1.45rem; height:1.45rem; border-radius:50%; background:var(--brand-2, #e9b949); color:#102636; font-size:.75rem; }
.store-member-note { display:inline-flex; align-items:center; gap:.45rem; margin-bottom:1.5rem; padding:.45rem .75rem; border-radius:999px; background:#e6f4ef; color:#176452; font-size:.78rem; font-weight:600; }
.store-member-note--guest { background:#fff7dc; color:#755a10; }
.store-loading { padding:4rem 1rem; color:#687482; text-align:center; }
.store-product-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:1.25rem; }
.store-product-card { display:flex; flex-direction:column; overflow:hidden; min-width:0; border:1px solid #e3e8e6; border-radius:1.2rem; background:#fff; color:inherit; text-decoration:none; box-shadow:0 9px 30px rgba(23,41,52,.07); transition:transform .18s ease, box-shadow .18s ease; }
.store-product-card:hover { color:inherit; transform:translateY(-3px); box-shadow:0 15px 38px rgba(23,41,52,.12); }
.store-product-image { display:grid; place-items:center; aspect-ratio:1/1; overflow:hidden; background:linear-gradient(145deg,#eef5f2,#f8f4e8); }
.store-product-image img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.store-product-card:hover .store-product-image img { transform:scale(1.025); }
.store-product-image > span { display:grid; place-items:center; width:5rem; height:5rem; border-radius:50%; background:#fff; color:var(--brand-1); font-size:2rem; }
.store-product-copy { display:flex; flex-direction:column; justify-content:space-between; flex:1; gap:1rem; padding:1rem 1.1rem 1.15rem; }
.store-product-copy h2 { margin:0 0 .35rem; font-size:1.05rem; }
.store-product-copy p { display:-webkit-box; overflow:hidden; margin:0; color:#687482; font-size:.84rem; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.store-product-price { display:flex; align-items:baseline; gap:.35rem; }
.store-product-price span { color:#7a8592; font-size:.7rem; text-transform:uppercase; }
.store-product-price strong { font-size:1.15rem; }
.store-product-price i { margin-left:auto; color:var(--brand-1); }
.store-empty-products,.store-empty-checkout { grid-column:1/-1; padding:4rem 1rem; text-align:center; color:#687482; }
.store-empty-products > i,.store-empty-checkout i { margin-bottom:1rem; color:var(--brand-1); font-size:2.5rem; }
.store-product-detail { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr); gap:clamp(1.5rem,4vw,4rem); align-items:start; }
.store-detail-main-image { display:grid; place-items:center; overflow:hidden; aspect-ratio:1/1; border-radius:1.25rem; background:linear-gradient(145deg,#eef5f2,#f8f4e8); }
.store-detail-main-image img { width:100%; height:100%; object-fit:contain; }
.store-detail-main-image > span { color:var(--brand-1); font-size:4rem; }
.store-detail-thumbs { display:flex; gap:.65rem; overflow:auto; padding:.75rem .1rem; }
.store-detail-thumbs button { flex:0 0 70px; overflow:hidden; aspect-ratio:1; padding:0; border:2px solid transparent; border-radius:.8rem; background:#fff; }
.store-detail-thumbs button.active { border-color:var(--brand-1); }
.store-detail-thumbs img { width:100%; height:100%; object-fit:cover; }
.store-detail-copy { position:sticky; top:1.5rem; padding-top:.5rem; }
.store-detail-copy h1 { font-size:clamp(1.8rem,4vw,2.7rem); letter-spacing:-.035em; }
.store-detail-description { color:#5f6d79; line-height:1.7; white-space:pre-line; }
.store-detail-price { margin:1.25rem 0; font-size:1.65rem; font-weight:700; }
.store-variant-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }
.store-variant-options label,.store-detail-quantity { font-size:.8rem; font-weight:600; }
.store-detail-quantity { flex:0 0 85px; }
.store-detail-quantity input { margin-top:.3rem; }
.store-cart-drawer { position:fixed; z-index:1052; top:0; right:0; display:flex; flex-direction:column; width:min(430px,100%); height:100dvh; background:#fff; box-shadow:-18px 0 60px rgba(12,28,38,.2); transform:translateX(105%); transition:transform .22s ease; }
.store-cart-drawer.is-open { transform:translateX(0); }
.store-drawer-backdrop { position:fixed; z-index:1051; inset:0; background:rgba(10,25,34,.48); backdrop-filter:blur(2px); }
.store-cart-open { overflow:hidden; }
.store-cart-header { display:flex; align-items:flex-start; justify-content:space-between; padding:1.25rem; border-bottom:1px solid #e8ecea; }
.store-cart-items { flex:1; overflow:auto; padding:.5rem 1.25rem; }
.store-cart-footer { padding:1.15rem 1.25rem calc(1.15rem + env(safe-area-inset-bottom)); border-top:1px solid #e8ecea; background:#fff; }
.store-cart-empty { display:grid; place-items:center; min-height:60vh; padding:2rem; text-align:center; color:#71808c; }
.store-cart-empty i { color:#c2cbc7; font-size:3rem; }
.store-cart-empty h3 { margin:.5rem 0 0; color:#263746; font-size:1rem; }
.store-cart-empty p { font-size:.85rem; }
.store-cart-item { display:flex; gap:.85rem; padding:1rem 0; border-bottom:1px solid #edf0ef; }
.store-cart-thumb { display:grid; place-items:center; overflow:hidden; flex:0 0 74px; height:74px; border-radius:.8rem; background:#eef4f1; color:var(--brand-1); }
.store-cart-thumb img { width:100%; height:100%; object-fit:cover; }
.store-cart-item strong,.store-cart-item small,.store-cart-item span { display:block; }
.store-cart-item small { margin:.15rem 0; color:#71808c; font-size:.7rem; }
.store-cart-item span { font-size:.83rem; font-weight:600; }
.store-quantity { display:flex; align-items:center; gap:.5rem; margin-top:.45rem; }
.store-quantity button:not(.store-remove-item) { display:grid; place-items:center; width:1.65rem; height:1.65rem; padding:0; border:1px solid #d9dfdc; border-radius:50%; background:#fff; font-size:.65rem; }
.store-remove-item { margin-left:.35rem; padding:0; border:0; background:transparent; color:#a23b35; font-size:.72rem; text-decoration:underline; }
.store-checkout-heading { margin:1rem 0 1.5rem; }
.store-checkout-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr); gap:1.25rem; align-items:start; }
.store-checkout-card,.store-order-summary { border:1px solid #e4e9e6; border-radius:1.1rem; box-shadow:0 10px 32px rgba(23,41,52,.06); }
.store-order-summary { position:sticky; top:1.25rem; }
.store-signed-in-check { display:flex; align-items:center; gap:.55rem; margin-bottom:1rem; padding:.8rem; border-radius:.8rem; background:#e9f5f1; color:#176452; font-size:.85rem; font-weight:600; }
.store-promo-box { margin:1rem 0; padding:1rem; border:1px dashed #b8c9c2; border-radius:.85rem; background:#fafcfb; }
.store-summary-item { display:grid; grid-template-columns:54px 1fr auto; gap:.7rem; align-items:center; padding:.65rem 0; }
.store-summary-thumb { position:relative; display:grid; place-items:center; overflow:visible; width:50px; height:50px; border-radius:.65rem; background:#edf4f1; color:var(--brand-1); }
.store-summary-thumb img { width:100%; height:100%; border-radius:.65rem; object-fit:cover; }
.store-summary-thumb b { position:absolute; top:-.4rem; right:-.4rem; display:grid; place-items:center; width:1.35rem; height:1.35rem; border-radius:50%; background:#263746; color:#fff; font-size:.65rem; }
.store-summary-item strong,.store-summary-item small { display:block; font-size:.8rem; }
.store-summary-item small { color:#71808c; font-size:.68rem; }
.store-summary-item > span { font-size:.8rem; font-weight:600; }
.store-summary-row,.store-summary-total { display:flex; justify-content:space-between; margin:.55rem 0; font-size:.85rem; }
.store-summary-total { align-items:baseline; margin-top:1rem; font-size:1rem; }
.store-summary-total strong { font-size:1.35rem; }
.store-secure-note { margin:.75rem 0 0; color:#73808c; font-size:.72rem; text-align:center; }
.store-secure-note i { font-size:1.2rem; vertical-align:middle; }
.store-order-result { max-width:700px; margin:2rem auto; border:0; box-shadow:0 12px 40px rgba(23,41,52,.08); }
.store-order-result [data-result-message] { max-width:560px; }
.store-result-icon { display:grid; place-items:center; width:5rem; height:5rem; margin:auto; border-radius:50%; background:#dff4ec; color:var(--brand-1); font-size:2rem; }
.store-result-icon.is-processing { background:#fff3cf; color:#98701b; }

/* Camper rewards rank */
.profile-name-rank { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; margin-bottom:.25rem; }
.profile-rank { --rank-color:#1e6f5e; display:inline-flex; align-items:center; gap:.45rem; padding:.25rem .6rem .25rem .3rem; border:1px solid color-mix(in srgb,var(--rank-color) 30%,#dfe7e3); border-radius:999px; background:color-mix(in srgb,var(--rank-color) 8%,#fff); }
.profile-rank-badge { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; }
.profile-rank-badge img { width:36px; height:36px; object-fit:contain; }
.profile-rank-emoji { font-size:1.45rem; line-height:1; }
.profile-rank-copy strong,.profile-rank-copy small { display:block; line-height:1.15; }
.profile-rank-copy strong { color:var(--rank-color); font-size:.72rem; }
.profile-rank-copy small { margin-top:.12rem; color:#697681; font-size:.58rem; }

/* Earned camper ranks in the app header and reviews */
.customer-header-rank { display:inline-flex; align-items:center; gap:.4rem; margin-left:auto; padding:.2rem .55rem .2rem .25rem; border:1px solid #dce7e2; border-radius:999px; background:#f4f9f7; color:#1b594d; text-decoration:none; }
.customer-header-rank:hover { color:var(--brand-1); background:#eaf5f1; }
.customer-header-rank-badge { display:grid; place-items:center; width:32px; height:32px; font-size:1.25rem; line-height:1; }
.customer-header-rank-badge img { width:32px; height:32px; object-fit:contain; }
.customer-header-rank-copy small,.customer-header-rank-copy strong { display:block; line-height:1.05; }
.customer-header-rank-copy small { margin-bottom:.12rem; color:#78857f; font-size:.5rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
.customer-header-rank-copy strong { font-size:.66rem; white-space:nowrap; }
.reviewer-identity { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; }
.reviewer-rank { --review-rank-color:#1e6f5e; display:inline-flex; align-items:center; gap:.2rem; padding:.08rem .38rem .08rem .12rem; border:1px solid color-mix(in srgb,var(--review-rank-color) 25%,#dfe7e3); border-radius:999px; background:color-mix(in srgb,var(--review-rank-color) 7%,#fff); color:var(--review-rank-color); vertical-align:middle; }
.reviewer-rank-badge { display:grid; place-items:center; width:22px; height:22px; font-size:.9rem; line-height:1; }
.reviewer-rank-badge img { width:22px; height:22px; object-fit:contain; }
.reviewer-rank-label { font-size:.58rem; font-weight:700; white-space:nowrap; }
.profile-rewards-card { overflow:hidden; border-color:#dbe8e2; background:linear-gradient(145deg,#fff 55%,#f0f8f4); }
.profile-rewards-summary { display:flex; align-items:center; gap:1rem; }
.profile-stay-count { display:grid; place-items:center; flex:0 0 92px; min-height:92px; padding:.6rem; border-radius:1rem; background:#153d37; color:#fff; text-align:center; box-shadow:0 8px 22px rgba(21,61,55,.18); }
.profile-stay-count strong { font-size:2rem; line-height:1; }
.profile-stay-count span { margin-top:.25rem; font-size:.62rem; line-height:1.15; text-transform:uppercase; }
.profile-reward-progress { overflow:hidden; height:.65rem; border-radius:999px; background:#dfe8e4; }
.profile-reward-progress span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--brand-1),#dfad3f); transition:width .35s ease; }
.profile-stay-heading { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; margin-top:1.35rem; padding-top:1rem; border-top:1px solid #e4ebe8; font-size:.88rem; font-weight:700; }
.profile-stay-heading small { font-weight:400; }
.profile-stay-list { margin-top:.35rem; }
.profile-stay-row { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.85rem 0; border-bottom:1px solid #e9eeec; }
.profile-stay-row:last-child { border-bottom:0; }
.profile-stay-copy > * { display:block; }
.profile-stay-verified,.profile-stay-pending { width:max-content; margin-top:.25rem; padding:.15rem .45rem; border-radius:999px; font-size:.58rem; font-weight:700; }
.profile-stay-verified { background:#dff3eb; color:#176452; }
.profile-stay-pending { background:#fff0cf; color:#815d12; }
.profile-stay-actions { display:flex; justify-content:flex-end; gap:.4rem; flex-wrap:wrap; }
.profile-stay-empty { display:flex; align-items:center; gap:.65rem; margin-top:.75rem; padding:.8rem; border-radius:.75rem; background:#f1f5f3; color:#6a7771; font-size:.8rem; }
.profile-stay-empty i { color:var(--brand-1); }

/* One-shot campground check-in celebration */
.huck-checkin-celebration { position:fixed; z-index:2000; inset:0; display:flex; align-items:flex-end; justify-content:center; overflow:hidden; padding:0 .5rem calc(5rem + env(safe-area-inset-bottom)); pointer-events:none; background:rgba(8,25,31,.025); animation:huck-celebration-screen 9.8s linear both; }
.huck-checkin-celebration img { display:block; width:min(400px,96vw); max-height:calc(100dvh - 7rem); object-fit:contain; filter:drop-shadow(0 18px 26px rgba(0,0,0,.24)); }
.arrival-checkin-dialog { width:min(92vw,470px); padding:0; border:0; border-radius:1.25rem; background:#fff; box-shadow:0 24px 75px rgba(7,28,35,.3); }
.arrival-checkin-dialog::backdrop { background:rgba(8,25,31,.58); backdrop-filter:blur(2px); }
.arrival-checkin-dialog[open] { padding:1.25rem; animation:arrival-dialog-in .2s ease both; }
.arrival-checkin-hero { display:flex; align-items:center; gap:.8rem; margin-bottom:1rem; }
.arrival-checkin-hero > span { display:grid; place-items:center; flex:0 0 48px; width:48px; height:48px; border-radius:50%; background:#e3f3ed; color:var(--brand-1); font-size:1.25rem; }
.arrival-checkin-hero small { display:block; color:var(--brand-1); font-size:.62rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.arrival-checkin-hero h2 { margin:.1rem 0 0; font-size:1.12rem; }
.arrival-checkin-name { margin:0 0 .15rem; color:#132d38; font-size:1.2rem; font-weight:700; }
.arrival-checkin-actions { display:flex; justify-content:flex-end; gap:.6rem; }
@keyframes arrival-dialog-in { from { opacity:0; transform:translateY(12px) scale(.98); } to { opacity:1; transform:none; } }

/* Campsite filters */
.space-filter-panel { margin-bottom:1.25rem; padding:1rem; border:1px solid #dfe7e3; border-radius:1rem; background:#fff; box-shadow:0 8px 26px rgba(20,42,50,.055); }
.space-filter-primary { display:grid; grid-template-columns:minmax(180px,1.35fr) repeat(4,minmax(135px,1fr)); gap:.7rem; align-items:end; }
.space-filter-primary label > span { display:block; margin-bottom:.3rem; color:#56636d; font-size:.68rem; font-weight:700; text-transform:uppercase; }
.space-filter-secondary { display:flex; align-items:center; gap:1rem; margin-top:.75rem; padding-top:.7rem; border-top:1px solid #edf0ef; }
.space-filter-secondary .form-check { margin:0; font-size:.78rem; }
.space-filter-empty { padding:3rem 1rem; border:1px dashed #cbd6d1; border-radius:1rem; text-align:center; color:#6b7872; }
.space-filter-empty > i { margin-bottom:.75rem; color:#91a29a; font-size:2.2rem; }
.space-filter-empty p { margin-bottom:1rem; font-size:.85rem; }

/* Saved campgrounds and campsite preferences */
.container-favorites { max-width:1120px; }
.favorites-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; margin-bottom:1.25rem; }
.favorite-section-tabs { display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; margin-bottom:1.5rem; }
.favorite-section-tabs a { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.55rem; padding:.8rem; border:1px solid #dfe7e3; border-radius:.85rem; background:#fff; color:#32434d; text-decoration:none; }
.favorite-section-tabs a > i { color:var(--brand-1); }
.favorite-section-tabs a span { font-size:.75rem; font-weight:600; }
.favorite-section-tabs a b { display:grid; place-items:center; min-width:1.55rem; height:1.55rem; border-radius:50%; background:#e8f3ef; color:var(--brand-1); font-size:.68rem; }
.favorite-section { margin-bottom:2rem; scroll-margin-top:1rem; }
.favorite-section-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:.75rem; }
.favorite-section-heading > span { color:#79857f; font-size:.75rem; }
.favorite-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.favorite-item-card { display:grid; grid-template-columns:155px minmax(0,1fr); overflow:hidden; border:1px solid #e0e7e4; border-radius:1rem; background:#fff; box-shadow:0 8px 26px rgba(20,42,50,.06); }
.favorite-item-image { display:grid; place-items:center; min-height:190px; overflow:hidden; background:linear-gradient(145deg,#eaf4f0,#f7f3e6); color:var(--brand-1); font-size:2rem; }
.favorite-item-image img { width:100%; height:100%; object-fit:cover; }
.favorite-item-copy { display:flex; flex-direction:column; min-width:0; padding:.9rem; }
.favorite-item-copy > p { margin:0 0 .2rem; overflow:hidden; color:#718079; font-size:.65rem; text-overflow:ellipsis; white-space:nowrap; }
.favorite-item-copy h3 { margin:0 0 .35rem; font-size:1rem; }
.favorite-item-copy h3 a { color:inherit; text-decoration:none; }
.favorite-item-meta { display:flex; justify-content:space-between; align-items:center; gap:.5rem; color:#5d6b65; font-size:.72rem; }
.favorite-item-meta .fa-star { color:#dca72d; }
.favorite-item-meta strong { color:#21333d; font-size:.85rem; }
.favorite-item-meta small { font-size:.6rem; font-weight:400; }
.favorite-item-copy blockquote { display:flex; gap:.4rem; margin:.65rem 0 0; padding:.5rem; border-radius:.55rem; background:#f5f7f6; color:#596861; font-size:.68rem; }
.favorite-item-copy blockquote i { margin-top:.12rem; color:#8a9891; }
.favorite-item-actions { display:flex; justify-content:space-between; align-items:center; margin-top:auto; padding-top:.65rem; }
.favorite-empty { display:flex; align-items:center; gap:.7rem; padding:1rem; border:1px dashed #ccd7d2; border-radius:.8rem; color:#728078; }
.favorite-empty i { color:#9aaba3; }
.favorite-empty p { margin:0; font-size:.78rem; }

/* Customer notification badges and connectivity */
.customer-header-bell { position:relative; display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border:1px solid #dce6e2; border-radius:50%; background:#fff; color:#34514d; text-decoration:none; }
.customer-header-bell:hover { background:#edf6f2; color:var(--brand-1); }
.app-unread-badge,.app-nav-badge,.app-menu-badge { display:grid; place-items:center; border-radius:999px; background:#c93632; color:#fff; font-size:.57rem; font-weight:700; line-height:1; box-shadow:0 0 0 2px #fff; }
.app-unread-badge { position:absolute; top:-3px; right:-4px; min-width:1.15rem; height:1.15rem; padding:0 .22rem; }
.app-nav-badge { position:absolute; top:.35rem; left:calc(50% + .42rem); min-width:1.1rem; height:1.1rem; padding:0 .2rem; }
.app-menu-badge { display:inline-grid; min-width:1.2rem; height:1.2rem; margin-left:auto; padding:0 .25rem; box-shadow:none; }
.site-nav .nav-link { display:flex; align-items:center; }
.customer-bottom-nav a { position:relative; }
.customer-offline-banner { position:fixed; z-index:1048; right:1rem; bottom:calc(5.4rem + env(safe-area-inset-bottom)); display:flex; align-items:center; gap:.7rem; width:min(390px,calc(100vw - 2rem)); padding:.75rem .9rem; border:1px solid #e7c56d; border-radius:.85rem; background:#fff7dc; color:#624b15; box-shadow:0 12px 35px rgba(32,42,37,.17); }
.customer-offline-banner > i { font-size:1.2rem; }
.customer-offline-banner strong,.customer-offline-banner span { display:block; }
.customer-offline-banner strong { font-size:.78rem; }
.customer-offline-banner span { font-size:.65rem; }
.image-load-failed { padding:12%; background:#eef4f1; object-fit:contain !important; }

/* Shared loading and empty states */
.app-loading-skeleton { display:grid; gap:.7rem; }
.app-loading-skeleton span { display:block; height:88px; overflow:hidden; border-radius:.85rem; background:linear-gradient(90deg,#edf1ef 25%,#f8faf9 42%,#edf1ef 60%); background-size:300% 100%; animation:app-skeleton 1.35s ease infinite; }
@keyframes app-skeleton { from { background-position:100% 0; } to { background-position:0 0; } }
.app-empty-state { padding:3.5rem 1rem; border:1px dashed #cbd7d1; border-radius:1rem; background:#fbfcfc; color:#69766f; text-align:center; }
.app-empty-state > i { margin-bottom:.8rem; color:#94a59c; font-size:2.5rem; }
.app-empty-state h2 { color:#263940; font-size:1.05rem; }
.app-empty-state p { font-size:.8rem; }

/* Store shipping and customer order history */
.store-shipping-fields { margin:1.25rem 0; padding:1.25rem 0 0; border:0; border-top:1px solid #e6ebe8; }
.store-shipping-fields legend { float:none; width:auto; margin:0 0 .2rem; }
.container-orders { max-width:980px; }
.customer-order-list { display:grid; gap:.7rem; }
.customer-order-card { display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:.85rem; padding:1rem; border:1px solid #dfe7e3; border-radius:.9rem; background:#fff; color:#24353e; text-decoration:none; box-shadow:0 7px 24px rgba(20,42,50,.05); transition:transform .15s ease,box-shadow .15s ease; }
.customer-order-card:hover { color:#24353e; transform:translateY(-1px); box-shadow:0 11px 28px rgba(20,42,50,.09); }
.customer-order-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:.75rem; background:#e8f3ef; color:var(--brand-1); }
.customer-order-copy small,.customer-order-copy strong,.customer-order-copy span { display:block; }
.customer-order-copy small { color:#77847e; font-size:.62rem; }
.customer-order-copy strong { font-size:.9rem; }
.customer-order-copy span { color:#61706a; font-size:.7rem; }
.customer-order-status { display:inline-flex; align-items:center; gap:.3rem; width:max-content; padding:.27rem .55rem; border-radius:999px; background:#eef1f0; color:#596760; font-size:.64rem; font-weight:700; }
.customer-order-status.paid { background:#dff3eb; color:#176452; }
.customer-order-status.shipped { background:#e2eefb; color:#245b8c; }
.customer-order-status.pending { background:#fff0cf; color:#815d12; }
.customer-order-status.cancelled { background:#f8e3e1; color:#9b332e; }
.order-detail-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr); gap:1rem; align-items:start; }
.order-detail-main,.order-shipping-card { border-color:#dfe7e3; border-radius:1rem; }
.order-detail-top { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; margin-bottom:1rem; }
.order-detail-top small { color:#78857f; font-size:.65rem; }
.order-detail-top h2 { margin:.1rem 0 0; font-size:1.15rem; }
.order-tracking-box { display:flex; align-items:center; gap:.7rem; margin-bottom:1rem; padding:.8rem; border-radius:.75rem; background:#edf6fb; color:#275c78; }
.order-tracking-box > i { font-size:1.2rem; }
.order-tracking-box div { min-width:0; flex:1; }
.order-tracking-box small,.order-tracking-box strong { display:block; }
.order-tracking-box small { font-size:.6rem; }
.order-tracking-box strong { overflow:hidden; font-size:.75rem; text-overflow:ellipsis; }
.order-line-items { border-top:1px solid #e8ecea; }
.order-line-item { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; padding:.85rem 0; border-bottom:1px solid #e8ecea; }
.order-line-item strong,.order-line-item small { display:block; }
.order-line-item strong { font-size:.8rem; }
.order-line-item small { margin:.15rem 0; color:#74817b; font-size:.65rem; }
.order-line-item > span { font-size:.72rem; white-space:nowrap; }
.order-totals { width:min(310px,100%); margin:1rem 0 0 auto; }
.order-totals > div { display:flex; justify-content:space-between; padding:.2rem 0; font-size:.73rem; }
.order-totals > div:last-child { margin-top:.3rem; padding-top:.55rem; border-top:1px solid #dfe5e2; font-size:.88rem; }
.order-shipping-card { position:sticky; top:1rem; }
.order-shipping-card address { font-size:.75rem; line-height:1.65; }

/* In-app notification inbox */
.container-notifications { max-width:820px; }
.notification-inbox { display:grid; gap:.55rem; }
.notification-inbox-item { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.8rem; padding:.9rem 1rem; border:1px solid #dfe7e3; border-radius:.9rem; background:#fff; box-shadow:0 6px 20px rgba(20,42,50,.045); }
.notification-inbox-item[data-notification-url]:not([data-notification-url=""]) { cursor:pointer; }
.notification-inbox-item.unread { border-color:#b8d8cc; background:#f3faf7; }
.notification-inbox-item:focus-visible { outline:3px solid color-mix(in srgb,var(--brand-1) 35%,transparent); outline-offset:2px; }
.notification-category-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:#e8f3ef; color:var(--brand-1); }
.notification-title-line { display:flex; align-items:center; gap:.45rem; }
.notification-title-line strong { font-size:.8rem; }
.notification-title-line b { padding:.12rem .35rem; border-radius:999px; background:var(--brand-1); color:#fff; font-size:.5rem; text-transform:uppercase; }
.notification-inbox-item p { margin:.18rem 0; color:#5f6e67; font-size:.7rem; }
.notification-inbox-item small { color:#87928d; font-size:.6rem; }
@keyframes huck-celebration-screen {
  0%,100% { opacity:0; }
  2%,96% { opacity:1; }
}
@media (prefers-reduced-motion: reduce) {
  .huck-checkin-celebration { animation-duration:9.8s; }
}

@media (max-width: 767.98px) {
  .store-toolbar { align-items:flex-start; gap:1rem; }
  .store-cart-button span { display:none; }
  .store-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
  .store-product-copy { padding:.8rem; }
  .store-product-copy h2 { font-size:.92rem; }
  .store-product-detail,.store-checkout-grid { grid-template-columns:1fr; }
  .store-detail-copy,.store-order-summary { position:static; }
  .store-variant-options { grid-template-columns:1fr; }
  .store-checkout-container { padding-bottom:7rem !important; }
  .customer-header-rank-copy { display:none; }
  .customer-header-rank { padding:.15rem; }
  .profile-rewards-summary { align-items:flex-start; }
  .profile-stay-count { flex-basis:76px; min-height:76px; }
  .profile-stay-count strong { font-size:1.6rem; }
  .profile-stay-heading,.profile-stay-row { align-items:flex-start; flex-direction:column; }
  .profile-stay-actions { justify-content:flex-start; }
  .space-filter-primary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .space-filter-primary label:first-child { grid-column:1/-1; }
  .space-filter-secondary { align-items:flex-start; flex-wrap:wrap; }
  .space-filter-secondary [data-space-count] { width:100%; margin-left:0 !important; }
  .favorites-heading { flex-direction:column; }
  .favorite-section-tabs { grid-template-columns:1fr; }
  .favorite-card-grid { grid-template-columns:1fr; }
  .customer-order-card { grid-template-columns:auto 1fr auto; }
  .customer-order-card > .customer-order-status { grid-column:2; }
  .customer-order-card > .fa-chevron-right { grid-column:3; grid-row:1/3; }
  .order-detail-grid { grid-template-columns:1fr; }
  .order-shipping-card { position:static; }
  .notification-inbox-item { align-items:flex-start; }
}

@media (max-width: 460px) {
  .space-filter-primary { grid-template-columns:1fr; }
  .space-filter-primary label:first-child { grid-column:auto; }
  .favorite-item-card { grid-template-columns:112px minmax(0,1fr); }
  .favorite-item-image { min-height:175px; }
}

@media (max-width: 420px) {
  .store-product-grid { grid-template-columns:1fr; }
  .store-product-card { display:grid; grid-template-columns:118px 1fr; }
  .store-product-image { aspect-ratio:1; }
  .store-product-price strong { font-size:1rem; }
}

.container-explore { max-width: 900px; }

.explore-category-tabs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.6rem;
}

.explore-category-tabs button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem;
  border: 1px solid rgba(var(--brand-2-rgb), 0.13);
  border-radius: 999px;
  background: #fff;
  color: var(--brand-3);
  font-weight: 600;
}

.explore-category-tabs button.active {
  border-color: var(--brand-1);
  background: var(--brand-1);
  color: #fff;
}

.nearby-map-preview {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 150px;
  overflow: hidden;
  border-radius: var(--bs-border-radius-lg);
  background-color: #e5f1ed;
  background-image: linear-gradient(35deg, transparent 44%, rgba(255,255,255,.9) 45%, rgba(255,255,255,.9) 49%, transparent 50%), linear-gradient(-25deg, transparent 55%, rgba(255,255,255,.75) 56%, rgba(255,255,255,.75) 60%, transparent 61%);
}

.nearby-map-preview::before,
.nearby-map-preview::after {
  position: absolute;
  content: '';
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50% 50% 50% 0;
  background: var(--brand-1);
  transform: rotate(-45deg);
}

.nearby-map-preview::before { top: 1.3rem; left: 15%; }
.nearby-map-preview::after { right: 13%; bottom: 1.2rem; background: var(--brand-4); }
.nearby-map-preview > div { position: relative; z-index: 1; display: flex; align-items: center; flex-direction: column; padding: 0.8rem 1.1rem; border-radius: 1rem; background: rgba(255,255,255,.9); box-shadow: 0 8px 22px rgba(var(--brand-2-rgb),.1); }
.nearby-map-preview > div > i { color: var(--brand-1); font-size: 1.4rem; }
.nearby-map-preview small { color: var(--brand-3); font-size: 0.68rem; }

.nearby-place-grid { display: grid; gap: 0.75rem; }
.nearby-place-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0.85rem; padding: 1rem; border: 1px solid rgba(var(--brand-2-rgb), 0.12); border-radius: var(--bs-border-radius-lg); background: #fff; }
.nearby-place-icon { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 0.85rem; background: color-mix(in srgb, var(--brand-1) 11%, white); color: var(--brand-1); }
.nearby-place-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.4rem}.nearby-place-facts{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-top:.3rem;font-size:.7rem;font-weight:600}.nearby-place-facts .fa-star{color:#e8a93a}.nearby-place-facts small{font-size:.62rem;font-weight:400}.nearby-place-facts .is-open{color:#198754}.nearby-place-facts .is-closed{color:#8a5252}.nearby-map-popup-actions{display:flex;flex-wrap:wrap;gap:.7rem}.nearby-map-popup-actions a{margin-top:.45rem!important}
.google-maps-attribution { padding: 1rem 0 0; color: #5e5e5e; font-family: Roboto, Arial, sans-serif; font-size: 0.75rem; text-align: right; }
.nearby-interactive-map{position:relative;z-index:1;height:clamp(260px,42vh,430px);overflow:hidden;border:1px solid rgba(var(--brand-2-rgb),.12);border-radius:var(--bs-border-radius-lg);background:#e5f1ed;box-shadow:0 8px 26px rgba(var(--brand-2-rgb),.08)}.nearby-map-loading{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.4rem;height:100%;color:var(--brand-1)}.nearby-map-loading i{font-size:2rem}.nearby-map-loading span{font-size:.75rem}.nearby-map-marker{display:grid;place-items:center;width:2rem;height:2rem;border:3px solid #fff;border-radius:50% 50% 50% 0;background:var(--brand-1);color:#fff;box-shadow:0 3px 10px rgba(0,0,0,.28);transform:rotate(-45deg)}.nearby-map-marker i{transform:rotate(45deg);font-size:.72rem}.nearby-user-marker{display:block;width:1.05rem;height:1.05rem;border:3px solid #fff;border-radius:50%;background:#2879ff;box-shadow:0 0 0 4px rgba(40,121,255,.22)}.nearby-place-card{cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}.nearby-place-card.is-map-active{border-color:var(--brand-1);box-shadow:0 8px 24px rgba(var(--brand-1-rgb),.15);transform:translateY(-1px)}.leaflet-popup-content-wrapper{border-radius:12px}.nearby-map-popup strong,.nearby-map-popup span{display:block}.nearby-map-popup a{display:inline-block;margin-top:.4rem;color:var(--brand-1);font-weight:600}

@media (max-width: 991.98px) {
  .site-shell { padding-bottom: calc(4.25rem + env(safe-area-inset-bottom)); }
  .customer-bottom-nav { display: grid !important; }
}

@media (max-width: 575.98px) {
  .explore-category-tabs { grid-template-columns: repeat(2, 1fr); }
  .explore-category-tabs button { gap: 0.3rem; padding: 0.6rem 0.25rem; font-size: 0.7rem; }
  .nearby-place-card { grid-template-columns: auto minmax(0, 1fr); }
  .nearby-place-actions { grid-column: 2; justify-content: flex-start; }
}

/* Camper profiles and friendships */
.container-profile,
.container-social {
  max-width: 880px;
}

.profile-hero {
  overflow: hidden;
  border-top: 4px solid var(--brand-1);
}

.profile-avatar {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 3rem;
  height: 3rem;
  overflow: hidden;
  border-radius: 50%;
  background: color-mix(in srgb, var(--brand-1) 16%, white);
  color: var(--brand-1);
  font-weight: 700;
}

.profile-avatar--large {
  width: 5.25rem;
  height: 5.25rem;
  font-size: 1.75rem;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand-1) 12%, white);
}

.profile-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-visibility {
  flex: 0 0 auto;
  width: auto;
  min-width: 7.5rem;
}

.profile-photo-upload {
  display: flex;
  align-items: stretch;
  gap: 0.5rem;
}

.profile-photo-upload .form-control {
  min-width: 0;
}

.profile-photo-upload .btn {
  flex: 0 0 auto;
}

.profile-qr-code {
  display: grid;
  place-items: center;
  flex: 0 0 176px;
  width: 176px;
  min-height: 176px;
  padding: 10px;
  border: 1px solid rgba(var(--brand-2-rgb), 0.12);
  border-radius: var(--bs-border-radius);
  background: #fff;
}

.profile-qr-code img {
  display: block;
  width: 100%;
  height: auto;
}

.profile-info-row {
  display: grid;
  grid-template-columns: minmax(6.5rem, 0.25fr) 1fr;
  gap: 1rem;
  padding: 0.75rem 0;
  border-top: 1px solid rgba(var(--brand-2-rgb), 0.1);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.social-person-list {
  display: grid;
}

.social-person-row {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.85rem 0;
  border-top: 1px solid rgba(var(--brand-2-rgb), 0.1);
}

.social-person-row:first-child {
  border-top: 0;
}

.social-person-link {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}

.social-person-link:hover .social-person-name {
  color: var(--brand-1);
  text-decoration: underline;
}

.social-person-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.4rem;
  margin-left: auto;
}

@media (max-width: 575.98px) {
  .profile-visibility {
    width: 7rem;
    min-width: 7rem;
  }

  .profile-photo-upload {
    align-items: stretch;
    flex-direction: column;
  }

  .profile-info-row {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }

  .social-person-row {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .social-person-actions {
    flex-basis: 100%;
    justify-content: flex-start;
    margin-left: 3.8rem;
  }
}

/* Customer engagement: favorites, reviews, on-site check-in, and campground feed */
.checkin-icon {
  display: grid;
  place-items: center;
  flex: 0 0 2.75rem;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--brand-1) 14%, white);
  color: var(--brand-1);
  font-size: 1.15rem;
}

.engagement-status:empty {
  display: none;
}

.feed-compose,
.review-form,
.space-reaction {
  padding: 1rem;
  border: 1px solid rgba(var(--brand-2-rgb), 0.12);
  border-radius: var(--bs-border-radius);
  background: color-mix(in srgb, var(--surface-bg) 82%, white);
}

.feed-list,
.review-list {
  display: grid;
  gap: 0;
}

.feed-item,
.review-item {
  padding: 1rem 0;
  border-top: 1px solid rgba(var(--brand-2-rgb), 0.12);
}

.feed-item:first-child,
.review-item:first-child {
  padding-top: 0;
  border-top: 0;
}

.feed-body {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.feed-photo {
  width: min(100%, 520px);
  max-height: 360px;
  object-fit: cover;
  border-radius: var(--bs-border-radius);
}

.community-composer { padding:1rem; border-radius:1rem; background:#fff; box-shadow:0 3px 18px rgba(12,42,51,.08); }
.community-composer-heading { display:flex; align-items:flex-start; gap:.75rem; }
.community-composer-heading textarea { min-height:3.25rem; resize:none; border:0; border-radius:1.5rem; background:#f0f3f4; padding:.8rem 1rem; box-shadow:none; }
.community-composer-actions { display:flex; align-items:center; gap:.75rem; margin-top:.75rem; padding-top:.75rem; border-top:1px solid rgba(var(--brand-2-rgb),.1); }
.community-composer-actions .btn { margin-left:auto; }
.composer-photo-button { display:flex; align-items:center; gap:.45rem; margin:0; padding:.45rem .7rem; border-radius:.6rem; color:var(--brand-1); font-weight:700; cursor:pointer; }
.composer-photo-button:hover { background:#e8f3f0; }
.community-avatar { display:grid; place-items:center; flex:0 0 2.7rem; width:2.7rem; height:2.7rem; overflow:hidden; border-radius:50%; background:#dcebe7; color:var(--brand-1); font-weight:800; }
.community-avatar.small { flex-basis:2rem; width:2rem; height:2rem; font-size:.75rem; }
.community-avatar img { width:100%; height:100%; object-fit:cover; }
.feed-photo-previews { display:grid; grid-template-columns:repeat(3,1fr); gap:.4rem; margin-top:.75rem; }
.feed-photo-preview { position:relative; aspect-ratio:1; overflow:hidden; border-radius:.65rem; background:#edf1f2; }
.feed-photo-preview img { width:100%; height:100%; object-fit:cover; }
.feed-photo-preview button { position:absolute; top:.3rem; right:.3rem; display:grid; place-items:center; width:1.7rem; height:1.7rem; border:0; border-radius:50%; background:rgba(8,25,31,.78); color:#fff; }
.feed-list { gap:1rem; }
.feed-item { padding:0; overflow:visible; border:1px solid rgba(var(--brand-2-rgb),.1); border-radius:1rem; background:#fff; box-shadow:0 3px 18px rgba(12,42,51,.07); }
.feed-item:first-child { padding-top:0; border-top:1px solid rgba(var(--brand-2-rgb),.1); }
.feed-post-header { display:flex; align-items:center; gap:.65rem; padding:1rem 1rem .65rem; }
.feed-post-identity { display:flex; align-items:center; flex:1; flex-wrap:wrap; column-gap:.4rem; min-width:0; }
.feed-post-identity>a { color:var(--brand-2); font-weight:750; text-decoration:none; }
.feed-post-identity>span:last-child { flex-basis:100%; color:#68777e; font-size:.75rem; }
.feed-rank { display:inline-flex; align-items:center; gap:.2rem; color:var(--brand-1); font-size:.66rem; font-weight:700; }
.feed-rank img { width:18px; height:18px; object-fit:contain; }
.feed-post-menu { width:2rem; height:2rem; border:0; border-radius:50%; background:transparent; color:#68777e; }
.feed-post-menu:hover { background:#eef2f3; }
.feed-item>.feed-body { margin:0; padding:0 1rem .85rem; }
.feed-media-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; max-height:620px; overflow:hidden; background:#d8dedf; }
.feed-media-grid button { min-height:180px; padding:0; overflow:hidden; border:0; background:#d8dedf; }
.feed-media-grid img { width:100%; height:100%; object-fit:cover; }
.feed-media-grid.media-count-1 { grid-template-columns:1fr; }
.feed-media-grid.media-count-1 button { max-height:620px; }
.feed-media-grid.media-count-3 button:first-child { grid-row:span 2; }
.feed-post-stats { display:flex; justify-content:space-between; align-items:center; min-height:2.6rem; margin:0 1rem; border-bottom:1px solid #e4e8e9; color:#66757b; font-size:.82rem; }
.feed-post-stats>button { padding:.25rem 0; border:0; background:none; color:inherit; }
.feed-reaction-summary { display:inline-flex; align-items:center; gap:.15rem; }
.feed-reaction-summary i { display:grid; place-items:center; width:1.25rem; height:1.25rem; margin-right:-.35rem; border:2px solid #fff; border-radius:50%; background:#2477e5; color:#fff; font-size:.62rem; }
.feed-reaction-summary span { margin-left:.4rem; }
.reaction-love { color:#e74359!important; }.reaction-laugh { color:#f4aa16!important; }.reaction-sad { color:#f4aa16!important; }.reaction-like { color:#2477e5!important; }
.feed-post-actions { display:grid; grid-template-columns:repeat(3,1fr); padding:.25rem .5rem; }
.feed-post-actions>button,.feed-react-control>button { display:flex; justify-content:center; align-items:center; gap:.4rem; width:100%; padding:.55rem .25rem; border:0; border-radius:.45rem; background:transparent; color:#344b55!important; opacity:1; font-weight:700; -webkit-text-fill-color:#344b55; }
.feed-post-actions>button>span,.feed-post-actions>button>i,.feed-react-control>button>span,.feed-react-control>button>i { color:inherit!important; opacity:1; -webkit-text-fill-color:currentColor; }
.feed-post-actions>button:hover,.feed-post-actions>button:focus-visible,.feed-react-control>button:hover,.feed-react-control>button:focus-visible { background:#f0f3f4; }.feed-post-actions>button.active,.feed-react-control>button.active { color:#1769c2!important; -webkit-text-fill-color:#1769c2; }
.feed-react-control { position:relative; }
.feed-reaction-picker { position:absolute; z-index:5; left:0; bottom:calc(100% + .2rem); display:none; gap:.1rem; padding:.35rem; border-radius:2rem; background:#fff; box-shadow:0 5px 22px rgba(8,25,31,.22); }
.feed-react-control:hover .feed-reaction-picker,.feed-react-control:focus-within .feed-reaction-picker { display:flex; }
.feed-reaction-picker button { display:grid; place-items:center; width:2.25rem; height:2.25rem; padding:0; border-radius:50%; font-size:1.25rem; transition:transform .15s; }
.feed-reaction-picker button span { display:none; }.feed-reaction-picker button:hover { transform:scale(1.25); }.feed-reaction-picker button.selected { background:#e7f0fc; }
.feed-comments-area { padding:0 1rem; }
.feed-comment { display:flex; align-items:flex-start; gap:.45rem; margin:.55rem 0; }
.feed-comment-content { flex:1; min-width:0; }.feed-comment-bubble { display:inline-block; max-width:100%; padding:.55rem .75rem; border-radius:1rem; background:#f0f3f4; }
.feed-comment-name { display:block; color:var(--brand-2); font-size:.78rem; font-weight:750; text-decoration:none; }.feed-comment-bubble p { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.feed-comment-actions { display:flex; align-items:center; gap:.6rem; padding:.15rem .6rem; color:#728087; font-size:.7rem; }.feed-comment-actions button { padding:0; border:0; background:none; color:#586970; font-weight:700; }.feed-comment-actions button.active { color:#2477e5; }.feed-comment-actions .feed-reaction-summary { margin-left:auto; }
.feed-comment-reply { margin-left:.65rem; }.feed-reply-form { display:flex; gap:.35rem; margin:.3rem 0 .6rem; }
.feed-comment-form { display:flex; align-items:center; gap:.45rem; padding:.65rem 1rem 1rem; }.feed-comment-form input,.feed-reply-form input { border:0; border-radius:1.4rem; background:#f0f3f4; }.feed-comment-form button { display:grid; place-items:center; flex:0 0 2.4rem; width:2.4rem; height:2.4rem; padding:0; border-radius:50%; }
.feed-empty { padding:2rem 1rem; border:1px dashed #bdc9cc; border-radius:1rem; color:#68777e; text-align:center; }
.stay-options { display:grid; grid-template-columns:repeat(2,1fr); gap:.5rem; }.stay-options button { padding:.7rem .5rem; border:1px solid #cbd5d7; border-radius:.7rem; background:#fff; color:var(--brand-2); font-weight:650; }.stay-options button.selected { border-color:var(--brand-1); background:#e5f2ee; color:var(--brand-1); box-shadow:0 0 0 2px rgba(var(--brand-1-rgb),.12); }
.active-stay-details { padding:.55rem .65rem; border-radius:.6rem; background:#e8f3f0; color:var(--brand-1); font-size:.75rem; }
.feed-lightbox { width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; padding:0; border:0; background:rgba(3,12,16,.96); color:#fff; }.feed-lightbox[open] { display:grid; grid-template-columns:3rem 1fr 3rem; place-items:center; }.feed-lightbox::backdrop { background:#030c10; }.feed-lightbox img { max-width:100%; max-height:92dvh; object-fit:contain; }.feed-lightbox button { z-index:1; display:grid; place-items:center; width:2.5rem; height:2.5rem; border:0; border-radius:50%; background:rgba(255,255,255,.15); color:#fff; }.feed-lightbox [data-lightbox-close] { position:absolute; top:calc(.75rem + env(safe-area-inset-top)); right:.75rem; }.feed-lightbox [data-lightbox-count] { position:absolute; bottom:calc(.75rem + env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); }

@media (max-width:575px) { .container-community { padding-inline:.65rem; }.container-community>.row { --bs-gutter-x:0; }.container-community .card>.card-body { padding:.65rem; }.feed-media-grid button { min-height:135px; }.feed-post-actions button span { font-size:.8rem; }.community-composer-actions { gap:.35rem; }.community-composer-actions #feedPhotoCount { display:none; } }

/* CampOS client signup and onboarding */
.client-onboarding-shell,.client-dashboard-shell { min-height:100dvh; background:radial-gradient(circle at 10% 0,rgba(30,111,94,.16),transparent 32rem),linear-gradient(145deg,#f8faf9 0%,#edf3f1 100%); color:var(--surface-ink); }
.client-onboarding-shell { display:grid; place-items:center; padding:clamp(1rem,4vw,3rem); }
.client-onboarding-panel { width:min(100%,780px); }.client-onboarding-panel--plans { width:min(100%,980px); }
.client-onboarding-header { margin-bottom:1.5rem; }.client-onboarding-brand { display:inline-flex; align-items:center; gap:.55rem; color:var(--brand-2); font-size:1.3rem; font-weight:800; text-decoration:none; }.client-onboarding-brand img { object-fit:contain; }.client-onboarding-brand small { margin-left:.15rem; padding:.2rem .45rem; border-radius:999px; background:var(--brand-4); color:var(--brand-2); font-size:.58rem; letter-spacing:.08em; text-transform:uppercase; }
.client-step-copy { margin:2rem 0 1.35rem; }.client-step-copy>span,.client-dashboard-welcome p,.client-section-heading p,.client-dashboard-card p { display:block; margin:0 0 .25rem; color:var(--brand-1); font-size:.7rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }.client-step-copy h1 { margin:0; color:var(--brand-2); font-size:clamp(1.65rem,4vw,2.4rem); letter-spacing:-.035em; }.client-step-copy p { max-width:620px; margin:.4rem 0 0; color:var(--brand-3); }
.client-progress { position:relative; display:grid; grid-template-columns:repeat(3,1fr); margin:0; padding:0; list-style:none; }.client-progress::before { position:absolute; top:1rem; right:16.5%; left:16.5%; height:2px; content:""; background:#cad7d4; }.client-progress li { position:relative; z-index:1; display:flex; align-items:center; flex-direction:column; gap:.4rem; color:#7c8c91; font-size:.7rem; text-align:center; }.client-progress li>span { display:grid; place-items:center; width:2rem; height:2rem; border:2px solid #cad7d4; border-radius:50%; background:#f4f8f6; font-weight:750; }.client-progress li.active { color:var(--brand-1); }.client-progress li.active>span { border-color:var(--brand-1); background:var(--brand-1); color:#fff; box-shadow:0 0 0 .3rem rgba(var(--brand-1-rgb),.12); }.client-progress li.complete { color:var(--brand-1); }.client-progress li.complete>span { border-color:var(--brand-1); background:#dceee9; color:var(--brand-1); }
.client-form-card,.client-plan-card,.client-existing-locations,.client-dashboard-card,.client-locations-card { border:1px solid rgba(var(--brand-2-rgb),.1); border-radius:1.1rem; background:#fff; box-shadow:0 12px 40px rgba(10,38,46,.08); }.client-form-card { padding:clamp(1.1rem,4vw,2rem); }.client-form-intro { display:flex; align-items:center; gap:.85rem; margin-bottom:1.5rem; padding-bottom:1.2rem; border-bottom:1px solid #e6ecea; }.client-form-intro>span { display:grid; place-items:center; flex:0 0 3rem; width:3rem; height:3rem; border-radius:.85rem; background:#e4f1ed; color:var(--brand-1); font-size:1.2rem; }.client-form-intro h2 { margin:0 0 .15rem; color:var(--brand-2); font-size:1.15rem; }.client-form-intro p { margin:0; color:var(--brand-3); font-size:.8rem; }.client-form-card .form-label { color:var(--brand-2); font-size:.78rem; font-weight:650; }.client-form-card .form-control,.client-form-card .form-select { min-height:3rem; border-color:#cbd8d5; background-color:#fbfcfc; }.client-form-card .form-control:focus,.client-form-card .form-select:focus { border-color:var(--brand-1); box-shadow:0 0 0 .22rem rgba(var(--brand-1-rgb),.13); }.client-form-foot { margin:1rem 0 0; color:var(--brand-3); font-size:.75rem; text-align:center; }.client-offline-note { display:flex; align-items:flex-start; gap:.7rem; margin:.2rem 0 1.25rem; padding:.85rem; border-radius:.75rem; background:#eef4f2; color:var(--brand-2); }.client-offline-note i { margin-top:.15rem; color:var(--brand-1); }.client-offline-note div { display:flex; flex-direction:column; font-size:.76rem; }.client-offline-note span { color:var(--brand-3); }
.client-plan-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }.client-plan-grid>.col-md-6 { width:auto; }.client-plan-card { position:relative; display:flex; height:100%; padding:1.6rem; flex-direction:column; }.client-plan-card--featured { border:2px solid var(--brand-1); box-shadow:0 16px 45px rgba(var(--brand-1-rgb),.16); }.client-plan-card.selected { box-shadow:0 0 0 .25rem rgba(var(--brand-4-rgb,233,185,73),.2),0 16px 45px rgba(10,38,46,.1); }.client-plan-popular,.client-plan-current { position:absolute; top:.8rem; right:.8rem; padding:.3rem .55rem; border-radius:999px; background:var(--brand-1); color:#fff; font-size:.58rem; font-weight:750; }.client-plan-current { top:auto; bottom:4.8rem; background:var(--brand-4); color:var(--brand-2); }.client-plan-icon { display:grid; place-items:center; width:3.2rem; height:3.2rem; margin-bottom:1rem; border-radius:.9rem; background:#e4f1ed; color:var(--brand-1); font-size:1.35rem; }.client-plan-card--featured .client-plan-icon { background:var(--brand-1); color:#fff; }.client-plan-card h2 { margin:0; color:var(--brand-2); font-size:1.4rem; }.client-plan-description { min-height:2.5rem; margin:.35rem 0 1rem; color:var(--brand-3); font-size:.8rem; }.client-plan-tradeoff { display:flex; flex-direction:column; margin-bottom:1rem; padding:1rem; border-radius:.8rem; background:#f2f6f5; }.client-plan-tradeoff strong { color:var(--brand-2); }.client-plan-tradeoff span { color:var(--brand-3); font-size:.72rem; }.client-plan-features { display:grid; gap:.65rem; margin:0 0 1.5rem; padding:0; color:var(--brand-3); font-size:.77rem; list-style:none; }.client-plan-features li { display:flex; gap:.5rem; }.client-plan-features li::before { color:var(--brand-1); content:"\f00c"; font-family:"Font Awesome 6 Pro"; font-weight:900; }.client-assurance { margin:1rem 0 0; color:var(--brand-3); font-size:.72rem; text-align:center; }.client-assurance i { color:var(--brand-1); }
.client-existing-locations { padding:1rem 1.2rem; }.client-existing-locations h2 { margin:0 0 .65rem; color:var(--brand-2); font-size:.85rem; }.client-existing-locations h2 i { color:var(--brand-1); }.client-existing-locations ul { margin:0; padding:0; list-style:none; }.client-existing-locations li { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.65rem 0; border-top:1px solid #e6ecea; }.client-existing-locations li>span:first-child { display:flex; flex-direction:column; }.client-existing-locations small { color:var(--brand-3); }
.client-status { display:inline-flex; align-items:center; gap:.3rem; width:max-content; padding:.25rem .55rem; border-radius:999px; font-size:.62rem; font-weight:750; }.client-status.live { background:#ddf2e8; color:#087745; }.client-status.offline { background:#e9edef; color:#566970; }.client-status i { font-size:.45rem; }
.client-dashboard-header { display:flex; align-items:center; justify-content:space-between; padding:1rem max(1rem,calc((100vw - 1120px)/2)); border-bottom:1px solid rgba(var(--brand-2-rgb),.1); background:rgba(255,255,255,.92); }.client-complete-pill { display:inline-flex; align-items:center; gap:.35rem; color:var(--brand-1); font-size:.72rem; font-weight:700; }.client-dashboard-main { width:min(1120px,calc(100% - 2rem)); margin:auto; padding:2.5rem 0 4rem; }.client-dashboard-welcome { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; }.client-dashboard-welcome h1 { margin:0; color:var(--brand-2); font-size:clamp(1.6rem,3vw,2.2rem); }.client-dashboard-welcome span { color:var(--brand-3); font-size:.82rem; }.client-dashboard-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; margin-bottom:1rem; }.client-dashboard-card { display:flex; align-items:center; gap:1rem; padding:1.2rem; }.client-dashboard-card-icon { display:grid; place-items:center; flex:0 0 3.2rem; width:3.2rem; height:3.2rem; border-radius:.9rem; background:#e2f1ed; color:var(--brand-1); font-size:1.2rem; }.client-dashboard-card-icon.gold { background:#fff1cb; color:#9b6a00; }.client-dashboard-card h2 { display:inline-block; margin:0 .4rem .1rem 0; color:var(--brand-2); font-size:1rem; }.client-dashboard-card a,.client-dashboard-card>div>span:not(.client-status) { display:block; color:var(--brand-3); font-size:.7rem; }.client-plan-summary a { margin-top:.2rem; color:var(--brand-1); }
.client-locations-card { overflow:hidden; }.client-section-heading { display:flex; align-items:center; justify-content:space-between; padding:1.2rem; border-bottom:1px solid #e6ecea; }.client-section-heading h2 { margin:0; color:var(--brand-2); font-size:1.15rem; }.client-location-table th { padding:.8rem 1.2rem; border:0; background:#f5f8f7; color:#718087; font-size:.65rem; letter-spacing:.06em; text-transform:uppercase; }.client-location-table td { padding:1rem 1.2rem; color:var(--brand-2); }.client-go-live-btn { border-color:var(--brand-1); background:var(--brand-1); color:#fff; font-weight:700; box-shadow:0 6px 16px rgba(var(--brand-1-rgb),.2); }.client-go-live-btn:hover { border-color:#155a4b; background:#155a4b; color:#fff; }.client-empty-state { padding:3rem 1rem; color:var(--brand-3); text-align:center; }.client-empty-state>i { margin-bottom:.75rem; color:var(--brand-1); font-size:2rem; }.client-empty-state h3 { color:var(--brand-2); font-size:1.1rem; }.client-empty-state p { font-size:.78rem; }
.client-go-live-dialog { width:min(92vw,480px); padding:1.4rem; border:0; border-radius:1.1rem; color:var(--brand-2); box-shadow:0 25px 80px rgba(5,25,32,.35); }.client-go-live-dialog::backdrop { background:rgba(7,24,30,.62); backdrop-filter:blur(3px); }.client-live-hero { display:flex; align-items:center; gap:.8rem; }.client-live-hero>span { display:grid; place-items:center; flex:0 0 3.3rem; width:3.3rem; height:3.3rem; border-radius:50%; background:#dff1e9; color:var(--brand-1); font-size:1.25rem; }.client-live-hero small { color:var(--brand-1); font-size:.62rem; font-weight:750; text-transform:uppercase; }.client-live-hero h2 { margin:.1rem 0 0; font-size:1.25rem; }.client-go-live-dialog>p { margin:1rem 0; color:var(--brand-3); font-size:.82rem; }.client-live-check { display:flex; gap:.55rem; padding:.8rem; border-radius:.7rem; background:#f1f6f4; color:var(--brand-3); font-size:.75rem; }.client-live-check i { color:var(--brand-1); }.client-live-actions { display:flex; justify-content:flex-end; gap:.6rem; margin-top:1rem; }
@media(max-width:700px) { .client-onboarding-shell { place-items:start center; padding:1rem; }.client-step-copy { margin-top:1.4rem; }.client-progress li b { font-size:.6rem; }.client-plan-grid,.client-dashboard-grid { grid-template-columns:1fr; }.client-plan-description { min-height:0; }.client-dashboard-main { width:min(100% - 1rem,1120px); padding-top:1.4rem; }.client-dashboard-welcome { align-items:flex-start; flex-direction:column; }.client-dashboard-welcome>.btn { width:100%; }.client-location-table thead { display:none; }.client-location-table tr { display:grid; grid-template-columns:1fr auto; padding:.65rem; border-bottom:1px solid #e4eae8; }.client-location-table td { padding:.25rem .4rem; border:0; }.client-location-table td:nth-child(2) { grid-column:1; color:var(--brand-3); font-size:.72rem; }.client-location-table td:nth-child(3) { grid-column:2; grid-row:1; }.client-location-table td:last-child { grid-column:1/3; }.client-location-table td:last-child form,.client-location-table td:last-child button { width:100%; }.client-dashboard-header { padding:.75rem; }.client-complete-pill { font-size:0; }.client-complete-pill i { font-size:1rem; } }

/* CampOS location operations workspace */
.client-location-shell { display:grid; grid-template-columns:260px minmax(0,1fr); min-height:100dvh; background:#f3f6f5; color:var(--surface-ink); }
.client-location-shell>.client-dashboard-main { width:min(1180px,calc(100% - 3rem)); margin:0 auto; padding:2rem 0 4rem; }
.client-location-nav { position:sticky; top:0; z-index:30; display:flex; height:100dvh; padding:1.1rem; flex-direction:column; background:linear-gradient(180deg,#102b35 0%,#0a2029 100%); color:#fff; box-shadow:8px 0 28px rgba(5,25,32,.08); }
.client-location-brand { display:flex; align-items:center; gap:.65rem; padding:.25rem .3rem 1.15rem; border-bottom:1px solid rgba(255,255,255,.1); color:#fff; font-size:1.05rem; font-weight:800; text-decoration:none; }.client-location-brand:hover { color:#fff; }.client-location-brand>span { display:flex; flex-direction:column; line-height:1.05; }.client-location-brand small { margin-top:.18rem; color:#e9b949; font-size:.55rem; letter-spacing:.14em; text-transform:uppercase; }
.client-location-nav-header { display:flex; align-items:flex-start; justify-content:space-between; gap:.6rem; margin:1rem 0; padding:.8rem; border-radius:.75rem; background:rgba(255,255,255,.07); }.client-location-nav-header strong { overflow:hidden; color:#fff; font-size:.83rem; text-overflow:ellipsis; white-space:nowrap; }.client-location-nav-header .client-status.live { background:rgba(45,190,120,.2); color:#86e5b5; }.client-location-nav-header .client-status.offline { background:rgba(255,255,255,.1); color:#bccbd0; }
.client-location-nav-list { display:grid; gap:.25rem; margin:0; padding:0; list-style:none; }.client-location-nav-item a { display:flex; align-items:center; gap:.75rem; padding:.72rem .75rem; border-radius:.65rem; color:#b9c7cc; font-size:.76rem; font-weight:600; text-decoration:none; transition:.15s ease; }.client-location-nav-item a i { width:1.2rem; color:#7f989f; text-align:center; }.client-location-nav-item a:hover { background:rgba(255,255,255,.07); color:#fff; }.client-location-nav-item.active a { background:#1e6f5e; color:#fff; box-shadow:0 6px 16px rgba(0,0,0,.15); }.client-location-nav-item.active a i { color:#f0c65e; }
.client-location-nav-group>button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.72rem .75rem;border:0;border-radius:.65rem;background:transparent;color:#b9c7cc;font-size:.76rem;font-weight:600;text-align:left;transition:.15s}.client-location-nav-group>button:hover,.client-location-nav-group.active>button{background:#1e6f5e;color:#fff}.client-location-nav-group>button>i:first-child{width:1.2rem;color:#7f989f;text-align:center}.client-location-nav-group.active>button>i:first-child{color:#f0c65e}.client-location-nav-group>button span{flex:1}.client-location-nav-group>button>i:last-child{font-size:.58rem;transition:transform .18s}.client-location-nav-group.open>button>i:last-child{transform:rotate(180deg)}.client-location-settings-subnav{display:none;margin:.25rem 0 .35rem;padding:.15rem 0 .15rem 1.35rem;list-style:none}.client-location-nav-group.open .client-location-settings-subnav{display:grid;gap:.08rem}.client-location-nav-item.active .client-location-settings-subnav a{padding:.42rem .6rem;border-radius:.5rem;background:transparent;box-shadow:none;color:#aebfc4;font-size:.65rem;font-weight:550}.client-location-nav-item.active .client-location-settings-subnav a i{width:1rem;color:#708a91;font-size:.58rem}.client-location-nav-item.active .client-location-settings-subnav a:hover{background:rgba(255,255,255,.07);color:#fff}.client-location-nav-item.active .client-location-settings-subnav a.active{background:rgba(30,111,94,.38);color:#fff;box-shadow:inset 2px 0 #f0c65e}.client-location-nav-item.active .client-location-settings-subnav a.active i{color:#f0c65e}
.client-location-nav-back { display:flex; align-items:center; gap:.55rem; margin-top:auto; padding:.75rem; border-top:1px solid rgba(255,255,255,.1); color:#9eb0b6; font-size:.7rem; text-decoration:none; }.client-location-nav-back:hover { color:#fff; }.client-location-nav-toggle,.client-location-nav-scrim { display:none; }
.client-location-shell .client-dashboard-welcome { padding-bottom:1rem; border-bottom:1px solid #dce4e2; }.client-location-shell .client-dashboard-welcome h1 { font-size:clamp(1.5rem,3vw,2.15rem); }.client-location-shell .client-dashboard-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.client-widget-placeholder { position:relative; overflow:hidden; min-height:145px; }.client-widget-placeholder::after { position:absolute; top:.75rem; right:.75rem; padding:.2rem .45rem; border-radius:999px; content:"Coming soon"; background:#eef3f2; color:#718087; font-size:.52rem; font-weight:750; letter-spacing:.05em; text-transform:uppercase; }.client-widget-placeholder h2 { color:#697a80; }
.client-setup-checklist { display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; margin:0; padding:1.2rem; list-style:none; }.client-setup-checklist a { display:flex; align-items:center; gap:.7rem; height:100%; padding:1rem; border:1px solid #dce5e2; border-radius:.8rem; background:#f9fbfa; color:var(--brand-2); font-size:.75rem; font-weight:650; text-decoration:none; }.client-setup-checklist a i { display:grid; place-items:center; flex:0 0 2.3rem; width:2.3rem; height:2.3rem; border-radius:.65rem; background:#dfeeea; color:var(--brand-1); }.client-setup-checklist a:hover { border-color:var(--brand-1); background:#f3f9f7; transform:translateY(-1px); }
.client-location-shell .client-locations-card { margin-bottom:1rem; padding-bottom:1.15rem; }.client-location-shell .client-locations-card>.client-section-heading { margin-bottom:1rem; }.client-location-shell .client-locations-card>form,.client-location-shell .client-locations-card>p,.client-location-shell .client-locations-card>ul:not(.client-setup-checklist),.client-location-shell .client-locations-card>.table-responsive,.client-location-shell .client-locations-card>.client-empty-state,.client-location-shell .client-locations-card>.client-accommodation-gallery { margin-right:1.2rem!important; margin-left:1.2rem!important; }
.client-location-shell .client-locations-card>.d-flex:first-child { margin:0; padding:1.2rem; border-bottom:1px solid #e6ecea; }.client-location-shell>main>p:first-child a { display:inline-flex; align-items:center; gap:.35rem; color:var(--brand-1); font-size:.74rem; font-weight:650; text-decoration:none; }
.client-location-shell .table { --bs-table-bg:transparent; }.client-location-shell .table th { padding:.65rem .75rem; border-bottom-color:#dce5e2; color:#708086; font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; }.client-location-shell .table td { padding:.75rem; border-bottom-color:#e8edec; color:var(--brand-2); font-size:.74rem; }.client-location-shell .table td>a:not(.btn) { color:var(--brand-1); font-weight:700; }.client-location-shell .table .form-control,.client-location-shell .table .form-select { min-width:80px; }
.client-location-shell form:not(.d-inline) .form-label { color:var(--brand-2); font-size:.72rem; font-weight:650; }.client-location-shell .form-control,.client-location-shell .form-select,.client-location-shell .input-group-text { border-color:#cbd8d5; background-color:#fbfcfc; }.client-location-shell .form-control:focus,.client-location-shell .form-select:focus { border-color:var(--brand-1); box-shadow:0 0 0 .2rem rgba(var(--brand-1-rgb),.12); }.client-location-shell .form-check-input:checked { border-color:var(--brand-1); background-color:var(--brand-1); }.client-location-shell .client-locations-card>form:not(.client-quick-add-form):not(.client-accommodation-form):not(.client-photo-upload) { padding:1rem; border:1px solid #e0e8e6; border-radius:.85rem; background:#f9fbfa; }
.client-location-shell .client-locations-card>ul.list-unstyled li { padding:.75rem!important; border:1px solid #e1e8e6!important; border-radius:.7rem; background:#f9fbfa; }.client-location-shell .client-locations-card>ul.list-unstyled li+li { margin-top:.45rem; }.client-quick-add-form { padding:1rem; border-top:1px solid #e2e9e7; background:#f7faf9; }.client-quick-add-form::before { display:block; grid-column:1/-1; margin-bottom:.2rem; content:"Quick Add Accommodation"; color:var(--brand-2); font-size:.8rem; font-weight:750; }
.client-form-section-title { display:flex; align-items:center; gap:.7rem; margin:1.8rem 0 1rem; padding:.8rem; border-radius:.75rem; background:#eef5f3; color:var(--brand-2); font-size:.9rem; }.client-form-section-title>i { color:var(--brand-1); font-size:1.15rem; }.client-form-section-title>span { display:flex; flex-direction:column; }.client-form-section-title small { margin-top:.15rem; color:var(--brand-3); font-size:.62rem; font-weight:400; }.client-name-preview { margin-top:.4rem; padding:.45rem; border-radius:.5rem; background:#eef5f3; color:#718087; }.client-name-preview strong { color:var(--brand-1); }.client-accommodation-form { padding:0 1.2rem 1.2rem; }
.client-accommodation-gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(145px,1fr)); gap:.8rem; }.client-accommodation-photo { position:relative; overflow:hidden; border:1px solid #dce5e2; border-radius:.75rem; background:#fff; }.client-accommodation-photo>a { display:block; aspect-ratio:4/3; }.client-accommodation-photo img { width:100%; height:100%; object-fit:cover; }.client-accommodation-photo form { padding:.45rem; }.client-accommodation-photo button { width:100%; }.client-photo-upload { display:flex; align-items:flex-end; gap:.75rem; margin:0 1.2rem!important; padding:1rem; border:2px dashed #c7d8d3; border-radius:.8rem; background:#f7faf9; }.client-photo-upload>div { flex:1; }.client-photo-file-preview { display:grid; grid-template-columns:repeat(auto-fill,minmax(135px,1fr)); gap:.55rem; margin-top:.75rem; }.client-photo-file-preview>div { display:flex; align-items:center; gap:.5rem; min-width:0; padding:.4rem; border:1px solid #dce5e2; border-radius:.55rem; background:#fff; }.client-photo-file-preview img { flex:0 0 52px; width:52px; height:44px; border-radius:.4rem; object-fit:cover; }.client-photo-file-preview span { display:flex; min-width:0; flex-direction:column; font-size:.62rem; }.client-photo-file-preview strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.client-photo-file-preview small { color:var(--brand-1); }
.tox-tinymce { border-color:#cbd8d5!important; border-radius:.65rem!important; }.tox .tox-toolbar-overlord,.tox .tox-toolbar__primary { background:#f7faf9!important; }.tox .tox-statusbar__branding { display:none!important; }
@media(max-width:1050px) { .client-location-shell .client-dashboard-grid,.client-setup-checklist { grid-template-columns:1fr; } }
@media(max-width:800px) { .client-location-shell { display:block; padding-top:3.5rem; }.client-location-nav-toggle { position:fixed; z-index:45; top:0; left:0; display:flex; align-items:center; gap:.6rem; width:100%; height:3.5rem; padding:.7rem 1rem; border:0; background:#102b35; color:#fff; box-shadow:0 3px 12px rgba(5,25,32,.18); }.client-location-nav-toggle span { flex:1; overflow:hidden; font-weight:700; text-align:left; text-overflow:ellipsis; white-space:nowrap; }.client-location-nav { position:fixed; z-index:50; top:0; bottom:0; left:0; width:min(82vw,290px); height:100dvh; transform:translateX(-105%); transition:transform .2s ease; }.client-location-nav-scrim { position:fixed; z-index:49; inset:0; display:block; visibility:hidden; background:rgba(5,20,26,.58); opacity:0; transition:.2s ease; }.client-location-nav-open .client-location-nav { transform:none; }.client-location-nav-open .client-location-nav-scrim { visibility:visible; opacity:1; }.client-location-nav-open { overflow:hidden; }.client-location-shell>.client-dashboard-main { width:calc(100% - 1rem); padding-top:1rem; }.client-location-shell .client-dashboard-welcome { align-items:flex-start; flex-direction:column; }.client-location-shell .client-dashboard-welcome form,.client-location-shell .client-dashboard-welcome button { width:100%; }.client-setup-checklist { grid-template-columns:1fr; }.client-location-shell .table-responsive { margin-inline:.5rem!important; }.client-quick-add-form>div { width:100%; }.client-photo-upload { align-items:stretch; flex-direction:column; }.client-photo-upload button { width:100%; }.client-accommodation-form { padding-inline:.8rem; } }

/* Shared customer and CampOS booking experience */
.booking-shell,.customer-reservations-shell { max-width:780px; }.booking-back-link { display:inline-flex; align-items:center; gap:.4rem; margin-bottom:1rem; color:var(--brand-1); font-size:.72rem; font-weight:650; text-decoration:none; }.booking-page-heading { display:flex; align-items:center; gap:1rem; margin-bottom:1.25rem; }.booking-page-heading>span { display:grid; place-items:center; flex:0 0 3.4rem; width:3.4rem; height:3.4rem; border-radius:1rem; background:#dfeeea; color:var(--brand-1); font-size:1.35rem; }.booking-page-heading>div { position:relative; flex:1; }.booking-page-heading p { margin:0; color:var(--brand-1); font-size:.64rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }.booking-page-heading h1 { margin:.1rem 0; color:var(--brand-2); font-size:clamp(1.35rem,4vw,1.85rem); letter-spacing:-.025em; }.booking-page-heading strong { position:absolute; right:0; bottom:.2rem; color:var(--brand-1); font-size:1.15rem; }.booking-page-heading strong small { color:var(--brand-3); font-size:.65rem; font-weight:500; }.booking-page-heading.compact small { color:var(--brand-3); font-size:.72rem; }
.booking-card,.booking-success-card { overflow:hidden; border:1px solid rgba(var(--brand-2-rgb),.1); border-radius:1rem; box-shadow:0 7px 24px rgba(10,38,46,.07); }.booking-card>.card-body { padding:1.25rem; }.booking-section-title { display:flex; align-items:center; gap:.75rem; margin-bottom:1rem; padding-bottom:.9rem; border-bottom:1px solid #e6ecea; }.booking-section-title>span { display:grid; place-items:center; flex:0 0 2rem; width:2rem; height:2rem; border-radius:50%; background:var(--brand-1); color:#fff; font-size:.75rem; font-weight:750; }.booking-section-title h2 { margin:0; color:var(--brand-2); font-size:1rem; }.booking-section-title p { margin:.1rem 0 0; color:var(--brand-3); font-size:.68rem; }.booking-card .form-label { color:var(--brand-2); font-size:.72rem; font-weight:650; }.booking-card .form-control,.booking-card .form-select { min-height:2.9rem; border-color:#cbd8d5; background:#fbfcfc; }.booking-card .form-control:focus,.booking-card .form-select:focus { border-color:var(--brand-1); box-shadow:0 0 0 .2rem rgba(var(--brand-1-rgb),.12); }
.booking-price-breakdown { margin:0 0 1.2rem; padding:1rem; border-radius:.8rem; background:#f2f6f5; }.booking-price-breakdown>div { display:flex; justify-content:space-between; gap:1rem; padding:.35rem 0; color:var(--brand-3); font-size:.77rem; }.booking-price-breakdown .total { margin-top:.4rem; padding-top:.75rem; border-top:1px solid #cfdbd8; color:var(--brand-2); font-size:.9rem; }.booking-price-breakdown .total strong { color:var(--brand-1); font-size:1.05rem; }.booking-payment-option { position:relative; margin:0!important; padding:.8rem .8rem .8rem 2.35rem; border:1px solid #d3ddda; border-radius:.7rem; background:#fff; cursor:pointer; }.booking-payment-option.selected { border-color:var(--brand-1); background:#f0f7f5; box-shadow:0 0 0 2px rgba(var(--brand-1-rgb),.1); }.booking-payment-option .form-check-input { margin-top:.22rem; }.card-element-container { min-height:3rem; padding:.9rem .8rem; border:1px solid #cbd8d5; border-radius:.6rem; background:#fff; }.booking-secure-note { margin:.65rem 0 0; color:#6d7c81; font-size:.67rem; text-align:center; }.booking-secure-note i { margin-right:.25rem; color:#635bff; font-size:1rem; }.booking-success-card i.fa-circle-check { color:#16a34a; }
.reservation-list-card { display:flex; align-items:center; gap:.8rem; margin-bottom:.65rem; padding:1rem; border:1px solid rgba(var(--brand-2-rgb),.1); border-radius:.9rem; background:#fff; color:var(--brand-2); box-shadow:0 4px 16px rgba(10,38,46,.06); text-decoration:none; transition:.15s ease; }.reservation-list-card:hover { border-color:rgba(var(--brand-1-rgb),.4); color:var(--brand-2); transform:translateY(-1px); box-shadow:0 8px 24px rgba(10,38,46,.1); }.reservation-list-icon { display:grid; place-items:center; flex:0 0 2.8rem; width:2.8rem; height:2.8rem; border-radius:.8rem; background:#e2f1ed; color:var(--brand-1); }.reservation-list-content { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex:1; min-width:0; }.reservation-list-content>div:first-child { display:flex; min-width:0; flex-direction:column; }.reservation-list-content strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.reservation-list-content>div:first-child>span { color:var(--brand-3); font-size:.72rem; }.reservation-list-content small { margin-top:.3rem; color:#738187; }.reservation-list-content small i { margin-inline:.15rem; color:var(--brand-1); }.reservation-list-meta { flex:0 0 auto; text-align:right; }.reservation-list-meta>.small { display:inline-block; margin-top:.3rem; color:var(--brand-2); font-weight:700; }.reservation-list-arrow { color:#8e9ca0; font-size:.7rem; }.booking-empty-state { padding:3rem 1.25rem; border:1px dashed #bfcfcb; border-radius:1rem; background:#f8fbfa; color:var(--brand-3); text-align:center; }.booking-empty-state>i { margin-bottom:.75rem; color:var(--brand-1); font-size:2.2rem; }.booking-empty-state h2 { color:var(--brand-2); font-size:1.1rem; }.booking-empty-state p { max-width:430px; margin:0 auto 1rem; font-size:.76rem; }
.reservation-detail-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }.reservation-detail-heading p { margin:0; color:var(--brand-1); font-size:.66rem; font-weight:750; text-transform:uppercase; }.reservation-detail-heading h1 { margin:.1rem 0 0; color:var(--brand-2); font-size:1.55rem; }.reservation-status { padding:.35rem .65rem; border-radius:999px; background:#e9edef; color:#566970; font-size:.68rem; font-weight:750; }.reservation-status.status-confirmed { background:#dff3e9; color:#087745; }.reservation-status.status-checked_in { background:#dfeaf6; color:#1769a5; }.reservation-status.status-cancelled,.reservation-status.status-no_show { background:#f9e2e3; color:#b4232c; }.reservation-summary-card>.card-body { display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; }.reservation-summary-card>.card-body>div,.client-reservation-facts>div { display:flex; align-items:center; gap:.6rem; }.reservation-summary-card i,.client-reservation-facts i { display:grid; place-items:center; flex:0 0 2.2rem; width:2.2rem; height:2.2rem; border-radius:.65rem; background:#e7f2ef; color:var(--brand-1); }.reservation-summary-card span,.client-reservation-facts span { display:flex; color:#718087; font-size:.64rem; flex-direction:column; }.reservation-summary-card strong,.client-reservation-facts strong { color:var(--brand-2); font-size:.72rem; }.booking-change-preview { margin-top:1rem; padding:1rem; border:1px solid rgba(var(--brand-1-rgb),.25); border-radius:.8rem; background:#f1f8f6; }
.booking-cancel-dialog { width:min(92vw,460px); padding:1.4rem; border:0; border-radius:1rem; color:var(--brand-2); box-shadow:0 25px 80px rgba(5,25,32,.35); }.booking-cancel-dialog::backdrop { background:rgba(5,20,26,.62); backdrop-filter:blur(3px); }.booking-cancel-icon { display:grid; place-items:center; width:3rem; height:3rem; margin-bottom:.8rem; border-radius:50%; background:#fbe4e5; color:#bd2831; font-size:1.15rem; }.booking-cancel-dialog>div:nth-child(2) p { margin:0; color:#bd2831; font-size:.62rem; font-weight:750; text-transform:uppercase; }.booking-cancel-dialog h2 { margin:.1rem 0; font-size:1.25rem; }.booking-cancel-copy { margin:1rem 0; color:var(--brand-3); font-size:.78rem; }.booking-cancel-actions { display:flex; justify-content:flex-end; gap:.55rem; }
.staff-booking-progress { position:relative; display:grid; grid-template-columns:repeat(4,1fr); margin:0 0 1rem; padding:1rem; border:1px solid #dce5e2; border-radius:.85rem; background:#fff; list-style:none; }.staff-booking-progress::before { position:absolute; top:2rem; right:12.5%; left:12.5%; height:2px; content:""; background:#d5dfdc; }.staff-booking-progress li { position:relative; z-index:1; display:flex; align-items:center; gap:.35rem; flex-direction:column; color:#7b8a8f; font-size:.65rem; }.staff-booking-progress li span { display:grid; place-items:center; width:2rem; height:2rem; border:2px solid #d5dfdc; border-radius:50%; background:#fff; font-weight:750; }.staff-booking-progress li.complete span { border-color:var(--brand-1); background:var(--brand-1); color:#fff; }.staff-booking-progress li.complete b { color:var(--brand-1); }.staff-booking-form { padding:0 1.2rem 1.2rem!important; }.client-stripe-connected { color:#16a34a!important; }.client-payment-ready { display:inline-flex; align-items:center; gap:.35rem; padding:.35rem .65rem; border-radius:999px; background:#dff3e9; color:#087745; font-size:.67rem; font-weight:750; }.client-reservation-row { cursor:pointer; }.client-reservation-row:hover,.client-reservation-row:focus { outline:0; background:#f1f7f5; }.client-reservation-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:0 1.2rem 1rem; }.client-reservation-detail-card>p { margin-inline:1.2rem!important; }
@media(max-width:700px) { .booking-page-heading strong { position:static; display:block; margin-top:.2rem; }.booking-page-heading>span { flex-basis:2.8rem; width:2.8rem; height:2.8rem; }.reservation-list-content { align-items:flex-start; flex-direction:column; gap:.3rem; }.reservation-list-meta { text-align:left; }.reservation-list-icon { display:none; }.reservation-summary-card>.card-body,.client-reservation-facts { grid-template-columns:1fr; }.booking-cancel-actions { flex-direction:column-reverse; }.booking-cancel-actions button { width:100%; }.staff-booking-progress { padding-inline:.4rem; }.staff-booking-progress li b { font-size:.55rem; }.client-reservations-table thead { display:none; }.client-reservations-table tr { display:grid; grid-template-columns:repeat(2,1fr); padding:.65rem; border-bottom:1px solid #e1e8e6; }.client-reservations-table td { padding:.3rem!important; border:0!important; }.client-reservations-table td:nth-child(2),.client-reservations-table td:nth-child(3),.client-reservations-table td:nth-child(4) { grid-column:1/3; }.client-reservations-table td:nth-child(7) { grid-column:2; grid-row:1; text-align:right; }.client-reservation-facts { margin-inline:.8rem; } }

.review-stars {
  color: var(--brand-4);
  white-space: nowrap;
  letter-spacing: 0.08em;
}

.review-form-status:empty,
[data-reaction-status]:empty {
  min-height: 0;
}

.space-engagement {
  border-top: 1px solid rgba(var(--brand-2-rgb), 0.12);
}

.space-engagement > summary {
  padding-top: 0.85rem;
  color: var(--brand-1);
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
}

.space-engagement > summary::marker {
  color: var(--brand-1);
}

.space-engagement-body .review-item {
  padding-block: 0.75rem;
}

#locationFavoriteBtn[aria-pressed="true"] {
  box-shadow: 0 0 0 0.2rem rgba(var(--brand-1-rgb), 0.12);
}

.container-community {
  max-width: 1040px;
}

.community-read-note {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem;
  border-radius: var(--bs-border-radius);
  background: color-mix(in srgb, var(--brand-1) 9%, white);
  color: var(--brand-2);
}

.community-read-note > i {
  margin-top: 0.15rem;
  color: var(--brand-1);
}

@media (min-width: 992px) {
  .community-checkin-card {
    position: sticky;
    top: 1rem;
  }
}

/* Customer notification preferences and permission education prompt */
.notification-permission-prompt {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 1080;
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  width: min(420px, calc(100vw - 2rem));
  padding: 1rem;
  border: 1px solid rgba(var(--brand-2-rgb), 0.14);
  border-radius: var(--bs-border-radius-lg);
  background: #fff;
  box-shadow: 0 12px 36px rgba(var(--brand-2-rgb), 0.22);
}

.notification-permission-prompt[hidden] {
  display: none;
}

.notification-prompt-icon,
.notification-settings-icon {
  display: grid;
  place-items: center;
  flex: 0 0 2.5rem;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--brand-4) 22%, white);
  color: color-mix(in srgb, var(--brand-4) 75%, black);
}

.notification-setting-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 0;
  border-top: 1px solid rgba(var(--brand-2-rgb), 0.12);
}

.notification-setting-row .form-switch {
  flex: 0 0 auto;
  margin: 0;
}

.notification-setting-row .form-check-input {
  width: 2.6rem;
  height: 1.35rem;
  margin: 0;
  cursor: pointer;
}

@media (max-width: 575.98px) {
  .notification-permission-prompt {
    right: 0.75rem;
    bottom: 0.75rem;
    width: calc(100vw - 1.5rem);
  }
}
.chat-layout{display:grid;grid-template-columns:minmax(270px,340px) minmax(0,1fr);gap:1rem;height:min(720px,calc(100vh - 150px));min-height:520px}.chat-inbox,.chat-thread{overflow:hidden}.chat-panel-heading,.chat-thread-header{display:flex;align-items:center;gap:.75rem;padding:1rem;border-bottom:1px solid var(--border-color,#dee2e6)}.chat-panel-heading{justify-content:space-between}.conversation-list{overflow-y:auto;max-height:calc(100% - 73px)}.conversation-item{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid rgba(0,0,0,.06);color:inherit;text-decoration:none}.conversation-item:hover,.conversation-item.active{background:rgba(30,111,94,.08)}.conversation-copy{min-width:0;flex:1}.conversation-preview{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.chat-thread{position:relative}.chat-thread-empty{display:grid;place-content:center;height:100%;padding:2rem;text-align:center}.chat-thread-empty>i{margin-bottom:1rem;color:var(--brand-1);font-size:3rem}.chat-active{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;height:100%}.message-list{overflow-y:auto;padding:1rem;background:linear-gradient(180deg,rgba(30,111,94,.025),rgba(255,255,255,.45))}.message-row{display:flex;margin:.45rem 0}.message-row--mine{justify-content:flex-end}.message-bubble{max-width:min(78%,520px);padding:.65rem .8rem;border-radius:16px 16px 16px 4px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.07)}.message-row--mine .message-bubble{border-radius:16px 16px 4px 16px;background:var(--brand-1);color:#fff}.message-bubble p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.message-time{display:block;margin-top:.35rem;opacity:.68;text-align:right}.message-image-link img{display:block;max-width:100%;max-height:360px;margin:.3rem 0;border-radius:10px;object-fit:contain}.message-share-card{display:flex;align-items:center;gap:.65rem;min-width:230px;margin-top:.4rem;padding:.65rem;border-radius:10px;background:rgba(255,255,255,.92);color:#132b27;text-decoration:none}.message-share-card>i{color:var(--brand-1);font-size:1.3rem}.message-share-card span{display:flex;flex-direction:column}.chat-composer{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:.4rem;padding:.75rem;border-top:1px solid rgba(0,0,0,.08);background:#fff}.chat-composer textarea{max-height:120px;resize:none}.chat-attachment-preview{position:relative;width:max-content;max-width:160px;margin:.5rem .75rem 0}.chat-attachment-preview img{max-width:160px;max-height:100px;border-radius:10px;object-fit:cover}.chat-attachment-preview button{position:absolute;right:-8px;top:-8px;border-radius:50%}@media(max-width:991px){.chat-layout{display:block;height:auto;min-height:0}.chat-thread{display:none;height:calc(100vh - 155px);min-height:480px}.chat-layout--open .chat-inbox{display:none}.chat-layout--open .chat-thread{display:block}.message-bubble{max-width:88%}}
.report-dialog{width:min(92vw,520px);padding:0;border:0;border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.28)}.report-dialog::backdrop{background:rgba(10,25,35,.62);backdrop-filter:blur(2px)}.report-dialog form{padding:1.25rem}.report-action{color:var(--bs-secondary-color);font-size:.78rem;text-decoration:none}.report-action:hover{color:var(--bs-danger)}
.chat-composer{grid-template-columns:auto auto minmax(0,1fr) auto;gap:.25rem}.chat-gif-button{font-size:.72rem;font-weight:800}.new-chat-person{cursor:pointer}.new-chat-person:hover{background:rgba(30,111,94,.08)!important}.giphy-dialog{width:min(94vw,680px)}.giphy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;max-height:55vh;overflow-y:auto}.giphy-grid button{overflow:hidden;padding:0;border:0;border-radius:10px;background:#eef2f1}.giphy-grid img{display:block;width:100%;height:130px;object-fit:cover}@media(max-width:520px){.giphy-grid{grid-template-columns:repeat(2,1fr)}.giphy-grid img{height:120px}}

/* Messenger switches to a true single-pane app layout before narrow Android WebViews
   can accidentally receive the desktop two-column presentation. */
.conversation-item,
.conversation-item:hover {
  text-decoration: none !important;
}

@media (max-width: 1199.98px) {
  body:has(.chat-layout) .site-footer {
    display: none;
  }

  body:has(.chat-layout) .site-main {
    padding-bottom: calc(4.75rem + env(safe-area-inset-bottom));
  }

  body:has(.chat-layout) .container-social {
    width: 100%;
    max-width: none;
    padding: 0 !important;
  }

  .chat-layout {
    display: block;
    width: 100%;
    height: auto;
    min-height: calc(100dvh - 9.5rem);
  }

  .chat-inbox,
  .chat-thread {
    width: 100%;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .chat-panel-heading {
    min-height: 5.25rem;
    padding: 1rem 1.1rem;
    background: #fff;
  }

  .chat-panel-heading h1 {
    font-size: 1.35rem;
  }

  .chat-panel-heading .btn {
    flex: 0 0 auto;
    width: auto;
    min-height: 2.45rem;
    padding-inline: .85rem;
    border-radius: 999px;
  }

  .conversation-list {
    max-height: none;
    background: #fff;
  }

  .conversation-item {
    gap: .8rem;
    min-height: 4.8rem;
    padding: .7rem 1.1rem;
    border-bottom: 1px solid rgba(var(--brand-2-rgb), .08);
  }

  .conversation-item .profile-avatar {
    flex: 0 0 3.1rem;
    width: 3.1rem;
    height: 3.1rem;
  }

  .conversation-item strong {
    color: var(--brand-2);
    font-size: .95rem;
    text-decoration: none;
  }

  .conversation-item small {
    font-size: .72rem;
  }

  .chat-layout:not(.chat-layout--open) .chat-thread {
    display: none !important;
  }

  .chat-layout--open .chat-inbox {
    display: none !important;
  }

  .chat-layout--open .chat-thread {
    display: block !important;
    height: calc(100dvh - 8.8rem);
    min-height: 30rem;
  }

  .chat-thread-header {
    min-height: 4.25rem;
    padding: .65rem .8rem;
    background: #fff;
  }

  .message-list {
    padding: .8rem;
  }

  .chat-thread-empty {
    display: none;
  }

  .message-bubble {
    max-width: 86%;
  }
}

@media (max-width: 575.98px) {
  .chat-panel-heading .btn span {
    display: inline !important;
  }

  .chat-composer {
    padding: .55rem .5rem calc(.55rem + env(safe-area-inset-bottom));
  }

  .chat-composer > .btn-link {
    padding-inline: .4rem;
  }
}

/* Admin sidebar collapsible nav groups (e.g. "Store & Promos") — no Bootstrap JS is loaded in
   the admin layout, so this is plain CSS/JS (see vendor/adminctl/js/sidebar.js). */
.nav-group-toggle {
  width: 100%;
  background: none;
  border: none;
}

.nav-group-chevron {
  font-size: .7rem;
  transition: transform .15s ease;
}

.nav-group.is-open .nav-group-chevron {
  transform: rotate(180deg);
}

.nav-group-menu {
  display: none;
  padding-left: 1.25rem;
}

.nav-group.is-open > .nav-group-menu {
  display: block;
}
/* CampOS stay search and campground-wide availability */
.stay-search-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;margin:0 0 1.25rem;border:1px solid #d9e4e1;border-radius:18px;background:linear-gradient(135deg,#f4faf8,#fff);box-shadow:0 8px 24px rgba(10,43,55,.06)}
.stay-search-bar>div{display:flex;align-items:center;gap:.85rem}.stay-search-bar small,.stay-search-bar span{display:block;color:#64748b}.stay-search-bar strong{display:block;color:#0d2535}.stay-search-icon{display:grid!important;place-items:center;width:44px;height:44px;border-radius:13px;background:#dcefeb;color:#1e6f5e!important;font-size:1.15rem}
.stay-date-dialog{width:min(920px,calc(100% - 1.5rem));max-width:none;padding:0;border:0;border-radius:24px;color:#0d2535;box-shadow:0 28px 80px rgba(6,28,38,.3)}.stay-date-dialog::backdrop{background:rgba(7,25,35,.64);backdrop-filter:blur(3px)}.stay-date-dialog-inner{position:relative;padding:1.5rem}.stay-date-close{position:absolute;right:1rem;top:1rem;width:40px;height:40px;border:0;border-radius:50%;background:#eef3f2;color:#0d2535}.stay-date-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:#1e6f5e;font-size:.75rem;font-weight:800;margin:0}.stay-date-dialog h2{font-size:1.6rem;margin:.25rem 0 .4rem}.stay-date-selection{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin:1.25rem 0;padding:.85rem 1rem;border:1px solid #dbe5e3;border-radius:15px;background:#f8fbfa}.stay-date-selection div:last-child{text-align:right}.stay-date-selection small{display:block;color:#64748b}.stay-date-selection strong{display:block}.stay-date-selection>i{color:#d29a26}.stay-calendar{position:relative}.stay-calendar-nav{position:absolute;z-index:2;top:0;left:0;right:0;display:flex;justify-content:space-between;pointer-events:none}.stay-calendar-nav button{pointer-events:auto;width:34px;height:34px;border:1px solid #dbe5e3;border-radius:50%;background:#fff;color:#1e6f5e}.stay-months{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.stay-month h3{text-align:center;font-size:1rem;margin:.45rem 0 1rem}.stay-weekdays,.stay-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.stay-weekdays span{padding:.25rem;color:#7b8a92;font-size:.7rem;font-weight:700;text-transform:uppercase}.stay-days button{aspect-ratio:1;border:0;border-radius:50%;background:transparent;color:#172d3a}.stay-days button:not(:disabled):hover{background:#e5f2ef}.stay-days button:disabled{color:#c6ced2}.stay-days button.is-range{border-radius:0;background:#e1f0ec}.stay-days button.is-start,.stay-days button.is-end{border-radius:50%;background:#1e6f5e;color:#fff;font-weight:800}.stay-date-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e5ecea}
.space-availability-badge{position:absolute;left:.65rem;bottom:.65rem;padding:.35rem .55rem;border-radius:999px;font-size:.72rem;box-shadow:0 3px 10px rgba(0,0,0,.18)}.space-availability-badge.available{background:#e7f7ee;color:#167044}.space-availability-badge.unavailable{background:#fff1f1;color:#a83939}.space-list-card.is-unavailable{opacity:.76}.space-list-card.is-unavailable .space-list-media img{filter:grayscale(.35)}.space-stay-result{margin-top:.9rem;padding:.7rem .8rem;border-radius:12px}.space-stay-result.available{background:#edf8f3}.space-stay-result.unavailable{background:#fff4f2}.space-stay-result div{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.space-stay-result span,.space-stay-result small{color:#4f675f}.space-stay-result strong{font-size:1.1rem;color:#126342}.space-stay-result p{margin:0;color:#8f3d35;font-size:.84rem}.space-stay-result small{display:block;margin-top:.25rem;color:#9a5a13}

/* Reservation Grid (App\Controllers\LocationGridController) — this block is the LAYOUT MECHANICS
   (CSS Grid column math driven by --grid-template-columns, which public/assets/js/location-grid.js
   sets per row), not just visual polish. Colors/spacing/typography here are placeholders — safe
   to restyle freely — but keep display:grid, grid-template-columns:var(--grid-template-columns),
   and the grid-column-based bar positioning intact, or the bars stop lining up with their dates. */
.reservation-grid-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}
.reservation-grid-nav{display:flex;align-items:center;gap:.4rem}
.reservation-grid-legend{display:flex;gap:.9rem;flex-wrap:wrap}
.grid-legend-item{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:#5b6b72}
.grid-bar-swatch{display:inline-block;width:12px;height:12px;border-radius:3px}
.grid-bar-swatch.status-confirmed{background:#1e6f5e}
.grid-bar-swatch.status-pending{background:#c9a227}
.grid-bar-swatch.status-checked_in{background:#2563a8}
.grid-bar-swatch.status-blocked{background:#8a8f98}
.reservation-grid-scroll{overflow-x:auto;border:1px solid #e2e8e6;border-radius:12px}
.reservation-grid{min-width:max-content}
.reservation-grid-row{display:grid;grid-template-columns:var(--grid-template-columns);position:relative;border-bottom:1px solid #edf1f0}
.reservation-grid-row:last-child{border-bottom:none}
.reservation-grid-header{position:sticky;top:0;z-index:3;background:#f7faf9;font-weight:600;font-size:.78rem}
.reservation-grid-label-cell{position:sticky;left:0;z-index:2;background:#fff;padding:.5rem .75rem;border-right:1px solid #e2e8e6;display:flex;align-items:center;justify-content:space-between;gap:.4rem;font-size:.85rem;grid-column:1}
.reservation-grid-header .reservation-grid-label-cell{background:#f7faf9}
.reservation-grid-row.is-pooled .reservation-grid-label-cell{color:#5b6b72;font-style:italic}
.grid-block-btn{border:none;background:none;color:#9aa3a8;padding:.15rem .3rem;line-height:1}
.grid-block-btn:hover{color:#a83939}
.reservation-grid-date-cell{padding:.4rem 0;text-align:center;border-right:1px solid #f0f3f2;display:flex;flex-direction:column}
.reservation-grid-date-cell.is-today{background:#fbf6e6}
.grid-date-dow{font-size:.65rem;color:#8a949a;text-transform:uppercase}
.grid-date-num{font-size:.82rem}
.reservation-grid-day-cell{grid-row:1;min-height:2.6rem;border-right:1px solid #f0f3f2;cursor:pointer}
.reservation-grid-day-cell:hover{background:#f2f8f6}
.reservation-grid-day-cell.is-drop-target{background:#dcefeb}
.reservation-grid-bar{grid-row:1;align-self:center;margin:.3rem .15rem;padding:.25rem .5rem;border-radius:6px;color:#fff;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;z-index:1}
.reservation-grid-bar.status-confirmed{background:#1e6f5e}
.reservation-grid-bar.status-pending{background:#c9a227}
.reservation-grid-bar.status-checked_in{background:#2563a8}
.reservation-grid-bar.status-checked_out{background:#8a8f98}
.reservation-grid-bar.status-blocked{background:repeating-linear-gradient(45deg,#8a8f98,#8a8f98 6px,#787d84 6px,#787d84 12px)}
.reservation-grid-status{padding:.5rem 0}
.reservation-grid-block-dialog{width:min(420px,calc(100% - 1.5rem));border:0;border-radius:16px;padding:1.25rem;box-shadow:0 20px 60px rgba(6,28,38,.25)}
.reservation-grid-block-dialog::backdrop{background:rgba(7,25,35,.55)}

/* Reservation grid visual layer — the grid-column mechanics above remain authoritative. */
.reservation-grid-heading{align-items:center!important}.reservation-grid-summary{display:flex;gap:.65rem}.reservation-grid-summary>span{min-width:135px;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;align-items:center;padding:.65rem .8rem;border:1px solid #dbe6e3;border-radius:.8rem;background:#fff;box-shadow:0 5px 15px rgba(10,38,46,.05)}.reservation-grid-summary i{grid-row:1/3;width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#e4f1ed;color:var(--brand-1)}.reservation-grid-summary b{color:var(--brand-2);line-height:1}.reservation-grid-summary small{color:var(--brand-3);font-size:.56rem}
.reservation-grid-card{padding:0!important;background:#f9fbfa}.reservation-grid-toolbar{margin:0;padding:1rem 1.1rem;border-bottom:1px solid #dfe8e5;background:#fff}.reservation-grid-nav{padding:.25rem;border:1px solid #d8e3e0;border-radius:.7rem;background:#f7faf9}.reservation-grid-nav .btn{min-width:34px;border:0;background:transparent;color:var(--brand-2)}.reservation-grid-nav .btn:hover{background:#e6f1ed;color:var(--brand-1)}.reservation-grid-nav input{min-height:2rem!important;border:0!important;background:#fff!important;font-size:.72rem}.reservation-grid-range-label{padding:0 .55rem;color:var(--brand-2);font-size:.72rem;white-space:nowrap}.reservation-grid-legend{padding:.45rem .7rem;border-radius:999px;background:#f4f7f6}.grid-legend-item{font-size:.66rem;font-weight:650}.grid-bar-swatch{width:10px;height:10px;border-radius:50%}.reservation-grid-help{margin:.65rem 1rem!important;color:#728188;font-size:.66rem}.reservation-grid-help>i{color:var(--brand-1)}
.reservation-grid-status{margin:1rem!important;padding:1.2rem;border:1px solid #dbe6e3;border-radius:.8rem;background:#fff;color:var(--brand-3);font-size:.76rem;text-align:center}.reservation-grid-status .spinner-border{margin-right:.4rem;color:var(--brand-1)}.reservation-grid-scroll{margin:0 1rem 1rem;border-color:#d8e3e0;border-radius:.8rem;background:#fff;box-shadow:inset 0 1px 0 #fff;scrollbar-color:#aebfba #eef3f1;scrollbar-width:thin}.reservation-grid-scroll::-webkit-scrollbar{height:10px}.reservation-grid-scroll::-webkit-scrollbar-track{background:#eef3f1}.reservation-grid-scroll::-webkit-scrollbar-thumb{border:2px solid #eef3f1;border-radius:99px;background:#aebfba}
.reservation-grid-header{z-index:5;background:#f1f6f4;box-shadow:0 2px 5px rgba(10,38,46,.07)}.reservation-grid-header .reservation-grid-label-cell{z-index:6;background:#edf4f1;color:var(--brand-2);letter-spacing:.04em;text-transform:uppercase}.reservation-grid-label-cell{min-height:52px;padding:.55rem .7rem;border-right-color:#dbe5e2}.reservation-grid-label-cell>span{min-width:0;display:grid}.reservation-grid-label-cell b{overflow:hidden;color:var(--brand-2);font-size:.75rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.reservation-grid-label-cell small{overflow:hidden;color:#7a898f;font-size:.58rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.reservation-grid-row.is-pooled .reservation-grid-label-cell{padding-left:1.2rem;background:#fbfcfc}.reservation-grid-row.is-pooled .reservation-grid-label-cell b:before{margin-right:.35rem;color:#9aaba5;content:"↳"}.grid-block-btn{width:27px;height:27px;flex:0 0 auto;border-radius:7px}.grid-block-btn:hover{background:#fff0ed}.reservation-grid-date-cell{min-height:52px;justify-content:center;border-right-color:#e6ecea}.reservation-grid-date-cell.is-weekend{background:#f7f9f8}.reservation-grid-date-cell.is-today{position:relative;background:#fff6db}.reservation-grid-date-cell.is-today:after{position:absolute;bottom:3px;left:50%;width:5px;height:5px;transform:translateX(-50%);border-radius:50%;content:"";background:var(--brand-4)}.grid-date-dow{font-size:.58rem;font-weight:700}.grid-date-num{color:var(--brand-2);font-size:.73rem;font-weight:700}.reservation-grid-day-cell{min-height:52px;background:linear-gradient(to right,transparent 97%,#eff3f2 97%)}.reservation-grid-day-cell:hover{background:#eaf4f1}.reservation-grid-day-cell.is-drop-target{position:relative;background:#d8eee8;box-shadow:inset 0 0 0 2px var(--brand-1)}.reservation-grid-day-cell.is-drop-target:after{position:absolute;inset:5px;display:grid;place-items:center;border:1px dashed var(--brand-1);border-radius:5px;content:"Drop";color:var(--brand-1);font-size:.55rem;font-weight:800}
.reservation-grid-bar{min-height:34px;display:flex;align-items:center;margin:.45rem .18rem;padding:.35rem .55rem;border:1px solid rgba(255,255,255,.38);border-radius:8px;font-weight:650;box-shadow:0 3px 8px rgba(10,38,46,.16);transition:opacity .15s,transform .15s,box-shadow .15s;touch-action:pan-y}.reservation-grid-bar:hover{z-index:3;transform:translateY(-1px);box-shadow:0 6px 14px rgba(10,38,46,.22)}.reservation-grid-bar.is-dragging{opacity:.42}.reservation-grid-bar.status-confirmed{background:linear-gradient(135deg,#1e6f5e,#2b8b76)}.reservation-grid-bar.status-pending{background:linear-gradient(135deg,#b98009,#d7a52d);color:#fff}.reservation-grid-bar.status-checked_in{background:linear-gradient(135deg,#175f99,#347fba)}.reservation-grid-bar.status-checked_out{background:#74828a}.reservation-grid-bar.status-blocked{border-color:#89949a;background:repeating-linear-gradient(135deg,#7d898f,#7d898f 7px,#69757b 7px,#69757b 14px)}.grid-drag-image{position:fixed;left:-9999px;top:-9999px;width:180px}.grid-touch-ghost{position:fixed;z-index:10000;left:0;top:0;pointer-events:none;opacity:.94;box-shadow:0 14px 30px rgba(8,34,45,.35);transform:translate3d(-999px,-999px,0)}
.reservation-grid-block-dialog,.reservation-grid-action-dialog{width:min(460px,calc(100% - 1.25rem));max-width:none;border:0;border-radius:1.1rem;padding:1.35rem;box-shadow:0 24px 70px rgba(6,28,38,.3)}.reservation-grid-block-dialog::backdrop,.reservation-grid-action-dialog::backdrop{background:rgba(7,25,35,.62);backdrop-filter:blur(3px)}.reservation-grid-action-dialog{overflow:visible;text-align:center}.grid-action-dialog-icon{width:52px;height:52px;display:grid;place-items:center;margin:-2.5rem auto .6rem;border:5px solid #fff;border-radius:50%;background:#dff0eb;color:var(--brand-1);font-size:1.05rem;box-shadow:0 6px 16px rgba(10,38,46,.14)}.grid-action-dialog-icon.is-danger{background:#ffe8e4;color:#a63e35}.grid-action-eyebrow{margin:0;color:var(--brand-1);font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.reservation-grid-action-dialog h2{margin:.2rem 0;color:var(--brand-2);font-size:1.25rem}.reservation-grid-action-dialog p.text-secondary{font-size:.78rem}.grid-move-summary{display:grid;gap:.4rem;margin:1rem 0;padding:.8rem;border-radius:.75rem;background:#f4f8f7;text-align:left}.grid-move-summary>div{display:flex;justify-content:space-between;gap:1rem;color:var(--brand-3);font-size:.7rem}.grid-move-summary strong{color:var(--brand-2);text-align:right}.grid-move-summary .charge strong{color:#9a5a13}.grid-move-summary .refund strong{color:#16704d}.grid-action-dialog-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:1rem}
.reservation-grid-toast{position:fixed;z-index:11000;right:1rem;bottom:1rem;max-width:min(390px,calc(100% - 2rem));display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;padding:.8rem .9rem;border:1px solid #dce6e3;border-radius:.85rem;background:#fff;color:var(--brand-2);font-size:.75rem;font-weight:600;box-shadow:0 15px 40px rgba(7,30,40,.22)}.reservation-grid-toast[hidden]{display:none}.reservation-grid-toast>i{color:#a63e35}.reservation-grid-toast.is-success>i{color:#16805a}.reservation-grid-toast.is-loading>i{color:var(--brand-1)}.reservation-grid-toast button{border:0;background:transparent;color:#7a898f}
.reservation-grid-workspace{width:min(1460px,calc(100% - 2rem))!important}.reservation-grid-workspace .reservation-grid-card{border-radius:1rem;box-shadow:0 12px 34px rgba(8,34,44,.08)}.reservation-grid-workspace .reservation-grid-scroll{border-color:#cbdad6;box-shadow:0 3px 12px rgba(8,34,44,.06)}.reservation-grid-workspace .reservation-grid-row{min-height:60px}.reservation-grid-workspace .reservation-grid-header{min-height:56px}.reservation-grid-workspace .reservation-grid-label-cell{min-height:60px;padding:.65rem .8rem}.reservation-grid-workspace .reservation-grid-label-cell b{font-size:.78rem}.reservation-grid-workspace .reservation-grid-label-cell small{margin-top:.12rem;font-size:.6rem}.reservation-grid-workspace .reservation-grid-day-cell{min-height:60px;border-right-color:#e1e9e7;background:linear-gradient(to right,rgba(246,249,248,.45) 97%,#e5ecea 97%)}.reservation-grid-workspace .reservation-grid-row:nth-child(odd):not(.reservation-grid-header) .reservation-grid-day-cell{background:linear-gradient(to right,#fbfcfc 97%,#e5ecea 97%)}.reservation-grid-workspace .reservation-grid-row:hover .reservation-grid-label-cell{background:#f0f7f5}.reservation-grid-workspace .reservation-grid-row:hover .reservation-grid-day-cell{background-color:#f4faf8}.reservation-grid-workspace .reservation-grid-date-cell{min-height:56px}.reservation-grid-workspace .grid-date-dow{font-size:.62rem}.reservation-grid-workspace .grid-date-num{font-size:.78rem}.reservation-grid-workspace .reservation-grid-bar{min-height:38px;padding:.4rem .65rem;font-size:.72rem;overflow:visible}.grid-booking-name{display:block;overflow:hidden;width:100%;text-overflow:ellipsis;white-space:nowrap}.grid-booking-name i{margin-left:.25rem;color:#ffe08a}.grid-booking-popover{position:fixed;z-index:12000;width:310px;display:none;padding:.9rem;border:1px solid #cadbd6;border-radius:.9rem;background:#fff;color:var(--brand-2);white-space:normal;box-shadow:0 18px 48px rgba(5,28,38,.27);cursor:default}.grid-booking-popover.is-visible{display:block}.grid-popover-heading{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;padding-bottom:.65rem;border-bottom:1px solid #e5ecea}.grid-popover-heading>i{width:34px;height:34px;display:grid;place-items:center;border-radius:.6rem;background:#e4f2ee;color:var(--brand-1)}.grid-popover-heading>span{display:grid}.grid-popover-heading small,.grid-popover-facts small,.grid-popover-occasion small{color:#819097;font-size:.5rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.grid-popover-heading strong{font-size:.74rem}.grid-popover-heading em{padding:.25rem .42rem;border-radius:99px;background:#e4f2ee;color:#1c705c;font-size:.5rem;font-style:normal;font-weight:800;text-transform:capitalize}.grid-popover-heading em.status-pending{background:#fff0c9;color:#906000}.grid-popover-heading em.status-checked_in{background:#e5eef8;color:#24689e}.grid-popover-facts{display:grid;grid-template-columns:1.35fr .85fr;gap:.6rem;padding:.7rem 0}.grid-popover-facts>span{display:grid;grid-template-columns:auto 1fr;column-gap:.4rem}.grid-popover-facts i{grid-row:1/3;width:20px;color:#78928a}.grid-popover-facts b{overflow:hidden;font-size:.61rem;text-overflow:ellipsis;white-space:nowrap}.grid-popover-occasion{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.55rem;padding:.55rem .65rem;border-radius:.6rem;background:#fff6dc}.grid-popover-occasion>i{color:#a46c00}.grid-popover-occasion>span{display:grid}.grid-popover-occasion b{color:#73510c;font-size:.62rem}.grid-popover-phone{display:block;margin-top:.6rem;color:#60746d;font-size:.59rem}.grid-popover-phone i{margin-right:.25rem;color:var(--brand-1)}.grid-popover-action{display:flex;align-items:center;justify-content:space-between;margin:.7rem -.9rem -.9rem;padding:.6rem .9rem;border-radius:0 0 .9rem .9rem;background:#f1f7f5;color:var(--brand-1);font-size:.58rem;font-weight:800}
@media(max-width:800px){.reservation-grid-heading{gap:.75rem!important}.reservation-grid-summary{width:100%}.reservation-grid-summary>span{min-width:0;flex:1}.reservation-grid-toolbar{align-items:stretch;flex-direction:column}.reservation-grid-nav{display:grid;grid-template-columns:auto auto auto 1fr}.reservation-grid-nav input{width:100%!important}.reservation-grid-range-label{grid-column:1/-1;padding:.35rem;text-align:center}.reservation-grid-legend{justify-content:center;border-radius:.7rem}.reservation-grid-toolbar>.btn{width:100%}.reservation-grid-help{line-height:1.5}.reservation-grid-scroll{margin-inline:.5rem}.reservation-grid-action-dialog{margin-bottom:max(1rem,env(safe-area-inset-bottom))}}

/* HitchRoute Operations Console */
.admin-shell{--sidebar-width:275px;--sidebar-width-collapsed:76px;--header-height:68px;background:#f3f6f5}.admin-sidebar{display:flex;flex-direction:column;padding:0;background:linear-gradient(180deg,#0d2535 0%,#0b202c 100%);scrollbar-width:thin;scrollbar-color:#38505c transparent}.admin-sidebar-brand{min-height:68px;display:flex;align-items:center;gap:.7rem;padding:.8rem 1rem;border-bottom:1px solid rgba(255,255,255,.09)}.admin-sidebar-brand>span{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border-radius:12px;background:#fff;box-shadow:0 5px 15px rgba(0,0,0,.16)}.admin-sidebar-brand>div{display:grid;line-height:1.1}.admin-sidebar-brand strong{color:#fff;font-size:.95rem}.admin-sidebar-brand small{margin-top:.25rem;color:#83a0aa;font-size:.54rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.admin-sidebar nav{flex:1;padding:.75rem .65rem}.admin-nav-section{margin:.9rem .65rem .35rem;color:#6f8994;font-size:.56rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.admin-sidebar .nav{gap:.16rem}.admin-sidebar .nav-link{position:relative;min-height:42px;padding:.58rem .7rem;border:0;border-radius:.65rem;color:#b9c9cf;font-size:.76rem;font-weight:600}.admin-sidebar .nav-link:hover{background:rgba(255,255,255,.07);color:#fff}.admin-sidebar .nav-link.active{border:0;background:linear-gradient(135deg,#1e6f5e,#277f6c);color:#fff;box-shadow:0 5px 14px rgba(3,23,27,.22)}.admin-sidebar .nav-link.has-active-child{color:#fff}.admin-nav-icon{width:21px;text-align:center;font-size:.9rem}.admin-nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-nav-badge{min-width:20px;height:20px;display:grid;place-items:center;margin-left:auto;padding:0 .3rem;border:2px solid #0d2535;border-radius:99px;background:#e2554f;color:#fff;font-size:.55rem;font-weight:800}.nav-group-toggle{width:100%}.nav-group-chevron{margin-left:.4rem;font-size:.58rem}.nav-group-menu{position:relative;margin:.18rem 0 .25rem .95rem;padding:.15rem 0 .15rem .75rem;border-left:1px solid rgba(132,171,179,.18)}.nav-group-menu .nav-link{min-height:34px;padding:.42rem .55rem;font-size:.68rem}.nav-group-menu .nav-link i{width:16px;color:#78949e;font-size:.65rem}.nav-group-menu .nav-link.active i{color:#fff}.admin-sidebar-footer{position:sticky;bottom:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(255,255,255,.08);background:#0b202c}.admin-sidebar-footer a{display:flex;align-items:center;justify-content:center;gap:.45rem;padding:.8rem .4rem;color:#87a0a9;font-size:.62rem;text-decoration:none}.admin-sidebar-footer a:hover{background:rgba(255,255,255,.05);color:#fff}
.admin-shell.is-collapsed .admin-sidebar-brand{justify-content:center;padding-inline:.5rem}.admin-shell.is-collapsed .admin-sidebar-brand>div,.admin-shell.is-collapsed .admin-nav-label,.admin-shell.is-collapsed .admin-nav-section,.admin-shell.is-collapsed .nav-group-chevron,.admin-shell.is-collapsed .admin-sidebar-footer span{display:none}.admin-shell.is-collapsed .admin-sidebar nav{padding-inline:.55rem}.admin-shell.is-collapsed .admin-sidebar .nav-link{justify-content:center;padding-inline:.5rem}.admin-shell.is-collapsed .admin-nav-badge{position:absolute;right:1px;top:1px;min-width:16px;height:16px;border-width:1px;font-size:.48rem}.admin-shell.is-collapsed .nav-group-menu{position:absolute;z-index:20;left:70px;width:215px;margin-top:-42px;padding:.5rem;border:1px solid rgba(255,255,255,.12);border-radius:.7rem;background:#102d3c;box-shadow:0 12px 30px rgba(0,0,0,.28)}.admin-shell.is-collapsed .nav-group-menu .nav-link{justify-content:flex-start}.admin-shell.is-collapsed .nav-group-menu span{display:inline}
.admin-header{gap:.75rem;padding:0 1.15rem;background:rgba(255,255,255,.94);box-shadow:0 2px 10px rgba(12,39,50,.04);backdrop-filter:blur(12px)}.admin-header>.btn{width:36px;height:36px;display:grid!important;place-items:center;padding:0;border-color:#d5dfdc;color:#52666f}.admin-header-title{display:grid;line-height:1.1}.admin-header-title small{color:#789097;font-size:.52rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.admin-header-title h1{margin:.18rem 0 0;color:var(--brand-2);font-size:.94rem}.admin-header-tools{display:flex;align-items:center;gap:.6rem;margin-left:auto}.admin-system-status{display:flex;align-items:center;gap:.35rem;padding:.35rem .55rem;border-radius:99px;background:#eef6f3;color:#487064;font-size:.58rem;font-weight:700}.admin-system-status i{width:6px;height:6px;border-radius:50%;background:#21a36f;box-shadow:0 0 0 3px rgba(33,163,111,.12)}.admin-main{width:min(100%,1500px);padding:1.5rem clamp(1rem,2.2vw,2.25rem)}.admin-footer{background:#fff;font-size:.67rem}
.admin-main>.card,.admin-main>.row .card,.admin-main>.table-responsive,.admin-main>form{border-color:#dce5e2;border-radius:.9rem;box-shadow:0 7px 22px rgba(10,38,46,.055)}.admin-main .card-header{border-color:#e2e9e7;background:#f8faf9}.admin-main table thead th{border-bottom-color:#dfe7e5;background:#f4f7f6;color:#6f8087;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase}.admin-main table tbody td{border-color:#e8eeec;vertical-align:middle}.admin-main .form-control,.admin-main .form-select{border-color:#cad8d4;background-color:#fcfdfd}.admin-main .form-control:focus,.admin-main .form-select:focus{border-color:var(--brand-1);box-shadow:0 0 0 .2rem rgba(var(--brand-1-rgb),.11)}
.admin-dashboard-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.admin-dashboard-hero p,.admin-work-card header p{margin:0;color:var(--brand-1);font-size:.6rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.admin-dashboard-hero h2{margin:.2rem 0;color:var(--brand-2);font-size:clamp(1.5rem,3vw,2.1rem);letter-spacing:-.035em}.admin-dashboard-hero>div>span{color:var(--brand-3);font-size:.75rem}.admin-dashboard-date{display:flex;align-items:center;gap:.65rem;padding:.65rem .85rem;border:1px solid #dbe5e2;border-radius:.8rem;background:#fff}.admin-dashboard-date>i{color:var(--brand-1)}.admin-dashboard-date span{display:grid;color:var(--brand-3);font-size:.55rem}.admin-dashboard-date b{color:var(--brand-2);font-size:.68rem}.admin-attention-strip{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;padding:.8rem 1rem;border:1px solid #f0d7a5;border-radius:.85rem;background:#fff9e9}.admin-attention-strip>span{width:35px;height:35px;display:grid;place-items:center;border-radius:9px;background:#ffedbd;color:#9a6810}.admin-attention-strip>div{display:grid;margin-right:auto}.admin-attention-strip strong{font-size:.76rem}.admin-attention-strip small{color:#806f50;font-size:.62rem}.admin-attention-strip>a{color:#815907;font-size:.67rem;font-weight:700;text-decoration:none}.admin-metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1rem}.admin-metric-card{position:relative;display:flex;align-items:center;gap:.75rem;padding:1rem;border:1px solid #dce5e2;border-radius:.9rem;background:#fff;color:inherit;text-decoration:none;box-shadow:0 7px 22px rgba(10,38,46,.05);transition:.18s}.admin-metric-card:hover{transform:translateY(-2px);border-color:#b9d2ca;box-shadow:0 12px 28px rgba(10,38,46,.1)}.admin-metric-card.has-alert{border-color:#ecc8c4}.admin-metric-icon{width:43px;height:43px;display:grid;place-items:center;flex:0 0 auto;border-radius:.75rem}.admin-metric-icon.green{background:#e4f2ee;color:#1e6f5e}.admin-metric-icon.blue{background:#e5eef6;color:#25689c}.admin-metric-icon.gold{background:#fff1ce;color:#9b6a00}.admin-metric-icon.red{background:#fde9e7;color:#b0433b}.admin-metric-card>div{display:grid}.admin-metric-card small{color:#718188;font-size:.57rem;font-weight:700;text-transform:uppercase}.admin-metric-card strong{color:var(--brand-2);font-size:1.55rem;line-height:1.2}.admin-metric-card em{color:#85939a;font-size:.56rem;font-style:normal}.admin-metric-card>i{margin-left:auto;color:#b1bfbb;font-size:.7rem}.admin-dashboard-columns{display:grid;grid-template-columns:1.25fr .75fr;gap:.75rem}.admin-work-card{overflow:hidden;border:1px solid #dce5e2;border-radius:.9rem;background:#fff;box-shadow:0 7px 22px rgba(10,38,46,.05)}.admin-work-card header{padding:1rem;border-bottom:1px solid #e4ebe9}.admin-work-card h3{margin:.15rem 0 0;color:var(--brand-2);font-size:.95rem}.admin-quick-actions{display:grid;grid-template-columns:1fr 1fr;padding:.4rem}.admin-quick-actions>a{display:flex;align-items:center;gap:.7rem;padding:.8rem;border-radius:.7rem;color:inherit;text-decoration:none}.admin-quick-actions>a:hover{background:#f2f7f5}.admin-quick-actions>a>i:first-child{width:34px;height:34px;display:grid;place-items:center;border-radius:.6rem;background:#e7f2ef;color:var(--brand-1)}.admin-quick-actions span{display:grid;margin-right:auto}.admin-quick-actions b{color:var(--brand-2);font-size:.7rem}.admin-quick-actions small{color:#819097;font-size:.56rem}.admin-quick-actions>a>i:last-child{color:#a9b7b3;font-size:.55rem}.admin-health-list{padding:.6rem 1rem}.admin-health-list>div{display:flex;align-items:center;justify-content:space-between;padding:.65rem 0;border-bottom:1px solid #edf1f0;font-size:.68rem}.admin-health-list span i{width:20px;color:#7c918a}.admin-health-list b{min-width:27px;padding:.2rem .4rem;border-radius:99px;background:#eef3f2;text-align:center}.admin-health-list b.danger{background:#fde9e7;color:#a73e37}.admin-health-list b.warning{background:#fff1ce;color:#936300}.admin-work-card-link{display:flex;justify-content:space-between;padding:.8rem 1rem;border-top:1px solid #e7edeb;color:var(--brand-1);font-size:.65rem;font-weight:700;text-decoration:none}
@media(max-width:1100px){.admin-metric-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.admin-header-tools .admin-system-status,.admin-header-tools .btn span{display:none}.admin-header-tools .btn{display:grid!important}.admin-dashboard-hero{align-items:flex-start;flex-direction:column}.admin-dashboard-date{width:100%}.admin-metric-grid,.admin-dashboard-columns{grid-template-columns:1fr}.admin-quick-actions{grid-template-columns:1fr}.admin-attention-strip{align-items:flex-start}.admin-attention-strip>a{display:none}.admin-sidebar-footer{padding-bottom:env(safe-area-inset-bottom)}}

/* Cancellation, stay-change, and pet-booking workflows */
.cancellation-policy-intro{display:flex;align-items:flex-start;gap:.75rem;margin:0 1.2rem 1rem;padding:.85rem;border:1px solid #cfe3dc;border-radius:.8rem;background:#eff7f4}.cancellation-policy-intro>i{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:.6rem;background:#d9eee7;color:var(--brand-1)}.cancellation-policy-intro strong{display:block;color:var(--brand-2);font-size:.75rem}.cancellation-policy-intro p{margin:.15rem 0 0!important;color:var(--brand-3);font-size:.65rem}.cancellation-policy-card tr.is-default-policy td{background:#f1f8f5}.cancellation-policy-card tr.is-default-policy td:first-child{box-shadow:inset 3px 0 var(--brand-1)}.cancellation-policy-warning{display:flex;align-items:center;gap:.7rem;margin:0 1.2rem 1rem;padding:.8rem;border:1px solid #f0d6a0;border-radius:.75rem;background:#fff8e7}.cancellation-policy-warning>i{color:#a96f05}.cancellation-policy-warning span{display:grid;color:#796946;font-size:.64rem}.cancellation-policy-warning strong{color:#73510c}.cancellation-policy-create{padding-top:1rem!important;border-top:1px solid #e1e9e7!important;border-right:0!important;border-bottom:0!important;border-left:0!important;border-radius:0!important;background:#f8faf9!important}
.reservation-cancel-zone{display:flex;align-items:center;gap:.8rem;margin-top:1rem;padding:1rem;border:1px solid #efcbc7;border-radius:.9rem;background:#fff9f8;box-shadow:0 6px 18px rgba(115,40,34,.05)}.reservation-cancel-icon{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border-radius:.7rem;background:#fde7e4;color:#aa4038}.reservation-cancel-copy{display:grid;min-width:220px;margin-right:auto}.reservation-cancel-copy>small{color:#b1463e;font-size:.55rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.reservation-cancel-copy>strong{color:var(--brand-2);font-size:.78rem}.reservation-cancel-copy p{margin:.12rem 0 0;color:var(--brand-3);font-size:.6rem}.reservation-refund-override{width:150px}.reservation-refund-override .form-label{margin:0;color:var(--brand-2);font-size:.62rem}.reservation-refund-override>small{color:#9b7773;font-size:.52rem}.reservation-cancel-zone>.btn{white-space:nowrap}
.reservation-change-heading{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem}.reservation-change-heading>span{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border-radius:.7rem;background:#e3f1ed;color:var(--brand-1)}.reservation-change-heading h2{margin:0;color:var(--brand-2);font-size:.95rem}.reservation-change-heading p{margin:.1rem 0 0;color:var(--brand-3);font-size:.65rem}.booking-change-preview{margin-top:1rem;padding:.9rem;border:1px solid #cfe1dc;border-radius:.75rem;background:#f4f9f7}.booking-change-preview>p:first-child{color:var(--brand-2)}
.booking-pet-option{display:grid;grid-template-columns:auto 1fr 90px;align-items:center;gap:.7rem;margin-top:.25rem;padding:.75rem!important;border:1px solid #dce6e3;border-radius:.75rem;background:#f8faf9}.booking-pet-option>span{width:36px;height:36px;display:grid;place-items:center;border-radius:.65rem;background:#fff0d1;color:#9a6810}.booking-pet-option .form-label{margin:0;color:var(--brand-2);font-weight:700}.booking-pet-option p{margin:.05rem 0 0;color:var(--brand-3);font-size:.58rem}.booking-pet-option input{text-align:center}.booking-pet-notice{display:flex;align-items:center;gap:.65rem;margin:.25rem 0 0;padding:.7rem .8rem;border:1px solid #e2ddd1;border-radius:.75rem;background:#faf8f3;color:#786f5d;font-size:.65rem}.booking-pet-notice>i{width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;border-radius:.55rem;background:#eee9df}.booking-pet-notice span{display:grid}.booking-pet-notice strong{color:#5f584a}.staff-pet-field label i{color:#9a6810}
@media(max-width:767.98px){.cancellation-policy-intro,.cancellation-policy-warning{margin-inline:.75rem}.reservation-cancel-zone{align-items:stretch;flex-direction:column}.reservation-cancel-icon{display:none}.reservation-cancel-copy,.reservation-refund-override{width:100%}.reservation-cancel-zone>.btn{width:100%}.booking-pet-option{grid-template-columns:auto 1fr}.booking-pet-option input{grid-column:1/-1}}

/* Accommodation nightly-rate hierarchy */
.rate-precedence-banner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;margin:0 0 1rem;padding:.85rem 1rem;border:1px solid #cfe0db;border-radius:.8rem;background:linear-gradient(135deg,#f0f7f5,#fafcfc)}.rate-precedence-banner>span{width:38px;height:38px;display:grid;place-items:center;border-radius:.65rem;background:#dceee8;color:var(--brand-1)}.rate-precedence-banner strong{display:block;color:var(--brand-2);font-size:.74rem}.rate-precedence-banner p{margin:.12rem 0 0;color:var(--brand-3);font-size:.61rem}.rate-precedence-banner ol{display:flex;align-items:center;gap:.35rem;margin:0;padding:0;list-style:none;counter-reset:rate}.rate-precedence-banner li{display:flex;align-items:center;gap:.3rem;padding:.3rem .48rem;border-radius:99px;background:#fff;color:#61736d;font-size:.56rem;font-weight:750;box-shadow:0 2px 7px rgba(10,38,46,.07)}.rate-precedence-banner li:before{counter-increment:rate;content:counter(rate);width:16px;height:16px;display:grid;place-items:center;border-radius:50%;background:var(--brand-1);color:#fff;font-size:.48rem}.rate-field{position:relative;padding-top:.6rem;border-top:3px solid transparent;border-radius:.45rem}.rate-field.rate-base{border-top-color:#1e6f5e}.rate-field.rate-weekend{border-top-color:#d49b28}.rate-field.rate-event{border-top-color:#7759a7}.rate-field.rate-tax{border-top-color:#547481}.accommodation-rate-overrides{padding:.85rem .35rem .25rem;border:1px solid #e0e8e6;border-radius:.8rem;background:#fafcfc}.rate-field .form-label{font-weight:700!important}.rate-weekend .form-label:before,.rate-event .form-label:before,.rate-base .form-label:before{margin-right:.3rem;font-family:"Font Awesome 6 Pro","Font Awesome 6 Free";font-weight:900}.rate-base .form-label:before{content:"\f015";color:#1e6f5e}.rate-weekend .form-label:before{content:"\f186";color:#b67d0b}.rate-event .form-label:before{content:"\f145";color:#7759a7}
@media(max-width:767.98px){.rate-precedence-banner{grid-template-columns:auto 1fr}.rate-precedence-banner ol{grid-column:1/-1;justify-content:center}.accommodation-rate-overrides{margin-inline:0}}

/* Location dashboard: today's front-desk pulse followed by the full reservation board. */
.location-operations-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}.location-operations-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;padding:1rem;border:1px solid #d8e4e0;border-radius:.9rem;background:#fff;color:inherit;text-decoration:none;box-shadow:0 7px 22px rgba(10,38,46,.05);transition:.18s}.location-operations-card:hover{transform:translateY(-2px);border-color:#aaccc1;box-shadow:0 11px 26px rgba(10,38,46,.1)}.location-operations-card>span{width:44px;height:44px;display:grid;place-items:center;border-radius:.75rem;background:#e1f1ec;color:var(--brand-1);font-size:1rem}.location-operations-card.departures>span{background:#e8eef7;color:#376e9f}.location-operations-card.onsite>span{background:#fff0c9;color:#966500}.location-operations-card>div{display:grid}.location-operations-card small{color:#718188;font-size:.56rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.location-operations-card strong{color:var(--brand-2);font-size:1.55rem;line-height:1.15}.location-operations-card p{margin:0;color:#849198;font-size:.56rem}.location-operations-card>i{color:#adbbb7;font-size:.6rem}.location-dashboard-grid{width:100%;margin-bottom:0}.location-dashboard-grid .reservation-grid-scroll{min-height:320px}
@media(max-width:850px){.location-operations-row{grid-template-columns:1fr}.location-operations-card{padding:.8rem}.location-dashboard-grid .reservation-grid-scroll{min-height:260px}}

/* Admin finance ledger */
.finance-page-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.finance-page-heading p{margin:0;color:var(--brand-1);font-size:.6rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.finance-page-heading h1{margin:.15rem 0;color:var(--brand-2);font-size:1.7rem;letter-spacing:-.035em}.finance-page-heading>div:first-child>span{color:#718188;font-size:.7rem}.finance-audit-lock{display:flex;align-items:center;gap:.65rem;padding:.65rem .8rem;border:1px solid #cee1db;border-radius:.8rem;background:#f3f9f7}.finance-audit-lock>i{color:var(--brand-1);font-size:1rem}.finance-audit-lock span{display:grid}.finance-audit-lock b{color:var(--brand-2);font-size:.66rem}.finance-audit-lock small{color:#718188;font-size:.54rem}
.finance-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1rem}.finance-summary-card{position:relative;min-width:0;display:grid;grid-template-columns:auto 1fr;gap:.7rem;padding:.9rem;border:1px solid #dce5e2;border-radius:.9rem;background:#fff;box-shadow:0 7px 22px rgba(10,38,46,.05)}.finance-summary-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:.7rem;background:#e3f1ed;color:var(--brand-1)}.finance-summary-card.type-booking_refund .finance-summary-icon{background:#fde9e7;color:#ae443b}.finance-summary-card.type-store_charge .finance-summary-icon{background:#e7eef8;color:#326ba0}.finance-summary-card.type-subscription_charge .finance-summary-icon{background:#f1eafb;color:#7353a3}.finance-summary-card>div{min-width:0;display:grid}.finance-summary-card small{color:#728188;font-size:.55rem;font-weight:750;text-transform:uppercase}.finance-summary-card strong{color:var(--brand-2);font-size:1.25rem}.finance-summary-card strong.is-negative{color:#a43d35}.finance-summary-card span:not(.finance-summary-icon){color:#85939a;font-size:.56rem}.finance-summary-card em{grid-column:1/-1;padding-top:.45rem;border-top:1px solid #edf1f0;color:#718188;font-size:.56rem;font-style:normal}.finance-summary-card em b{float:right;color:var(--brand-1)}
.finance-filter-card .card-body{padding:1rem}.finance-card-title{display:flex;align-items:center;gap:.65rem;margin-bottom:.9rem}.finance-card-title>span{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border-radius:.65rem;background:#e5f1ee;color:var(--brand-1)}.finance-card-title h2{margin:0;color:var(--brand-2);font-size:.82rem}.finance-card-title p{margin:.08rem 0 0;color:#7b898f;font-size:.57rem}.finance-card-title>em{margin-left:auto;padding:.3rem .5rem;border-radius:99px;background:#eff5f3;color:#63776f;font-size:.55rem;font-style:normal}.finance-filter-card label{color:#53676f;font-weight:700}.finance-ledger-card{overflow:hidden}.finance-ledger-heading{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem;border-bottom:1px solid #e3eae8}.finance-ledger-heading h2{margin:0;color:var(--brand-2);font-size:.84rem}.finance-ledger-heading p{margin:.1rem 0 0;color:#7c8b91;font-size:.56rem}.finance-ledger-heading>span{color:#71837d;font-size:.55rem}.finance-ledger-heading>span i{color:var(--brand-1)}.finance-ledger-row{position:relative}.finance-ledger-row td:first-child{border-left:3px solid #71aa99}.finance-ledger-row.is-refund td:first-child{border-left-color:#cf716a}.finance-ledger-row td:nth-child(3) a{color:var(--brand-2);font-weight:700;text-decoration:none}.finance-ledger-row td:nth-child(3) a:hover{color:var(--brand-1)}.finance-amount{font-weight:800;white-space:nowrap}.finance-amount.is-positive{color:#16704d}.finance-amount.is-negative{color:#a83e36}
.finance-back-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--brand-1);font-size:.66rem;font-weight:700;text-decoration:none}.finance-transaction-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:1.15rem 1.25rem;border:1px solid #cfe1dc;border-radius:1rem;background:linear-gradient(135deg,#f1f8f6,#fff);box-shadow:0 8px 24px rgba(10,38,46,.06)}.finance-transaction-hero.is-refund{border-color:#efd2cf;background:linear-gradient(135deg,#fff6f5,#fff)}.finance-transaction-type{min-width:0;display:flex;align-items:center;gap:.85rem}.finance-transaction-type>span{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border-radius:.8rem;background:#dceee8;color:var(--brand-1);font-size:1.05rem}.finance-transaction-hero.is-refund .finance-transaction-type>span{background:#f9dfdc;color:#a83e36}.finance-transaction-type small{color:var(--brand-1);font-size:.57rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.finance-transaction-type h1{overflow:hidden;margin:.12rem 0;color:var(--brand-2);font-size:1.15rem;text-overflow:ellipsis}.finance-transaction-type p{margin:0;color:#7b898f;font-size:.6rem}.finance-transaction-total{display:grid;text-align:right}.finance-transaction-total small{color:#718188;font-size:.55rem}.finance-transaction-total strong{color:#16704d;font-size:1.7rem}.finance-transaction-hero.is-refund .finance-transaction-total strong{color:#a83e36}.finance-transaction-total span{color:#4d7468;font-size:.58rem}.finance-detail-card dl{font-size:.7rem}.finance-detail-card dt{color:#718188;font-weight:700}.finance-detail-card dd{color:var(--brand-2)}.finance-stripe-reference{display:flex;align-items:center;gap:.4rem}.finance-stripe-reference code{padding:.25rem .4rem;border-radius:.35rem;background:#f1f5f4;color:#49616a}.finance-stripe-reference button{width:27px;height:27px;border:1px solid #d4dfdc;border-radius:.4rem;background:#fff;color:#687c75}.finance-stripe-reference button.is-copied{border-color:#96c5b7;background:#e8f5f1;color:#16704d}.finance-note-card{border-left:3px solid var(--brand-4)!important}.finance-note-card textarea{font-size:.7rem}
@media(max-width:1100px){.finance-summary-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.finance-page-heading,.finance-transaction-hero{align-items:stretch;flex-direction:column}.finance-audit-lock{width:100%}.finance-summary-grid{grid-template-columns:1fr}.finance-transaction-total{text-align:left}.finance-ledger-heading>span{display:none}.finance-detail-card dl{font-size:.66rem}.finance-detail-card dt{margin-top:.45rem}.finance-card-title>em{display:none}}
@media(max-width:767.98px){.stay-search-bar{align-items:stretch;flex-direction:column}.stay-search-bar .btn{width:100%}.stay-date-dialog-inner{padding:1.1rem}.stay-date-dialog h2{padding-right:2.5rem}.stay-months{grid-template-columns:1fr}.stay-months .stay-month:nth-child(2){display:none}.stay-date-selection{gap:.5rem;padding:.7rem}.stay-date-selection strong{font-size:.88rem}.stay-date-actions{position:sticky;bottom:0;background:#fff;margin-left:-.25rem;margin-right:-.25rem}.stay-date-actions .btn-primary{flex:1}.stay-days button{min-height:40px}}

/* Booking agreements and campground-credit refund destination */
.booking-waivers{display:grid;gap:.65rem;margin:1.1rem 0}.booking-waivers-heading{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;padding:.8rem;border:1px solid #cfe1dc;border-radius:.8rem;background:#f3f8f6}.booking-waivers-heading>span{width:38px;height:38px;display:grid;place-items:center;border-radius:.65rem;background:#dceee8;color:var(--brand-1)}.booking-waivers-heading h2,.booking-waivers-heading h3{margin:0;color:var(--brand-2);font-size:.82rem}.booking-waivers-heading p{margin:.1rem 0 0;color:#718188;font-size:.58rem}.booking-waivers-heading em{padding:.25rem .48rem;border-radius:99px;background:#fff;color:#6d7c81;font-size:.53rem;font-style:normal;font-weight:750;white-space:nowrap}.booking-waiver-card{overflow:hidden;border:1px solid #dbe5e2;border-radius:.85rem;background:#fff;box-shadow:0 5px 16px rgba(10,38,46,.04)}.booking-waiver-card summary{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.6rem;padding:.75rem .85rem;cursor:pointer;list-style:none}.booking-waiver-card summary::-webkit-details-marker{display:none}.booking-waiver-card summary>span{width:31px;height:31px;display:grid;place-items:center;border-radius:.55rem;background:#edf5f2;color:var(--brand-1)}.booking-waiver-card summary strong{color:var(--brand-2);font-size:.7rem}.booking-waiver-card summary small{color:var(--brand-1);font-size:.54rem;font-weight:700}.booking-waiver-card summary>i{color:#879792;font-size:.55rem;transition:transform .18s}.booking-waiver-card details[open] summary>i{transform:rotate(180deg)}.booking-waiver-content{max-height:280px;overflow:auto;padding:.85rem 1rem;border-top:1px solid #e3eae8;border-bottom:1px solid #e3eae8;background:#fafcfb;color:#465b62;font-size:.64rem;line-height:1.65}.booking-waiver-content>:last-child{margin-bottom:0}.booking-waiver-acceptance{display:grid;gap:.75rem;padding:.8rem .9rem;background:#fff}.booking-waiver-acceptance .form-check{display:flex;align-items:flex-start;gap:.5rem;margin:0;padding:0}.booking-waiver-acceptance .form-check-input{position:static;flex:0 0 auto;width:1.15rem;height:1.15rem;margin:.05rem 0 0}.booking-waiver-acceptance .form-check-label{display:grid;color:var(--brand-2);font-size:.66rem}.booking-waiver-acceptance .form-check-label small{color:#718188;font-size:.54rem}.booking-signature-field{position:relative;padding:.6rem .7rem .5rem;border:1px solid #d6e1de;border-radius:.7rem;background:#fafcfb}.booking-signature-field label{display:block;color:#64766f;font-size:.52rem;font-weight:750;text-transform:uppercase}.booking-signature-field input{width:100%;padding:.35rem 0;border:0;border-bottom:1px solid #8da49d;background:transparent;color:var(--brand-2);font-size:.78rem}.booking-signature-field input:focus{outline:0;border-bottom-color:var(--brand-1);box-shadow:0 1px var(--brand-1)}.booking-signature-field small{display:block;margin-top:.28rem;color:#84918d;font-size:.5rem}.staff-waivers{margin-top:.75rem}.reservation-refund-method{min-width:330px;margin:0;padding:0;border:0}.reservation-refund-method legend{margin:0 0 .35rem;color:var(--brand-2);font-size:.58rem;font-weight:750}.reservation-refund-choice{display:inline-block;position:relative;margin-right:.3rem}.reservation-refund-choice input{position:absolute;opacity:0;pointer-events:none}.reservation-refund-choice label{display:flex;align-items:center;gap:.45rem;padding:.48rem .6rem;border:1px solid #d9e2df;border-radius:.65rem;background:#fff;cursor:pointer}.reservation-refund-choice label>i{color:#758982}.reservation-refund-choice label span{display:grid}.reservation-refund-choice label strong{color:var(--brand-2);font-size:.59rem}.reservation-refund-choice label small{color:#7d8b90;font-size:.48rem}.reservation-refund-choice input:checked+label{border-color:var(--brand-1);background:#eaf5f1;box-shadow:inset 0 0 0 1px var(--brand-1)}.reservation-refund-choice input:checked+label>i{color:var(--brand-1)}.reservation-refund-choice input:focus-visible+label{outline:3px solid rgba(30,111,94,.2)}.reservation-refund-method>p{margin:.35rem 0 0;color:#78888e;font-size:.52rem}.reservation-refund-method>p i{color:#b07a0e}.reservation-refund-method>p strong{color:var(--brand-2)}
@media(max-width:900px){.reservation-refund-method{width:100%;min-width:0}.reservation-refund-choice{display:block;margin:0 0 .35rem}.reservation-refund-choice label{width:100%}}@media(max-width:575.98px){.booking-waivers-heading{grid-template-columns:auto 1fr}.booking-waivers-heading em{display:none}.booking-waiver-card summary{grid-template-columns:auto 1fr auto}.booking-waiver-card summary small{display:none}.booking-waiver-content{max-height:230px}}

/* Campground email branding preview */
.email-branding-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:1rem;align-items:center}.email-branding-controls>p{margin:0 0 .8rem;color:#65777d;font-size:.61rem;line-height:1.55}.email-branding-form>label{display:block;margin-bottom:.3rem;color:var(--brand-2);font-size:.6rem;font-weight:750}.email-branding-form>.input-group{flex-wrap:nowrap}.email-branding-form>.input-group .btn{white-space:nowrap}.email-branding-form>small{display:block;margin-top:.4rem;color:#7c8c91;font-size:.51rem}.email-branding-form>small i{color:var(--brand-1)}.email-brand-preview{overflow:hidden;padding:.7rem;border:1px solid #d8e2df;border-radius:.8rem;background:#edf2f1;box-shadow:0 7px 20px rgba(10,38,46,.06)}.email-brand-preview>small{display:block;margin-bottom:.4rem;color:#75868b;font-size:.48rem;font-weight:750;text-transform:uppercase}.email-brand-preview>div{height:64px;display:grid;place-items:center;padding:.65rem;border-radius:.55rem .55rem 0 0;background:#fff}.email-brand-preview img{display:block;max-width:180px;max-height:44px;object-fit:contain}.email-brand-preview>div strong{color:#0f1f2e;font-size:.8rem}.email-brand-preview>span{display:block;padding:.65rem .7rem .3rem;background:#fff;color:#0f1f2e;font-size:.62rem;font-weight:800}.email-brand-preview>i{display:block;width:80%;height:5px;margin:.2rem .7rem;border-radius:99px;background:#e5ebea}.email-brand-preview>i+ i{width:62%;margin-bottom:.65rem}.email-brand-preview footer{margin:0 -.7rem -.7rem;padding:.5rem;background:#0f1f2e;color:#c9d3d0;font-size:.45rem;text-align:center}.email-brand-preview footer b{color:#fff}
.email-branding-card .email-branding-layout{padding:1.25rem}.email-branding-controls>p{max-width:720px;font-size:.78rem;line-height:1.65}.email-branding-form{padding:0!important;border:0!important;background:transparent!important}.email-branding-form>label{margin-bottom:.5rem;font-size:.78rem}.email-branding-upload-row{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:.75rem;align-items:stretch}.email-branding-upload-row>input[type=file]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.email-branding-file-picker{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:.8rem;min-height:58px;padding:.55rem .85rem;border:1px dashed #a9bfba;border-radius:.7rem;background:#fff;cursor:pointer;transition:border-color .18s,background .18s,box-shadow .18s}.email-branding-file-picker:hover,.email-branding-file-picker:focus-within{border-color:var(--brand-1);background:#f4faf8;box-shadow:0 0 0 3px rgba(var(--brand-1-rgb),.08)}.email-branding-file-picker>i:first-child{width:42px;height:42px;display:grid;place-items:center;border-radius:.6rem;background:#e5f2ee;color:var(--brand-1);font-size:1rem}.email-branding-file-picker>span{min-width:0;display:grid}.email-branding-file-picker strong{color:var(--brand-2);font-size:.82rem}.email-branding-file-picker small{overflow:hidden;color:#6f8085;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.email-branding-file-picker>i:last-child{color:#9aa9a5;font-size:.7rem}.email-branding-upload-row .btn{min-width:150px}.email-branding-upload-row .btn:disabled{opacity:.48;cursor:not-allowed}.email-branding-form>small{font-size:.65rem}.email-branding-form>small.is-error{color:#b42318}.email-branding-remove-form{margin-top:.7rem}.email-brand-preview{padding:.85rem}.email-brand-preview>small{font-size:.58rem}.email-brand-preview>div{height:78px}.email-brand-preview img{max-width:210px;max-height:56px}.email-brand-preview>div strong{font-size:.9rem}
@media(max-width:800px){.email-branding-layout{grid-template-columns:1fr}.email-brand-preview{max-width:340px}.email-branding-form>.input-group{display:grid;grid-template-columns:auto 1fr}.email-branding-form>.input-group .btn{grid-column:1/-1;margin-top:.4rem;border-radius:.45rem!important}}
@media(max-width:800px){.email-branding-upload-row{grid-template-columns:1fr}.email-branding-upload-row .btn{width:100%}.email-brand-preview{width:100%;max-width:none}}

/* Shared app loading state */
.hitchroute-loading-overlay[hidden]{display:none!important}.hitchroute-loading-overlay{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:1.25rem;background:rgba(15,31,46,.58);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);animation:hitchroute-overlay-in .18s ease-out}.hitchroute-loading-card{width:min(330px,calc(100vw - 2.5rem));display:grid;justify-items:center;padding:1.65rem 1.5rem 1.4rem;border:1px solid rgba(255,255,255,.7);border-radius:1.25rem;background:rgba(255,255,255,.97);box-shadow:0 24px 70px rgba(4,24,31,.32);text-align:center}.hitchroute-loading-mark{position:relative;width:92px;height:92px;display:grid;place-items:center;margin-bottom:.75rem}.hitchroute-loading-mark span{position:absolute;inset:2px;border:3px solid #d8ebe5;border-top-color:var(--brand-1);border-right-color:#e0a51c;border-radius:50%;animation:hitchroute-loader-spin 1.05s linear infinite}.hitchroute-loading-mark img{width:62px;height:62px;object-fit:contain;filter:drop-shadow(0 4px 7px rgba(15,31,46,.12));animation:hitchroute-logo-breathe 1.35s ease-in-out infinite}.hitchroute-loading-card strong{color:var(--brand-2);font-size:1.08rem}.hitchroute-loading-card p{margin:.3rem 0 .75rem;color:#66777d;font-size:.78rem}.hitchroute-loading-dots{display:flex;gap:.32rem}.hitchroute-loading-dots i{width:7px;height:7px;border-radius:50%;background:var(--brand-1);animation:hitchroute-dot 1s ease-in-out infinite}.hitchroute-loading-dots i:nth-child(2){animation-delay:.14s}.hitchroute-loading-dots i:nth-child(3){animation-delay:.28s}.hitchroute-is-loading body{overflow:hidden}@keyframes hitchroute-overlay-in{from{opacity:0}to{opacity:1}}@keyframes hitchroute-loader-spin{to{transform:rotate(360deg)}}@keyframes hitchroute-logo-breathe{0%,100%{transform:scale(.94)}50%{transform:scale(1.04)}}@keyframes hitchroute-dot{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}@media(prefers-reduced-motion:reduce){.hitchroute-loading-overlay,.hitchroute-loading-mark span,.hitchroute-loading-mark img,.hitchroute-loading-dots i{animation:none}}

/* Incidentals, location finance, and the active-stay customer dashboard */
.client-location-shell{grid-template-columns:280px minmax(0,1fr)}.client-location-shell>.client-dashboard-main{width:min(1420px,calc(100% - 3rem))}.client-location-nav{width:280px}.client-location-brand span{font-size:1.02rem}.client-location-nav-item a,.client-location-nav-group>button{font-size:.84rem}.client-location-nav-item.active .client-location-settings-subnav a{font-size:.73rem}.client-location-shell .client-dashboard-welcome h1{font-size:clamp(1.9rem,3vw,2.55rem)}.client-location-shell .client-dashboard-welcome span{font-size:.9rem}.client-location-shell .client-locations-card>.client-section-heading h2{font-size:1.12rem}.client-location-shell .client-locations-card>.client-section-heading p{font-size:.68rem}.client-location-shell .table th{font-size:.7rem}.client-location-shell .table td{font-size:.84rem}.client-location-shell form:not(.d-inline) .form-label{font-size:.8rem}.client-location-shell .form-control,.client-location-shell .form-select,.client-location-shell .input-group-text{min-height:44px;font-size:.88rem}.client-location-shell .btn{min-height:40px;padding:.48rem .85rem;font-size:.8rem}.client-location-shell .badge{font-size:.68rem}.client-location-shell .detached-row-form[hidden]{display:none!important;margin:0!important;padding:0!important;border:0!important}.location-finance-summary-grid{grid-template-columns:repeat(auto-fit,minmax(260px,340px))}.location-finance-summary-card small{font-size:.65rem}.location-finance-summary-card strong{font-size:1.4rem}.location-finance-summary-card em,.location-finance-summary-card footer{font-size:.62rem}.finance-ledger-heading h2{font-size:1rem}.finance-ledger-heading p{font-size:.68rem}.location-transaction-type{font-size:.7rem}.location-finance-amount{font-size:.82rem}.cancellation-policy-intro strong{font-size:.86rem}.cancellation-policy-intro p{font-size:.74rem}.cancellation-rates-table th:nth-child(1){width:22%}.cancellation-rates-table th:nth-child(2){width:19%}.cancellation-rates-table th:nth-child(3){width:17%}.cancellation-rates-table th:nth-child(4){width:9%}.cancellation-rates-table th:nth-child(5){width:10%}.cancellation-rates-table .input-group{flex-wrap:nowrap}.cancellation-policy-create{display:grid!important;grid-template-columns:minmax(200px,1.2fr) minmax(190px,1fr) minmax(180px,.9fr) auto auto;align-items:end!important;gap:.75rem!important;padding:1rem!important}.cancellation-policy-create>div{width:auto!important}.cancellation-policy-create .form-check{align-self:center;margin:0!important;padding-top:1.5rem}
@media(max-width:1100px){.cancellation-policy-create{grid-template-columns:1fr 1fr}.cancellation-policy-create>div{width:100%!important}.cancellation-policy-create .btn{width:100%}}@media(max-width:800px){.client-location-shell{display:block}.client-location-nav{width:min(82vw,310px)}.client-location-shell>.client-dashboard-main{width:calc(100% - 1rem)}.cancellation-policy-create{grid-template-columns:1fr}}

.client-location-shell>.location-settings-main{width:min(1450px,calc(100% - 3rem))}.location-settings-workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:1.25rem;align-items:start}.location-settings-menu{position:sticky;top:1rem;overflow:hidden;border:1px solid #d9e4e0;border-radius:1rem;background:#fff;box-shadow:0 10px 28px rgba(10,38,46,.07)}.location-settings-menu>div{display:grid;padding:1.1rem 1.2rem;border-bottom:1px solid #e4ebe9;background:#f4f8f7}.location-settings-menu>div small{color:var(--brand-1);font-size:.58rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.location-settings-menu>div strong{overflow:hidden;color:var(--brand-2);font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}.location-settings-menu>a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;min-height:67px;padding:.85rem 1rem;border-left:4px solid transparent;color:inherit;text-decoration:none}.location-settings-menu>a:hover{background:#f5f9f8}.location-settings-menu>a.active{border-left-color:var(--brand-1);background:#eaf5f1}.location-settings-menu>a>span:first-child{width:38px;height:38px;display:grid;place-items:center;border-radius:.65rem;background:#edf3f1;color:#687c75;font-size:.86rem}.location-settings-menu>a.active>span:first-child{background:var(--brand-1);color:#fff}.location-settings-menu>a>span:nth-child(2){display:grid}.location-settings-menu b{color:var(--brand-2);font-size:.75rem}.location-settings-menu a small{margin-top:.06rem;color:#7d8b90;font-size:.57rem}.location-settings-menu>a>i{color:#a5b2ae;font-size:.6rem}.location-settings-content{min-width:0}.location-settings-content>.client-locations-card{margin-bottom:0}.location-settings-content .client-section-heading{padding:1.25rem 1.4rem}.location-settings-content .client-section-heading h2{font-size:1.05rem}.location-settings-content .client-section-heading p{font-size:.62rem}.location-settings-content .form-control,.location-settings-content .form-select,.location-settings-content .input-group-text{min-height:42px;font-size:.82rem}.location-settings-content .btn{min-height:40px;padding:.48rem .85rem;font-size:.72rem}.tax-rates-table{border:1px solid #dfe7e5;border-radius:.85rem}.tax-rates-table th{padding:.85rem!important;background:#f7faf9;color:#708079;font-size:.6rem;letter-spacing:.05em;text-transform:uppercase}.tax-rates-table td{padding:.85rem!important}.tax-rates-table th:nth-child(1){width:35%}.tax-rates-table th:nth-child(2){width:20%}.tax-rates-table th:nth-child(3){width:10%}.tax-rates-table th:nth-child(4){width:12%}.tax-rates-table .input-group{flex-wrap:nowrap}.tax-rate-create-form{margin:0!important;padding:1rem!important;border:1px solid #dfe7e5!important;border-radius:.85rem!important;background:#f7faf9!important}.tax-rate-create-form>div:first-of-type{flex:1}.tax-rate-create-form>div:first-of-type input{width:100%}
@media(max-width:1050px){.location-settings-workspace{grid-template-columns:1fr}.location-settings-menu{position:static;display:flex;overflow-x:auto;border-radius:.75rem;scrollbar-width:thin}.location-settings-menu>div{display:none}.location-settings-menu>a{min-width:max-content;min-height:52px;grid-template-columns:auto 1fr;padding:.6rem .75rem;border-left:0;border-bottom:3px solid transparent}.location-settings-menu>a.active{border-bottom-color:var(--brand-1)}.location-settings-menu a small,.location-settings-menu>a>i{display:none}.location-settings-menu>a>span:first-child{width:30px;height:30px}.tax-rate-create-form>div{width:100%}.tax-rate-create-form .form-control,.tax-rate-create-form .btn{width:100%}}@media(max-width:650px){.tax-rates-table{border:0}.tax-rates-table table,.tax-rates-table tbody,.tax-rates-table tr,.tax-rates-table td{display:block;width:100%}.tax-rates-table thead{display:none}.tax-rates-table tr{margin-bottom:.65rem;padding:.7rem;border:1px solid #dfe7e5;border-radius:.7rem;background:#fff}.tax-rates-table td{padding:.3rem!important;border:0}.tax-rates-table td:nth-child(3),.tax-rates-table td:nth-child(4){display:inline-block;width:auto}.tax-rates-table td:last-child{padding-top:.55rem!important}}

.incidental-settings-notice{display:flex;align-items:flex-start;gap:.7rem;margin-bottom:.75rem;padding:.75rem .8rem;border:1px solid #efdaa9;border-radius:.75rem;background:#fff9e9}.incidental-settings-notice>i{margin-top:.12rem;color:#a8750c}.incidental-settings-notice span{display:grid}.incidental-settings-notice strong{color:#694c10;font-size:.64rem}.incidental-settings-notice small{color:#796c51;font-size:.53rem;line-height:1.5}.booking-incidental-authorization{display:grid;grid-template-columns:auto 1fr;gap:.7rem;margin:1rem 0;padding:.85rem;border:1px solid #e8cd93;border-radius:.8rem;background:#fff9e9}.booking-incidental-authorization>span{width:38px;height:38px;display:grid;place-items:center;border-radius:.65rem;background:#ffe8af;color:#8b5c00}.booking-incidental-authorization>div>strong{color:var(--brand-2);font-size:.7rem}.booking-incidental-authorization p{margin:.1rem 0 .55rem;color:#6d6960;font-size:.55rem}.booking-incidental-authorization .form-check{display:flex;align-items:flex-start;gap:.45rem;margin:0;padding:0}.booking-incidental-authorization .form-check-input{position:static;flex:0 0 auto;margin:.08rem 0 0}.booking-incidental-authorization .form-check-label{color:#4d5558;font-size:.6rem;font-weight:650}.incidental-auth-status{margin-left:auto;padding:.3rem .5rem;border-radius:99px;font-size:.52rem;font-weight:750}.incidental-auth-status.authorized{background:#e4f3ed;color:#16704d}.incidental-auth-status.not-authorized{background:#f1f3f3;color:#69787d}.incidental-ledger{overflow:hidden;margin-bottom:.8rem;border:1px solid #e0e7e5;border-radius:.75rem}.incidental-ledger>div,.incidental-ledger footer{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.65rem .75rem;border-bottom:1px solid #e8edec;font-size:.62rem}.incidental-ledger>div span{display:flex;align-items:center;gap:.45rem;color:#53656c}.incidental-ledger>div span i{color:#8a9a95}.incidental-ledger footer{border:0;background:#f5f8f7}.incidental-charge-warning,.incidental-charge-blocked{display:flex;align-items:center;gap:.65rem;margin-bottom:.7rem;padding:.7rem .8rem;border-radius:.7rem;background:#fff3d6}.incidental-charge-warning span,.incidental-charge-blocked span{display:grid}.incidental-charge-warning strong,.incidental-charge-blocked strong{color:var(--brand-2);font-size:.62rem}.incidental-charge-warning small,.incidental-charge-blocked small{color:#746b57;font-size:.52rem}.incidental-charge-blocked{margin:0;background:#f1f4f4}.incidental-charge-form{padding:.75rem;border:1px solid #e0e7e5;border-radius:.75rem;background:#fafcfc}.location-finance-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin-bottom:1rem}.location-finance-summary-card{display:grid;grid-template-columns:auto 1fr;gap:.65rem;padding:.85rem;border:1px solid #dce5e2;border-radius:.85rem;background:#fff;box-shadow:0 7px 20px rgba(10,38,46,.05)}.location-finance-summary-card>span{width:38px;height:38px;display:grid;place-items:center;border-radius:.65rem;background:#e3f1ed;color:var(--brand-1)}.location-finance-summary-card.type-booking_refund>span{background:#fde9e7;color:#a83e36}.location-finance-summary-card.type-incidental_charge>span{background:#fff0cc;color:#946300}.location-finance-summary-card>div{display:grid}.location-finance-summary-card small{color:#718188;font-size:.52rem;font-weight:750;text-transform:uppercase}.location-finance-summary-card strong{color:var(--brand-2);font-size:1.15rem}.location-finance-summary-card strong.is-negative{color:#a83e36}.location-finance-summary-card em{color:#829097;font-size:.5rem;font-style:normal}.location-finance-summary-card footer{grid-column:1/-1;padding-top:.45rem;border-top:1px solid #edf1f0;color:#718188;font-size:.51rem}.location-finance-summary-card footer b{float:right;color:var(--brand-1)}.location-finance-ledger-card{overflow:hidden;padding:0!important}.location-finance-filters{margin:0;padding:.85rem 1rem;border-bottom:1px solid #e3eae8;background:#fafcfc}.location-finance-table tr td:first-child{border-left:3px solid #71aa99}.location-finance-table tr.type-booking_refund td:first-child{border-left-color:#cf716a}.location-finance-table tr.type-incidental_charge td:first-child{border-left-color:#d2a038}.location-transaction-type{display:inline-flex;align-items:center;gap:.38rem;color:var(--brand-2);font-size:.58rem;font-weight:700;white-space:nowrap}.location-transaction-type i{width:22px;height:22px;display:grid;place-items:center;border-radius:.4rem;background:#edf3f1;color:var(--brand-1);font-size:.5rem}.location-finance-amount{font-size:.65rem;white-space:nowrap}.location-finance-amount.is-positive{color:#16704d}.location-finance-amount.is-negative{color:#a83e36}.location-finance-empty{display:grid;place-items:center;padding:2rem;text-align:center}.location-finance-empty>i{width:46px;height:46px;display:grid;place-items:center;margin-bottom:.5rem;border-radius:.75rem;background:#edf3f1;color:#80908b}.location-finance-empty strong{color:var(--brand-2);font-size:.72rem}.location-finance-empty p{margin:.1rem 0 0;color:#7e8d92;font-size:.55rem}.my-stay-empty span{width:58px;height:58px;display:grid;place-items:center;margin:0 auto .8rem;border-radius:1rem;background:#e3f1ed;color:var(--brand-1);font-size:1.25rem}.my-stay-empty .card-body>div{display:flex;justify-content:center;gap:.5rem}.my-stay-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;margin-bottom:1rem;padding:1rem;border:1px solid #aad0c3;border-radius:1rem;background:linear-gradient(135deg,#dff2eb,#fff);box-shadow:0 10px 28px rgba(14,77,64,.1)}.my-stay-hero.is-shared{border-color:#cbd7e4;background:linear-gradient(135deg,#edf3fa,#fff)}.my-stay-hero-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:.85rem;background:var(--brand-1);color:#fff;font-size:1.15rem}.my-stay-hero.is-shared .my-stay-hero-icon{background:#376e9f}.my-stay-hero>div{display:grid}.my-stay-hero p{margin:0;color:var(--brand-1);font-size:.53rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.my-stay-hero h1{margin:.08rem 0;color:var(--brand-2);font-size:1.2rem}.my-stay-hero>div>span{color:#718188;font-size:.6rem}.my-stay-section-heading{display:flex;align-items:center;gap:.65rem;margin-bottom:.75rem}.my-stay-section-heading>span{width:36px;height:36px;display:grid;place-items:center;border-radius:.65rem;background:#fff0cc;color:#946300}.my-stay-section-heading>div{display:grid}.my-stay-section-heading h2{margin:0;color:var(--brand-2);font-size:.76rem}.my-stay-section-heading p{margin:.08rem 0 0;color:#78888e;font-size:.53rem}.my-stay-credit-card .card-body{display:flex;align-items:center;gap:.7rem}.my-stay-credit-card .card-body>span{width:43px;height:43px;display:grid;place-items:center;border-radius:.75rem;background:#e3f1ed;color:var(--brand-1)}.my-stay-credit-card .card-body>div{display:grid}.my-stay-credit-card small{color:#718188;font-size:.5rem;font-weight:750;text-transform:uppercase}.my-stay-credit-card strong{color:var(--brand-2);font-size:1.25rem}.my-stay-credit-card p{margin:0;color:#7c898f;font-size:.52rem}.my-stay-copy-status{min-height:.8rem;margin:.25rem 0 0;color:#16704d;font-size:.5rem}.my-stay-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.my-stay-actions form{margin-right:auto}
@media(max-width:767.98px){.incidental-charge-form>div,.location-finance-filters>div{width:100%}.incidental-charge-form .form-control,.incidental-charge-form .btn,.location-finance-filters .form-control,.location-finance-filters .form-select,.location-finance-filters .btn{width:100%}.my-stay-hero{grid-template-columns:auto 1fr}.my-stay-hero>.reservation-status{grid-column:1/-1;justify-self:start}.my-stay-empty .card-body>div,.my-stay-actions{align-items:stretch;flex-direction:column}.my-stay-actions form,.my-stay-actions .btn{width:100%;margin:0}.my-stay-share-card .input-group{display:grid;grid-template-columns:1fr}.my-stay-share-card .input-group>*{width:100%;margin-top:.35rem;border-radius:.4rem!important}}

/* Drag across empty reservation-grid nights; the final gold cell is the departure date. */
.settings-heading-icon{width:38px;height:38px;display:grid;place-items:center;margin-left:auto;border-radius:.65rem;background:#dceee8;color:var(--brand-1)}.settings-heading-icon.gold{background:#fff0cc;color:#946300}.checkin-settings-form{padding-top:.2rem}.settings-toggle-row{position:relative;margin-bottom:.65rem}.settings-toggle-row>input{position:absolute;opacity:0;pointer-events:none}.settings-toggle-row>label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.8rem;border:1px solid #dce5e2;border-radius:.8rem;background:#fafcfc;cursor:pointer;transition:.18s}.settings-toggle-row>label>span:first-child{width:38px;height:38px;display:grid;place-items:center;border-radius:.65rem;background:#e8efed;color:#6c7f79}.settings-toggle-row>label>span:nth-child(2){display:grid}.settings-toggle-row label strong{color:var(--brand-2);font-size:.68rem}.settings-toggle-row label small{color:#75858b;font-size:.55rem}.settings-toggle-row>label>i{width:24px;height:24px;display:grid;place-items:center;border:1px solid #cfdad7;border-radius:50%;color:transparent;font-size:.55rem}.settings-toggle-row>input:checked+label{border-color:#91bdae;background:#edf7f3;box-shadow:inset 3px 0 var(--brand-1)}.settings-toggle-row>input:checked+label>span:first-child{background:var(--brand-1);color:#fff}.settings-toggle-row>input:checked+label>i{border-color:var(--brand-1);background:var(--brand-1);color:#fff}.settings-toggle-row>input:focus-visible+label{outline:3px solid rgba(30,111,94,.2)}.access-code-notice{display:flex;align-items:center;gap:.7rem;margin-bottom:.8rem;padding:.7rem .8rem;border:1px solid #d9e5e1;border-radius:.75rem;background:#f5f9f8}.access-code-notice>i{color:var(--brand-1)}.access-code-notice span{display:grid}.access-code-notice strong{color:var(--brand-2);font-size:.64rem}.access-code-notice small{color:#75858a;font-size:.53rem}.access-code-table{border:1px solid #e0e7e5;border-radius:.75rem}.access-code-table code{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .5rem;border-radius:.4rem;background:#edf3f1;color:var(--brand-2);font-size:.62rem}.access-code-table code i{color:var(--brand-1);font-size:.52rem}.access-code-empty{display:flex;align-items:center;gap:.65rem;margin-bottom:.8rem;padding:.8rem;border:1px dashed #cddbd6;border-radius:.75rem;color:#82918c}.access-code-empty>i{width:34px;height:34px;display:grid;place-items:center;border-radius:.6rem;background:#edf3f1}.access-code-empty span{display:grid}.access-code-empty strong{color:var(--brand-2);font-size:.64rem}.access-code-empty small{font-size:.53rem}.access-code-form{padding:.8rem;border-radius:.75rem;background:#f7faf9}.staff-arrival-card{border-top:3px solid #d1ddd9!important}.staff-arrival-card.is-checked-in{border-top-color:var(--brand-1)!important;background:linear-gradient(180deg,#f3faf7,#fff 36%)}.staff-arrival-card.is-checked-out{border-top-color:#7f9097!important}.arrival-status-pill{margin-left:auto;padding:.3rem .55rem;border-radius:99px;background:#edf3f1;color:#60736d;font-size:.54rem;font-weight:750}.staff-arrival-ready,.staff-arrival-confirmed,.staff-arrival-complete{display:flex;align-items:center;gap:.75rem;margin-bottom:.8rem;padding:.8rem;border-radius:.8rem;background:#f5f9f8}.staff-arrival-ready>span{width:40px;height:40px;display:grid;place-items:center;border-radius:.65rem;background:#dceee8;color:var(--brand-1)}.staff-arrival-ready div,.staff-arrival-confirmed span,.staff-arrival-complete span{display:grid}.staff-arrival-ready strong,.staff-arrival-confirmed strong,.staff-arrival-complete strong{color:var(--brand-2);font-size:.7rem}.staff-arrival-ready small,.staff-arrival-confirmed small,.staff-arrival-complete small{color:#75858b;font-size:.55rem}.staff-arrival-confirmed{background:#eaf6f1}.staff-arrival-confirmed>i{color:#16805b;font-size:1.3rem}.staff-arrival-complete{background:#f1f4f5}.staff-arrival-complete>i{color:#65767d;font-size:1.2rem}.staff-arrival-action{display:flex;justify-content:flex-end}.guest-checkin-card{overflow:hidden;border:1px solid #c9ded7!important;background:linear-gradient(135deg,#edf8f4,#fff)!important}.guest-checkin-card .card-body{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem}.guest-checkin-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:.85rem;background:var(--brand-1);color:#fff;font-size:1.2rem}.guest-checkin-copy small,.guest-stay-welcome small{color:var(--brand-1);font-size:.54rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.guest-checkin-copy h2,.guest-stay-welcome h2{margin:.08rem 0;color:var(--brand-2);font-size:1rem}.guest-checkin-copy p,.guest-stay-welcome p{margin:0;color:#6d7f85;font-size:.6rem}.guest-stay-card{overflow:hidden;border:1px solid #afd2c6!important;box-shadow:0 10px 28px rgba(14,77,64,.1)!important}.guest-stay-welcome{display:flex;align-items:center;gap:.75rem;margin:-1rem -1rem 1rem;padding:1rem;background:linear-gradient(135deg,#dff2eb,#f6fbf9)}.guest-stay-welcome>span{width:44px;height:44px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--brand-1);color:#fff;font-size:1.1rem}.guest-access-heading{display:flex;align-items:center;gap:.45rem;margin:0 0 .65rem;color:var(--brand-2);font-size:.72rem}.guest-access-heading i{color:#a8750c}.stay-access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.stay-access-code{display:flex;align-items:flex-start;gap:.6rem;min-width:0;padding:.75rem;border:1px solid #dce5e2;border-radius:.75rem;background:#fafcfc}.stay-access-code>span{width:31px;height:31px;display:grid;place-items:center;flex:0 0 auto;border-radius:.55rem;background:#fff0cc;color:#946300}.stay-access-code>div{min-width:0;display:grid}.stay-access-code small{color:#6f8086;font-size:.51rem;font-weight:750;text-transform:uppercase}.stay-access-code code{overflow-wrap:anywhere;color:var(--brand-2);font-size:.82rem;font-weight:800}.stay-access-code p{margin:.15rem 0 0;color:#75858b;font-size:.52rem}.staff-access-grid{margin-bottom:.8rem}.guest-checkout-action{margin-top:1rem;padding-top:.75rem;border-top:1px solid #e1e8e6;text-align:right}
@media(max-width:767.98px){.guest-checkin-card .card-body{grid-template-columns:auto 1fr}.guest-checkin-card form{grid-column:1/-1}.guest-checkin-card .btn{width:100%}.stay-access-grid{grid-template-columns:1fr}.settings-toggle-row label small{line-height:1.35}.access-code-form>div{width:100%}.access-code-form .form-control,.access-code-form .btn{width:100%}.staff-arrival-action .btn,.guest-checkout-action .btn{width:100%}}

.reservation-grid-date-cell.is-weekend{background:#fff6df!important}.reservation-grid-date-cell.is-weekend .grid-date-dow{color:#9a6810}.reservation-grid-day-cell.is-weekend{background:#fffcf3!important}.reservation-grid-row:nth-child(odd):not(.reservation-grid-header) .reservation-grid-day-cell.is-weekend{background:#fff9e9!important}.reservation-grid-row:hover .reservation-grid-day-cell.is-weekend{background:#fff4d5!important}
.reservation-grid-day-cell:not(.is-occupied){cursor:crosshair;touch-action:none;user-select:none;-webkit-user-select:none}.reservation-grid-day-cell.is-occupied{cursor:not-allowed}.reservation-grid-day-cell.is-date-selected{position:relative;z-index:2;background:#bfe4d9!important;box-shadow:inset 0 3px #1e6f5e,inset 0 -3px #1e6f5e}.reservation-grid-day-cell.is-date-selected:after{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);color:#126452;font-family:"Font Awesome 6 Pro","Font Awesome 6 Free";font-size:.8rem;font-weight:900;content:"\f00c"}.reservation-grid-day-cell.is-date-departure{background:#ffe49b!important;box-shadow:inset 3px 0 #c1870b,inset 0 3px #c1870b,inset -3px 0 #c1870b,inset 0 -3px #c1870b}.reservation-grid-day-cell.is-date-departure:after{color:#825900;content:"\f52b"}.reservation-grid-day-cell.is-date-unavailable{background:#fde8e5!important;box-shadow:inset 0 0 0 3px #bd4b42}.reservation-grid-day-cell.is-date-unavailable:after{color:#a33d35;content:"\f00d"}

/* Direct campground support from an active My Stay. */
.my-stay-message-prompt{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;margin-bottom:1rem;padding:1rem;border:1px solid #b9d3e3;border-radius:1rem;background:linear-gradient(135deg,#edf6fb,#fff);color:inherit;text-decoration:none;box-shadow:0 8px 24px rgba(15,57,83,.07);transition:.18s ease}.my-stay-message-prompt:hover{border-color:#397a9f;color:inherit;transform:translateY(-1px);box-shadow:0 12px 28px rgba(15,57,83,.12)}.my-stay-message-prompt>span{display:grid;place-items:center;width:46px;height:46px;border-radius:.8rem;background:#2f7198;color:#fff;font-size:1.05rem}.my-stay-message-prompt>div{display:grid}.my-stay-message-prompt small{color:#2f7198;font-size:.55rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.my-stay-message-prompt strong{color:var(--brand-2);font-size:.86rem}.my-stay-message-prompt p{margin:.12rem 0 0;color:#6c7f89;font-size:.58rem}.my-stay-message-prompt>b{display:flex;align-items:center;gap:.4rem;color:#2f7198;font-size:.65rem;white-space:nowrap}@media(max-width:600px){.my-stay-message-prompt{grid-template-columns:auto 1fr}.my-stay-message-prompt>b{grid-column:1/-1;justify-content:center;padding-top:.65rem;border-top:1px solid #d9e6ed}}
