/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *

 */

:root {
  color-scheme: light;
  --surface: #fffdf9;
  --text-main: #201b17;
  --text-soft: #6f665e;
  --line: #e2d8ca;
  --accent: #a64b2a;
  --accent-soft: #f3e0d5;
  --action-dark-gradient: linear-gradient(145deg, #3b2a20 0%, #201b17 100%);
  --action-dark-shadow: 0 14px 26px rgba(59, 42, 32, 0.18);
  --app-shell-background:
    radial-gradient(circle at top left, rgba(166, 75, 42, 0.07), transparent 30%),
    linear-gradient(180deg, #fcfaf6 0%, #f5efe7 100%);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  font-size: 16px;
}

body {
  margin: 0;
  min-height: 100vh;
  background: var(--app-shell-background);
  color: var(--text-main);
  font-family: "Manrope", "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

button,
input {
  font: inherit;
}

.auth-shell {
  min-height: 100vh;
  background: var(--app-shell-background);
}

.auth-stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 4rem 1rem;
  overflow: hidden;
}

.auth-card {
  position: relative;
  z-index: 1;
  width: min(40rem, 100%);
  border: 1px solid rgba(98, 72, 53, 0.14);
  border-radius: 1.35rem;
  background: rgba(255, 253, 249, 0.97);
  box-shadow: 0 36px 90px rgba(46, 32, 24, 0.25);
  backdrop-filter: blur(18px);
}

.auth-header {
  display: flex;
  min-height: 8.25rem;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 1rem;
  padding: 1.5rem 2.4rem;
  border-bottom: 1px solid rgba(98, 72, 53, 0.14);
}

.auth-header h1 {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 800;
  line-height: 1.25;
  text-wrap: balance;
}

.auth-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
}

.brand-logo-image {
  display: block;
  width: 10rem;
  height: auto;
  object-fit: contain;
}

.auth-portal-name {
  padding: 0.32rem 0.55rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.78);
  color: var(--text-soft);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.auth-card-body {
  padding: 2.25rem 2.4rem 2.5rem;
}

.auth-form,
.auth-field {
  display: grid;
}

.auth-form {
  gap: 1rem;
}

.auth-field {
  gap: 0.5rem;
}

.auth-field-label {
  font-size: 0.86rem;
  font-weight: 800;
}

.auth-field-help {
  color: var(--text-soft);
  font-size: 0.78rem;
  line-height: 1.5;
}

.auth-input {
  width: 100%;
  min-height: 3.5rem;
  padding: 0 1rem;
  border: 1px solid rgba(98, 72, 53, 0.2);
  border-radius: 0.75rem;
  background: var(--surface);
  color: var(--text-main);
}

.auth-input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(166, 75, 42, 0.16);
}

.auth-primary-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3.5rem;
  padding: 0 1.35rem;
  border: 0;
  border-radius: 0.75rem;
  background: var(--action-dark-gradient);
  box-shadow: var(--action-dark-shadow);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
  appearance: none;
}

.auth-primary-button:hover,
.auth-primary-button:focus-visible {
  filter: brightness(1.08);
}

.auth-intro {
  margin: 0 0 1.25rem;
  color: var(--text-soft);
  line-height: 1.6;
}

.auth-error-card {
  margin: 0 0 1.25rem;
  padding: 0.9rem 1rem;
  border: 1px solid #b42318;
  border-radius: 0.75rem;
  background: #fff1f0;
  color: #7a271a;
}

.auth-error-card p,
.auth-error-card ul {
  margin: 0;
}

.auth-error-card ul {
  padding: 0.5rem 0 0 1.25rem;
}

.flash-banner {
  position: fixed;
  z-index: 10;
  top: 1rem;
  left: 50%;
  width: min(36rem, calc(100% - 2rem));
  padding: 0.8rem 1rem;
  transform: translateX(-50%);
  border-radius: 0.75rem;
  box-shadow: 0 12px 30px rgba(46, 32, 24, 0.16);
  text-align: center;
  font-weight: 700;
}

.flash-banner.is-notice {
  border: 1px solid #75a67a;
  background: #effaf0;
  color: #245c2b;
}

.flash-banner.is-alert {
  border: 1px solid #b42318;
  background: #fff1f0;
  color: #7a271a;
}

.account-summary {
  text-align: center;
}

.account-summary h1 {
  margin: 0.25rem 0 0.75rem;
}

.account-summary p:not(.account-eyebrow) {
  margin: 0 0 1.5rem;
  color: var(--text-soft);
}

.account-eyebrow {
  margin: 0;
  color: var(--accent);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.portal-header {
  display: flex;
  min-height: 5.5rem;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1rem clamp(1rem, 4vw, 4rem);
  border-bottom: 1px solid rgba(98, 72, 53, 0.14);
  background: rgba(255, 253, 249, 0.92);
  backdrop-filter: blur(18px);
}

.portal-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  color: var(--text-main);
  text-decoration: none;
}

.portal-brand .brand-logo-image {
  width: 9.5rem;
}

.portal-navigation {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.portal-navigation form {
  margin: 0;
}

.portal-navigation-link,
.portal-logout-button {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  padding: 0 1rem;
  border-radius: 0.7rem;
  color: var(--text-main);
  font-weight: 800;
}

.portal-navigation-link {
  text-decoration: none;
}

.portal-logout-button {
  border: 1px solid var(--line);
  background: var(--surface);
  cursor: pointer;
}

.portal-navigation-link:hover,
.portal-navigation-link:focus-visible,
.portal-logout-button:hover,
.portal-logout-button:focus-visible {
  background: var(--accent-soft);
  color: var(--accent);
}

.portal-main {
  display: grid;
  min-height: calc(100vh - 5.5rem);
  place-items: center;
  padding: clamp(2rem, 6vw, 5rem) 1rem;
}

.portal-card {
  width: min(40rem, 100%);
  padding: clamp(2rem, 5vw, 3rem);
  border: 1px solid rgba(98, 72, 53, 0.14);
  border-radius: 1.35rem;
  background: rgba(255, 253, 249, 0.97);
  box-shadow: 0 30px 70px rgba(46, 32, 24, 0.18);
}

/* Guest property search */

.guest-search-page,
.guest-property-page {
  width: min(82rem, 100%);
  margin: 0 auto;
}

.guest-search-page {
  display: grid;
  gap: 2rem;
}

.guest-search-hero {
  position: relative;
  padding: clamp(1.5rem, 4vw, 3.5rem);
  overflow: hidden;
  border: 1px solid rgba(98, 72, 53, 0.14);
  border-radius: 1.5rem;
  background:
    radial-gradient(circle at 90% 0%, rgba(209, 133, 83, 0.3), transparent 33%),
    linear-gradient(135deg, #fffdf9 0%, #f4e5d8 100%);
  box-shadow: 0 24px 64px rgba(46, 32, 24, 0.13);
}

.guest-search-intro {
  max-width: 46rem;
}

.guest-search-intro h1 {
  max-width: 42rem;
  margin: 0.5rem 0 0.8rem;
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: 1.04;
  letter-spacing: -0.045em;
  text-wrap: balance;
}

.guest-search-intro > p:last-child {
  max-width: 42rem;
  margin: 0;
  color: var(--text-soft);
  font-size: clamp(1rem, 2vw, 1.15rem);
  line-height: 1.65;
}

.guest-search-form {
  margin-top: 2rem;
}

.guest-search-primary-fields {
  display: grid;
  grid-template-columns: minmax(14rem, 1.7fr) repeat(3, minmax(8rem, 1fr)) auto;
  align-items: center;
  gap: 0.65rem;
  padding: 0.7rem;
  border: 1px solid rgba(98, 72, 53, 0.18);
  border-radius: 1rem;
  background: rgba(255, 253, 249, 0.96);
  box-shadow: 0 12px 32px rgba(46, 32, 24, 0.1);
}

.guest-search-field {
  display: grid;
  min-width: 0;
  gap: 0.35rem;
}

.guest-search-field > span,
.guest-amenity-filters legend {
  color: var(--text-soft);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.guest-search-field input {
  width: 100%;
  min-height: 3rem;
  padding: 0 0.75rem;
  border: 1px solid transparent;
  border-radius: 0.65rem;
  outline: 0;
  background: #f8f4ef;
  color: var(--text-main);
}

.guest-search-field input:focus {
  border-color: var(--accent);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(166, 75, 42, 0.13);
}

.guest-search-submit,
.guest-edit-search {
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  justify-content: center;
  padding: 0 1.1rem;
  border: 0;
  border-radius: 0.7rem;
  background: var(--action-dark-gradient);
  box-shadow: var(--action-dark-shadow);
  color: #fff;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}

.guest-search-submit:hover,
.guest-search-submit:focus-visible,
.guest-edit-search:hover,
.guest-edit-search:focus-visible {
  filter: brightness(1.12);
}

.guest-search-errors {
  margin-bottom: 1rem;
  padding: 1rem 1.15rem;
  border: 1px solid #d92d20;
  border-radius: 0.8rem;
  background: #fff2f0;
  color: #7a271a;
}

.guest-search-errors ul {
  margin: 0.45rem 0 0;
  padding-left: 1.25rem;
}

.guest-filter-panel {
  margin-top: 0.75rem;
  border: 1px solid rgba(98, 72, 53, 0.14);
  border-radius: 0.85rem;
  background: rgba(255, 253, 249, 0.82);
}

.guest-filter-panel summary {
  display: flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: space-between;
  padding: 0 1rem;
  font-weight: 800;
  cursor: pointer;
}

.guest-filter-panel summary span {
  color: var(--text-soft);
  font-size: 0.74rem;
  font-weight: 700;
}

.guest-filter-content {
  display: grid;
  gap: 1rem;
  padding: 0 1rem 1rem;
  border-top: 1px solid var(--line);
}

.guest-price-filters {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 14rem));
  gap: 0.75rem;
  padding-top: 1rem;
}

.guest-amenity-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin: 0;
  padding: 0;
  border: 0;
}

.guest-amenity-filters legend {
  width: 100%;
  margin-bottom: 0.25rem;
}

.guest-amenity-filters label {
  display: inline-flex;
  min-height: 2.5rem;
  align-items: center;
  gap: 0.45rem;
  padding: 0 0.8rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}

.guest-amenity-filters input {
  accent-color: var(--accent);
}

.guest-filter-reset,
.guest-back-link {
  width: fit-content;
  color: var(--accent);
  font-weight: 800;
}

.guest-search-assurance {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.guest-search-assurance article {
  display: grid;
  gap: 0.4rem;
  padding: 1.15rem;
  border-left: 3px solid var(--accent);
  border-radius: 0 0.8rem 0.8rem 0;
  background: rgba(255, 253, 249, 0.8);
}

.guest-search-assurance span {
  color: var(--text-soft);
  font-size: 0.84rem;
  line-height: 1.5;
}

.guest-search-results {
  display: grid;
  gap: 1.5rem;
}

.guest-results-heading,
.guest-property-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
}

.guest-results-heading h2,
.guest-results-heading p,
.guest-property-heading h1,
.guest-property-heading p {
  margin: 0;
}

.guest-results-heading h2 {
  margin-top: 0.3rem;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
}

.guest-results-heading div > p:last-child,
.guest-property-heading div > p:last-child {
  margin-top: 0.45rem;
  color: var(--text-soft);
}

.guest-property-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem;
}

.guest-property-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(98, 72, 53, 0.13);
  border-radius: 1.1rem;
  background: #fffdf9;
  box-shadow: 0 14px 34px rgba(46, 32, 24, 0.1);
  transition: transform 160ms ease, box-shadow 160ms ease;
}

.guest-property-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 42px rgba(46, 32, 24, 0.15);
}

.guest-property-card-link {
  display: block;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.guest-property-photo {
  position: relative;
  height: 14rem;
  overflow: hidden;
  background: #eadfd5;
}

.guest-property-photo img,
.guest-property-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.guest-property-photo-placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  background: linear-gradient(135deg, #eadfd5, #cfaa91);
  color: rgba(59, 42, 32, 0.7);
  font-size: 1.25rem;
  font-weight: 800;
}

.guest-verified-badge {
  position: absolute;
  top: 0.8rem;
  left: 0.8rem;
  padding: 0.35rem 0.55rem;
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.94);
  color: #226541;
  font-size: 0.65rem;
  font-weight: 800;
  box-shadow: 0 5px 14px rgba(46, 32, 24, 0.16);
}

.guest-property-content {
  display: grid;
  gap: 0.7rem;
  padding: 1rem;
}

.guest-property-content h3,
.guest-property-content p {
  margin: 0;
}

.guest-property-content h3 {
  font-size: 1.08rem;
}

.guest-property-content > p {
  min-height: 2.7rem;
  color: var(--text-soft);
  font-size: 0.8rem;
  line-height: 1.55;
}

.guest-property-location,
.guest-property-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.guest-property-location {
  justify-content: space-between;
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: 800;
}

.guest-property-facts span {
  padding: 0.28rem 0.45rem;
  border-radius: 999px;
  background: #f5eee7;
  color: var(--text-soft);
  font-size: 0.65rem;
  font-weight: 700;
}

.guest-property-price {
  display: grid;
  gap: 0.2rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--line);
}

.guest-property-price strong {
  font-size: 1.05rem;
}

.guest-property-price span,
.guest-property-price small {
  color: var(--text-soft);
  font-size: 0.7rem;
}

.guest-empty-results {
  display: grid;
  justify-items: center;
  gap: 0.65rem;
  padding: 3rem 1rem;
  border: 1px dashed #cbbbab;
  border-radius: 1.2rem;
  background: rgba(255, 253, 249, 0.78);
  text-align: center;
}

.guest-empty-results > span {
  font-size: 2rem;
}

.guest-empty-results h3,
.guest-empty-results p {
  margin: 0;
}

.guest-empty-results p {
  max-width: 34rem;
  color: var(--text-soft);
  line-height: 1.55;
}

.guest-empty-results .guest-search-submit {
  margin-top: 0.5rem;
}

.guest-property-page {
  display: grid;
  gap: 1.5rem;
}

.guest-back-link {
  text-decoration: none;
}

.guest-property-heading h1 {
  margin-top: 0.3rem;
  font-size: clamp(1.8rem, 4vw, 3rem);
  letter-spacing: -0.035em;
}

.guest-stay-summary {
  display: grid;
  gap: 0.2rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-radius: 0.8rem;
  background: #fff;
  text-align: right;
}

.guest-stay-summary span {
  color: var(--text-soft);
  font-size: 0.75rem;
}

.guest-property-gallery {
  display: grid;
  min-height: 24rem;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.35rem;
  overflow: hidden;
  border-radius: 1.2rem;
  background: #eadfd5;
}

.guest-property-gallery > :first-child {
  grid-row: span 2;
}

.guest-property-gallery.is-single {
  grid-template-columns: 1fr;
}

.guest-property-gallery.is-single > :first-child {
  grid-row: auto;
}

.guest-property-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(20rem, 0.85fr);
  align-items: start;
  gap: 2rem;
}

.guest-property-description {
  display: grid;
  gap: 1.5rem;
}

.guest-property-description section {
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--line);
}

.guest-property-description h2,
.guest-property-description p {
  margin: 0;
}

.guest-property-description p {
  margin-top: 0.6rem;
  color: var(--text-soft);
  line-height: 1.7;
}

.guest-property-description small {
  display: block;
  margin-top: 0.5rem;
  color: var(--text-soft);
}

.guest-amenity-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  margin: 0.8rem 0 0;
  padding: 0;
  list-style: none;
}

.guest-amenity-list li::before {
  margin-right: 0.5rem;
  color: #28724f;
  content: "✓";
  font-weight: 800;
}

.guest-available-units {
  position: sticky;
  top: 1rem;
  display: grid;
  gap: 1rem;
  padding: 1.25rem;
  border: 1px solid rgba(98, 72, 53, 0.16);
  border-radius: 1rem;
  background: #fffdf9;
  box-shadow: 0 18px 42px rgba(46, 32, 24, 0.12);
}

.guest-available-units h2,
.guest-unit-option h3,
.guest-unit-option p {
  margin: 0;
}

.guest-available-units h2 {
  margin-top: 0.25rem;
}

.guest-unit-option {
  display: grid;
  gap: 0.75rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 0.8rem;
  background: #fff;
}

.guest-unit-option:target {
  border-color: var(--nv-forest);
  box-shadow: 0 0 0 3px rgb(30 93 79 / 12%);
}

.guest-unit-option p {
  margin-top: 0.25rem;
  color: var(--text-soft);
  font-size: 0.75rem;
}

.guest-unit-price {
  display: grid;
  gap: 0.2rem;
}

.guest-unit-price span,
.guest-booking-note {
  color: var(--text-soft);
  font-size: 0.72rem;
  line-height: 1.5;
}

.guest-unit-status {
  width: fit-content;
  padding: 0.35rem 0.5rem;
  border-radius: 999px;
  background: #e1f0e6;
  color: #226541 !important;
  font-weight: 800;
}

.guest-booking-note {
  margin: 0;
}

@media (max-width: 1000px) {
  .guest-search-primary-fields {
    grid-template-columns: repeat(3, 1fr);
  }

  .guest-search-field.is-location {
    grid-column: span 2;
  }

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

@media (max-width: 720px) {
  .guest-search-primary-fields,
  .guest-price-filters,
  .guest-search-assurance,
  .guest-property-grid,
  .guest-property-detail-grid {
    grid-template-columns: 1fr;
  }

  .guest-search-field.is-location {
    grid-column: auto;
  }

  .guest-search-primary-fields .guest-search-submit {
    width: 100%;
  }

  .guest-results-heading,
  .guest-property-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .guest-property-photo {
    height: 16rem;
  }

  .guest-stay-summary {
    width: 100%;
    text-align: left;
  }

  .guest-property-gallery {
    min-height: 18rem;
    grid-template-columns: 1fr;
  }

  .guest-property-gallery > :not(:first-child) {
    display: none;
  }

  .guest-available-units {
    position: static;
  }

  .guest-amenity-list {
    grid-template-columns: 1fr;
  }
}

.auth-switch-copy {
  margin: 1.5rem 0 0;
  color: var(--text-soft);
  line-height: 1.6;
}

.auth-inline-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  color: var(--text-main);
  font-weight: 800;
}

.auth-inline-link:visited,
.auth-legal-link:visited {
  color: #6f3928;
}

.auth-inline-link:hover,
.auth-inline-link:focus-visible {
  color: var(--accent);
}

.auth-divider {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 1.4rem 0;
  color: var(--text-soft);
  font-size: 0.72rem;
  text-transform: uppercase;
}

.auth-divider::before,
.auth-divider::after {
  flex: 1;
  height: 1px;
  background: var(--line);
  content: "";
}

.social-actions form {
  margin: 0;
}

.social-help {
  margin: 0.65rem 0 0;
  color: var(--text-soft);
  font-size: 0.78rem;
  line-height: 1.5;
  text-align: center;
}

.social-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  width: 100%;
  min-height: 3.5rem;
  padding: 0 1.35rem;
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: var(--surface);
  color: var(--text-main);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.social-button:hover,
.social-button:focus-visible {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.social-button:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}

.social-google {
  width: 1.125rem;
  height: 1.125rem;
  flex: 0 0 auto;
}

.google-identity {
  display: grid;
  gap: 0.3rem;
  margin-bottom: 1rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: var(--surface);
  overflow-wrap: anywhere;
}

.google-identity-label {
  color: var(--text-soft);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.auth-secondary-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin-top: 1rem;
}

.auth-secondary-actions form {
  margin: 0;
}

.auth-text-button {
  min-height: 2.75rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text-main);
  font-weight: 800;
  text-decoration: underline;
  cursor: pointer;
}

.auth-text-button:hover,
.auth-text-button:focus-visible {
  color: var(--accent);
}

.auth-legal {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  color: var(--text-soft);
  font-size: 0.75rem;
  line-height: 1.5;
  text-align: center;
}

.auth-legal p {
  margin: 0 0 0.25rem;
}

.auth-legal nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
}

.auth-legal-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  padding: 0 0.35rem;
  color: var(--text-main);
  font-weight: 700;
}

.auth-legal-link:hover,
.auth-legal-link:focus-visible {
  color: var(--accent);
}

.legal-card {
  width: min(48rem, 100%);
}

.legal-content {
  line-height: 1.7;
}

.legal-content h2 {
  margin: 1.75rem 0 0.5rem;
  font-size: 1.05rem;
}

.legal-content p {
  margin: 0 0 1rem;
}

.legal-effective-date {
  color: var(--text-soft);
  font-size: 0.82rem;
  font-weight: 700;
}

.legal-back-link {
  margin-top: 1.5rem;
}

@media (max-width: 640px) {
  .portal-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .portal-navigation {
    width: 100%;
    justify-content: space-between;
  }

  .auth-stage {
    min-height: 100svh;
    padding: 1.25rem 0.625rem 2.5rem;
  }

  .auth-card {
    box-shadow: 0 18px 48px rgba(59, 42, 32, 0.14);
  }

  .auth-card-body {
    padding: 1.6rem 1.25rem 1.75rem;
  }

  .auth-header {
    min-height: 7.5rem;
    padding: 1.35rem 1.25rem;
  }

  .auth-header h1 {
    font-size: 1.25rem;
  }

  .auth-secondary-actions {
    align-items: stretch;
    flex-direction: column;
  }
}
.host-booking-action-status { display:inline-flex; padding:.55rem .8rem; border-radius:999px; background:#f3eee7; color:var(--text-soft); font-size:.8rem; font-weight:750; text-align:center; }
.host-check-in-panel.is-complete { border-color:#b9d9c2; background:#f1faf3; }
.host-check-out-panel.is-complete { border-color:#b9d9c2; background:#f1faf3; }
.host-cancellation-panel { border-color:#e6b8ae; }
.host-cancellation-form { display:grid; grid-template-columns:1fr 1fr auto; gap:1rem; align-items:end; }
.host-cancellation-form label { display:grid; gap:.4rem; color:var(--text-main); font-size:.82rem; font-weight:750; }
.host-cancellation-form textarea { width:100%; box-sizing:border-box; padding:.75rem; border:1px solid var(--line); border-radius:10px; resize:vertical; font:inherit; font-weight:400; }
.host-cancellation-status.is-pending_review { border-color:#d9b66f; background:#fff8e8; }
.host-cancellation-status.is-rejected { border-color:#e6b8ae; background:#fff4f1; }
@media (max-width: 780px) { .host-cancellation-form { grid-template-columns:1fr; } .host-cancellation-form .host-cms-button { width:100%; } }
.host-messages-main { min-height:680px; padding:0; }
.host-messages-layout { min-height:680px; }
.host-message-inbox-note { margin:.75rem 0 0; color:var(--nv-muted, var(--text-soft)); font-size:.78rem; line-height:1.5; }
@media (max-width: 780px) { .host-messages-main,.host-messages-layout { min-height:620px; } }
.host-dispute-form { display:grid; gap:1.15rem; max-width:760px; }
.host-dispute-form label,.host-dispute-update-grid form { display:grid; gap:.5rem; }
.host-dispute-form select,.host-dispute-form textarea,.host-dispute-form input[type=file],.host-dispute-update-grid textarea,.host-dispute-update-grid input[type=file] { width:100%; padding:.78rem; border:1px solid var(--line); border-radius:10px; background:#fff; font:inherit; }
.host-dispute-form input[type=file]::file-selector-button,.host-dispute-update-grid input[type=file]::file-selector-button { margin-right:.75rem; padding:.55rem .8rem; border:0; border-radius:8px; background:var(--accent-soft); color:var(--text-main); font:inherit; font-weight:750; cursor:pointer; }
.host-dispute-description { max-width:72ch; line-height:1.7; }
.host-dispute-files { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1rem; color:var(--text-soft); }
.host-dispute-timeline { display:grid; gap:.85rem; }
.host-dispute-timeline article { padding:1rem; border-left:3px solid #1d5a50; border-radius:0 10px 10px 0; background:#f7f4ee; }
.host-dispute-timeline p { margin:.35rem 0; }
.host-dispute-timeline small { color:var(--text-soft); }
.host-dispute-timeline article div { display:flex; gap:.7rem; margin-top:.5rem; }
.host-dispute-update-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; align-items:start; }
.host-dispute-update-grid form { padding:1rem; border:1px solid var(--line); border-radius:12px; background:#fffdf9; }
@media (max-width:900px) { .host-dispute-update-grid { grid-template-columns:1fr; } }

.host-payout-account-list { display: grid; gap: .8rem; }
.host-payout-account-list article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid #e2dbd3;
  border-radius: .8rem;
  background: #fffdf9;
}
.host-payout-account-list article.is-inactive { opacity: .7; }
.host-payout-account-list h3 { margin: .45rem 0 .2rem; font-size: 1rem; }
.host-payout-account-list p { color: var(--text-main); font-weight: 700; }
.host-payout-account-list small { color: var(--text-soft); }
.host-payout-account-default {
  margin-left: .4rem;
  padding: .2rem .45rem;
  border-radius: 999px;
  background: #e4f1eb;
  color: #1f5b4f;
  font-size: .65rem;
  font-weight: 800;
  text-transform: uppercase;
}
.host-payout-account-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.host-payout-account-actions form { margin: 0; }

@media (max-width: 640px) {
  .host-payout-account-list article { grid-template-columns: 1fr; }
  .host-payout-account-actions { justify-content: stretch; }
  .host-payout-account-actions > *,
  .host-payout-account-actions .host-cms-button { width: 100%; }
}

/* Host contact verification */

.host-verification-stage {
  align-items: flex-start;
  padding-top: 2rem;
}

.host-verification-card {
  width: min(68rem, 100%);
}

.verification-intro h2 {
  margin: 0.35rem 0 0.45rem;
  font-size: clamp(1.35rem, 3vw, 1.85rem);
}

.verification-intro > p:last-child {
  margin: 0;
  color: var(--text-soft);
  line-height: 1.6;
}

.verification-progress {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr auto;
  align-items: center;
  gap: 0.85rem;
  margin: 1.75rem 0;
  color: var(--text-soft);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.verification-progress i {
  height: 2px;
  background: var(--line);
}

.verification-progress span.is-complete {
  color: #28724f;
}

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

.verification-channel-list.is-compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.verification-channel {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: 1rem;
  padding: 1.25rem;
  border: 1px solid rgba(98, 72, 53, 0.16);
  border-radius: 1rem;
  background: #fff;
}

.verification-channel.is-complete {
  border-color: #9ac7ad;
  background: #f2faf5;
}

.verification-kyc {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: 1rem;
  margin-top: 1rem;
  padding: 1.25rem;
  border: 1px solid rgba(98, 72, 53, 0.16);
  border-radius: 1rem;
  background: #fff;
}

.verification-kyc.is-locked {
  background: #f8f5f1;
  opacity: 0.78;
}

.verification-kyc-content {
  min-width: 0;
}

.verification-kyc-form {
  margin-top: 1.25rem;
}

.verification-kyc-locked-message {
  margin-top: 1rem;
  padding: 1rem;
  border-radius: 0.75rem;
  background: #f8eee8;
  color: #713d2c;
}

.verification-kyc-locked-message p {
  margin: 0.35rem 0 0;
  font-size: 0.82rem;
}

.verification-channel-number {
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  border-radius: 0.7rem;
  background: var(--accent-soft);
  color: var(--accent);
  font-weight: 800;
}

.verification-channel.is-complete .verification-channel-number,
.verification-kyc.is-complete .verification-channel-number {
  background: #dcefe3;
  color: #28724f;
}

.verification-channel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.verification-channel-heading h3,
.verification-channel-heading p {
  margin: 0;
}

.verification-channel-heading h3 {
  font-size: 1rem;
}

.verification-channel-heading p {
  margin-top: 0.25rem;
  color: var(--text-soft);
  font-size: 0.82rem;
  overflow-wrap: anywhere;
}

.verification-status {
  padding: 0.28rem 0.5rem;
  border-radius: 999px;
  background: #f5ede6;
  color: var(--accent);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
}

.is-complete .verification-status {
  background: #dcefe3;
  color: #28724f;
}

.verification-channel-help {
  margin: 1rem 0;
  color: var(--text-soft);
  font-size: 0.82rem;
  line-height: 1.55;
}

.verification-send-button {
  width: auto;
  min-height: 3rem;
}

.verification-code-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 0.75rem;
  margin-top: 1rem;
}

.verification-code-form .auth-primary-button {
  width: auto;
  min-height: 3.5rem;
}

.verification-code-input {
  max-width: 13rem;
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: 0.35em;
  text-align: center;
}

.verification-resend,
.verification-signout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.verification-resend {
  margin-top: 0.5rem;
  color: var(--text-soft);
  font-size: 0.75rem;
}

.verification-signout {
  margin-top: 1.5rem;
  color: var(--text-soft);
  font-size: 0.8rem;
}

/* Host CMS workspace */

.host-workspace-layout {
  background: #f7f5f2;
}

.host-workspace-shell {
  display: grid;
  min-height: 100vh;
  grid-template-columns: 15rem minmax(0, 1fr);
}

.host-workspace-sidebar {
  position: sticky;
  z-index: 3;
  top: 0;
  display: flex;
  height: 100vh;
  flex-direction: column;
  border-right: 1px solid #e4ddd4;
  background: #231d19;
  color: #fffdf9;
}

.host-workspace-brand {
  display: flex;
  min-height: 5rem;
  align-items: center;
  gap: 0.7rem;
  padding: 1rem 1.2rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  color: inherit;
  text-decoration: none;
}

.host-workspace-brand img {
  width: 7.8rem;
  height: auto;
  filter: brightness(0) invert(1);
}

.host-workspace-brand .auth-portal-name {
  padding: 0.25rem 0.45rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  color: #d9c8bb;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.host-workspace-navigation {
  display: grid;
  gap: 0.25rem;
  padding: 1rem 0.75rem;
}

.host-workspace-navigation p {
  margin: 1.2rem 0.7rem 0.4rem;
  color: #9f9187;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.host-workspace-navigation p:first-child {
  margin-top: 0;
}

.host-workspace-navigation a {
  display: flex;
  min-height: 2.85rem;
  align-items: center;
  gap: 0.7rem;
  padding: 0 0.75rem;
  border-radius: 0.65rem;
  color: #d9d1ca;
  font-size: 0.86rem;
  font-weight: 700;
  text-decoration: none;
}

.host-workspace-navigation a:hover,
.host-workspace-navigation a:focus-visible,
.host-workspace-navigation a.is-active {
  background: rgba(255, 255, 255, 0.11);
  color: #fff;
}

.host-workspace-navigation a.is-active {
  box-shadow: inset 3px 0 var(--accent);
}

.host-nav-icon {
  width: 1.5rem;
  height: 1.5rem;
  color: #d5b4a2;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.host-workspace-sidebar-footer {
  display: grid;
  gap: 0.75rem;
  margin-top: auto;
  padding: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.host-sidebar-profile {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0.65rem;
}

.host-sidebar-profile > span,
.host-topbar-avatar,
.host-account-avatar {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 0.65rem;
  background: var(--accent);
  color: #fff;
  font-weight: 800;
}

.host-sidebar-profile > span {
  width: 2.2rem;
  height: 2.2rem;
}

.host-sidebar-profile div {
  display: grid;
  min-width: 0;
}

.host-sidebar-profile strong,
.host-sidebar-profile small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.host-sidebar-profile strong {
  font-size: 0.78rem;
}

.host-sidebar-profile small {
  color: #9f9187;
  font-size: 0.66rem;
}

.host-sidebar-logout {
  width: 100%;
  min-height: 2.5rem;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 0.6rem;
  background: transparent;
  color: #d9d1ca;
  cursor: pointer;
}

.host-mobile-logout {
  display: none;
  min-height: 2.5rem;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.7rem;
  border: 1px solid #ded4ca;
  border-radius: 0.6rem;
  background: #fffdf9;
  color: var(--text);
  cursor: pointer;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 800;
}

.host-mobile-logout svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.host-workspace-stage {
  min-width: 0;
}

.host-workspace-topbar {
  position: sticky;
  z-index: 2;
  top: 0;
  display: grid;
  min-height: 5rem;
  grid-template-columns: auto minmax(16rem, 34rem) auto;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 0.75rem 1.5rem;
  border-bottom: 1px solid #e4ddd4;
  background: rgba(255, 253, 249, 0.96);
  backdrop-filter: blur(14px);
}

.host-workspace-topbar p,
.host-workspace-topbar strong {
  margin: 0;
}

.host-workspace-topbar p {
  color: var(--text-soft);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.host-workspace-topbar strong {
  font-size: 0.9rem;
}

.host-workspace-search {
  display: flex;
  min-height: 2.85rem;
  align-items: center;
  gap: 0.6rem;
  padding: 0 0.85rem;
  border: 1px solid #ddd4ca;
  border-radius: 0.7rem;
  background: #f8f5f1;
}

.host-workspace-search input {
  width: 100%;
  min-height: 0;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text-main);
}

.host-topbar-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.host-verified-chip {
  padding: 0.4rem 0.6rem;
  border-radius: 999px;
  background: #e1f0e6;
  color: #226541;
  font-size: 0.68rem;
  font-weight: 800;
}

.host-topbar-avatar {
  width: 2.35rem;
  height: 2.35rem;
}

.host-workspace-main {
  padding: clamp(1.25rem, 3vw, 2.25rem);
}

.host-dashboard-page {
  display: grid;
  max-width: 92rem;
  gap: 1.35rem;
  margin: 0 auto;
}

.host-dashboard-heading,
.host-section-heading,
.host-account-strip,
.host-status-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.host-dashboard-heading h1,
.host-dashboard-heading p,
.host-status-banner h2,
.host-status-banner p,
.host-section-heading h2,
.host-section-heading p,
.host-dashboard-empty h3,
.host-dashboard-empty p,
.host-account-strip p {
  margin: 0;
}

.host-dashboard-heading h1 {
  margin: 0.2rem 0 0.3rem;
  font-size: clamp(1.65rem, 3vw, 2.35rem);
}

.host-dashboard-heading > div > p:last-child {
  color: var(--text-soft);
}

.host-dashboard-eyebrow,
.host-section-heading p {
  color: var(--accent);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.host-dashboard-date {
  color: var(--text-soft);
  font-size: 0.78rem;
  font-weight: 700;
}

.host-status-banner,
.host-dashboard-section,
.host-account-strip {
  border: 1px solid #e2dbd3;
  border-radius: 0.9rem;
  background: #fffdf9;
}

.host-status-banner {
  justify-content: flex-start;
  padding: 1.1rem 1.25rem;
  border-color: #b8d8c4;
  background: #f0f8f3;
}

.host-status-banner-icon {
  display: grid;
  width: 2.2rem;
  height: 2.2rem;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  background: #d5ecdd;
  color: #28724f;
  font-weight: 800;
}

.host-status-banner h2 {
  color: #205f40;
  font-size: 0.98rem;
}

.host-status-banner p {
  margin-top: 0.2rem;
  color: #4f6d5b;
  font-size: 0.78rem;
}

.host-status-banner-label {
  margin-left: auto;
  color: #28724f;
  font-size: 0.7rem;
  font-weight: 800;
}

.host-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid #e2dbd3;
  border-radius: 0.9rem;
  background: #fffdf9;
  overflow: hidden;
}

.host-metric-grid article {
  display: grid;
  gap: 0.25rem;
  padding: 1.2rem 1.3rem;
  border-right: 1px solid #e8e1d9;
}

.host-metric-grid article:last-child {
  border: 0;
}

.host-metric-grid span,
.host-metric-grid small {
  color: var(--text-soft);
  font-size: 0.7rem;
}

.host-metric-grid span {
  font-weight: 800;
}

.host-metric-grid strong {
  font-size: 1.75rem;
}

.host-dashboard-section {
  padding: 1.25rem;
  scroll-margin-top: 6rem;
}

.host-section-heading {
  margin-bottom: 1rem;
}

.host-section-heading h2 {
  margin-top: 0.15rem;
  font-size: 1.1rem;
}

.host-section-heading > span {
  color: var(--text-soft);
  font-size: 0.72rem;
  font-weight: 700;
}

.host-property-table {
  border: 1px solid #ebe4dc;
  border-radius: 0.75rem;
  overflow: hidden;
}

.host-property-row {
  display: grid;
  grid-template-columns: minmax(12rem, 2fr) minmax(10rem, 1.5fr) 0.6fr 0.8fr;
  align-items: center;
  gap: 1rem;
  min-height: 4.2rem;
  padding: 0.75rem 1rem;
  border-top: 1px solid #eee7df;
  font-size: 0.8rem;
  color: inherit;
  text-decoration: none;
}

.host-property-row:not(.is-heading):hover {
  background: #fcf8f4;
}

.host-catalogue-page,
.host-cms-page {
  display: grid;
  width: 100%;
  max-width: 78rem;
  gap: 1.35rem;
  margin: 0 auto;
}

.host-cms-page > * { min-width: 0; }

.host-request-actions {
  display: grid;
  width: min(34rem, 100%);
  grid-template-columns: auto minmax(15rem, 1fr);
  gap: .75rem;
}

.host-request-actions form:last-child {
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) auto;
  gap: .5rem;
}

.host-request-actions input[type="text"] {
  min-width: 0;
  min-height: 2.75rem;
  padding: 0 .8rem;
  border: 1px solid #d8cec4;
  border-radius: .7rem;
}

.host-booking-request-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.host-submit-panel.host-request-decision-panel {
  display: grid;
  align-items: stretch;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.host-request-decision-panel .host-request-actions { width: 100%; grid-template-columns: auto minmax(18rem, 1fr); }
.host-request-decision-panel .host-request-actions > form:first-child { display: flex; }
.host-request-decision-panel .host-request-actions > form:first-child .host-cms-button {
  width: auto;
  white-space: nowrap;
}
.host-request-information {
  display: grid;
  grid-template-columns: minmax(13rem, .75fr) minmax(18rem, 1.5fr) auto;
  align-items: end;
  gap: .75rem;
  padding-top: 1rem;
  border-top: 1px solid #e2dbd3;
}
.host-request-information div { display: grid; gap: .25rem; }
.host-request-information label { font-size: .76rem; font-weight: 800; }
.host-request-information small { color: var(--text-soft); font-size: .68rem; }
.host-request-information textarea {
  min-height: 4.5rem;
  padding: .75rem;
  border: 1px solid #d8cec4;
  border-radius: .7rem;
  resize: vertical;
  font: inherit;
}
.host-request-inquiry-history { display: grid; gap: .65rem; }
.host-request-inquiry-history article { padding: .85rem; border-radius: .7rem; background: #f8f3ed; }
.host-request-inquiry-history p { margin: .25rem 0; color: var(--text-main); }
.host-request-inquiry-history small { color: var(--text-soft); }

@media (max-width: 720px) {
  .host-booking-request-page .host-catalogue-heading { align-items: stretch; flex-direction: column; }
  .host-booking-request-page .host-cms-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .host-booking-request-page .host-cms-overview article:nth-child(2) { border-right: 0; }
  .host-booking-request-page .host-submit-panel { align-items: stretch; flex-direction: column; }
  .host-request-actions,
  .host-request-actions form:last-child { grid-template-columns: 1fr; }
  .host-request-actions .host-cms-button { width: 100%; }
  .host-request-decision-panel .host-request-actions { grid-template-columns: 1fr; }
  .host-request-decision-panel .host-request-actions > form:first-child .host-cms-button { width: 100%; }
  .host-booking-request-grid,
  .host-request-information { grid-template-columns: 1fr; }
  .host-request-information .host-cms-button { width: 100%; }
}

.host-catalogue-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.host-catalogue-heading h1,
.host-catalogue-heading p,
.host-cms-panel h2,
.host-cms-panel p,
.host-listing-card h2,
.host-listing-card p,
.host-submit-panel h2,
.host-submit-panel p,
.host-review-note p {
  margin: 0;
}

.host-catalogue-heading h1 {
  margin: 0.2rem 0 0.35rem;
  font-size: clamp(1.65rem, 3vw, 2.25rem);
}

.host-catalogue-heading > div > p:last-child {
  color: var(--text-soft);
}

.host-cms-actions {
  display: flex;
  align-items: center;
  gap: 0.7rem;
}

.host-cms-button {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 0.9rem;
  border: 1px solid #d9cec4;
  border-radius: 0.65rem;
  background: #fffdf9;
  color: var(--text-main);
  cursor: pointer;
  font: inherit;
  font-size: 0.76rem;
  font-weight: 800;
  text-decoration: none;
}

.host-cms-button:hover,
.host-cms-button:focus-visible {
  border-color: var(--accent);
}

.host-cms-button.is-primary {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
}

.host-cms-button.is-danger {
  border-color: #a43f2d;
  background: #a43f2d;
  color: #fff;
}

.host-cms-button.is-danger:hover,
.host-cms-button.is-danger:focus-visible {
  border-color: #7e2e20;
  background: #7e2e20;
}

.host-cms-button.is-quiet {
  border-color: transparent;
  background: transparent;
  color: var(--accent);
}

.host-cms-button.is-quiet:hover,
.host-cms-button.is-quiet:focus-visible {
  border-color: #ead8cd;
  background: var(--accent-soft);
}

.host-listing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.host-listing-card {
  overflow: hidden;
  border: 1px solid #e2dbd3;
  border-radius: 0.9rem;
  background: #fffdf9;
}

.host-listing-card-media {
  display: grid;
  height: 10rem;
  overflow: hidden;
  place-items: center;
  background: #eee6de;
  color: var(--accent);
  font-size: 2rem;
}

.host-listing-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  object-fit: cover;
}

.host-listing-card-body {
  position: relative;
  display: grid;
  gap: 0.65rem;
  padding: 1rem;
  background: #fffdf9;
}

.host-listing-card-body > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.host-listing-card-body > .host-listing-card-actions {
  flex-wrap: wrap;
  justify-content: flex-start;
}

.host-listing-card-actions > .host-cms-button,
.host-listing-card-actions > form {
  flex: 1 1 8rem;
}

.host-listing-card-actions > form .host-cms-button {
  width: 100%;
}

.host-listing-card-actions > form {
  margin: 0;
}

.host-listing-card-body small,
.host-listing-card-body p {
  color: var(--text-soft);
  font-size: 0.75rem;
}

.host-listing-card h2 {
  font-size: 1rem;
}

.host-cms-form {
  display: grid;
  gap: 1.1rem;
}

.host-cms-panel,
.host-submit-panel,
.host-review-note,
.host-cms-overview {
  border: 1px solid #e2dbd3;
  border-radius: 0.9rem;
  background: #fffdf9;
}

.host-cms-panel {
  display: grid;
  gap: 1.2rem;
  padding: 1.25rem;
}

.host-cms-panel-heading {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
}

.host-cms-panel-heading > span {
  display: grid;
  width: 2rem;
  height: 2rem;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 0.55rem;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 0.75rem;
  font-weight: 800;
}

.host-cms-panel-heading > .host-cms-button {
  margin-left: auto;
}

.host-cms-panel h2 {
  font-size: 1rem;
}

.host-cms-panel p,
.host-cms-help {
  margin-top: 0.2rem;
  color: var(--text-soft);
  font-size: 0.75rem;
}

.host-cms-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.host-cms-field {
  display: grid;
  gap: 0.4rem;
  color: var(--text-main);
  font-size: 0.74rem;
  font-weight: 800;
}

.host-cms-field.is-wide {
  grid-column: 1 / -1;
}

.host-cms-field em {
  color: var(--text-soft);
  font-size: 0.65rem;
  font-style: normal;
  font-weight: 500;
}

.host-cms-field input,
.host-cms-field select,
.host-cms-field textarea {
  width: 100%;
  min-height: 2.8rem;
  padding: 0.7rem 0.75rem;
  border: 1px solid #d9cec4;
  border-radius: 0.6rem;
  background: #fff;
  color: var(--text-main);
  font: inherit;
  font-weight: 500;
}

.host-cms-field textarea {
  resize: vertical;
}

.host-cms-field small,
.host-photo-upload small {
  color: var(--text-soft);
  font-size: 0.66rem;
  font-weight: 500;
}

.host-cms-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
}

.host-cms-check {
  display: flex;
  min-height: 2.65rem;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 0.7rem;
  border: 1px solid #e5ddd5;
  border-radius: 0.6rem;
  color: var(--text-main);
  font-size: 0.72rem;
  font-weight: 700;
}

.host-cms-check.is-wide {
  grid-column: 1 / -1;
}

.host-cms-check > span {
  display: grid;
  gap: 0.15rem;
}

.host-cms-check small {
  color: var(--text-soft);
  font-size: 0.68rem;
  font-weight: 500;
}

.host-map-picker {
  display: grid;
  gap: 1rem;
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid #e5ddd5;
  border-radius: 0.8rem;
  background: #faf7f3;
}

.host-map-picker.is-wide {
  grid-column: 1 / -1;
}

.host-map-picker__heading,
.host-map-picker__actions,
.host-map-picker__coordinates,
.host-map-picker__unavailable {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.host-map-picker__heading {
  justify-content: space-between;
}

.host-map-picker__heading h3 {
  margin: 0;
  color: var(--text-main);
  font-size: 0.88rem;
}

.host-map-picker__heading p {
  max-width: 46rem;
  margin: 0.25rem 0 0;
}

.host-map-picker__actions {
  flex: 0 0 auto;
}

.host-map-picker__actions .host-cms-button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 0.4rem;
}

.host-map-picker__canvas {
  min-height: 380px;
  overflow: hidden;
  border: 1px solid #d9cec4;
  border-radius: 0.75rem;
  background: #e8eee9;
}

.host-map-picker__canvas > p {
  display: grid;
  min-height: 380px;
  place-items: center;
  margin: 0;
}

.host-map-picker__status {
  min-height: 1.4rem;
  margin: -0.4rem 0 0 !important;
  font-weight: 700;
}

.host-map-picker__status[data-state="success"] {
  color: #1d5b43;
}

.host-map-picker__status[data-state="error"] {
  color: #843025;
}

.host-map-picker__coordinates {
  align-items: start;
}

.host-map-picker__coordinates > * {
  flex: 1 1 0;
}

.host-map-picker__unavailable {
  padding: 0.9rem;
  border: 1px dashed #cdbdaf;
  border-radius: 0.65rem;
  color: var(--text-soft);
  background: #fff;
}

.host-map-picker__unavailable > i {
  color: var(--nv-forest, #1d4f46);
  font-size: 1.2rem;
}

.host-map-picker__unavailable strong,
.host-map-picker__unavailable span {
  display: block;
}

.host-map-picker__unavailable strong {
  color: var(--text-main);
  font-size: 0.76rem;
}

.host-map-picker__unavailable span {
  margin-top: 0.12rem;
  font-size: 0.7rem;
}

.host-photo-upload {
  display: grid;
  gap: 0.45rem;
  padding: 1rem;
  border: 1px dashed #cdbdaf;
  border-radius: 0.7rem;
  background: #faf7f3;
  font-size: 0.76rem;
  font-weight: 800;
}

.host-cms-photo-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.6rem;
}

.host-cms-photo-grid img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 0.55rem;
  object-fit: cover;
}

.host-cms-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
}

.host-cms-overview article {
  display: grid;
  gap: 0.25rem;
  padding: 1rem 1.2rem;
  border-right: 1px solid #e8e1d9;
}

.host-cms-overview article:last-child {
  border: 0;
}

.host-cms-overview span,
.host-cms-overview strong {
  font-size: 0.72rem;
}

.host-cms-overview span {
  color: var(--text-soft);
}

.host-room-list {
  display: grid;
  border: 1px solid #e8e1d9;
  border-radius: 0.7rem;
  overflow: hidden;
}

.host-room-list article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(12rem, auto);
  align-items: center;
  gap: 1rem;
  padding: 0.9rem;
  border-top: 1px solid #e8e1d9;
}

.host-room-list article:first-child {
  border: 0;
}

.host-room-list p,
.host-room-list small {
  margin-top: 0.2rem;
  color: var(--text-soft);
  font-size: 0.75rem;
}

.host-room-title,
.host-room-actions {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.host-room-title {
  flex-wrap: wrap;
}

.host-room-price {
  display: grid;
  text-align: right;
}

.host-room-actions {
  justify-content: flex-end;
}

.host-room-actions form {
  margin: 0;
}

.host-room-guidance {
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  padding: 0.75rem 0;
  border-top: 1px solid #eee7df;
  border-bottom: 1px solid #eee7df;
  font-size: 0.76rem;
}

.host-room-guidance span,
.host-room-summary span {
  color: var(--text-soft);
}

.host-room-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.78rem;
}

.host-submit-panel,
.host-review-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.2rem;
}

.host-submit-panel h2,
.host-review-note strong {
  font-size: 0.95rem;
}

.host-submit-panel p,
.host-review-note p {
  margin-top: 0.25rem;
  color: var(--text-soft);
  font-size: 0.74rem;
}

.host-review-note {
  display: block;
  border-color: #e6b7a2;
  background: #fff7f2;
}

.host-wizard-progress {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid #e2dbd3;
  border-radius: 0.85rem;
  background: #fffdf9;
}

.host-wizard-progress.is-room {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.host-wizard-progress-step {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0.45rem;
  padding: 0.8rem 0.65rem;
  border-right: 1px solid #ebe4dc;
  color: var(--text-soft);
  font-size: 0.68rem;
  text-decoration: none;
}

.host-wizard-progress-step:last-child {
  border: 0;
}

.host-wizard-progress-step span {
  display: grid;
  width: 1.55rem;
  height: 1.55rem;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  background: #eee7df;
  font-size: 0.64rem;
  font-weight: 800;
}

.host-wizard-progress-step strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.host-wizard-progress-step.is-active {
  background: #fff7f2;
  color: var(--accent);
}

.host-wizard-progress-step.is-active span {
  background: var(--accent);
  color: #fff;
}

.host-wizard-progress-step.is-disabled {
  opacity: 0.5;
}

.host-calendar-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}

.host-calendar-records {
  display: grid;
  gap: .75rem;
}

.host-calendar-records article {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid #e2dbd3;
  border-radius: .85rem;
  background: #fffdf9;
}

.host-calendar-records p { margin: .25rem 0 0; color: var(--muted); }

@media (max-width: 900px) {
  .host-calendar-grid { grid-template-columns: 1fr; }
  .host-calendar-records article { align-items: flex-start; flex-direction: column; }
}

.host-wizard-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.host-wizard-next-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.host-cms-button.is-disabled,
.host-cms-button[aria-disabled="true"] {
  pointer-events: none;
  opacity: 0.45;
}

.host-review-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid #e8e1d9;
  border-radius: 0.7rem;
}

.host-review-grid article {
  display: grid;
  gap: 0.25rem;
  padding: 1rem;
  border-right: 1px solid #e8e1d9;
}

.host-review-grid article:last-child {
  border: 0;
}

.host-review-grid span,
.host-review-grid p {
  color: var(--text-soft);
  font-size: 0.68rem;
}

.host-review-grid strong {
  font-size: 0.82rem;
}

.host-property-row.is-heading {
  min-height: 2.65rem;
  border: 0;
  background: #f7f3ee;
  color: var(--text-soft);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.host-property-row div {
  display: grid;
  gap: 0.2rem;
}

.host-property-row small {
  color: var(--text-soft);
}

.host-listing-status {
  justify-self: start;
  padding: 0.3rem 0.55rem;
  border-radius: 999px;
  background: #f1e8e0;
  color: #7f422c;
  font-size: 0.75rem;
  font-weight: 800;
}

.host-listing-status.is-published,
.host-listing-status.is-approved {
  background: #e1f0e6;
  color: #226541;
}

.host-listing-status.is-submitted,
.host-listing-status.is-pending {
  background: #e6edf5;
  color: #315b82;
}

.host-listing-status.is-changes_required {
  background: #fff0d5;
  color: #805515;
}

.host-listing-status.is-disabled,
.host-listing-status.is-rejected,
.host-listing-status.is-suspended {
  background: #f7e3e0;
  color: #8b332d;
}

.host-dashboard-empty {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 7rem;
  padding: 1.2rem;
  border: 1px dashed #d8cec4;
  border-radius: 0.75rem;
  background: #faf7f3;
}

.host-dashboard-empty > span {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border-radius: 0.7rem;
  background: var(--accent-soft);
  color: var(--accent);
}

.host-dashboard-empty h3 {
  font-size: 0.92rem;
}

.host-dashboard-empty p,
.host-section-empty {
  margin: 0.25rem 0 0;
  color: var(--text-soft);
  font-size: 0.78rem;
}

.host-dashboard-split {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 1.35rem;
}

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

.host-activity-list article {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.75rem 0;
  border-top: 1px solid #eee7df;
}

.host-activity-list article:first-child {
  border: 0;
}

.host-activity-date {
  display: grid;
  width: 3.2rem;
  min-height: 2.6rem;
  place-items: center;
  border-radius: 0.6rem;
  background: #f2e8df;
  color: var(--accent);
  font-size: 0.7rem;
  font-weight: 800;
}

.host-activity-list div {
  display: grid;
  gap: 0.15rem;
}

.host-activity-list strong {
  font-size: 0.82rem;
}

.host-activity-list small {
  color: var(--text-soft);
  font-size: 0.7rem;
}

.host-pricing-health {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.5rem 0 1.1rem;
}

.host-pricing-score {
  display: grid;
  width: 4.25rem;
  height: 4.25rem;
  flex: 0 0 auto;
  place-items: center;
  border: 6px solid #ead8cc;
  border-radius: 50%;
  color: var(--accent);
  font-size: 1rem;
  font-weight: 800;
}

.host-pricing-health strong,
.host-pricing-health p {
  margin: 0;
}

.host-pricing-health p {
  margin-top: 0.25rem;
  color: var(--text-soft);
  font-size: 0.72rem;
  line-height: 1.45;
}

.host-pricing-track {
  height: 0.45rem;
  border-radius: 999px;
  background: #eee7df;
  overflow: hidden;
}

.host-pricing-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
}

.host-account-strip {
  padding: 1rem 1.25rem;
  scroll-margin-top: 6rem;
}

.host-account-strip > div {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.host-account-strip div div {
  display: grid;
  gap: 0.15rem;
}

.host-account-avatar {
  width: 2.6rem;
  height: 2.6rem;
}

.host-account-strip p,
.host-account-strip > span {
  color: var(--text-soft);
  font-size: 0.72rem;
}

.host-account-strip > span {
  color: #226541;
  font-weight: 800;
}

@media (max-width: 1000px) {
  .host-workspace-shell {
    grid-template-columns: 4.75rem minmax(0, 1fr);
  }

  .host-workspace-brand {
    justify-content: center;
    padding-inline: 0.5rem;
  }

  .host-workspace-brand img {
    width: 3.5rem;
  }

  .host-workspace-brand .brand-mark__word,
  .host-workspace-brand .auth-portal-name,
  .host-workspace-navigation p,
  .host-workspace-navigation a span:last-child,
  .host-workspace-navigation .host-nav-label,
  .host-sidebar-profile div,
  .host-sidebar-logout,
  .host-verified-chip {
    display: none;
  }

  .host-workspace-navigation a {
    justify-content: center;
    padding: 0;
  }

  .host-workspace-sidebar-footer {
    justify-items: center;
    padding-inline: 0.5rem;
  }

  .host-workspace-topbar {
    grid-template-columns: auto minmax(12rem, 1fr) auto;
  }

  .host-mobile-logout {
    display: inline-flex;
  }
}

@media (max-width: 760px) {
  .host-verification-stage {
    padding-top: 0.75rem;
  }

  .verification-channel {
    grid-template-columns: 1fr;
  }

  .verification-kyc {
    grid-template-columns: 1fr;
  }

  .verification-code-form {
    grid-template-columns: 1fr;
  }

  .verification-code-form .auth-primary-button,
  .verification-send-button,
  .verification-code-input {
    width: 100%;
    max-width: none;
  }

  .host-workspace-shell {
    display: block;
  }

  .host-workspace-sidebar {
    position: static;
    width: 100%;
    height: auto;
  }

  .host-workspace-brand,
  .host-workspace-sidebar-footer,
  .host-workspace-navigation p {
    display: none;
  }

  .host-workspace-navigation {
    display: flex;
    padding: 0.55rem;
    overflow-x: auto;
  }

  .host-workspace-navigation a {
    min-width: 3.2rem;
    flex: 0 0 auto;
  }

  .host-workspace-navigation a span:last-child {
    display: none;
  }

  .host-workspace-navigation .host-nav-label { display:none; }

  .host-workspace-topbar {
    position: static;
    grid-template-columns: 1fr auto;
    padding: 0.7rem 1rem;
  }

  .host-workspace-search {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .host-topbar-actions {
    justify-self: end;
  }

  .host-workspace-main {
    padding: 1rem;
  }

  .host-dashboard-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .host-status-banner {
    align-items: flex-start;
  }

  .host-status-banner-label {
    display: none;
  }

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

  .host-metric-grid article:nth-child(2) {
    border-right: 0;
  }

  .host-metric-grid article:nth-child(n + 3) {
    border-top: 1px solid #e8e1d9;
  }

  .host-property-row {
    grid-template-columns: 1fr auto;
  }

  .host-property-row.is-heading {
    display: none;
  }

  .host-property-row > span:first-of-type {
    grid-column: 1 / -1;
    color: var(--text-soft);
  }

  .host-dashboard-split {
    grid-template-columns: 1fr;
  }

  .host-account-strip {
    align-items: flex-start;
    flex-direction: column;
  }

  .host-catalogue-heading,
  .host-submit-panel {
    align-items: stretch;
    flex-direction: column;
  }

  .host-listing-grid,
  .host-cms-form-grid,
  .host-cms-options {
    grid-template-columns: 1fr;
  }

  .host-map-picker__heading,
  .host-map-picker__coordinates {
    align-items: stretch;
    flex-direction: column;
  }

  .host-map-picker__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .host-map-picker__canvas,
  .host-map-picker__canvas > p {
    min-height: 300px;
  }

  .host-cms-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .host-cms-overview article:nth-child(2) {
    border-right: 0;
  }

  .host-cms-overview article:nth-child(n + 3) {
    border-top: 1px solid #e8e1d9;
  }

  .host-cms-photo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .host-room-list article {
    grid-template-columns: 1fr;
  }

  .host-room-price {
    text-align: left;
  }

  .host-room-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .host-room-actions .host-cms-button {
    width: 100%;
  }

  .host-room-guidance,
  .host-room-summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .host-cms-panel-heading {
    flex-wrap: wrap;
  }

  .host-cms-panel-heading > .host-cms-button {
    width: 100%;
    margin-left: 0;
  }

  .host-wizard-progress {
    display: flex;
    overflow-x: auto;
  }

  .host-wizard-progress-step {
    min-width: 7rem;
    flex: 0 0 auto;
  }

  .host-review-grid {
    grid-template-columns: 1fr;
  }

  .host-review-grid article {
    border-right: 0;
    border-top: 1px solid #e8e1d9;
  }

  .host-review-grid article:first-child {
    border-top: 0;
  }

  .host-wizard-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .host-wizard-next-actions {
    display: grid;
  }
}

.host-profile-page {
  display: grid;
  max-width: 68rem;
  gap: 1.25rem;
  margin: 0 auto;
}

.host-profile-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.host-profile-heading h1,
.host-profile-heading p,
.host-profile-section h3,
.host-profile-section p {
  margin: 0;
}

.host-profile-heading h1 {
  margin: 0.2rem 0 0.35rem;
  font-size: clamp(1.65rem, 3vw, 2.25rem);
}

.host-profile-heading > div > p:last-child,
.host-profile-section header p,
.host-profile-field small {
  color: var(--text-soft);
}

.host-profile-status {
  padding: 0.4rem 0.65rem;
  border-radius: 999px;
  background: #f1e8e0;
  color: #7f422c;
  font-size: 0.7rem;
  font-weight: 800;
}

.host-profile-status.is-approved {
  background: #e1f0e6;
  color: #226541;
}

.host-profile-form {
  display: grid;
  gap: 1rem;
}

.host-profile-section {
  padding: 1.35rem;
  border: 1px solid #e2dbd3;
  border-radius: 0.9rem;
  background: #fffdf9;
}

.host-profile-section > header {
  margin-bottom: 1.25rem;
}

.host-profile-section h3 {
  margin: 0;
  font-size: 1rem;
}

.host-profile-section header p {
  margin-top: 0.2rem;
  font-size: 0.78rem;
}

.host-profile-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.host-profile-field {
  display: grid;
  gap: 0.4rem;
}

.host-profile-field.is-wide {
  grid-column: 1 / -1;
}

.host-profile-field label,
.host-profile-checkbox label {
  color: var(--text-strong);
  font-size: 0.78rem;
  font-weight: 800;
}

.host-profile-field input,
.host-profile-field select,
.host-profile-field textarea {
  width: 100%;
  min-height: 2.9rem;
  padding: 0.7rem 0.8rem;
  border: 1px solid #d9cec2;
  border-radius: 0.65rem;
  background: #faf7f3;
  color: var(--text-strong);
  font: inherit;
}

.host-profile-field textarea {
  resize: vertical;
}

.host-profile-field input:focus-visible,
.host-profile-field select:focus-visible,
.host-profile-field textarea:focus-visible {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(166, 75, 42, 0.12);
  outline: 0;
}

.host-profile-field small {
  font-size: 0.875rem;
  line-height: 1.45;
}

.host-profile-checkbox {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 2.75rem;
  margin-bottom: 1rem;
}

.host-profile-checkbox input {
  width: 1.25rem;
  height: 1.25rem;
}

.host-profile-checkbox label {
  cursor: pointer;
}

.host-profile-optional {
  margin-left: 0.35rem;
  color: var(--text-soft);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.host-profile-gst-fields {
  display: none;
}

.host-profile-checkbox:has(input:checked) + .host-profile-gst-fields {
  display: grid;
}

.host-profile-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
}

.host-profile-primary,
.host-profile-secondary {
  display: inline-flex;
  min-height: 2.9rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--accent);
  border-radius: 0.65rem;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 800;
  text-decoration: none;
}

.host-profile-primary {
  background: var(--accent);
  color: #fff;
}

.host-profile-secondary {
  background: transparent;
  color: var(--accent);
}

.host-profile-summary dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
  margin: 0 0 1.25rem;
}

.host-profile-summary dl div {
  padding: 0.85rem;
  border-radius: 0.65rem;
  background: #f8f4ef;
}

.host-profile-summary dt {
  color: var(--text-soft);
  font-size: 0.68rem;
  font-weight: 800;
}

.host-profile-summary dd {
  margin: 0.2rem 0 0;
  font-size: 0.82rem;
  font-weight: 700;
}

@media (max-width: 700px) {
  .host-profile-heading,
  .host-profile-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .host-profile-status {
    align-self: flex-start;
  }

  .host-profile-fields,
  .host-profile-summary dl,
  .verification-channel-list.is-compact {
    grid-template-columns: 1fr;
  }

  .host-profile-section {
    padding: 1rem;
  }

  .host-profile-primary {
    order: -1;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
.host-preview-gallery {
  display: grid;
  grid-template-columns: 2fr repeat(2, 1fr);
  gap: 10px;
  margin-bottom: 24px;
  overflow: hidden;
  border-radius: 16px;
}

.host-preview-gallery img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.host-preview-gallery img:first-child {
  grid-row: span 2;
  height: 370px;
}

.host-preview-gallery:has(img:only-child) {
  grid-template-columns: 1fr;
}

.host-preview-gallery img:only-child {
  grid-row: auto;
  height: clamp(280px, 42vw, 480px);
}

@media (max-width: 720px) {
  .host-preview-gallery {
    grid-template-columns: 1fr 1fr;
  }

  .host-preview-gallery img,
  .host-preview-gallery img:first-child {
    grid-row: auto;
    height: 150px;
  }

  .host-preview-gallery img:first-child {
    grid-column: 1 / -1;
    height: 220px;
  }
}
.host-booking-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 18px;
  overflow-x: auto;
}

.host-booking-tabs a {
  padding: 10px 16px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--text-main);
  font-weight: 700;
  text-decoration: none;
}

.host-booking-tabs a.is-active {
  border-color: #231d19;
  background: #231d19;
  color: #fff;
}

.host-booking-filters {
  display: grid;
  grid-template-columns: 1.2fr 1.2fr repeat(4, minmax(130px, 1fr));
  gap: 12px;
  align-items: end;
  margin-bottom: 20px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fffdf9;
}

.host-booking-filters label { display: grid; gap: 6px; font-size: 0.75rem; font-weight: 700; }
.host-booking-filters input,
.host-booking-filters select { min-height: 42px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.host-booking-list { display: grid; gap: 12px; }
.host-booking-list article { display: grid; grid-template-columns: minmax(240px, 1.4fr) minmax(280px, 1fr) auto; gap: 20px; align-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 12px; }
.host-booking-list h2 { margin: 4px 0; font-size: 1.05rem; }
.host-booking-code { color: var(--accent); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em; }
.host-booking-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.host-booking-facts span { display: grid; gap: 3px; }
.host-booking-facts small { color: var(--text-soft); }
.host-booking-overview { margin-bottom: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.host-booking-overview small { color: var(--text-soft); font-size: .72rem; }
.host-booking-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.host-booking-detail-grid .host-cms-panel { margin: 0; }
.host-booking-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
.host-booking-summary > div { min-width: 0; }
.host-booking-summary .is-wide { grid-column: 1 / -1; }
.host-booking-summary dd { overflow-wrap: anywhere; }
.host-booking-finance-grid { display: grid; grid-template-columns: minmax(280px, .85fr) minmax(360px, 1.15fr); gap: 28px; align-items: start; }
.host-booking-record { margin-bottom: 24px; }
.host-booking-timeline-heading { margin: 0 0 14px; padding-top: 20px; border-top: 1px solid var(--line); }
.host-booking-timeline-heading h3 { margin: 0 0 4px; font-size: 1rem; }
.host-booking-timeline-heading p { margin: 0; color: var(--text-soft); }
.host-timeline-filters { grid-template-columns:minmax(180px,1fr) repeat(2,minmax(150px,1fr)) auto auto; }
.host-consolidated-timeline { position:relative; display:grid; gap:0; margin:0; padding:0; list-style:none; }
.host-consolidated-timeline::before { position:absolute; top:12px; bottom:12px; left:8px; width:2px; background:var(--line); content:''; }
.host-consolidated-timeline > li { position:relative; display:grid; grid-template-columns:18px minmax(0,1fr); gap:18px; padding:0 0 24px; }
.host-consolidated-timeline > li:last-child { padding-bottom:0; }
.host-timeline-marker { z-index:1; width:18px; height:18px; margin-top:4px; border:4px solid var(--surface); border-radius:50%; background:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.host-consolidated-timeline article { min-width:0; padding:1rem 1.1rem; border:1px solid var(--line); border-radius:12px; background:#fffdf9; }
.host-consolidated-timeline h3 { margin:.45rem 0; font-size:1rem; }
.host-consolidated-timeline p { margin:.3rem 0; color:var(--text-soft); overflow-wrap:anywhere; }
.host-consolidated-timeline a { display:inline-block; margin-top:.45rem; color:var(--accent); font-weight:750; }
.host-timeline-heading { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.35rem 1rem; }
.host-timeline-heading span { color:var(--accent); font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.host-timeline-heading time { color:var(--text-soft); font-size:.76rem; }
.host-timeline-transition { font-size:.8rem; font-weight:750; }
.host-nav-count { display:inline-grid; min-width:22px; height:22px; margin-left:auto; padding:0 6px; place-items:center; border-radius:999px; background:var(--accent); color:#fff; font-size:.7rem; }
.host-notification-shortcut { position:relative; display:grid; width:38px; height:38px; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--text-main); text-decoration:none; }
.host-notification-shortcut svg { width:19px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.host-notification-shortcut strong { position:absolute; top:-5px; right:-5px; display:grid; min-width:18px; height:18px; padding:0 4px; place-items:center; border:2px solid var(--surface); border-radius:999px; background:var(--accent); color:#fff; font-size:.62rem; }
.host-notification-filters { grid-template-columns:minmax(220px,1fr) auto auto; }
.host-notification-list { display:grid; }
.host-notification-list article { display:grid; grid-template-columns:12px minmax(0,1fr) auto; gap:1rem; align-items:center; padding:1.15rem 0; border-top:1px solid var(--line); }
.host-notification-list article:first-child { border-top:0; }
.host-notification-list article.is-unread h2 { font-weight:850; }
.host-notification-dot { width:9px; height:9px; border-radius:50%; background:#cbc2b9; }
.host-notification-list .is-unread .host-notification-dot { background:var(--accent); box-shadow:0 0 0 4px rgb(196 70 46 / 10%); }
.host-notification-category { color:var(--accent); font-size:.7rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.host-notification-list h2 { margin:.25rem 0; font-size:1rem; }
.host-notification-list p { margin:0 0 .25rem; color:var(--text-soft); }
.host-notification-list small { color:var(--text-soft); }
.host-notification-body { margin:0 0 1.25rem; font-family:"DM Serif Display",serif; font-size:clamp(1.25rem,2vw,1.7rem); line-height:1.45; }
.host-notification-detail .host-cms-actions { margin-top:1.25rem; }

@media (max-width: 1100px) {
  .host-booking-filters { grid-template-columns: repeat(3, 1fr); }
  .host-booking-list article { grid-template-columns: 1fr; }
  .host-booking-detail-grid,
  .host-booking-finance-grid { grid-template-columns: 1fr; }
  .host-timeline-filters { grid-template-columns:repeat(3,minmax(140px,1fr)); }
}

@media (max-width: 640px) {
  .host-booking-filters { grid-template-columns: 1fr; }
  .host-booking-facts { grid-template-columns: 1fr 1fr; }
  .host-booking-summary { grid-template-columns: 1fr; }
  .host-booking-summary .is-wide { grid-column: auto; }
  .host-timeline-filters { grid-template-columns:1fr; }
  .host-notification-filters { grid-template-columns:1fr; }
  .host-notification-list article { grid-template-columns:12px minmax(0,1fr); }
  .host-notification-list article .host-cms-button { grid-column:1/-1; width:100%; text-align:center; }
  .host-booking-list article .host-cms-button { width: 100%; }
}
/* Host earnings and payout workspace */
.host-earning-summary { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1rem; margin-bottom:1.5rem; }
.host-earning-summary article { background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:1.25rem; box-shadow:0 8px 28px rgb(45 38 31 / 5%); }
.host-earning-summary span,.host-earning-summary small,.host-payout-amount small { display:block; color:var(--text-soft); }
.host-earning-summary strong { display:block; margin:.4rem 0; font-family:"DM Serif Display",serif; font-size:clamp(1.55rem,2vw,2.1rem); color:var(--text-main); }
.host-finance-notice { margin-bottom:1.25rem; padding:1rem 1.2rem; border:1px solid #d9b66f; border-radius:14px; background:#fff8e8; color:#604713; }
.host-finance-notice p { margin:.25rem 0 0; }
.host-earning-filters { grid-template-columns:repeat(5,minmax(130px,1fr)) auto auto; }
.host-payout-list article { display:grid; grid-template-columns:minmax(0,1fr) minmax(120px,auto) auto; gap:1.25rem; align-items:center; padding:1.15rem 0; border-top:1px solid var(--line); }
.host-payout-list article:first-child { border-top:0; }
.host-payout-primary h3 { margin:.35rem 0 .15rem; }
.host-payout-primary p { margin:0; color:var(--text-soft); }
.host-payout-primary small { display:block; margin-top:.3rem; color:var(--text-soft); }
.host-payout-status { display:inline-flex; padding:.25rem .55rem; border-radius:999px; background:#f3eee7; color:#5f574f; font-size:.76rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.host-payout-status.is-completed { background:#e4f3e8; color:#22633a; }
.host-payout-status.is-failed { background:#fce8e5; color:#a13427; }
.host-payout-status.is-processing { background:#e6f0f5; color:#24566e; }
.host-payout-status.is-on_hold { background:#fff1cf; color:#765313; }
.host-payout-amount { text-align:right; }
.host-payout-amount strong { display:block; margin-top:.25rem; font-size:1.25rem; }
.host-payout-detail-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); gap:1.25rem; }
.host-payout-status-copy { margin:-.35rem 0 1.4rem; padding:.85rem 1rem; border-left:3px solid var(--accent); border-radius:0 10px 10px 0; background:#fff8ed; color:var(--text-soft); }
.host-payout-status-copy strong { color:var(--text-main); }
.host-financial-breakdown { margin:0; }
.host-financial-breakdown div { display:flex; justify-content:space-between; gap:1.5rem; padding:.8rem 0; border-bottom:1px solid var(--line); }
.host-financial-breakdown dd { margin:0; font-weight:750; text-align:right; }
.host-financial-breakdown .is-total { margin-top:.4rem; border-bottom:0; font-size:1.1rem; }
.host-financial-breakdown .is-total dd { color:var(--accent); font-size:1.3rem; }
@media (max-width: 1180px) { .host-earning-summary { grid-template-columns:repeat(3,minmax(0,1fr)); } .host-earning-filters { grid-template-columns:repeat(3,minmax(140px,1fr)); } }
@media (max-width: 980px) { .host-earning-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } .host-payout-detail-grid { grid-template-columns:1fr; } .host-earning-filters { grid-template-columns:repeat(2,minmax(140px,1fr)); } }
@media (max-width: 640px) { .host-earning-summary,.host-earning-filters { grid-template-columns:1fr; } .host-payout-list article { grid-template-columns:1fr; } .host-payout-amount { text-align:left; } .host-payout-list .host-cms-button { width:100%; text-align:center; } }
/* Host review response workspace */
.host-review-summary { margin-bottom:1.25rem; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.host-review-summary small { color:var(--text-soft); font-size:.72rem; }
.host-review-filters { grid-template-columns:repeat(5,minmax(140px,1fr)) auto auto; }
.host-review-inbox article { display:grid; grid-template-columns:90px minmax(0,1fr) auto; gap:1.25rem; align-items:center; padding:1.25rem 0; border-top:1px solid var(--line); }
.host-review-inbox article:first-child { border-top:0; }
.host-review-score { align-self:start; padding:.8rem; border-radius:14px; background:#f8eee8; text-align:center; }
.host-review-score strong,.host-review-score span { display:block; }
.host-review-score strong { color:var(--text-main); font-size:1.35rem; }
.host-review-score span { color:var(--accent); font-size:.7rem; letter-spacing:.04em; }
.host-review-copy > span,.host-review-copy small { color:var(--text-soft); font-size:.78rem; }
.host-review-copy h2 { margin:.3rem 0; font-size:1.05rem; }
.host-review-copy p { margin:0 0 .4rem; }
.host-review-copy small { font-weight:750; }
.host-review-meta { display:flex; flex-wrap:wrap; gap:.35rem 1rem; }
.host-review-meta small + small { position:relative; }
.host-review-meta small + small::before { position:absolute; left:-.6rem; content:'·'; }
.host-review-detail-card { position:relative; margin-bottom:1.25rem; padding:1.75rem; border:1px solid var(--line); border-radius:18px; background:var(--surface); box-shadow:0 10px 32px rgb(45 38 31 / 5%); }
.host-review-author { display:flex; gap:.8rem; align-items:center; }
.host-review-author > span { display:grid; width:42px; height:42px; place-items:center; border-radius:50%; background:var(--accent); color:#fff; font-weight:800; }
.host-review-author strong,.host-review-author small { display:block; }
.host-review-author small { color:var(--text-soft); }
.host-review-detail-rating { position:absolute; top:1.75rem; right:1.75rem; text-align:right; }
.host-review-detail-rating strong,.host-review-detail-rating span { display:block; }
.host-review-detail-rating strong { font-size:1.3rem; }
.host-review-detail-rating span { color:var(--accent); }
.host-review-detail-card blockquote,.host-published-response blockquote { margin:1.5rem 0 0; color:var(--text-main); font-family:"DM Serif Display",serif; font-size:clamp(1.25rem,2vw,1.7rem); line-height:1.45; }
.host-review-response-form { display:grid; gap:.65rem; }
.host-review-response-form label { font-weight:800; }
.host-review-response-form textarea { width:100%; padding:1rem; border:1px solid var(--line); border-radius:12px; background:#fff; resize:vertical; }
.host-review-response-form small,.host-review-response-form .review-field-hint { margin:0; color:var(--text-soft); }
.host-review-response-actions { display:flex; gap:.75rem; margin-top:.75rem; }
.host-published-response.is-pending_moderation { border-color:#d9b66f; background:#fffaf0; }
.host-published-response.is-rejected { border-color:#e4a59d; background:#fff7f5; }
.host-response-moderation-note { margin:1rem 0 0; padding:.8rem 1rem; border-radius:10px; background:rgb(255 255 255 / 72%); color:var(--text-soft); }
.guest-review-card > .guest-review-host-response { display:block; margin-top:1rem; padding:1rem; border-left:3px solid var(--accent); border-radius:0 10px 10px 0; background:#f8f3ed; color:var(--text-main); }
.guest-review-host-response strong,.guest-review-host-response small { display:block; }
.guest-review-host-response p { margin:.35rem 0; }
@media (max-width: 1100px) { .host-review-filters { grid-template-columns:repeat(3,minmax(140px,1fr)); } }
@media (max-width: 760px) { .host-review-filters { grid-template-columns:1fr; } .host-review-inbox article { grid-template-columns:72px minmax(0,1fr); } .host-review-inbox article .host-cms-button { grid-column:1/-1; width:100%; text-align:center; } }
@media (max-width: 520px) { .host-review-inbox article { grid-template-columns:1fr; } .host-review-score { width:76px; } .host-review-meta { display:grid; gap:.3rem; } .host-review-meta small + small::before { content:none; } .host-review-detail-rating { position:static; margin-top:1rem; text-align:left; } .host-review-response-actions { flex-direction:column; } .host-review-response-actions .host-cms-button { width:100%; text-align:center; } }

/* Host lifecycle profile */
.host-account-profile-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.host-account-profile-heading h1 { margin: .2rem 0 .35rem; font-size: clamp(1.65rem, 3vw, 2.25rem); }
.host-account-profile-heading > div > p:last-child { max-width: 48rem; color: var(--text-soft); }
.host-account-profile-updated {
  padding: .45rem .7rem;
  border: 1px solid #d9cec4;
  border-radius: 999px;
  background: #fffdf9;
  color: var(--text-soft);
  font-size: .7rem;
  white-space: nowrap;
}

.host-account-profile-form { display: grid; gap: 1rem; }
.host-account-profile-avatar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border-radius: .8rem;
  background: #f8f3ed;
}
.host-account-profile-avatar label { display: grid; gap: .4rem; font-size: .74rem; font-weight: 800; }
.host-account-profile-avatar small { color: var(--text-soft); font-weight: 500; }
.host-account-profile-avatar .avatar--large { width: 4rem; height: 4rem; border-radius: 50%; object-fit: cover; }
.host-account-profile-actions { display: flex; justify-content: flex-end; gap: .7rem; }
.host-account-profile-note {
  padding: 1rem 1.2rem;
  border-left: 3px solid var(--accent);
  border-radius: 0 .75rem .75rem 0;
  background: var(--accent-soft);
}
.host-account-profile-note p { margin: .25rem 0 0; color: var(--text-soft); font-size: .76rem; }

@media (max-width: 640px) {
  .host-account-profile-heading { flex-direction: column; }
  .host-account-profile-avatar { grid-template-columns: 1fr; }
  .host-account-profile-actions { flex-direction: column-reverse; }
  .host-account-profile-actions .host-cms-button { width: 100%; }
}

.host-refund-decision-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.host-refund-decision-form { display:grid; align-content:start; gap:.65rem; padding:1rem; border:1px solid var(--line); border-radius:12px; background:#fff; }
.host-refund-decision-form h3 { margin:0 0 .25rem; font-size:1rem; }
.host-refund-decision-form label { font-size:.75rem; font-weight:800; }
.host-refund-decision-form input,.host-refund-decision-form textarea { width:100%; padding:.8rem; border:1px solid var(--line); border-radius:9px; background:#fff; }
.host-refund-evidence { display:flex; flex-wrap:wrap; gap:.65rem; align-items:center; margin-top:1rem; }
.host-refund-evidence h3 { width:100%; margin:0; font-size:.9rem; }
@media (max-width: 760px) { .host-refund-decision-grid { grid-template-columns:1fr; } }
