/* Go Sanchari — one stylesheet, mobile first. */
:root {
  --green: #0f5e57;
  --green-2: #137a70;
  --green-soft: #e6f2ef;
  --sand: #f7f3ec;
  --ink: #1d2b2a;
  --muted: #5d6b69;
  --line: #dfe5e3;
  --card: #ffffff;
  --bg: #fbfaf7;
  --amber: #b26a00;
  --amber-soft: #fff4e0;
  --red: #b42318;
  --red-soft: #fdecea;
  --ok: #157f3b;
  --radius: 12px;
  --shadow: 0 1px 2px rgba(16, 40, 37, .06), 0 4px 16px rgba(16, 40, 37, .06);
  --font: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans Malayalam", sans-serif;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 16px/1.55 var(--font); color: var(--ink); background: var(--bg); }
img { max-width: 100%; display: block; }
a { color: var(--green-2); }
h1, h2, h3, h4 { line-height: 1.2; margin: 0 0 .5em; }
h1 { font-size: clamp(1.5rem, 3vw, 2.1rem); }
h2 { font-size: 1.3rem; }
h3 { font-size: 1.05rem; }
p { margin: 0 0 .8em; }
code, .code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; background: var(--green-soft); padding: 1px 6px; border-radius: 6px; }
.skip { position: absolute; left: -999px; }
.skip:focus { left: 8px; top: 8px; background: #fff; padding: 8px; z-index: 100; }
.wrap { max-width: 1200px; margin: 0 auto; padding: 0 16px; }
.narrow { max-width: 760px; margin-left: auto; margin-right: auto; }
.section { padding: 32px 0; }
.section-sm { padding: 18px 0; border-bottom: 1px solid var(--line); }
.center { text-align: center; }
.muted { color: var(--muted); }
.small { font-size: .86rem; }
.error { color: var(--red); }
.ok { color: var(--ok); }
.cap { text-transform: capitalize; }
.nowrap { white-space: nowrap; }
.mt { margin-top: 24px; }
.mt-sm { margin-top: 10px; }
.grow { flex: 1; min-width: 0; }
.inline { display: inline; }
.row { display: flex; gap: 12px; align-items: flex-end; }
.row > .field { flex: 1; min-width: 0; }
.wrap-row { flex-wrap: wrap; align-items: center; }
.row-between { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.stack > * + * { margin-top: 12px; }
.stack-lg > * + * { margin-top: 22px; }
.grid { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .grid-3 { grid-template-columns: repeat(3, 1fr); } .grid-4 { grid-template-columns: repeat(4, 1fr); } }

/* Buttons and forms */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 16px; border-radius: 10px; border: 1px solid var(--green); background: var(--green); color: #fff; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; white-space: nowrap; }
.btn:hover { background: var(--green-2); }
.btn-outline { background: #fff; color: var(--green); }
.btn-outline:hover { background: var(--green-soft); }
.btn-sm { padding: 6px 10px; font-size: .88rem; border-radius: 8px; }
.btn-lg { padding: 13px 22px; font-size: 1.05rem; }
.btn-block { width: 100%; }
.btn-danger { border-color: var(--red); color: var(--red); background: #fff; }
.btn-danger:hover { background: var(--red-soft); }
.btn-wa { background: #25d366; border-color: #25d366; }
.btn[disabled] { opacity: .6; cursor: wait; }
.linklike { background: none; border: 0; padding: 0; color: var(--green-2); cursor: pointer; font: inherit; text-decoration: underline; }
input, select, textarea { font: inherit; width: 100%; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--ink); }
input[type=checkbox], input[type=radio] { width: auto; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--green-2); outline-offset: 0; border-color: var(--green-2); }
.field { display: flex; flex-direction: column; gap: 4px; }
.field-label { font-size: .85rem; font-weight: 600; color: var(--muted); }
.hint { font-size: .8rem; color: var(--muted); }
.check { display: inline-flex; gap: 8px; align-items: center; cursor: pointer; }
fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: 4px; }
legend { font-weight: 600; font-size: .9rem; margin-bottom: 4px; }
.w-sm { width: 80px; } .w-md { width: 150px; }

/* Header */
.topbar { background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 30; }
.topbar-in { display: flex; align-items: center; justify-content: space-between; height: 84px; }
.logo { display: flex; align-items: center; gap: 10px; font-weight: 800; color: var(--green); text-decoration: none; font-size: 1.2rem; }
.logo-img { width: auto; height: 48px; display: block; }
@media (max-width: 600px) { .logo-img { height: 40px; } }
.footer-logo { width: auto; height: 56px; margin-bottom: 10px; display: block; }
.nav-toggle { display: none; }
.nav-burger { font-size: 1.5rem; cursor: pointer; padding: 8px; }
.topnav { display: none; position: absolute; top: 84px; left: 0; right: 0; background: #fff; border-bottom: 1px solid var(--line); flex-direction: column; padding: 12px 16px; gap: 12px; }
.topnav a { text-decoration: none; color: var(--ink); font-weight: 500; }
.topnav a.btn { color: #fff; }
.topnav a.btn-outline { color: var(--green); }
.nav-toggle:checked ~ .topnav { display: flex; }
@media (min-width: 900px) {
  .nav-burger { display: none; }
  .topnav { display: flex; position: static; flex-direction: row; align-items: center; border: 0; padding: 0; gap: 18px; }
}

/* Flash */
.flash { margin: 12px auto; padding: 10px 14px; border-radius: 10px; background: var(--green-soft); }
.flash-ok { background: #e8f6ec; color: var(--ok); }
.flash-err { background: var(--red-soft); color: var(--red); }

/* Hero / home */
.hero { background-size: cover; background-position: center; color: #fff; padding: 56px 0 40px; }
.hero h1 { font-size: clamp(1.8rem, 5vw, 3rem); }
.hero-sub { font-size: 1.1rem; max-width: 640px; opacity: .95; }
.searchbox { background: #fff; color: var(--ink); border-radius: 14px; padding: 14px; display: grid; gap: 10px; grid-template-columns: 1fr; margin-top: 20px; box-shadow: var(--shadow); }
@media (min-width: 900px) { .searchbox { grid-template-columns: 2fr 1fr 1fr .7fr auto; align-items: end; } }
.ai-search { margin-top: 12px; display: flex; gap: 8px; align-items: center; background: rgba(255, 255, 255, .95); border-radius: 12px; padding: 6px 6px 6px 12px; }
.ai-search input { border: 0; }
.ai-badge { display: inline-block; background: linear-gradient(135deg, #6d4ae0, #0f8f83); color: #fff; font-size: .72rem; font-weight: 700; border-radius: 6px; padding: 2px 6px; letter-spacing: .03em; vertical-align: middle; }
.ai-badge.sm { font-size: .62rem; padding: 1px 4px; }
.ai-note { background: #f3f0ff; border: 1px solid #e0d8ff; border-radius: 10px; padding: 10px 12px; margin: 10px 0; }
.ai-box { background: #f3f0ff; border-radius: 10px; padding: 10px; }
.ai-box summary { cursor: pointer; font-weight: 600; }
.dest { position: relative; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4/3; display: block; background: var(--green-soft); }
.dest img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.dest:hover img { transform: scale(1.04); }
.dest-label { position: absolute; inset: auto 0 0 0; padding: 12px; color: #fff; background: linear-gradient(transparent, rgba(0, 0, 0, .65)); display: flex; flex-direction: column; }
.offer-strip { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 6px; }
.offer { flex: 0 0 auto; min-width: 240px; background: var(--amber-soft); border: 1px dashed var(--amber); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; text-decoration: none; color: var(--ink); }
.why { background: #fff; border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow); }
.why-icon { font-size: 1.6rem; }
.review-card { margin: 0; }
.stars { color: #e6a700; white-space: nowrap; }

/* Cards */
.card { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); padding: 16px; }
.pcard { padding: 0; overflow: hidden; position: relative; display: flex; flex-direction: column; }
.pcard-img { position: relative; aspect-ratio: 3/2; background: var(--green-soft); }
.pcard-img img { width: 100%; height: 100%; object-fit: cover; }
.pcard-type { position: absolute; left: 10px; top: 10px; background: rgba(255, 255, 255, .92); border-radius: 6px; padding: 2px 8px; font-size: .78rem; text-transform: capitalize; }
.pcard-heart { position: absolute; right: 8px; top: 8px; }
.pcard-heart button { background: rgba(255, 255, 255, .92); border: 0; border-radius: 50%; width: 36px; height: 36px; font-size: 1.2rem; cursor: pointer; color: #c0392b; }
.pcard-body { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.pcard-body h3 { margin: 0; font-size: 1rem; }
.pcard-body h3 a { color: var(--ink); text-decoration: none; }
.pcard-foot { margin-top: auto; }
.price { font-weight: 800; font-size: 1.15rem; }
.price.big { font-size: 2rem; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { background: var(--green-soft); color: var(--green); border-radius: 999px; padding: 2px 10px; font-size: .8rem; text-decoration: none; }
.chip-sm { font-size: .7rem; padding: 1px 6px; }
.empty { text-align: center; padding: 36px 16px; background: #fff; border: 1px dashed var(--line); border-radius: var(--radius); }
.tagged { position: relative; }
.tag { position: absolute; z-index: 2; left: 10px; bottom: auto; top: 44px; border-radius: 6px; padding: 2px 8px; font-size: .78rem; font-weight: 600; }
.tag-green { background: #e8f6ec; color: var(--ok); }
.tag-amber { background: var(--amber-soft); color: var(--amber); top: 72px; }

/* Pills */
.pill { display: inline-block; border-radius: 999px; padding: 1px 9px; font-size: .75rem; font-weight: 600; background: #eef1f0; color: var(--muted); text-transform: capitalize; white-space: nowrap; }
.pill-new, .pill-sent, .pill-pending, .pill-requested, .pill-draft, .pill-created { background: #e8f0fe; color: #1a56c4; }
.pill-in_progress, .pill-viewed, .pill-partial, .pill-pending_approval, .pill-changes_requested { background: var(--amber-soft); color: var(--amber); }
.pill-quoted { background: #f3f0ff; color: #6d4ae0; }
.pill-booked, .pill-confirmed, .pill-paid, .pill-accepted, .pill-approved, .pill-live, .pill-processed, .pill-checked_in, .pill-completed { background: #e8f6ec; color: var(--ok); }
.pill-lost, .pill-cancelled, .pill-failed, .pill-declined, .pill-expired, .pill-hidden, .pill-disabled, .pill-rejected, .pill-unpaid, .pill-urgent { background: var(--red-soft); color: var(--red); }

/* Search page */
.search-page { display: grid; gap: 20px; padding-top: 20px; padding-bottom: 40px; }
.filters { display: none; }
.filters-close { display: block; text-align: right; cursor: pointer; font-weight: 600; }
#filters-toggle:checked ~ .filters { display: block; position: fixed; inset: 0; z-index: 50; background: #fff; overflow-y: auto; padding: 16px; }
@media (min-width: 900px) {
  .search-page { grid-template-columns: 280px 1fr; }
  .filters { display: block; position: sticky; top: 100px; align-self: start; max-height: calc(100vh - 114px); overflow-y: auto; background: #fff; border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow); }
  .filters-close, .filters-open { display: none !important; }
}
.results-bar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
.sort-form { margin-left: auto; }
.map { height: 280px; border-radius: var(--radius); margin: 8px 0; background: var(--green-soft); }
.map-lg { height: 460px; }

/* Property page */
.gallery { display: grid; gap: 6px; grid-template-columns: 1fr; border-radius: var(--radius); overflow: hidden; margin: 16px 0; position: relative; }
.gallery .g-item { display: block; background: var(--green-soft); }
.gallery img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 16/10; }
.gallery .g-1, .gallery .g-2, .gallery .g-3, .gallery .g-4 { display: none; }
@media (min-width: 760px) {
  .gallery { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 200px 200px; }
  .gallery .g-0 { grid-row: span 2; }
  .gallery .g-1, .gallery .g-2, .gallery .g-3, .gallery .g-4 { display: block; }
  .gallery img { aspect-ratio: auto; }
  .gallery .g-3, .gallery .g-4 { display: none; }
}
.g-all { position: absolute; right: 12px; bottom: 12px; }
.prop-layout { display: grid; gap: 24px; }
@media (min-width: 960px) { .prop-layout { grid-template-columns: 1fr 360px; } .booking-box { position: sticky; top: 100px; align-self: start; } }
.highlights { padding-left: 18px; }
.rooms { display: grid; gap: 12px; }
.room { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.room-price { text-align: right; }
.facility-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 6px 14px; }
.rules { padding-left: 18px; }
.nearby { list-style: none; padding: 0; }
.nearby li { display: flex; justify-content: space-between; border-bottom: 1px dashed var(--line); padding: 6px 0; }
.avail-cal { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .avail-cal { grid-template-columns: 1fr 1fr; } }
.mcal table { width: 100%; border-collapse: collapse; text-align: center; font-size: .85rem; }
.mcal th { color: var(--muted); font-weight: 500; }
.mcal td { padding: 6px 0; border-radius: 6px; }
.mcal td.full { color: #aab; text-decoration: line-through; background: #f1f2f2; }
.mcal td.past { color: #ccd; }
.mcal caption { font-weight: 700; margin-bottom: 6px; }
.review { border-bottom: 1px solid var(--line); padding: 12px 0; }
.review-photos { display: flex; gap: 6px; }
.review-photos img { width: 90px; height: 70px; object-fit: cover; border-radius: 6px; }
.reply { background: var(--sand); border-radius: 8px; padding: 8px 10px; margin: 6px 0; font-size: .92rem; }
.price-line { margin-bottom: 8px; }
.price-box { background: var(--sand); border-radius: 10px; padding: 10px; min-height: 48px; }
.breakdown { width: 100%; border-collapse: collapse; }
.breakdown td { padding: 6px 0; border-bottom: 1px solid var(--line); }
.breakdown td:last-child { text-align: right; }
.breakdown .total td { font-weight: 800; border-top: 2px solid var(--ink); }
.breakdown .internal td { color: var(--amber); }
.narrow-table { max-width: 420px; }
.mobile-book-bar { position: fixed; bottom: 0; left: 0; right: 0; background: #fff; border-top: 1px solid var(--line); padding: 10px 16px; display: flex; justify-content: space-between; align-items: center; z-index: 25; }
@media (min-width: 960px) { .mobile-book-bar { display: none; } }
.area-public .property-page { padding-bottom: 80px; }
.summary-img { border-radius: 10px; aspect-ratio: 16/9; object-fit: cover; width: 100%; margin-bottom: 10px; }
.coupon-form { margin-top: 10px; align-items: center; }

/* Lightbox */
.lightbox { position: fixed; inset: 0; background: rgba(0, 0, 0, .92); z-index: 100; display: flex; align-items: center; justify-content: center; }
.lightbox img { max-height: 88vh; max-width: 94vw; object-fit: contain; }
.lightbox button { position: absolute; background: rgba(255, 255, 255, .15); color: #fff; border: 0; font-size: 2rem; width: 52px; height: 52px; border-radius: 50%; cursor: pointer; }
.lb-close { top: 16px; right: 16px; } .lb-prev { left: 12px; } .lb-next { right: 12px; }
.lightbox .lb-share { bottom: 18px; left: 50%; transform: translateX(-50%); width: auto; height: 44px; padding: 0 18px; border-radius: 22px; font-size: 1rem; }
.share-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }

/* Chat */
.qa-log, .chat-log { max-height: 340px; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; padding: 8px 0; }
.chat-log { min-height: 260px; max-height: 55vh; }
.msg { max-width: 85%; padding: 8px 12px; border-radius: 12px; background: #f1f4f3; white-space: pre-line; overflow-wrap: anywhere; }
.msg-guest { align-self: flex-end; background: var(--green); color: #fff; }
.msg-guest .muted { color: #d9efe9; }
.msg-ai { background: #f3f0ff; }
.msg-staff { background: #e8f6ec; }
.msg-system { align-self: center; background: var(--amber-soft); font-size: .9rem; }
.msg-note { background: var(--amber-soft); border: 1px dashed var(--amber); }
.qa-form, .chat-form { display: flex; gap: 8px; }
.chat-head { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); padding-bottom: 8px; }
.typing { color: var(--muted); font-style: italic; }
.thread { display: flex; flex-direction: column; gap: 8px; max-height: 60vh; overflow-y: auto; padding: 6px 0; }
.thread .msg-guest { align-self: flex-start; background: #f1f4f3; color: var(--ink); }
.thread .msg-guest .muted { color: var(--muted); }
.thread .msg-staff, .thread .msg-ai { align-self: flex-end; }
.transcript, .translation { background: #fff; border-radius: 8px; padding: 6px 8px; margin-top: 4px; font-size: .92rem; color: var(--ink); }
.msg-img { max-width: 220px; border-radius: 8px; }
.voice audio { width: 220px; max-width: 100%; display: block; margin: 4px 0; }

/* Dashboard layout */
.dash { display: grid; grid-template-columns: 1fr; min-height: calc(100vh - 62px); }
.sidenav { background: #fff; border-right: 1px solid var(--line); padding: 10px 12px; }
.side-burger { display: block; cursor: pointer; font-weight: 600; padding: 6px 0; }
.side-items { display: none; flex-direction: column; gap: 2px; }
#side-toggle:checked ~ .side-items { display: flex; }
.side-items a { padding: 7px 10px; border-radius: 8px; text-decoration: none; color: var(--ink); font-size: .94rem; }
.side-items a.active, .side-items a:hover { background: var(--green-soft); color: var(--green); font-weight: 600; }
.side-h { font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 12px 10px 4px; }
.side-user { display: flex; flex-direction: column; padding: 6px 10px 10px; border-bottom: 1px solid var(--line); margin-bottom: 6px; }
.side-logout { margin: 12px 10px; }
.dash-main { padding: 20px 16px 60px; min-width: 0; }
@media (min-width: 900px) {
  .dash { grid-template-columns: 230px 1fr; }
  .side-burger { display: none; }
  .side-items { display: flex; position: sticky; top: 96px; }
  .dash-main { padding: 24px 28px 60px; }
}
.stats { display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 900px) { .stats { grid-template-columns: repeat(4, 1fr); } }
.stat { background: #fff; border-radius: var(--radius); padding: 14px 16px; box-shadow: var(--shadow); text-decoration: none; color: var(--ink); display: block; }
.stat-label { font-size: .82rem; color: var(--muted); }
.stat-value { font-size: 1.6rem; font-weight: 800; }
.stat.warn .stat-value { color: var(--red); }
.tabs { display: flex; gap: 4px; overflow-x: auto; border-bottom: 1px solid var(--line); margin-bottom: 12px; }
.tabs a { padding: 8px 12px; text-decoration: none; color: var(--muted); border-bottom: 2px solid transparent; white-space: nowrap; }
.tabs a.active { color: var(--green); border-color: var(--green); font-weight: 600; }
.table-wrap { overflow-x: auto; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); }
.table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.table th, .table td { padding: 9px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.table th { background: #f6f8f7; font-size: .8rem; color: var(--muted); font-weight: 600; }
.card .table-wrap { box-shadow: none; }
.row-red td { background: var(--red-soft); }
.row-green td { background: #e8f6ec; }
.row-amber td { background: #fffaf0; }
.table select { padding: 4px 6px; min-width: 120px; }
.filters-inline { align-items: center; flex-wrap: wrap; }
.filters-inline input, .filters-inline select { width: auto; min-width: 140px; }
.list-item { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); }
a.card.list-item { padding: 12px 16px; margin-bottom: 8px; }
.list-item.sub { padding: 8px 0; }
.pager { display: flex; gap: 10px; align-items: center; justify-content: center; margin: 16px 0; }
.plain { list-style: none; padding: 0; margin: 0 0 10px; }
.plain li { padding: 3px 0; }
.score { font-weight: 700; border-radius: 6px; padding: 2px 8px; }
.score-hot { background: var(--red-soft); color: var(--red); }
.score-warm { background: var(--amber-soft); color: var(--amber); }
.score-cold { background: #eef1f0; color: var(--muted); }
.quick-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.trip-card { display: grid; gap: 14px; grid-template-columns: 1fr; }
.trip-card img { border-radius: 10px; aspect-ratio: 16/9; object-fit: cover; width: 100%; }
@media (min-width: 700px) { .trip-card { grid-template-columns: 240px 1fr; } }
.booking-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.booking-row img { width: 120px; height: 80px; object-fit: cover; border-radius: 8px; }
.inline-details { display: inline-block; position: relative; }
.inline-details summary { list-style: none; }
.inline-details summary::-webkit-details-marker { display: none; }
.popover { position: absolute; right: 0; z-index: 10; background: #fff; box-shadow: var(--shadow); border-radius: 10px; padding: 10px; min-width: 220px; }
.alerts { list-style: none; padding: 0; margin: 0; }
.alerts li { padding: 6px 8px; border-radius: 8px; margin-bottom: 4px; }
.alert-red { background: var(--red-soft); }
.alert-amber { background: var(--amber-soft); }
.sticky-actions { position: sticky; bottom: 0; background: rgba(251, 250, 247, .96); padding: 10px 0; border-top: 1px solid var(--line); z-index: 5; }
.internal { background: #fffaf0; }
.thumb { width: 64px; height: 48px; object-fit: cover; border-radius: 6px; }
.photo-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.photo-tile { background: var(--sand); border-radius: 10px; padding: 8px; display: flex; flex-direction: column; gap: 6px; }
.photo-tile img { aspect-ratio: 3/2; object-fit: cover; border-radius: 6px; }
.room-form input { width: auto; min-width: 0; flex: 1 1 110px; }
.avatar { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; }
.inline-edit { display: inline-flex; gap: 4px; margin-left: 6px; }
.inline-edit input { width: 160px; padding: 2px 6px; font-size: .85rem; }
.task-overdue { border-left: 4px solid var(--red); }
.draft { background: #f3f0ff; border-radius: 8px; padding: 8px 10px; margin-top: 8px; font-size: .92rem; }
.big-check { font-size: 3rem; width: 80px; height: 80px; border-radius: 50%; background: #e8f6ec; color: var(--ok); display: grid; place-items: center; margin: 0 auto 12px; }
.funnel { display: flex; gap: 16px; flex-wrap: wrap; font-size: 1.1rem; }
.big-number { display: flex; gap: 24px; flex-wrap: wrap; }
.big-number div { display: flex; flex-direction: column; }
.big-number strong { font-size: 2rem; }
.sql { white-space: pre-wrap; background: #f6f8f7; padding: 10px; border-radius: 8px; font-size: .82rem; }
.ask-form input { font-size: 1.05rem; }
.details-cell { max-width: 380px; overflow-wrap: anywhere; color: var(--muted); }
.flagged { border-left: 4px solid var(--red); }
.star-input { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; font-size: 2rem; }
.star-input input { position: absolute; opacity: 0; width: 1px; }
.star-input label { color: #d6d9d8; cursor: pointer; }
.star-input input:checked ~ label, .star-input label:hover, .star-input label:hover ~ label { color: #e6a700; }
.faq { background: #fff; border-radius: 10px; padding: 10px 14px; margin-bottom: 8px; box-shadow: var(--shadow); }
.faq summary { cursor: pointer; font-weight: 600; }
.prose { max-width: 720px; }
.policy-page { max-width: 800px; }
.policy-content { font-size: 16px; line-height: 1.75; overflow-wrap: anywhere; }
.policy-content p { margin: 0 0 1em; }
.policy-content h2 { margin: 1.8em 0 .65em; font-size: 1.3em; line-height: 1.4; }
.policy-content h3 { margin: 1.35em 0 .5em; font-size: 1.08em; line-height: 1.45; }
.policy-content ul, .policy-content ol { margin: .4em 0 1.2em; padding-left: 1.5em; }
.policy-content li { margin: .3em 0; padding-left: .15em; }
.policy-content a { text-decoration: underline; text-underline-offset: .15em; }
.policy-content a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
@media (max-width: 600px) {
  .policy-content { font-size: 15px; line-height: 1.7; }
  .policy-content h2 { font-size: 1.2em; }
}
.auth-card { max-width: 440px; margin: 0 auto; }
.or { text-align: center; color: var(--muted); margin: 12px 0; }
.offer-card .offer-amt { font-size: 1.6rem; font-weight: 800; color: var(--amber); }
.quote-photos { display: flex; gap: 6px; margin-bottom: 10px; }
.quote-photos img { width: 33%; aspect-ratio: 4/3; object-fit: cover; border-radius: 8px; }
.quote-option { margin-bottom: 12px; }
.match { display: flex; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--line); }
.match img { width: 64px; height: 48px; object-fit: cover; border-radius: 6px; }
.finder-row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; align-items: flex-start; }
.finder-row > img { width: 140px; height: 100px; object-fit: cover; border-radius: 8px; }
.compare-check { width: 100%; }
.compare th { width: 160px; }

/* Workspace */
.ws-top { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: flex-end; }
.ws-grid { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 1200px) { .ws-grid { grid-template-columns: 250px 1fr 300px; } }
.reply-box { border-top: 1px solid var(--line); padding-top: 12px; margin-top: 8px; }

/* Calendars */
.cal-wrap { overflow-x: auto; }
.cal { border-collapse: collapse; font-size: .8rem; }
.cal th, .cal td { border: 1px solid var(--line); padding: 3px 4px; text-align: center; min-width: 28px; }
.cal thead th.we { background: #f6f3ea; }
.cal tbody th { text-align: left; min-width: 160px; background: #fff; position: sticky; left: 0; }
.cell a { display: block; text-decoration: none; color: inherit; }
.cell-open { background: #fff; }
.cell-part { background: #fff1c9; }
.cell-full { background: #f6c9c4; }
.cell-blocked { background: #d9dcdc; }
.cell-season { background: #ede7ff; }
.legend .cell { display: inline-block; padding: 2px 8px; border: 1px solid var(--line); border-radius: 4px; }

/* Footer */
.footer { background: #0c3d39; color: #d8ebe7; padding: 36px 0 20px; margin-top: 40px; }
.footer a { color: #fff; }
.footer .muted { color: #a9c7c1; }
.footer-grid { display: grid; gap: 20px; grid-template-columns: 1fr; margin-bottom: 16px; }
@media (min-width: 760px) { .footer-grid { grid-template-columns: 2fr 1fr 1fr 1fr; } }
.footer h4 { color: #fff; }
.wa-float { position: fixed; right: 16px; bottom: 76px; width: 54px; height: 54px; border-radius: 50%; background: #25d366; color: #fff; display: grid; place-items: center; font-size: 1.5rem; text-decoration: none; box-shadow: 0 4px 14px rgba(0, 0, 0, .2); z-index: 20; }
@media (min-width: 960px) { .wa-float { bottom: 20px; } }
@media print { .topbar, .footer, .wa-float, .sidenav, .mobile-book-bar { display: none !important; } }
/* Grid children must be allowed to shrink below their content width (prevents sideways scroll on phones). */
.grid > *, .prop-layout > *, .search-page > *, .ws-grid > *, .dash > * { min-width: 0; }

/* Property editor */
.section-nav { display: flex; flex-wrap: wrap; gap: 6px; position: sticky; top: 84px; z-index: 6; background: var(--bg); padding: 8px 0; border-bottom: 1px solid var(--line); }
.section-nav a { font-size: .85rem; padding: 4px 10px; border-radius: 999px; background: #fff; border: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.section-nav a:hover { border-color: var(--green-2); color: var(--green); }
.prop-editor section[id] { scroll-margin-top: 140px; }
.room-edit, .season-edit { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: #fff; }
.room-edit summary, .season-edit summary { cursor: pointer; }
.room-edit[open] summary, .season-edit[open] summary { margin-bottom: 10px; }
.upload-box { background: var(--sand); border-radius: 10px; padding: 12px; }
.video-thumb { aspect-ratio: 3/2; display: grid; place-items: center; background: #1d2b2a; color: #fff; border-radius: 6px; font-size: 1.4rem; }
.video-thumb a { color: #fff; font-size: .9rem; }
.photo-tile video { width: 100%; aspect-ratio: 3/2; object-fit: cover; border-radius: 6px; background: #000; }
.tariff-table td, .tariff-table th { white-space: nowrap; }

/* Property page sections */
.media-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.media-tabs a { font-size: .85rem; padding: 4px 12px; border-radius: 999px; background: var(--green-soft); color: var(--green); text-decoration: none; }
.media-group { margin-bottom: 16px; scroll-margin-top: 100px; }
.media-strip { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.media-strip a, .media-strip .vid { display: block; border-radius: 8px; overflow: hidden; background: var(--green-soft); aspect-ratio: 4/3; }
.media-strip img, .media-strip video { width: 100%; height: 100%; object-fit: cover; }
.video-embed { aspect-ratio: 16/9; width: 100%; border: 0; border-radius: 10px; }
.room-photos { display: flex; gap: 6px; overflow-x: auto; margin: 8px 0; }
.room-photos a { flex: 0 0 auto; }
.room-photos img { width: 120px; height: 84px; object-fit: cover; border-radius: 6px; }
.room-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: .88rem; color: var(--muted); }
.info-list { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 0; }
.info-list dt { font-weight: 600; color: var(--muted); }
.info-list dd { margin: 0; }
.rate-table td, .rate-table th { white-space: nowrap; }
.info-list dd { overflow-wrap: anywhere; min-width: 0; }
@media (max-width: 600px) {
  .info-list { grid-template-columns: 1fr; gap: 2px; }
  .info-list dt { margin-top: 8px; }
}

/* Responsive forms: fields wrap to new lines instead of squeezing */
.wrap-row > .field { flex: 1 1 150px; }
.field > input:not([type=checkbox]):not([type=radio]), .field > select, .field > textarea { width: 100%; max-width: 100%; }
.field-label { overflow-wrap: normal; word-break: normal; }
form, fieldset, .card { min-width: 0; max-width: 100%; }
@media (max-width: 600px) {
  .row:not(.row-between):not(.filters-inline) { flex-wrap: wrap; }
  .row > .field { flex: 1 1 140px; }
  .row > .field.grow, .row > textarea, .row > .field:has(textarea) { flex-basis: 100%; }
  .w-sm, .w-md { width: 100%; }
  .filters-inline input, .filters-inline select { min-width: 0; flex: 1 1 140px; }
  .room-edit, .season-edit { padding: 10px; }
  .dash-main { padding: 16px 12px 60px; }
}
code { overflow-wrap: anywhere; }
@media (max-width: 600px) {
  .section-nav { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .section-nav a { flex: 0 0 auto; }
  .row > .field { align-self: stretch; justify-content: flex-end; }
}

/* Property quick fill */
.quick-fill textarea { margin: 8px 0; }
.qf-filled { background: #fff6cc; border-radius: 8px; box-shadow: 0 0 0 4px #fff6cc; }
.qf-filled input, .qf-filled select, .qf-filled textarea { border-color: #e6a700; }
.qf-filled { position: relative; }
.qf-src { display: inline-block; align-self: flex-start; width: auto; margin: 2px 0 0 6px; padding: 0 7px; border-radius: 999px; font-size: .7rem; font-weight: 600; background: #e6a700; color: #fff; vertical-align: middle; }
.pill-warn { background: var(--amber-soft); color: var(--amber); text-transform: none; }
.qf-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.qf-photo { position: relative; display: block; border-radius: 8px; overflow: hidden; border: 2px solid transparent; cursor: pointer; aspect-ratio: 4 / 3; background: #eef1f0; }
.qf-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.qf-photo input { position: absolute; top: 6px; left: 6px; width: 18px; height: 18px; }
.qf-photo:has(input:checked) { border-color: var(--ok); }
.qf-photo[hidden] { display: none; }
#qf-extra-list ul { margin: 4px 0 8px; padding-left: 20px; }
@media (max-width: 600px) {
  .row.wrap-row.sticky-actions { padding: 8px 0; gap: 8px; flex-wrap: nowrap; }
  .sticky-actions select { width: auto; flex: 1 1 auto; min-width: 0; padding: 7px 8px; }
  .sticky-actions .check { font-size: .8rem; gap: 4px; flex: 0 1 auto; }
  .sticky-actions .btn { flex: 0 0 auto; padding: 8px 12px; }
  .sticky-actions .muted { display: none; }
}
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; }
.footer-credits a { color: #fff; }
.footer-bottom { padding-right: 76px; }

/* Room page gallery + staff room sharing */
.room-gallery { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.room-gallery a { position: relative; display: block; border-radius: 10px; overflow: hidden; background: var(--green-soft); }
.room-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.room-gallery .cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 6px 10px; background: linear-gradient(transparent, rgba(0,0,0,.6)); color: #fff; font-size: .85rem; }
.share-room { border: 1px solid var(--line); border-radius: 12px; padding: 14px; background: #fff; }
.share-thumbs { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; }
.share-thumbs img { width: 120px; height: 90px; object-fit: cover; border-radius: 8px; flex: 0 0 auto; }
.rate-list { margin: 0; padding-left: 18px; }
.rate-strip { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; padding: 8px 10px; background: var(--green-soft); border-radius: 8px; }
.pill-red { background: var(--red-soft); color: #b42318; }
.rate-tiers { border: 1px dashed var(--line); border-radius: 10px; padding: 10px 12px; }
.pill-kind-special { background: #fdecec; color: #b42318; }
.pill-kind-season { background: var(--amber-soft); color: var(--amber); }
.pill-kind-off_season { background: #e8f0fe; color: #1a56c4; }
.season-room { align-items: flex-end; border-top: 1px dashed var(--line); padding-top: 8px; }
.season-room-name { flex: 1 1 100%; }
.review-table input, .review-table select { min-width: 90px; padding: 6px 8px; }
.review-table td:first-child input { min-width: 160px; }

/* Staff AI assistant */
.assistant .chat-log { max-height: none; min-height: 200px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px; }
.assistant .msg-staff { align-self: flex-end; }
.assistant .msg-bot { align-self: stretch; max-width: 100%; background: #f7f8f7; white-space: normal; }
.as-answer { white-space: pre-line; margin-bottom: 8px; }
.as-cards { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); margin-top: 8px; }
.as-card { padding: 12px; display: flex; flex-direction: column; gap: 8px; white-space: normal; }
.as-nofit { opacity: .7; }
.as-lines { margin: 0; padding-left: 18px; }
.as-totals { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; }
.chat-form { display: flex; gap: 8px; align-items: flex-end; position: sticky; bottom: 0; background: var(--bg); padding: 8px 0; }
.chat-form textarea { flex: 1; }
.err { color: #b42318; }
.as-hint .chip { cursor: pointer; border: 1px solid var(--line); background: #fff; font: inherit; font-size: .85rem; text-align: left; }

/* Focused AI search */
.ai-search-hero { margin-top: 22px; padding: 8px 8px 8px 14px; box-shadow: var(--shadow); }
.ai-search-hero input { font-size: 1.05rem; padding: 12px 6px; }
.ai-search-hero .btn { padding: 12px 20px; }
.quick-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.quick-chips .chip { background: rgba(255, 255, 255, .18); color: #fff; border: 1px solid rgba(255, 255, 255, .45); text-decoration: none; }
.quick-chips .chip:hover { background: rgba(255, 255, 255, .3); }
.classic-search { margin-top: 14px; }
.classic-search summary { cursor: pointer; color: #fff; opacity: .9; font-size: .95rem; }
.classic-search .searchbox { margin-top: 10px; }
.search-top { margin: 0 0 10px; border: 1px solid var(--line); background: #fff; }
.filter-chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 10px; }
.chip-x { text-decoration: none; color: var(--ink); background: var(--green-soft); }
.chip-x span { opacity: .6; margin-left: 2px; }
.chip-x:hover span { opacity: 1; }
.add-dates { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 10px 12px; background: #fffaf0; border: 1px solid #f3e2bd; border-radius: 10px; margin-bottom: 12px; }
.add-dates input { width: auto; flex: 1 1 140px; }
.match-why { display: flex; flex-wrap: wrap; gap: 4px 10px; color: var(--green-2); }
.need-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 10px 12px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.need-bar select, .need-bar input[type=date] { width: auto; flex: 1 1 140px; }
.need-bar label { display: inline-flex; gap: 6px; align-items: center; }
.as-best { border: 2px solid var(--green-2); }
.pill-best { align-self: flex-start; background: var(--green-2); color: #fff; }
.relax { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 8px 0 14px; } .relax p { flex-basis: 100%; margin: 0; }
.season-supplement { display: none; }
.season-edit form:has(input[name=mode][value=supplement]:checked) .season-supplement { display: flex; }
.season-edit form:has(input[name=mode][value=supplement]:checked) .season-room { display: none; }
.pre-line { white-space: pre-line; } .rate-basics { line-height: 1.6; }
.inline-h { display: inline; margin: 0; font-size: 1.15rem; }
.addon-pick { border: 1px dashed var(--line); border-radius: 10px; padding: 8px 12px; display: grid; gap: 6px; }
.addon-row { flex-wrap: wrap; }
.addon-row input.w-sm { width: 64px; display: inline-block; padding: 4px 6px; }

/* Public experience based on the supplied seven-page design reference. */
.area-public { --cta-orange:#ff680a; --green:#005b2e; --green-2:#08723c; --ink:#101a35; --muted:#667087; --bg:#fff; }
.area-public .topbar { background:#fff8ee; border:0; }
.area-public:has(.reference-hero) .topbar,.area-public:has(.destination-hero) .topbar { position:absolute;top:0;left:0;width:100%;z-index:20;background:transparent;box-shadow:none; }
.area-public .topbar-in { min-height:90px;max-width:1080px; }
.area-public .topnav { gap:28px; }
.area-public .topnav>a:not(.btn) { color:#101a35;font-size:14px; }
.area-public .topnav .btn-wa { display:none; }
.nav-dropdown { position:relative; }
.nav-dropdown summary { cursor:pointer;list-style:none;font-size:14px; }
.nav-dropdown summary::-webkit-details-marker { display:none; }
.nav-dropdown summary:focus-visible { outline:3px solid #ff6a20;outline-offset:5px; }
.nav-panel { position:absolute;top:calc(100% + 12px);left:0;width:200px;padding:12px;background:#fff;border-radius:14px;box-shadow:0 0 0 5px #ffffff70,0 12px 35px #172c3930;z-index:30; }
.nav-panel a { display:block;padding:9px 10px;color:#101a35;text-decoration:none;border-radius:6px; }
.nav-panel a:hover { background:#ecf6ee; }
.nav-panel small { display:block;color:#667087;font-size:12px; }
.portal-dropdown { margin-left:35px; }.portal-dropdown summary { border-radius:30px;padding:12px 26px; }.portal-dropdown .nav-panel { left:auto;right:0;width:240px; }.contact-panel { width:270px; }
.reference-hero { padding:112px 0 28px;min-height:470px;color:#082815;background:linear-gradient(90deg,transparent 35%,#ffe4b4 65%,#ffe9bb),url('/design/sunset.webp') left center/70% 100% no-repeat;position:relative; }
.reference-hero:after { content:'';position:absolute;bottom:-1px;left:0;width:100%;height:20px;background:#fff;clip-path:polygon(0 40%,12% 75%,26% 25%,43% 80%,60% 30%,78% 85%,91% 20%,100% 50%,100% 100%,0 100%); }
.hero-copy { width:52%;margin-left:auto;text-align:center;min-height:195px; }
.eyebrow { font-size:11px;letter-spacing:6px;font-weight:700; }
.reference-hero h1 { font:700 clamp(38px,4vw,62px)/1 Georgia,serif;margin:10px 0 14px; }
.reference-hero h1 em { display:block;color:#ff4f08;font:italic 55px/1.1 cursive;font-weight:400; }
.hero-copy p { font-size:14px;color:#112819; }
.reference-search { display:grid;grid-template-columns:1.15fr 1fr 1fr 1.1fr auto;gap:0;align-items:center;max-width:980px;margin:12px auto 0;background:white;border-radius:20px;padding:9px;box-shadow:0 0 0 7px #ffffff65,0 8px 28px #48200b30;text-align:left;color:#101a35; }
.reference-search>.field { padding:0 16px;border-right:1px solid #dce0e7;margin:0; }.reference-search .field-label { color:#667087;font-size:12px; }
.reference-search input,.reference-search select { padding:5px 0;border:0;background:transparent;font-size:13px;min-width:0;width:100%; }
.find-stay { background:linear-gradient(135deg,var(--cta-orange),#ff3a00);border:0;border-radius:14px;padding:17px 23px;color:white;white-space:nowrap; }
.guest-picker { position:relative;padding:0 16px; }.guest-picker summary { cursor:pointer;list-style:none; }.guest-picker summary strong { display:block;font-size:13px; }.guest-panel { position:absolute;top:55px;right:0;background:white;border-radius:12px;padding:16px;width:220px;box-shadow:var(--shadow);z-index:25; }
.trust-strip { display:flex;justify-content:center;gap:30px;margin:26px auto 0;color:#fff;text-shadow:0 1px 8px #60380d;background:#74451d99;padding:10px;border-radius:12px;max-width:850px; }.trust-strip span { font-size:18px; }.trust-strip strong { font-size:13px; }.trust-strip small { display:block;font-size:11px;padding-left:20px; }
.popular-stays { padding-top:25px; }.popular-stays h2 { font-size:34px;letter-spacing:-1px; }.popular-stays h2 span,.advisor-green { color:var(--green); }.popular-stays .btn-outline { border-radius:25px; }
.stay-carousel { position:relative; }.stay-carousel [data-stay-track] { display:flex;overflow:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:10px 0 20px; }.stay-carousel .pcard { flex:0 0 calc((100% - 48px)/4);scroll-snap-align:start; }.carousel-arrow { position:absolute;top:40%;left:-22px;width:44px;height:44px;border:0;border-radius:50%;background:white;box-shadow:var(--shadow);z-index:2;cursor:pointer; }.carousel-arrow:last-child { left:auto;right:-22px; }
.area-public .pcard { border:0;box-shadow:0 6px 25px #13261c0e;border-radius:12px;overflow:hidden; }.area-public .pcard-img { display:block;height:200px;aspect-ratio:auto;flex-shrink:0;overflow:hidden; }.area-public .pcard-img img { display:block;width:100%;height:100%;object-fit:cover;object-position:center; }.area-public .pcard-body { padding:12px; }.area-public .pcard h3 { font-size:14px; }.area-public .pcard-type { top:10px;bottom:auto;background:#10233580;color:white;border-radius:30px;font-size:12px; }.area-public .pcard .chips .chip { background:transparent;border:0;padding:0;font-size:11px; }.area-public .pcard-foot .btn { font-size:11px;border-radius:8px; }.area-public .pcard .stars { font-size:12px; }.area-public .pcard .stars .muted { display:none; }.area-public .price { color:var(--green);font-size:19px; }
.destination-hero { padding:115px 0 38px;background:linear-gradient(90deg,transparent,#fff0d0 80%),url('/design/munnar.webp') left center/75% 100% no-repeat;min-height:280px; }.destination-hero .wrap { text-align:center;padding-left:50%; }.destination-hero h1 { font:700 86px/1 Georgia,serif;margin:10px 0; }.destination-hero p { font-size:12px;letter-spacing:3px; }
.area-public .search-page { max-width:1400px;grid-template-columns:205px 1fr;gap:20px;padding-top:25px; }.area-public .filters { background:#f7f8f7;border:0;border-radius:12px; }.area-public .results>.grid-3 { grid-template-columns:repeat(4,minmax(0,1fr));gap:14px; }.area-public .search-top { margin-bottom:12px; }.area-public .results-bar { font-size:13px; }
.stay-dialog { padding:0;border:0;border-radius:18px;width:min(1180px,96vw);height:90vh;max-width:none;max-height:94vh;overflow:visible;box-shadow:0 20px 90px #0005; }.stay-dialog::backdrop,.trip-dialog::backdrop { background:#101b2e85; }.stay-dialog iframe { border:0;width:100%;height:100%;border-radius:18px; }.dialog-close { position:absolute;right:-12px;top:-12px;border:0;border-radius:50%;width:42px;height:42px;background:white;font-size:26px;cursor:pointer;z-index:3; }
.embedded-stay .topbar,.embedded-stay .footer,.embedded-stay .wa-float,.embedded-stay .mobile-book-bar { display:none; }.embedded-stay .property-page { padding-top:16px; }.embedded-stay .gallery { height:260px; }.embedded-stay .booking-box { background:linear-gradient(#fffdf4db,#fffdf4ed),url('/design/munnar.webp') center/cover;border:0; }.embedded-stay .booking-box h3 { font-size:27px;margin-top:10px; }.embedded-stay .room { padding:12px;box-shadow:none;border:0;border-bottom:1px solid #e6e9ed; }.embedded-stay .room-photos { float:left;margin-right:12px; }.embedded-stay .room-photos img { width:90px;height:65px;object-fit:cover; }.embedded-stay .room-meta { font-size:11px; }.embedded-stay .prop-main h1 { font-size:28px; }
.trip-dialog { width:min(1000px,95vw);border:0;border-radius:16px;padding:0;overflow:visible; }.trip-layout { display:grid;grid-template-columns:44% 56%; }.trip-photo { position:relative;min-height:500px; }.trip-photo img { width:100%;height:100%;object-fit:cover;border-radius:16px 0 0 16px; }.trip-photo h2 { position:absolute;bottom:30px;left:25px;right:20px;color:white;text-shadow:0 2px 8px black;font:700 32px Georgia,serif; }.trip-content { padding:25px; }.trip-content h2 { margin:22px 0; }.quote-notice { padding:15px;background:#eaf3ff;border-radius:10px;font-size:13px; }.trip-facts { display:grid;grid-template-columns:1fr 1fr;gap:18px;font-size:13px;margin:20px 0; }.trip-facts strong { display:block; }.trip-estimate { background:#eef6ef;padding:18px;border-radius:10px;margin:20px 0; }.trip-actions { display:flex;gap:12px; }.trip-actions>* { flex:1; }.area-public .wa-float { width:auto;border-radius:30px;font-size:13px;padding:12px 20px; }
@media(max-width:1000px) { .area-public .topnav { gap:15px; }.portal-dropdown { margin-left:0; }.area-public .results>.grid-3 { grid-template-columns:repeat(2,minmax(0,1fr)); }.stay-carousel .pcard { flex-basis:calc((100% - 16px)/2); }.reference-search { grid-template-columns:repeat(2,1fr);gap:15px; }.find-stay { grid-column:1/-1; }.hero-copy { min-height:220px; }.trust-strip { gap:15px; }.destination-hero h1 { font-size:64px; } }
@media(max-width:650px) { .area-public .topbar-in { min-height:75px; }.area-public .topnav { background:#fff; }.nav-panel { position:static;box-shadow:none;width:100%; }.hero-copy { width:100%;padding-top:50px;min-height:255px; }.reference-hero { padding-top:75px;background:linear-gradient(#ffe8c780,#ffe8c7c9),url('/design/sunset.webp') center/cover; }.reference-hero h1 { font-size:40px; }.reference-hero h1 em { font-size:42px; }.reference-search { margin:15px 10px; }.reference-search>.field { padding:0 7px; }.trust-strip { display:grid;grid-template-columns:1fr 1fr;gap:10px; }.popular-stays h2 { font-size:27px; }.popular-stays .row-between { align-items:start;gap:10px; }.popular-stays .row-between .btn { font-size:11px; }.stay-carousel .pcard { flex-basis:85%; }.carousel-arrow { display:none; }.destination-hero .wrap { padding-left:16px; }.destination-hero h1 { font-size:56px; }.area-public .search-page { grid-template-columns:1fr; }.area-public .results>.grid-3 { grid-template-columns:1fr; }.trip-layout { grid-template-columns:1fr; }.trip-photo { display:none; }.trip-content { padding:20px; }.trip-actions { flex-direction:column; }.stay-dialog { width:94vw; }.dialog-close { right:0; }.embedded-stay .gallery { height:190px; } }
@media(prefers-reduced-motion:no-preference) { [data-stay-track] { scroll-behavior:smooth; } }
@media(min-width:960px) { .embedded-stay .gallery { grid-template-rows:127px 127px; }.embedded-stay .booking-box { top:16px; } }

/* The solo traveller campaign: route-specific moods, with readable page content. */
[class*='journey-'] { --journey-image:url('/design/traveller-dawn.webp');--journey-tint:#ffead2;--journey-ink:#143328;--journey-position:center 48%; }
.journey-adventure,.journey-anticipation { --journey-image:url('/design/traveller-sunset.webp');--journey-tint:#ffe6bd; }
.journey-unwind,.journey-reflection,.journey-connection,.journey-memories { --journey-image:url('/design/traveller-twilight.webp');--journey-tint:#eee7f7;--journey-ink:#202448; }
.journey-welcome,.journey-hope { --journey-tint:#fff3de;--journey-position:center 43%; }
.journey-clarity,.journey-focus { --journey-tint:#f1ebdf;--journey-position:center 62%; }
.journey-banner { position:relative;isolation:isolate;overflow:hidden;min-height:270px;display:flex;align-items:center;color:var(--journey-ink);background:var(--journey-tint); }
.journey-banner:before { content:'';position:absolute;inset:0;background-image:var(--journey-image);background-size:cover;background-position:var(--journey-position);z-index:-2; }
.journey-banner:after { content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,color-mix(in srgb,var(--journey-tint) 72%,transparent) 60%,var(--journey-tint));z-index:-1; }
.journey-copy { width:100%;padding-left:max(50%,20px);padding-top:28px;padding-bottom:28px;text-align:center; }
.journey-copy .eyebrow { letter-spacing:3px;font-size:11px; }.journey-copy h2 { font:700 clamp(26px,3.2vw,46px)/1.12 Georgia,serif;margin:12px 0;overflow-wrap:anywhere; }.journey-copy p { font-size:14px;max-width:420px;margin:0 auto; }
.area-public .reference-hero { background:var(--journey-image) center 52%/cover no-repeat;isolation:isolate; }
.area-public .reference-hero:before { content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 37%,#ffe5b98c 65%,#fff0ca99);z-index:-1; }
.area-public .reference-hero .hero-copy { color:#072817; }.area-public .reference-hero h1 { font-size:clamp(38px,4.2vw,62px); }
.area-public .destination-hero { background:linear-gradient(90deg,transparent 25%,#fff2d196 60%,#fff2d1c9),var(--journey-image) center 48%/cover;min-height:300px; }
.area-public .destination-hero h1 { font-size:clamp(42px,6vw,82px);overflow-wrap:anywhere; }
.journey-curiosity .destination-hero p { font-size:0; }.journey-curiosity .destination-hero p:after { content:'FOLLOW YOUR CURIOSITY';font-size:12px;letter-spacing:3px; }
.journey-anticipation .journey-banner:before { filter:saturate(1.12); }.journey-reflection .journey-banner:before { filter:saturate(.75); }.journey-connection .journey-banner:before { filter:brightness(1.12); }.journey-memories .journey-banner:before { filter:sepia(.16); }.journey-clarity .journey-banner:before,.journey-focus .journey-banner:before { filter:saturate(.55); }
.embedded-stay .booking-box { background:linear-gradient(#fff8efed,#fff8efec),url('/design/traveller-twilight.webp') center/cover; }
.dash-main .journey-banner { min-height:145px;border-radius:16px;margin-bottom:24px; }.dash-main .journey-copy { padding-top:20px;padding-bottom:20px; }.dash-main .journey-copy h2 { font-size:26px; }.dash-main .journey-copy .eyebrow { letter-spacing:2px; }
@media(max-width:650px) { .journey-banner { min-height:230px; }.journey-copy { padding-left:38%;padding-right:16px; }.journey-copy h2 { font-size:27px; }.journey-copy .eyebrow { font-size:9px;letter-spacing:1px; }.journey-copy p { font-size:12px; }.journey-banner:before { background-position:30% center; }.journey-banner:after { background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--journey-tint) 82%,transparent) 72%); }.area-public .reference-hero { background-position:32% center; }.area-public .reference-hero:before { background:linear-gradient(#fff1d867,#fff1d8d9); }.area-public .reference-hero .hero-copy { padding-top:50px; }.area-public .destination-hero { background-position:35% center; }.area-public .destination-hero .wrap { padding-left:35%; }.area-public .destination-hero h1 { font-size:42px; }.dash-main .journey-copy { padding-left:30%; }.dash-main .journey-copy h2 { font-size:22px; } }

/* Property details: gallery, title, summary and details; enquiry remains sticky. */
.property-page > .property-title { margin: 24px 0 12px; overflow-wrap: anywhere; }

:root { --navy: #14213d; }
.nav-drop { position: relative; }
.nav-drop > summary { list-style: none; cursor: pointer; color: var(--navy); font-weight: 500; position: relative; display: inline-flex; align-items: center; gap: 6px; }
.nav-drop > summary::-webkit-details-marker { display: none; }
.nav-drop > summary::before { content: "▾"; order: 2; font-size: .8em; }
.drop-panel { position: absolute; right: 0; top: calc(100% + 12px); min-width: 250px; background: #fff; border-radius: 14px; box-shadow: var(--shadow); padding: 8px; display: grid; z-index: 50; }
.drop-panel a, .drop-panel .linklike { padding: 10px 12px; border-radius: 10px; color: var(--navy); text-decoration: none; text-align: left; font-size: .92rem; }
.drop-panel a:hover, .drop-panel .linklike:hover { background: var(--green-soft); }
.drop-panel form { margin: 0; }
.drop-panel .linklike { width: 100%; }
.app-shell .nav-drop > summary::before { content: none; }

/* ===== Admin shell: dark sidebar + top bar ===== */
.app-shell { display: grid; grid-template-columns: 1fr; min-height: 100vh; background: #f4f6fa; }
.app-side { background: #0f1e33; color: #c9d3e3; padding: 14px 12px; position: relative; z-index: 40; }
.side-logo { display: flex; flex-direction: column; gap: 2px; text-decoration: none; padding: 4px 8px 12px; }
.side-logo img { width: 150px; height: auto; }
.side-logo span { font-size: .6rem; letter-spacing: .28em; text-transform: uppercase; color: #8ea0bd; }
.side-burger { display: inline-block; position: absolute; right: 14px; top: 18px; color: #fff; cursor: pointer; font-weight: 600; }
.app-side .side-nav { display: none; flex-direction: column; gap: 2px; margin-top: 8px; }
.app-side .nav-toggle:checked ~ .side-nav { display: flex; }
.side-link { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; color: #c9d3e3; text-decoration: none; font-size: .93rem; cursor: pointer; list-style: none; }
.side-link::-webkit-details-marker { display: none; }
.side-link:hover { background: rgba(255, 255, 255, .06); color: #fff; }
.side-link.active { background: #1d6fe0; color: #fff; }
.side-group > summary::after { content: "▾"; margin-left: auto; font-size: .75rem; opacity: .7; transition: transform .15s; }
.side-group:not([open]) > summary::after { transform: rotate(-90deg); }
.side-group > summary.active { background: rgba(29, 111, 224, .18); color: #fff; }
.side-sub { display: flex; flex-direction: column; padding: 4px 0 6px 44px; gap: 1px; }
.side-sub a { color: #9fb0c9; text-decoration: none; font-size: .88rem; padding: 7px 10px; border-radius: 8px; position: relative; }
.side-sub a:hover { color: #fff; }
.side-sub a.active { color: #fff; background: #1d6fe0; }
.app-main { min-width: 0; display: flex; flex-direction: column; }
.app-top { display: flex; align-items: center; gap: 14px; padding: 12px 16px; background: #fff; border-bottom: 1px solid #e6eaf1; position: sticky; top: 0; z-index: 30; }
.app-search { flex: 1; display: flex; align-items: center; gap: 8px; background: #f4f6fa; border: 1px solid #e6eaf1; border-radius: 12px; padding: 0 12px; max-width: 520px; color: #8a96a8; }
.app-search input { border: 0; background: transparent; padding: 10px 0; }
.app-search input:focus { outline: none; }
.app-top-right { display: flex; align-items: center; gap: 18px; margin-left: auto; }
.bell { position: relative; color: var(--navy); display: inline-flex; }
.bell-dot { position: absolute; top: -6px; right: -8px; background: #e5484d; color: #fff; border-radius: 999px; font-size: .68rem; font-weight: 700; padding: 1px 5px; line-height: 1.3; }
.me > summary::before { display: none; }
.me > summary { gap: 10px; }
.avatar { width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, #1d6fe0, #0f9d8a); color: #fff; display: inline-grid; place-items: center; font-weight: 700; }
.me-txt { display: none; flex-direction: column; line-height: 1.2; }
.me-txt small { color: var(--muted); text-transform: capitalize; }
.app-shell .dash-main { padding: 18px 14px 60px; }
@media (min-width: 900px) {
  .app-shell { grid-template-columns: 250px 1fr; background: linear-gradient(90deg, #0f1e33 250px, #f4f6fa 250px); }
  .app-side { position: sticky; top: 0; height: 100vh; overflow-y: auto; padding: 18px 14px; }
  .side-burger { display: none; }
  .app-side .side-nav { display: flex; }
  .app-top { padding: 14px 28px; }
  .me-txt { display: flex; }
  .app-shell .dash-main { padding: 24px 28px 60px; }
}

/* ===== Add Property wizard ===== */
.wiz { --blue: #1d6fe0; --blue-soft: #eaf2fe; }
.wiz-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.wiz-title h1 { margin: 0; font-size: 1.5rem; }
.crumbs { color: var(--muted); }
.crumbs a { color: var(--muted); text-decoration: none; }
.crumbs strong { color: var(--blue, #1d6fe0); font-weight: 500; }
.wiz-grid { display: grid; gap: 16px; grid-template-columns: 1fr; align-items: start; }
.wiz-steps { list-style: none; margin: 0; padding: 10px; display: flex; gap: 6px; overflow-x: auto; }
.wiz-step a, .wiz-step-in { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 12px; text-decoration: none; color: var(--ink); min-width: 0; }
.wiz-step strong { display: block; font-size: .88rem; font-weight: 600; color: var(--navy); }
.wiz-step small { display: none; color: var(--muted); font-size: .76rem; }
.wiz-num { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: .85rem; border: 2px solid #d4dbe6; color: #8a96a8; background: #fff; }
.wiz-step.current a, .wiz-step.current .wiz-step-in { background: var(--blue-soft); }
.wiz-step.current .wiz-num { background: var(--blue); border-color: var(--blue); color: #fff; }
.wiz-step.current strong { color: var(--blue); }
.wiz-step.done .wiz-num { background: #16a34a; border-color: #16a34a; color: #fff; }
.wiz-step:not(.current) strong { white-space: nowrap; }
@media (max-width: 899px) { .wiz-step:not(.current) strong { display: none; } .wiz-step.current strong { white-space: nowrap; } }
.wiz-panel { padding: 18px; }
.wiz-head { display: flex; gap: 14px; align-items: flex-start; padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid var(--line); }
.wiz-head h2 { margin: 0; font-size: 1.25rem; }
.wiz-head p { margin: 2px 0 0; font-size: .9rem; }
.wiz-icon { width: 56px; height: 56px; flex: 0 0 56px; border-radius: 16px; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; }
.wiz-form { gap: 18px; }
.wiz-2, .wiz-3, .wiz-4 { display: grid; gap: 14px; grid-template-columns: 1fr; }
.wf { display: flex; flex-direction: column; gap: 6px; position: relative; min-width: 0; }
.wl { font-weight: 600; font-size: .9rem; color: var(--navy); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.wl b { color: #e5484d; }
.wl small { font-weight: 400; color: var(--muted); }
.wl .add-new { margin-left: auto; }
.wiz input, .wiz select, .wiz textarea { border-color: #dbe2ec; border-radius: 10px; padding: 11px 12px; }
.wiz input:focus, .wiz select:focus, .wiz textarea:focus { outline: 2px solid rgba(29, 111, 224, .25); border-color: var(--blue); }
.with-ico { display: flex; align-items: center; gap: 8px; border: 1px solid #dbe2ec; border-radius: 10px; padding: 0 12px; background: #fff; color: #8a96a8; }
.with-ico input { border: 0 !important; padding-left: 0; outline: none !important; }
.counter { align-self: flex-end; margin-top: -4px; }
.add-new { color: var(--blue); text-decoration: none; font-weight: 600; font-size: .86rem; display: inline-flex; align-items: center; gap: 4px; }
.drop { display: flex; align-items: center; gap: 14px; border: 2px dashed #c9d6ea; border-radius: 14px; padding: 16px; background: #f8fbff; cursor: pointer; }
.drop input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.drop { position: relative; }
.drop-ico { width: 48px; height: 48px; border-radius: 12px; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; flex: 0 0 48px; }
.drop strong { display: block; color: var(--navy); }
.drop small { color: var(--muted); }
.media-row { align-items: center; }
.thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.thumbs img { width: 96px; height: 72px; object-fit: cover; border-radius: 10px; }
.uploaded .thumb { position: relative; display: inline-block; width: auto; height: auto; }
.thumb-x { position: absolute; top: 4px; right: 4px; width: 24px; height: 24px; border-radius: 50%; border: 0; background: rgba(15, 30, 51, .75); color: #fff; cursor: pointer; line-height: 1; font-size: 1rem; }
.tiles-wrap { display: flex; flex-direction: column; gap: 10px; }
.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.tile { display: flex; align-items: center; gap: 8px; border: 1px solid #dbe2ec; border-radius: 12px; padding: 10px 12px; cursor: pointer; background: #fff; font-size: .88rem; position: relative; min-width: 0; }
.tile input[type=checkbox] { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tile-ico { font-size: 1.2rem; flex: 0 0 auto; }
.tile:has(input:checked) { border-color: var(--blue, #1d6fe0); background: #eaf2fe; color: #0f3f86; font-weight: 600; }
.tile:has(input:checked)::after { content: "✓"; position: absolute; top: 4px; right: 7px; font-size: .75rem; color: #1d6fe0; }
.tile:has(input:focus-visible) { outline: 2px solid #1d6fe0; }
.tile-admin { cursor: default; }
.tile-admin.is-hidden { opacity: .5; border-style: dashed; }
.room-block, .img-block { border: 1px solid #e3e9f2; border-radius: 16px; padding: 16px; display: flex; flex-direction: column; gap: 16px; background: #fcfdff; }
.img-block h3 { margin: 0; font-size: 1rem; }
.wiz-nav { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding-top: 16px; border-top: 1px solid var(--line); }
.wiz-nav .row { align-items: center; flex-wrap: wrap; }
.btn-go, .btn-blue { background: #1d6fe0; border-color: #1d6fe0; color: #fff; padding: 12px 22px; border-radius: 12px; }
.btn-go:hover, .btn-blue:hover { background: #155bc0; }
.btn-go[disabled] { opacity: .5; cursor: not-allowed; }
.btn-soft { background: #eaf2fe; border-color: #cfe0fb; color: #1d6fe0; }
.btn-lg { padding: 14px 26px; font-size: 1.02rem; }
.hint-box { display: flex; gap: 12px; align-items: center; background: #f4f8ff; border: 1px solid #dfe9fb; border-radius: 12px; padding: 12px 14px; color: #1d6fe0; font-size: .88rem; }
.hint-box span { color: var(--ink); display: flex; flex-direction: column; }
.hint-box small { color: var(--muted); }
.rate-pick { align-items: end; }
.period { border-radius: 16px; padding: 14px; display: flex; flex-direction: column; gap: 14px; margin-bottom: 14px; }
.period-off { background: #f2faf5; border: 1px solid #d5eedf; }
.period-sea { background: #fff8ee; border: 1px solid #f6e3c4; }
.period-peak { background: #fbf5ff; border: 1px solid #ead9f7; }
.period-head { display: grid; gap: 12px; grid-template-columns: auto 1fr; align-items: center; }
.period-head > .wf, .period-head > .add-new { grid-column: 1 / -1; }
.period-head h3 { margin: 0; font-size: 1.02rem; }
.period-ico { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: #fff; }
.period-off .period-ico { color: #16a34a; } .period-sea .period-ico { color: #e08a00; } .period-peak .period-ico { color: #8b3fd1; }
.rate-table { background: #fff; border-radius: 12px; border: 1px solid #e3e9f2; overflow-x: auto; }
.rt-title { padding: 10px 12px; font-weight: 600; font-size: .9rem; color: var(--navy); border-bottom: 1px solid #e3e9f2; }
.rt-wk .rt-title { background: #eef6ff; } .rt-we .rt-title { background: #fff1e8; }
.rate-table table { width: 100%; border-collapse: collapse; min-width: 420px; }
.rate-table th { font-size: .76rem; text-align: left; color: var(--muted); font-weight: 600; padding: 8px 8px; }
.rate-table td { padding: 6px 8px; border-top: 1px solid #f0f3f8; font-size: .85rem; vertical-align: middle; }
.rate-table td:first-child { min-width: 120px; }
.rate-table td small { display: block; font-size: .7rem; line-height: 1.2; }
.rate-table input { padding: 8px 8px; font-size: .88rem; }
.peak-rows { display: flex; flex-direction: column; gap: 10px; }
.peak-row { background: #fff; border-radius: 12px; padding: 12px; border: 1px solid #ead9f7; }
.peak-entry > .peak-row { align-items: end; }
.peak-entry > .peak-row > .icon-btn { justify-self: end; }
.tint { border-radius: 16px; overflow: hidden; border: 1px solid; }
.tint-head { display: flex; gap: 12px; align-items: center; padding: 14px 16px; flex-wrap: wrap; }
.tint-head h3 { margin: 0; font-size: 1.02rem; }
.tint-head > div { flex: 1; min-width: 180px; }
.tint-head > .ico { width: 44px; height: 44px; padding: 9px; border-radius: 12px; background: #fff; }
.tint-body { padding: 16px; background: #fff; }
.tint-blue { border-color: #dbe7fb; } .tint-blue .tint-head { background: #eef5ff; color: #1d6fe0; }
.tint-green { border-color: #d5eedf; } .tint-green .tint-head { background: #effaf3; color: #16a34a; }
.tint-amber { border-color: #f6e3c4; } .tint-amber .tint-head { background: #fff7ea; color: #e08a00; }
.tint-red { border-color: #f6d6d6; } .tint-red .tint-head { background: #fff2f2; color: #d64545; }
.act-table { width: 100%; border-collapse: collapse; }
.act-table th { text-align: left; font-size: .8rem; color: var(--muted); padding: 6px 8px; }
.act-table td { padding: 6px 8px; border-top: 1px solid #f0f3f8; vertical-align: middle; }
.act-table .row { align-items: center; gap: 8px; }
.act-table .row input[type=checkbox] { width: auto; }
.act-table .check input { width: auto; }
.icon-btn { border: 1px solid #f3cccc; background: #fff5f5; color: #d64545; border-radius: 10px; width: 36px; height: 36px; display: grid; place-items: center; cursor: pointer; }
@media (max-width: 699px) {
  .act-table thead { display: none; }
  .act-table tr { display: grid; grid-template-columns: 1fr auto; gap: 6px; padding: 10px 0; border-top: 1px solid #f0f3f8; }
  .act-table td { border: 0; padding: 0; }
  .act-table td:first-child { grid-column: 1 / -1; }
}
.img-pick { align-items: end; }
.add-photos { display: flex; align-items: center; gap: 12px; }
.add-photos .btn { cursor: pointer; }
.uploaded { border-top: 1px dashed #dbe2ec; padding-top: 12px; }
.wiz-success { text-align: center; padding: 30px 10px 20px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.wiz-success h2 { margin: 6px 0 0; font-size: 1.6rem; }
.success-badge { width: 110px; height: 110px; border-radius: 50%; background: radial-gradient(circle, #22c55e 55%, #dcfce7 56%); display: grid; place-items: center; box-shadow: 0 0 0 14px #f0fdf4; margin-bottom: 8px; }
.review-list { display: grid; grid-template-columns: 1fr; gap: 4px 18px; margin: 0; }
.review-list dt { font-weight: 600; color: var(--navy); margin-top: 8px; }
.review-list dd { margin: 0; color: var(--ink); }
.plain-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
@media (min-width: 700px) {
  .wiz-2 { grid-template-columns: 1fr 1fr; }
  .wiz-3 { grid-template-columns: repeat(3, 1fr); }
  .wiz-4 { grid-template-columns: repeat(4, 1fr); }
  .peak-entry > .peak-row { grid-template-columns: repeat(4, minmax(0, 1fr)) 36px; }
  .wiz-4 .wf-wide { grid-column: span 1; }
  .period-head { grid-template-columns: auto 1fr 180px 180px; }
  .period-head > .wf { grid-column: auto; }
  .period-peak .period-head { grid-template-columns: auto 1fr auto; }
  .period-peak .period-head > .add-new { grid-column: auto; }
  .review-list { grid-template-columns: 200px 1fr; }
  .review-list dt { margin-top: 0; }
  .wiz-panel { padding: 24px 28px; }
}
@media (min-width: 1100px) {
  .wiz-grid { grid-template-columns: 270px 1fr; }
  .wiz-steps { flex-direction: column; position: sticky; top: 84px; padding: 14px; gap: 2px; overflow: visible; }
  .wiz-steps::before { content: ""; }
  .wiz-step small { display: block; }
  .wiz-step a, .wiz-step-in { padding: 12px; }
  .wiz-step:not(.current) strong { white-space: normal; }
}
.wiz .rate-tables { grid-template-columns: 1fr; }
@media (min-width: 1500px) { .wiz .rate-tables { grid-template-columns: 1fr 1fr; } }
.rate-table th:first-child { min-width: 150px; }
@media (max-width: 699px) {
  .rate-table table { min-width: 0; }
  .rate-table thead { display: none; }
  .rate-table tr { display: grid; grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); gap: 6px 8px; padding: 10px 12px; border-top: 1px solid #f0f3f8; }
  .rate-table td { border: 0; padding: 0; }
  .rate-table td:first-child { grid-column: 1 / -1; min-width: 0; }
  .rate-table td[data-l]::before { content: attr(data-l); display: block; font-size: .7rem; color: var(--muted); font-weight: 600; margin-bottom: 2px; }
}
.tiles:has(.tile-admin) { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
.tile-admin .linklike { margin-left: auto; flex: 0 0 auto; }
.wrap-row > input[name=label] { flex: 1 1 240px; width: auto; }
.wrap-row > input[name=icon] { flex: 0 0 170px; width: auto; }
@media (min-width: 700px) { .wiz-4:has(.wf-wide) { grid-template-columns: 1.7fr 1fr 1fr 1fr; } }
@media (min-width: 900px) { .area-public .topnav { background: transparent; } }

/* AI discovery has priority; manual search remains available. */
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.hero-ai-priority { max-width:980px;margin:18px auto 0;padding:18px 22px;background:#fffdf8f5;border-radius:20px;box-shadow:0 0 0 6px #ffffff60,0 10px 35px #512b1425;color:#142c24;scroll-margin-top:100px; }
.hero-ai-heading { display:flex;align-items:center;gap:10px;margin-bottom:12px;text-align:left; }.hero-ai-heading strong { font-size:19px; }.hero-ai-heading>span:last-child { margin-left:auto;font-size:13px;color:#62716a; }
.priority-ai-form { margin:0;background:#fff;border:1px solid #d4e3da;box-shadow:none;border-radius:12px;padding:5px; }.priority-ai-form input { min-width:0;font-size:15px;color:#132a22; }.priority-ai-form .find-stay { padding:14px 23px; }
.ai-example-chips { display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;text-align:left; }.ai-example-chips a { padding:5px 10px;background:#edf5ef;border-radius:20px;text-decoration:none;color:#185638;font-size:12px; }.ai-example-chips a:hover { background:#dcecdf; }
.manual-search { max-width:980px;margin:20px auto 0;text-align:center;color:#183024; }.manual-search>summary { cursor:pointer;font-size:13px;display:inline-block;background:#fff9e8e8;padding:8px 16px;border-radius:20px; }.manual-search .reference-search { margin-top:16px; }.manual-search[open]>summary { margin-bottom:5px; }
.home-ai-insights { padding-top:30px; }.ai-insights-panel { border:1px solid #deeadf;border-radius:18px;background:linear-gradient(120deg,#f1f8f1,#fffdf7);padding:22px;margin-bottom:20px;scroll-margin-top:100px; }.ai-insights-panel>.row-between { gap:18px;align-items:center;margin-bottom:16px; }.ai-insights-panel h2 { display:inline;margin-left:9px;font-size:24px; }.ai-insights-panel .row-between p { margin:8px 0 0; }.ai-insight-card { background:white;border:1px solid #e5ebe5;border-radius:12px;padding:17px; }.ai-insight-card h3 { margin-top:8px; }.ai-insight-card p { font-size:14px;line-height:1.65;color:#40504b; }.ai-insight-card>a { font-size:13px;font-weight:600; }.ai-insight-source { margin:14px 0 0; }.ai-insight-empty p { margin:6px 0 10px;font-size:14px;color:#52665a; }.ai-insight-empty>a { font-size:13px; }
.area-public .topnav { gap:18px; }.area-public .topnav .nav-ai-link { color:#005b2e;font-weight:700; }.area-public .portal-dropdown { margin-left:15px; }
.area-public .reference-hero { padding-bottom:28px; }.results .ai-insights-panel { padding:16px; }.results .ai-insights-panel h2 { font-size:21px; }.results .ai-insights-panel .grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:1000px) { .area-public .topnav { gap:10px; }.hero-ai-heading>span:last-child { font-size:12px; }.results .ai-insights-panel .grid { grid-template-columns:1fr; } }
@media(max-width:650px) { .hero-ai-priority { margin:18px 8px 0;padding:15px; }.hero-ai-heading { flex-wrap:wrap; }.hero-ai-heading>span:last-child { margin-left:0;flex-basis:100%; }.priority-ai-form { flex-wrap:wrap; }.priority-ai-form input { width:100%;flex-basis:100%;padding:12px; }.priority-ai-form .find-stay { width:100%; }.ai-example-chips a { font-size:11px; }.ai-insights-panel { padding:17px; }.ai-insights-panel>.row-between { flex-wrap:wrap; }.ai-insights-panel .grid { grid-template-columns:1fr; }.ai-insights-panel h2 { font-size:22px; } }

/* Property wizard Best For checkbox dropdown. */
.best-for-select { position: relative; min-width: 0; }
.best-for-select > summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; padding: 8px 12px; border: 1px solid #d5dce1; border-radius: 8px; background: #fff; cursor: pointer; list-style: none; }
.best-for-select > summary::-webkit-details-marker { display: none; }
.best-for-select > summary:focus-visible, .best-for-tag button:focus-visible { outline: 2px solid #168a58; outline-offset: 2px; }
.best-for-select [data-best-for-tags] { display: flex; flex-wrap: wrap; gap: 5px; min-width: 0; }
.best-for-tag { display: inline-flex; align-items: center; gap: 4px; padding: 3px 7px; border-radius: 6px; background: #edf7f1; color: #216344; font-size: .82rem; }
.best-for-tag button { border: 0; background: transparent; color: inherit; padding: 0 3px; cursor: pointer; font-size: 1rem; }
.best-for-options { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 20; max-height: 280px; overflow-y: auto; border: 1px solid #d5dce1; border-radius: 8px; background: #fff; padding: 6px; box-shadow: 0 8px 24px #0002; }
.best-for-options label { display: flex; align-items: center; gap: 9px; padding: 9px; border-radius: 5px; cursor: pointer; }
.best-for-options label:hover, .best-for-options label:focus-within { background: #edf7f1; }
.best-for-options input { width: 17px; height: 17px; margin: 0; accent-color: #168a58; }

/* Common photo selection and saved previews in wizard Step 1. */
.common-photos .common-photo { position: relative; width: 112px; display: flex; flex-direction: column; gap: 4px; }
.common-photos .common-photo img { width: 112px; height: 84px; object-fit: cover; }
.common-photos .common-photo small { overflow-wrap: anywhere; font-size: .75rem; }
.common-photos .photo-failed { color: #ad2430; }
.common-photos progress { width: 100%; height: 6px; }

/* Parent controls have their own grid; nested items cannot shift their alignment. */
.act-table thead tr, .activity-main, .activity-item { display: grid; grid-template-columns: minmax(0, 2fr) minmax(140px, 1fr) minmax(0, 1.2fr) 36px; gap: 12px; align-items: center; }
.act-table thead th { padding: 6px 0; }
.act-table thead tr { padding: 0 8px; }
.activity-main > *, .activity-item > * { min-width: 0; }
.activity-main input:not([type=checkbox]) { width: 100%; }
.activity-items { display: grid; gap: 6px; margin: 6px 0; }
.activity-item { padding: 4px 0 4px 8px; border-left: 2px solid #d8b676; }
.activity-item-name { display: flex; align-items: center; gap: 6px; }
.activity-item input:not([type=checkbox]) { width: 100%; padding: 7px 8px; }
.activity-item input:disabled { background: #f3f4f6; }
.activity-item [data-del-act-item] { font-size: 1.25rem; }
@media (max-width: 699px) {
  .act-table tr { display: table-row; }
  .act-table td { padding: 10px 0; border-top: 1px solid #f0f3f8; }
  .activity-main, .activity-item { grid-template-columns: minmax(0, 1fr) 36px; gap: 6px; }
  .activity-main > :first-child, .activity-item-name { grid-column: 1; }
  .activity-main > :last-child, .activity-item > [data-del-act-item] { grid-column: 2; grid-row: 1; }
}

/* Public header: transparent integration with readable, compact navigation. */
.area-public:has(.reference-hero) .topbar, .area-public:has(.destination-hero) .topbar { background: linear-gradient(to bottom, #ffffffb8, #ffffff50 70%, transparent); }
.area-public .topbar-in { max-width: 1280px; gap: 24px; }
.area-public .topbar .logo { flex-shrink: 0; }
.area-public .topnav [data-public-nav], .area-public .topnav .linklike { color: #152b26; font-size: 13px; font-weight: 500; white-space: nowrap; }
.area-public .topnav [data-public-nav] { position: relative; padding: 8px 0; text-shadow: 0 1px 3px #ffffffc0; }
.area-public .topnav [data-public-nav][aria-current=page] { font-weight: 600; color: #10291f; }
.area-public .topnav [data-public-nav][aria-current=page]::after { content: ''; position: absolute; left: 0; right: 0; bottom: 1px; height: 2px; background: #21854d; }
@media (min-width: 1100px) {
  .area-public .topbar-in { display: grid; grid-template-columns: minmax(190px, 1fr) auto minmax(190px, 1fr); gap: 20px; }
  .area-public .topbar .logo { justify-self: start; }
  .area-public .topnav { display: contents; }
  .area-public .topnav-menu { grid-column: 2; justify-self: center; }
  .area-public .topnav-account { grid-column: 3; justify-self: end; }
  .area-public .portal-dropdown { margin-left: 0; }
  .area-public .portal-dropdown summary { padding: 10px 16px; font-size: 13px; }
}
@media (min-width: 900px) and (max-width: 1099px) {
  .area-public .nav-burger { display: block; }
  .area-public .topnav { display: none; position: absolute; top: 84px; flex-direction: column; align-items: stretch; background: #fff; padding: 16px; }
  .area-public .nav-toggle:checked ~ .topnav { display: flex; }
  .area-public .portal-dropdown { margin-left: 0; }
}

/* Menu and account zones share the existing collapsed menu on smaller screens. */
.topnav-menu, .topnav-account { display: contents; }
.area-public .topnav-menu, .area-public .topnav-account { display: flex; align-items: center; gap: 18px; }
@media (max-width: 1099px) {
  .area-public .topnav-menu, .area-public .topnav-account { flex-direction: column; align-items: stretch; gap: 12px; }
  .area-public .topnav-account .portal-dropdown { margin-left: 0; }
}

/* Only Destinations gets hover opening and the existing CTA orange option state. */
.area-public .destinations-dropdown .nav-panel a { transition: background-color .15s ease, color .15s ease; }
.area-public .destinations-dropdown .nav-panel a:hover,
.area-public .destinations-dropdown .nav-panel a:focus-visible { background: var(--cta-orange); color: #fff; }
@media (min-width: 1100px) and (hover: hover) and (pointer: fine) {
  .area-public .destinations-dropdown .nav-panel::before { content: ''; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
}

/* Quotation kids policy floats independently of the quotation fields. */
.kids-policy-label { display:flex; align-items:center; justify-content:space-between; gap:6px; }
.kids-policy-trigger { font-size:11px; white-space:nowrap; padding:0; }
.kids-policy-popover { position:fixed; z-index:100; width:320px; max-width:calc(100vw - 24px); max-height:calc(100vh - 24px); overflow:auto; box-sizing:border-box; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 8px 28px #0002; padding:14px; font-size:13px; }
.kids-policy-popover[hidden] { display:none; }
.kids-policy-popover p { margin:6px 0; }
.kids-policy-popover [data-kids-room] { border-top:1px solid var(--line); margin-top:10px; padding-top:10px; }

/* Staff Finder labels stay visible after filters are entered. */
.staff-finder-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; align-items:end; }
.staff-finder-filters > .field { min-width:0; }
.staff-finder-filters > .btn { justify-self:start; }
@media (max-width:900px) { .staff-finder-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:480px) { .staff-finder-filters { grid-template-columns:minmax(0,1fr); gap:10px; } }

/* Popular Stays controls and the existing public property preview. */
.popular-stays .carousel-arrow { display:grid;place-items:center;width:48px;height:48px;top:50%;transform:translateY(-50%);left:-16px;border:1px solid #cbd5d1;background:#fff;color:#172b26;font-size:27px;font-weight:700;line-height:1;box-shadow:0 3px 14px #12291c30; }
.popular-stays .carousel-arrow:last-child { left:auto;right:-16px; }
.popular-stays .carousel-arrow:hover { background:#f1f7f3;border-color:var(--green); }
.popular-stays .carousel-arrow:focus-visible,.stay-dialog .dialog-close:focus-visible,.preview-gallery-arrow:focus-visible,.preview-gallery-thumbnails button:focus-visible,.preview-gallery-open:focus-visible { outline:3px solid var(--green);outline-offset:3px; }
.stay-dialog { overflow:hidden;height:90dvh;max-height:94dvh; }
.stay-dialog[open] { display:flex;flex-direction:column; }
.stay-dialog-head { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px 8px 20px;border-bottom:1px solid #e4ebe7;background:#fff;flex:none; }
.stay-dialog-head strong { min-width:0;font-size:15px; }
.stay-dialog .dialog-close { position:static;flex:none;width:48px;height:48px;border:1px solid #dde5df;color:#172b26; }
.stay-dialog iframe { flex:1;min-height:0;border-radius:0;width:100%; }
.stay-preview-loading { padding:16px;color:var(--muted); }
.embedded-stay .property-page { padding:20px;max-width:none; }
.embedded-stay .property-title { font-size:28px;line-height:1.2; }
.embedded-stay .stay-preview-gallery { display:block;height:auto;overflow:visible;margin:0 0 14px; }
.preview-gallery-stage { position:relative;border-radius:12px;overflow:hidden;background:#edf2ef; }
.preview-gallery-open { display:block;padding:0;border:0;width:100%;background:transparent;cursor:zoom-in; }
.embedded-stay .preview-gallery-stage img { display:block;width:100%;height:310px;aspect-ratio:auto;object-fit:cover; }
.preview-gallery-arrow { position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid #d0d9d3;background:#fff;color:#172b26;font-size:28px;cursor:pointer;box-shadow:0 2px 10px #0003; }
.preview-gallery-arrow.previous { left:12px; }.preview-gallery-arrow.next { right:12px; }
.preview-gallery-counter { position:absolute;right:12px;bottom:12px;border-radius:16px;background:#152e25d9;color:#fff;padding:4px 10px;font-size:12px;pointer-events:none; }
.preview-gallery-thumbnails { display:flex;gap:8px;overflow-x:auto;padding:10px 3px; }
.preview-gallery-thumbnails button { flex:none;border:2px solid transparent;padding:2px;border-radius:8px;background:#fff;cursor:pointer; }
.preview-gallery-thumbnails button[aria-pressed="true"] { border-color:var(--green); }
.embedded-stay .preview-gallery-thumbnails img { display:block;width:74px;height:54px;aspect-ratio:auto;object-fit:cover;border-radius:4px; }
.embedded-stay .booking-box { background:#f7faf6;border:1px solid #dce7dc;box-shadow:none;padding:20px;min-width:0; }
.preview-advisor-whatsapp { width:100%;margin:4px 0 16px; }
.embedded-stay .room { min-width:0;overflow-wrap:anywhere; }
.embedded-stay .room-photos { float:none;margin:8px 0; }
.embedded-stay .room-price { min-width:0; }
@media(min-width:960px) {
  .embedded-stay .property-page { display:grid;grid-template-columns:minmax(0,1fr) 320px;column-gap:24px; }
  .embedded-stay .property-page>.gallery,.embedded-stay .property-title,.embedded-stay .prop-main { grid-column:1;min-width:0; }
  .embedded-stay .prop-layout { display:contents; }
  .embedded-stay .booking-box { grid-column:2;grid-row:1 / span 3;top:20px; }
}
@media(max-width:650px) {
  .popular-stays .carousel-arrow { width:44px;height:44px;left:2px; }.popular-stays .carousel-arrow:last-child { right:2px; }
  .stay-dialog { width:96vw;height:94dvh;max-height:96dvh;border-radius:14px; }
  .stay-dialog-head { padding-left:12px; }
  .embedded-stay .property-page { padding:12px; }
  .embedded-stay .preview-gallery-stage img { height:220px; }
  .embedded-stay .property-title { font-size:24px; }
  .embedded-stay .room { display:block; }.embedded-stay .room-price { margin-top:12px; }
  .embedded-stay .booking-box .row { flex-wrap:wrap; }.embedded-stay .booking-box .field { min-width:90px; }
}

/* Keep configured inventory beneath Rooms without shifting the stay inputs. */
.quote-stay-fields { align-items: flex-start; }
.quote-stay-fields > .field { align-self: flex-start; justify-content: flex-start; }
.quote-inventory-helper { font-size: 11px; line-height: 1.4; color: var(--muted); text-align: left; overflow-wrap: anywhere; }
.quote-inventory-helper .error { margin-top: 3px; font-size: inherit; line-height: inherit; }

/* Admin → Resort contacts */
[data-contact-finder] [hidden] { display: none !important; }
.contact-search input[type="search"] { flex: 1; min-width: 220px; }
.contact-list { display: grid; grid-template-columns: max-content 1fr; gap: 6px 12px; margin: 0; }
.contact-list dt { color: var(--muted); font-size: .85rem; }
.contact-list dd { margin: 0; display: flex; flex-direction: column; gap: 2px; overflow-wrap: anywhere; }
.contact-phone { display: inline-flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.contact-phone a:first-child { font-weight: 600; }
.rate-expiry-days { white-space: nowrap; font-weight: 600; }
.rate-expiry-days.text-red { color: var(--red); }
.rate-expiry-actions { display: flex; flex-direction: column; gap: 6px; align-items: stretch; min-width: 140px; }
.rate-expiry-actions form, .rate-expiry-actions form .btn { width: 100%; }

/* Wizard rates: several date ranges per period */
.date-ranges { margin: 8px 0 4px; }
.date-range { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 10px; align-items: end; }
.date-range .range-del { font-size: 1.3rem; padding: 0 6px 8px; }
@media (max-width: 640px) { .date-range { grid-template-columns: 1fr 1fr; } .date-range .range-del { justify-self: end; } }
.period > [data-add-range] { align-self: flex-start; }
@media (min-width: 700px) { .period-off .period-head, .period-sea .period-head { grid-template-columns: auto 1fr; } }

/* Staff quotation: several room categories in one option */
.extra-rooms { flex-basis: 100%; display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; border: 1px dashed var(--line); border-radius: 10px; }
.extra-room-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1.4fr) auto; gap: 10px; align-items: start; }
.extra-room-del { font-size: 1.3rem; padding: 0 6px; align-self: center; }
.extra-rooms [data-add-extra-room] { align-self: flex-start; }
@media (max-width: 640px) { .extra-room-row { grid-template-columns: 1fr 1fr; } }

/* Wizard rates: per-room-category peak charges */
.peak-entry + .peak-entry { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line); }
.peak-by-room { margin-top: 8px; }
.peak-by-room summary { cursor: pointer; font-weight: 600; font-size: .9rem; color: var(--green); }
.peak-room-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin-top: 8px; }

/* Wizard images: property thumbnail */
.thumb-now img { width: 180px; height: 120px; object-fit: cover; border-radius: 10px; border: 2px solid var(--green); }
.thumb-pick { display: flex; flex-wrap: wrap; gap: 10px; }
.thumb-opt { position: relative; cursor: pointer; border-radius: 10px; border: 2px solid transparent; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; width: 110px; height: 80px; background: #fff; }
.thumb-opt img { width: 100%; height: 100%; object-fit: cover; }
.thumb-opt input { position: absolute; top: 6px; left: 6px; z-index: 1; }
.thumb-opt:has(input:checked) { border-color: var(--green); box-shadow: 0 0 0 2px rgba(15, 94, 87, .25); }
.thumb-auto { font-weight: 600; font-size: .85rem; border: 2px dashed var(--line); }
.thumb-auto span { padding-left: 18px; }

/* Quotation actions wrap on phones without affecting other sticky action bars. */
@media (max-width: 640px) {
  .row.wrap-row.sticky-actions.quotation-primary-actions { flex-wrap: wrap; }
  .quotation-primary-actions .btn { flex: 1 1 auto; min-height: 44px; }
}

/* Staff/Admin estimate calculator only. Existing panel/button tokens are reused. */
.calculator-form,.calculator-top,.calculator-dates,.calculator-details {min-width:0}
.calculator-top {display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1.5fr) minmax(0,1.15fr) minmax(0,.7fr) minmax(0,.8fr) minmax(0,.8fr) minmax(0,.8fr) minmax(0,1fr) auto;gap:10px 8px;align-items:end}
.calculator-top .field-label {font-size:11px;min-height:2.3em;display:flex;align-items:end}
.calculator-top input,.calculator-top select,.calculator-top .btn {min-width:0;max-width:100%;min-height:42px;font-size:12px;padding:9px 8px}
.calculator-top .btn {white-space:normal}
.calculator-property {grid-column:1;grid-row:1}.calculator-add {grid-column:3;grid-row:1}.calculator-extra {grid-column:5;grid-row:1}.calculator-kids {grid-column:6;grid-row:1}.calculator-discount {grid-column:7;grid-row:1}.calculator-additional {grid-column:8;grid-row:1}.calculator-top-submit {grid-column:9;grid-row:1}
.calculator-room-list,.calculator-room:first-child,.calculator-room-placeholder {display:contents}
.calculator-room-list:not(:empty)+.calculator-room-placeholder {display:none}
.calculator-room:first-child>label:first-child,.calculator-room-placeholder>.field:first-child {grid-column:2;grid-row:1}
.calculator-room:first-child>label:nth-child(2),.calculator-room-placeholder>.field:nth-child(2) {grid-column:4;grid-row:1}
.calculator-room:first-child>button {grid-column:9;grid-row:2;justify-self:end;padding:4px 8px;min-height:32px}
.calculator-room:first-child>[data-inventory] {grid-column:1/9;grid-row:2}
.calculator-room:first-child>[data-kids-policy] {grid-column:1/-1;grid-row:3}
.calculator-room label {display:grid;gap:6px;min-width:0}
.calculator-room:not(:first-child) {grid-column:1/-1;display:grid;grid-template-columns:minmax(0,2fr) minmax(90px,1fr) auto;gap:8px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:9px}
.calculator-room [data-inventory],.calculator-room [data-kids-policy] {margin:0;font-size:12px;overflow-wrap:anywhere}
.calculator-room:not(:first-child)>p {grid-column:1/-1}
.calculator-room [data-kids-policy]:empty {display:none}
.calculator-dates {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.calculator-table {max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--line);border-radius:9px}
.calculator-table:focus-visible {outline:2px solid var(--green-2);outline-offset:2px}
.calculator-table table {width:100%;border-collapse:collapse;font-size:13px}
.calculator-table th,.calculator-table td {padding:12px 10px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
.calculator-table th {background:var(--green-soft);font-size:12px}
.calculator-table th:first-child,.calculator-table td:first-child {text-align:left;white-space:normal;min-width:140px;overflow-wrap:anywhere}
.calculator-components {font-size:13px;padding:10px 0}.calculator-components summary {cursor:pointer;color:var(--green);font-weight:600}.calculator-components>div {padding:10px 0;border-bottom:1px solid var(--line)}
.calculator-summaries {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}
.calculator-summary {padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--green-soft);min-width:0}
.calculator-summary h3 {font-size:13px;margin:0 0 8px}.calculator-summary strong {font-size:24px;color:var(--green);overflow-wrap:anywhere}.calculator-summary p {margin:6px 0 0}
.calculator-summary-direct {background:var(--sand)}.calculator-summary-staff {background:var(--green-soft)}
.calculator-actions {display:flex;justify-content:flex-end;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:16px;flex-wrap:wrap}.calculator-actions [role=status] {margin-right:auto;font-size:13px}.calculator-actions .btn {min-height:44px}
@media(max-width:1200px){
 .calculator-top {grid-template-columns:repeat(4,minmax(0,1fr))}
 .calculator-top>div:not(.calculator-room-list):not(.calculator-room-placeholder),.calculator-top>.btn,.calculator-room:first-child>label,.calculator-room-placeholder>.field,.calculator-room:first-child>button {grid-column:auto;grid-row:auto}
 .calculator-room:first-child>p {grid-column:1/-1;grid-row:auto}
 .calculator-top .field-label {min-height:2.3em}.calculator-dates {grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:600px){
 .calculator-top,.calculator-dates {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .calculator-top input,.calculator-top select,.calculator-top .btn {min-height:44px;font-size:14px}
 .calculator-top .calculator-property,.calculator-top .calculator-additional,.calculator-top .calculator-top-submit {grid-column:1/-1!important}
 .calculator-room:not(:first-child) {grid-template-columns:minmax(0,1fr) 100px}.calculator-room:not(:first-child)>button {grid-column:1/-1;justify-self:end}
 .calculator-actions [role=status] {flex-basis:100%}.calculator-actions .btn {flex:1}
}

/* Common-image cover controls; existing room thumbnail picker is unchanged. */
.common-thumbnail-control {white-space:normal;min-height:44px;padding:6px 8px;font-size:12px;line-height:1.25}
.common-thumbnail-control[aria-pressed="true"] {background:var(--green-soft);color:var(--green);border-color:var(--green);opacity:1}
.common-photo:has(.common-thumbnail-control[aria-pressed="true"]),.photo-tile:has(.common-thumbnail-control[aria-pressed="true"]) {outline:2px solid var(--green);outline-offset:3px;border-radius:8px}

/* Homepage: the existing stay search leads directly into Popular Stays. */
.area-public .home-search-hero {min-height:0;padding:108px 0 28px}
.area-public .home-search-hero .hero-copy {min-height:0;padding-top:0}
.home-search-hero .reference-search {grid-template-columns:minmax(150px,1.15fr) repeat(2,minmax(125px,1fr)) minmax(135px,1fr) auto;gap:0;max-width:1040px;margin:20px auto 0;padding:8px;border-radius:20px}
.home-search-hero .reference-search>.field,.home-search-hero .guest-picker {min-width:0;padding:0 14px}
.home-search-hero .reference-search input,.home-search-hero .reference-search select {min-height:44px;max-width:100%}
.home-search-hero .guest-picker summary {min-height:60px;display:flex;flex-direction:column;justify-content:center;gap:4px}
.home-search-hero .guest-panel {max-width:calc(100vw - 48px)}
.home-search-hero .find-stay {grid-column:auto;min-height:48px;padding:14px 22px}
.home-search-hero .reference-search :is(input,select,summary):focus-visible {outline:2px solid var(--cta-orange);outline-offset:2px;border-radius:6px}
.home-search-hero .trust-strip {margin-top:20px}
.area-public .home-search-hero:after {height:24px;clip-path:none;background:linear-gradient(transparent,#fff);pointer-events:none}
.home-ai-insights>.hero-ai-priority {margin:0 auto 22px}
@media(max-width:900px) {
 .home-search-hero .reference-search {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:700px}
 .home-search-hero .reference-search>.field {border-right:0}
 .home-search-hero .find-stay {grid-column:1/-1}
}
@media(max-width:650px) {
 .area-public .home-search-hero {padding:96px 0 22px}
 .area-public .home-search-hero .hero-copy {width:100%;padding-top:0;min-height:0}
 .home-search-hero .hero-copy p {font-size:13px;line-height:1.5}
 .home-search-hero .reference-search {margin:18px auto 0;gap:6px;padding:10px;border-radius:18px}
 .home-search-hero .reference-search>.field,.home-search-hero .guest-picker {padding:0 8px}
 .home-search-hero .trust-strip {margin-top:18px;gap:10px;padding:10px}
 .home-search-hero .trust-strip strong {font-size:12px}
 .home-search-hero .trust-strip small {font-size:10px}
}
@media(max-width:380px) {
 .home-search-hero .reference-search {grid-template-columns:minmax(0,1fr)}
 .home-search-hero .reference-search>.field,.home-search-hero .guest-picker {padding:0 6px}
 .home-search-hero .find-stay {grid-column:auto}
 .home-search-hero .trust-strip {gap:8px}
}

/* Staff home-screen tip (shown by app.js on phones only) */
.install-tip[hidden], .install-tip [hidden] { display: none !important; }
.install-tip { border-left: 4px solid var(--green); }

/* Homepage destination suggestions overlay the search bar without moving it. */
.home-search-hero .destination-autocomplete{position:relative;min-width:0}
.home-search-hero .destination-autocomplete>label{display:block}
.home-search-hero .destination-autocomplete>input{width:100%;min-width:0;text-overflow:ellipsis}
.destination-options{position:fixed;z-index:1000;box-sizing:border-box;max-width:calc(100vw - 24px);max-height:240px;overflow-y:auto;overscroll-behavior:contain;background:#fff;color:var(--ink,#172b36);border:1px solid #dbe3e0;border-radius:12px;box-shadow:0 8px 24px #0002;padding:5px;text-align:left}
.destination-options[hidden]{display:none}
.destination-options [role=option]{box-sizing:border-box;padding:10px 12px;min-height:44px;cursor:pointer;border-radius:7px;line-height:1.4;overflow-wrap:anywhere}
.destination-options [role=option]:hover,.destination-options [aria-selected=true]{background:#edf5f1;color:#143a2d;outline:2px solid #557d68;outline-offset:-2px}
.destination-options .destination-empty{padding:12px;font-size:13px;line-height:1.5}

/* Optional public analytics: no overlay until the visitor makes a consent choice. */
.analytics-consent{position:fixed;bottom:1rem;left:1rem;z-index:1000;width:min(420px,calc(100vw - 2rem));padding:1rem;background:white;color:#243138;border:1px solid #d5dedb;border-radius:12px;box-shadow:0 6px 28px #0002;font-size:14px}
.analytics-consent[hidden]{display:none}.analytics-consent p{margin:0 0 .6rem}.analytics-consent .btn{min-height:44px;margin-top:.6rem}.analytics-preferences{display:block;margin:.5rem auto;padding:.6rem;border:1px solid #d5dedb;border-radius:6px;background:white;color:#243138;min-height:44px}.analytics-preferences:focus-visible,.analytics-consent button:focus-visible{outline:3px solid #0f5e57;outline-offset:3px}

/* Staff/Admin quotation archive confirmation; scoped away from public dialogs. */
.quotation-archive-dialog { width:min(480px,calc(100vw - 32px));max-height:90dvh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:22px;box-shadow:0 16px 55px #0003; }
.quotation-archive-dialog::backdrop { background:#102b3280; }
.quotation-archive-dialog h2 { font-size:19px;overflow-wrap:anywhere; }
.quotation-archive-dialog .btn { min-height:44px; }

/* Full-height homepage banners with image navigation and desktop search overlay. */
.area-public:has(.home-hero-slider) .topbar { position:relative;background:#fff; }
.area-public .home-search-hero:has(.home-hero-slider) { padding:0 0 24px;background:#fff;color:var(--ink); }
.area-public .home-search-hero:has(.home-hero-slider):before,
.area-public .home-search-hero:has(.home-hero-slider):after { display:none; }
.home-hero-slider { width:100%;position:relative;background:#fff; }
.home-hero-slides { position:relative;aspect-ratio:2/1;overflow:hidden;background:#f8edda; }
.home-hero-slide { position:absolute;inset:0;opacity:0;transition:opacity .7s ease;pointer-events:none; }
.home-hero-slide.is-active { opacity:1; }
.home-hero-slide img { display:block;width:100%;height:100%;object-fit:contain;object-position:center top; }
.home-hero-controls { position:absolute;inset:0;display:flex;justify-content:space-between;align-items:center;padding:0 18px;pointer-events:none; }
.home-hero-controls button { width:46px;height:46px;min-height:44px;border:1px solid #d5dedb;border-radius:50%;background:#fffffff0;color:#142c24;font:600 22px/1 var(--font);cursor:pointer;padding:0;pointer-events:auto;box-shadow:0 3px 12px #0003; }
.home-hero-controls button:hover { background:var(--green-soft); }
.home-hero-controls button:focus-visible { outline:3px solid var(--cta-orange);outline-offset:2px; }
.home-hero-pause { position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
.home-hero-pause:focus-visible { width:auto;height:auto;min-height:44px;clip-path:none;overflow:visible;bottom:12px;right:18px;padding:8px 14px;border-radius:8px;background:#fff;color:var(--ink);outline:3px solid var(--cta-orange); }
.area-public .home-search-hero:has(.home-hero-slider) .hero-copy { width:100%;margin:8px auto 0;min-height:0;padding-top:0; }
.home-search-hero:has(.home-hero-slider) .hero-copy .eyebrow,
.home-search-hero:has(.home-hero-slider) .hero-copy p { display:none; }
.area-public .home-search-hero:has(.home-hero-slider) h1 { font-size:clamp(24px,3vw,38px);margin:8px 0 14px; }
.home-search-hero:has(.home-hero-slider) h1 em { display:inline;font-size:inherit; }
@media(min-width:1100px) {
 .area-public .home-search-hero:has(.home-hero-slider) { padding-bottom:0; }
 .home-search-hero:has(.home-hero-slider) > .wrap { position:absolute;z-index:2;left:50%;bottom:24px;transform:translateX(-50%);width:calc(100% - 72px);max-width:1200px;padding:0; }
 .area-public .home-search-hero:has(.home-hero-slider) h1 { color:#fff;text-shadow:0 2px 8px #0009; }
 .home-search-hero:has(.home-hero-slider) .reference-search { margin-top:12px; }
 .home-search-hero:has(.home-hero-slider) .trust-strip { margin-top:14px; }
}
@media(max-width:650px) { .home-hero-slides { height:auto;aspect-ratio:2/1; }.home-hero-slide img { object-fit:contain; }.home-hero-controls { padding:0 8px; }.home-hero-controls button { width:44px;height:44px;font-size:20px; }.home-search-hero:has(.home-hero-slider) .reference-search { margin-top:14px; } }
@media(prefers-reduced-motion:reduce) { .home-hero-slide { transition:none; } }

/* Calculated public comparison only; selling prices and totals remain unchanged. */
.comparison-rate { display:block;color:var(--muted);font-size:14px;font-weight:400;line-height:1.5;overflow-wrap:anywhere; }
.comparison-rate s { white-space:nowrap;text-decoration-color:#a94747;text-decoration-thickness:1.5px; }

/* Homepage recommendations share the existing carousel/card design. */
.recommended-properties [data-stay-track]:focus-visible { outline:3px solid var(--green);outline-offset:4px; }
.recommended-selected,.recommended-candidates { margin:0;padding:0;list-style:none; }
.recommended-selected { counter-reset:recommended; }
.recommended-selected>li,.recommended-candidates>li { display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);min-width:0; }
.recommended-selected>li::before { counter-increment:recommended;content:counter(recommended);color:var(--muted);font-weight:600; }
.recommended-property-name { flex:1;min-width:0;overflow-wrap:anywhere; }.recommended-property-name>span { display:block;margin-top:3px; }
.recommended-actions { display:flex;gap:6px;flex-wrap:wrap; }.recommended-manager button { min-height:44px; }.recommended-actions button { min-width:44px; }
.recommended-search { display:flex;align-items:end;gap:12px; }.recommended-search>.field { flex:1;min-width:0; }
@media(max-width:650px) { .recommended-selected>li { flex-wrap:wrap; }.recommended-actions { width:100%;padding-left:22px; }.recommended-search { flex-wrap:wrap; }.recommended-search>.field { flex-basis:100%; } }

/* About Go Sanchari: readable story, restrained brand accents and compact mobile spacing. */
.area-public .about-page { max-width:1000px;padding-top:38px;padding-bottom:54px; }
.about-heading { display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px; }
.about-heading h1 { margin:0;color:var(--green);font-size:clamp(28px,4vw,42px);line-height:1.2; }
.about-heading img { display:block;width:215px;max-width:38%;height:auto; }
.about-story { background:linear-gradient(145deg,var(--green-soft),var(--card) 32%);border:1px solid var(--line);border-radius:22px;padding:38px 44px;box-shadow:var(--shadow); }
.about-copy { max-width:760px;margin:0 auto; }
.about-copy .about-tagline { margin:0 0 26px;padding-bottom:22px;border-bottom:1px solid var(--line);font-size:clamp(24px,3.4vw,34px);line-height:1.35;color:var(--green);letter-spacing:-.025em; }
.about-copy p { margin:0 0 20px;font-size:17px;line-height:1.85;overflow-wrap:anywhere; }
.about-copy strong { font-weight:650;color:var(--green); }
.about-copy .about-motto { margin:28px 0 12px;padding-top:22px;border-top:1px solid var(--line);font-size:clamp(19px,2.5vw,24px);font-weight:650;color:var(--green);line-height:1.5; }
.about-copy .about-signoff { margin-bottom:0;font-size:17px; }
.about-contact { max-width:760px;margin:26px auto 0; }
@media(max-width:650px) { .area-public .about-page { padding:24px 16px 36px; }.about-heading { gap:16px;flex-wrap:wrap;margin-bottom:18px; }.about-heading img { width:172px;max-width:70%; }.about-story { padding:24px 20px;border-radius:16px; }.about-copy p { font-size:16px;line-height:1.75;margin-bottom:18px; }.about-copy .about-tagline { margin-bottom:22px;padding-bottom:18px; }.about-contact .btn { min-height:44px; } }

/* Two balanced amenity columns on public property/room pages, including phone previews. */
.area-public .amenity-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(var(--amenity-rows),auto);grid-auto-flow:column;gap:7px 18px;list-style:none;margin:10px 0 0;padding:0;clear:both; }
.area-public .amenity-list li { display:flex;align-items:flex-start;gap:6px;break-inside:avoid;page-break-inside:avoid;min-width:0;margin:0;font-size:13px;line-height:1.45; }
.area-public .amenity-icon { flex:0 0 18px;text-align:center;color:var(--green); }
.area-public .amenity-label { min-width:0;overflow-wrap:anywhere; }
@media(max-width:650px) { .area-public .amenity-list { column-gap:12px; }.area-public .amenity-list li { font-size:12px;gap:4px; }.area-public .amenity-icon { flex-basis:16px; } }
