:root {
    --system-primary: #173c34;
    --system-secondary: #0f2d27;
    --system-accent: #d9ed8b;
    --ink: #18231f;
    --muted: #66736e;
    --forest: var(--system-primary);
    --forest-deep: var(--system-secondary);
    --mint: #dceee7;
    --lime: var(--system-accent);
    --cream: #f6f3ea;
    --paper: #fffefa;
    --line: #dfe5e1;
    --danger: #b33b31;
    --shadow: 0 24px 70px rgba(22, 54, 47, .13);
    --dashboard-bg: #f4f5f1;
    --surface: #ffffff;
    --surface-soft: #fbfcfa;
    --surface-tint: #eef4ef;
    --surface-translucent: rgba(255, 255, 255, .65);
    --card-line: #e1e5e1;
    --row-line: #edf0ee;
    --sidebar-muted: #b9cbc5;
    --sidebar-label: #6f8d84;
    --setup-border: #cddfd4;
    --setup-start: #f3fae8;
    --setup-end: #e6f2ec;
    --card-shadow: 0 8px 22px rgba(33, 53, 46, .035);
    color-scheme: light;
}

html[data-color-theme="forest"] { --forest: #173c34; --forest-deep: #0f2d27; --mint: #dceee7; --lime: #d9ed8b; }
html[data-color-theme="ocean"] { --forest: #17476a; --forest-deep: #0b304c; --mint: #dceef7; --lime: #a8dcf2; }
html[data-color-theme="violet"] { --forest: #49306f; --forest-deep: #321f52; --mint: #eee5fa; --lime: #d9c2ff; }
html[data-color-theme="sunset"] { --forest: #77382b; --forest-deep: #56251b; --mint: #f8e5da; --lime: #ffc58d; }

html[data-color-mode="dark"] {
    --ink: #e8efec;
    --muted: #9caea7;
    --cream: #101512;
    --paper: #161d1a;
    --line: #2b3833;
    --dashboard-bg: #101512;
    --surface: #19221e;
    --surface-soft: #151c19;
    --surface-tint: #1d2924;
    --surface-translucent: rgba(25, 34, 30, .84);
    --card-line: #2b3933;
    --row-line: #26332e;
    --sidebar-muted: #adc0b9;
    --sidebar-label: #80978e;
    --setup-border: #34493f;
    --setup-start: #202d23;
    --setup-end: #1c2b27;
    --card-shadow: 0 12px 28px rgba(0, 0, 0, .18);
    --shadow: 0 24px 70px rgba(0, 0, 0, .3);
    color-scheme: dark;
}

html[data-color-mode="dark"][data-color-theme="forest"] { --forest: #347563; --forest-deep: #286253; --mint: #233b34; --lime: #c4df7b; }
html[data-color-mode="dark"][data-color-theme="ocean"] { --forest: #2d719c; --forest-deep: #235e83; --mint: #203744; --lime: #9fd9ef; }
html[data-color-mode="dark"][data-color-theme="violet"] { --forest: #7352a1; --forest-deep: #60428c; --mint: #342a42; --lime: #d4bdf7; }
html[data-color-mode="dark"][data-color-theme="sunset"] { --forest: #a6513b; --forest-deep: #8d402e; --mint: #432e28; --lime: #f4b77e; }

* { box-sizing: border-box; }
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: page-fade-out .16s ease both; }
::view-transition-new(root) { animation: page-rise-in .3s ease both; }
@keyframes page-fade-out { to { opacity: 0; transform: translateY(-5px); } }
@keyframes page-rise-in { from { opacity: 0; transform: translateY(10px); } }
@media (prefers-reduced-motion: reduce) {
    ::view-transition-old(root), ::view-transition-new(root), .availability-page { animation-duration: .01ms; }
}
html { font-family: "DM Sans", sans-serif; color: var(--ink); background: var(--cream); }
body { margin: 0; min-height: 100vh; transition: color .2s ease, background-color .2s ease; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
.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; }
.brand { display: inline-flex; align-items: center; gap: .72rem; font-family: Manrope, sans-serif; font-weight: 800; font-size: 1.15rem; text-decoration: none; letter-spacing: -.03em; }
.brand-mark { display: grid; place-items: center; width: 3.25rem; height: 2.35rem; padding: .18rem .25rem; overflow: hidden; border: 1px solid rgba(23, 60, 52, .1); border-radius: 11px; background: #f6f3ea; }
.brand-mark img { display: block; width: 100%; height: 100%; object-fit: contain; }
.brand-name { white-space: nowrap; }
.brand-light { color: white; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: .75rem; min-height: 3.35rem; padding: .85rem 1.25rem; border: 1px solid transparent; border-radius: 12px; font-weight: 700; text-decoration: none; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { color: white; background: var(--forest); box-shadow: 0 10px 24px rgba(23, 60, 52, .17); }
.button-primary:hover { background: var(--forest-deep); box-shadow: 0 14px 30px rgba(23, 60, 52, .23); }
.button-android { border-color: color-mix(in srgb, #3ddc84 68%, var(--forest)); color: #102c22; background: #3ddc84; box-shadow: 0 10px 24px rgba(27, 128, 72, .2); }
.button-android:hover { background: #55e596; box-shadow: 0 14px 30px rgba(27, 128, 72, .28); }
.button-small { min-height: 2.65rem; padding: .6rem 1rem; border-radius: 10px; font-size: .9rem; }
.button-ghost { border-color: var(--line); background: rgba(255,255,255,.5); }
.button-full { width: 100%; margin-top: .35rem; }
.landing-shell { min-height: 100vh; padding: 0 clamp(1.25rem, 5vw, 5rem); overflow: hidden; background: radial-gradient(circle at 85% 24%, #e5f0d3 0, transparent 28%), var(--cream); }
.landing-nav { width: min(1220px, 100%); margin: auto; min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid rgba(23,60,52,.12); }
.nav-actions { display: flex; gap: .65rem; }
.hero { width: min(1220px, 100%); min-height: calc(100vh - 89px); margin: auto; display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem, 7vw, 7rem); align-items: center; padding: 4.5rem 0 6rem; }
.eyebrow, .form-kicker { display: block; color: #527268; font-size: .73rem; font-weight: 800; text-transform: uppercase; letter-spacing: .16em; }
.hero h1 { max-width: 680px; margin: 1rem 0 1.4rem; font-family: Manrope, sans-serif; font-size: clamp(3.4rem, 6vw, 6.3rem); line-height: .98; letter-spacing: -.065em; }
.hero h1 em { color: #527b6e; font-style: normal; }
.hero-copy > p { max-width: 590px; margin: 0; color: var(--muted); font-size: clamp(1rem, 1.35vw, 1.17rem); line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.1rem 1.35rem; margin-top: 2.1rem; }
.text-link { color: var(--forest); font-weight: 700; text-underline-offset: 4px; }
.service-list { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 3rem; }
.service-list a { padding: .5rem .78rem; border: 1px solid #d7ded6; border-radius: 99px; color: #53625d; background: rgba(255,255,255,.45); font-size: .76rem; font-weight: 700; text-decoration: none; transition: border-color .18s ease, color .18s ease, background .18s ease, transform .18s ease; }
.service-list a:hover { border-color: var(--forest); color: var(--forest); transform: translateY(-1px); }
.service-list a.active { border-color: var(--forest); color: white; background: var(--forest); box-shadow: 0 8px 20px rgba(23, 60, 52, .16); }
.hero-visual { position: relative; }
.calendar-card { position: relative; padding: 1.7rem; border: 1px solid rgba(255,255,255,.8); border-radius: 25px; background: rgba(255,255,255,.82); box-shadow: var(--shadow); backdrop-filter: blur(12px); }
.availability-filter { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto; align-items: end; gap: .6rem; padding: .75rem; margin-bottom: .35rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); }
.availability-filter > span { align-self: center; margin-top: 1rem; color: var(--muted); font-weight: 800; }
.availability-field { display: grid; gap: .28rem; min-width: 0; }
.availability-field label { color: var(--muted); font-size: .6rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.availability-field input { min-width: 0; width: 100%; padding: .56rem .6rem; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: var(--surface); font-size: .72rem; }
.calendar-range-help { margin: 0 0 .7rem; color: var(--muted); font-size: .64rem; line-height: 1.4; }
.calendar-card-head { display: flex; justify-content: space-between; align-items: center; padding-bottom: 1.2rem; }
.calendar-card-head div { display: grid; gap: .25rem; }
.calendar-card-head small, .booking-chip small, .floating-stat small { color: var(--muted); font-size: .7rem; }
.calendar-card-head strong { font-family: Manrope; font-size: 1.1rem; }
.calendar-arrows { display: flex; gap: .35rem; color: #789087; font-size: 1.25rem; }
.calendar-arrows a { display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid #dfe6e2; border-radius: 50%; color: inherit; text-decoration: none; }
.calendar-arrows a:hover { color: var(--forest); background: #eef5e5; }
.week-row, .calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; }
.week-row span { padding: .65rem 0; color: #89938f; font-size: .58rem; font-weight: 800; }
.calendar-grid > a { position: relative; display: grid; place-items: center; aspect-ratio: 1; border-top: 1px solid #edf0ed; color: #40504b; font-size: .75rem; text-decoration: none; }
.calendar-grid > a:hover { background: #f0f5f2; }
.calendar-grid > a.outside-month { color: #b8bfbc; }
.calendar-grid > a.in-range { background: color-mix(in srgb, var(--mint) 68%, transparent); }
.calendar-grid > a.range-edge > span { display: grid; place-items: center; width: 70%; aspect-ratio: 1; border-radius: 50%; color: white; background: var(--forest); }
.calendar-grid > a.has-bookings > small { position: absolute; right: 10%; top: 10%; min-width: 1rem; padding: .08rem .2rem; border-radius: 99px; color: var(--forest); background: var(--lime); font-size: .48rem; font-weight: 900; }
.availability-results { scroll-margin-top: 1rem; }
.calendar-list-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-top: 1rem; }
.calendar-list-heading small { color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.calendar-list-heading strong { font: 800 .78rem Manrope, sans-serif; }
.booking-chip { display: flex; align-items: center; gap: .85rem; margin-top: .8rem; padding: .85rem 1rem; border-radius: 13px; }
.booking-chip div { display: grid; gap: .22rem; min-width: 0; }
.booking-chip strong { font-size: .78rem; }
.booking-chip > span:last-child { margin-left: auto; font-weight: 800; }
.booking-chip { color: var(--ink); text-decoration: none; }
.availability-listing { border: 1px solid transparent; transition: border-color .18s ease, transform .18s ease; }
.availability-listing:hover { border-color: color-mix(in srgb, var(--forest) 25%, transparent); transform: translateY(-1px); }
.availability-listing .listing-icon { display: grid; flex: 0 0 auto; place-items: center; width: 2.5rem; height: 2.5rem; border: 1px solid rgba(255,255,255,.72); border-radius: 12px; background: rgba(255,255,255,.66); box-shadow: 0 4px 12px rgba(23,60,52,.06); }
.availability-listing .listing-icon > i { display: block; width: auto; height: auto; margin: 0; border-radius: 0; background: transparent; font-size: 1.12rem; line-height: 1; }
.listing-review { overflow: hidden; color: var(--muted); font-size: .64rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.availability-listing small b { color: #8b6a13; }
.chip-car { background: #eef5e5; }.chip-car .listing-icon { color: #617d26; }
.chip-condo { background: #e7f0ef; }.chip-condo .listing-icon { color: #2f6f64; }
.chip-service { background: #f2edf8; }.chip-service .listing-icon { color: #705293; }
.calendar-list-empty { margin-top: .8rem; padding: 1rem; border-radius: 13px; color: var(--muted); background: #f3f5f4; font-size: .75rem; text-align: center; }
.see-all-available { display: flex; align-items: center; justify-content: center; gap: .45rem; margin-top: .85rem; padding: .72rem; border: 1px dashed color-mix(in srgb, var(--forest) 34%, transparent); border-radius: 11px; color: var(--forest); font-size: .72rem; font-weight: 800; text-decoration: none; }
.see-all-available:hover { border-style: solid; background: var(--mint); }
.floating-stat { position: absolute; right: -2.4rem; bottom: -2rem; display: flex; align-items: center; gap: .8rem; padding: 1rem 1.2rem; border-radius: 16px; background: var(--forest); color: white; box-shadow: 0 18px 38px rgba(23,60,52,.28); }
.floating-stat > span { display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; color: var(--forest); background: var(--lime); font-weight: 800; }
.floating-stat div { display: grid; gap: .15rem; }.floating-stat small { color: #bad0c9; }.floating-stat strong { font-size: .78rem; }
.flash-message { width: min(1220px, 100%); margin: 1rem auto 0; padding: .9rem 1rem; border: 1px solid #b9d8c9; border-radius: 12px; color: #245a47; background: #e4f3ea; font-weight: 600; font-size: .9rem; }

.availability-page-body { background: radial-gradient(circle at 10% 8%, color-mix(in srgb, var(--mint) 60%, transparent), transparent 25%), var(--cream); }
.availability-page-nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: min(1220px, calc(100% - 2.5rem)); min-height: 82px; margin: auto; border-bottom: 1px solid var(--line); }
.availability-back-link { color: var(--forest); font-size: .78rem; font-weight: 800; text-underline-offset: 4px; }
.availability-page { width: min(1220px, calc(100% - 2.5rem)); min-height: calc(100vh - 82px); margin: auto; padding: 1rem 0 5rem; animation: page-rise-in .3s ease both; }
.availability-sticky-filter { position: sticky; z-index: 20; top: 1rem; display: grid; grid-template-columns: minmax(185px, 1.15fr) minmax(125px, .72fr) minmax(125px, .72fr) minmax(135px, .78fr) minmax(145px, .88fr) auto; align-items: end; gap: .7rem; padding: .9rem; border: 1px solid rgba(255,255,255,.78); border-radius: 18px; background: color-mix(in srgb, var(--surface) 88%, transparent); box-shadow: 0 18px 46px rgba(20, 47, 40, .16); backdrop-filter: blur(18px) saturate(130%); }
.availability-filter-title { display: flex; align-items: center; gap: .7rem; align-self: center; min-width: 0; }
.availability-filter-title > span { display: grid; place-items: center; flex: 0 0 auto; width: 2.45rem; height: 2.45rem; border-radius: 11px; color: var(--forest); background: var(--lime); font-size: 1rem; font-weight: 900; }
.availability-filter-title > div { display: grid; gap: .12rem; min-width: 0; }
.availability-filter-title small { color: var(--muted); font-size: .55rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.availability-filter-title strong { overflow: hidden; font: 800 .72rem Manrope; text-overflow: ellipsis; white-space: nowrap; }
.availability-sticky-filter .availability-field input, .availability-sticky-filter .availability-field select { min-height: 2.55rem; width: 100%; padding: .55rem .62rem; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: var(--surface); font-size: .68rem; }
.availability-sticky-filter .button { min-height: 2.55rem; white-space: nowrap; }
.availability-page-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: clamp(2.4rem, 6vw, 4.5rem) .2rem 1.5rem; }
.availability-page-heading h1 { margin: .55rem 0 .35rem; font: 800 clamp(2rem, 4vw, 3.5rem) Manrope; letter-spacing: -.055em; }
.availability-page-heading p { margin: 0; color: var(--muted); font-size: .82rem; }
.availability-sort-note { padding: .48rem .7rem; border: 1px solid var(--line); border-radius: 99px; color: var(--muted); background: var(--surface-translucent); font-size: .63rem; font-weight: 800; }
.listing-view-heading-actions, .catalog-heading-actions { display: flex; align-items: center; justify-content: flex-end; gap: .65rem; }
.listing-view-toggle { display: inline-grid; grid-template-columns: 1fr 1fr; gap: .2rem; padding: .25rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); box-shadow: 0 4px 14px rgba(20, 47, 40, .06); }
.listing-view-toggle button { display: inline-flex; align-items: center; justify-content: center; gap: .38rem; min-width: 5.4rem; min-height: 2.35rem; padding: .48rem .72rem; border: 0; border-radius: 9px; color: var(--muted); background: transparent; font: 800 .65rem Manrope; cursor: pointer; transition: color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease; }
.listing-view-toggle button:hover { color: var(--forest); }
.listing-view-toggle button[aria-pressed="true"] { color: white; background: var(--forest); box-shadow: 0 5px 13px rgba(23, 60, 52, .2); }
.listing-view-toggle button:focus-visible { outline: 3px solid color-mix(in srgb, var(--lime) 80%, transparent); outline-offset: 2px; }
.listing-results-map-panel { padding: clamp(.85rem, 2vw, 1.25rem); overflow: hidden; border: 1px solid var(--card-line); border-radius: 18px; background: var(--surface); box-shadow: var(--card-shadow); }
.booking-results .listing-results-map-panel, .client-catalog .listing-results-map-panel { margin-top: 1rem; }
.listing-results-map-panel[hidden], [data-listing-grid-panel][hidden] { display: none !important; }
.listing-map-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.listing-map-heading h2, .listing-map-heading h3 { margin: .3rem 0 .18rem; font: 800 clamp(1.05rem, 2vw, 1.35rem) Manrope; letter-spacing: -.025em; }
.listing-map-heading p { margin: 0; color: var(--muted); font-size: .68rem; }
.listing-results-map-panel .booking-discovery-map { min-height: min(620px, 68vh); }
.catalog-heading-actions > span { display: grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: 50%; color: var(--forest); background: var(--lime); font-size: .65rem; font-weight: 900; }
.available-unit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.available-unit-card { min-width: 0; overflow: hidden; border: 1px solid var(--card-line); border-radius: 18px; background: var(--surface); box-shadow: var(--card-shadow); transition: transform .2s ease, box-shadow .2s ease; }
.available-unit-card:hover { box-shadow: 0 18px 40px rgba(24, 53, 45, .11); transform: translateY(-3px); }
.available-unit-photo { position: relative; display: grid; place-items: center; height: 220px; overflow: hidden; color: var(--ink); background: var(--surface-tint); text-decoration: none; }
.available-unit-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.available-unit-card:hover .available-unit-photo img { transform: scale(1.025); }
.available-unit-photo > span { font-size: 3rem; }
.available-unit-photo > small { position: absolute; top: .75rem; right: .75rem; padding: .36rem .55rem; border-radius: 99px; color: #28644f; background: rgba(230, 247, 238, .94); font-size: .55rem; font-weight: 900; }
.available-unit-copy { padding: 1rem; }
.available-unit-meta { display: flex; align-items: center; justify-content: space-between; gap: .7rem; color: var(--muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.available-unit-meta strong { color: #8b6a13; font-size: .62rem; }.available-unit-meta strong small { color: var(--muted); }
.available-unit-copy h2 { margin: .45rem 0 .22rem; font: 800 1rem Manrope; letter-spacing: -.025em; }.available-unit-copy h2 a { text-decoration: none; }.available-unit-copy h2 a:hover { color: var(--forest); }
.available-unit-location { margin: 0; color: var(--muted); font-size: .64rem; }
.available-unit-review { min-height: 2.7rem; margin: .75rem 0 0; color: var(--muted); font-size: .65rem; font-style: italic; line-height: 1.5; }
.available-unit-footer { display: flex; align-items: end; justify-content: space-between; gap: .7rem; padding-top: .8rem; margin-top: .8rem; border-top: 1px solid var(--row-line); }
.available-unit-footer > span { display: grid; gap: .12rem; }.available-unit-footer small { color: var(--muted); font-size: .54rem; }.available-unit-footer strong { font: 800 .82rem Manrope; }
.available-unit-footer > a { color: var(--forest); font-size: .64rem; font-weight: 800; }
.availability-page-empty { grid-column: 1 / -1; display: grid; justify-items: center; padding: 4rem 1rem; border: 1px dashed var(--card-line); border-radius: 18px; color: var(--muted); background: var(--surface-translucent); text-align: center; }
.availability-page-empty > span { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; color: var(--forest); background: var(--mint); font-size: 1.2rem; }.availability-page-empty h2 { margin: 1rem 0 .35rem; color: var(--ink); font: 800 1.2rem Manrope; }.availability-page-empty p { margin: 0 0 1.2rem; font-size: .72rem; }

.pwa-install-banner { position: fixed; z-index: 1000; right: 1rem; bottom: 1rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: .85rem; width: min(560px, calc(100vw - 2rem)); padding: .8rem; border: 1px solid var(--card-line); border-radius: 16px; color: var(--ink); background: var(--surface); box-shadow: 0 20px 55px rgba(14, 38, 31, .24); }
.pwa-install-banner[hidden], .connectivity-status[hidden] { display: none; }
.pwa-install-icon { display: grid; place-items: center; width: 3.1rem; height: 3.1rem; overflow: hidden; border-radius: 12px; background: #173c34; }
.pwa-install-icon img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pwa-install-copy { min-width: 0; }
.pwa-install-copy strong { display: block; font: 800 .82rem Manrope, sans-serif; }
.pwa-install-copy p { margin: .18rem 0 0; color: var(--muted); font-size: .68rem; line-height: 1.4; }
.pwa-install-dismiss { align-self: start; width: 1.8rem; height: 1.8rem; padding: 0; border: 0; border-radius: 50%; color: var(--muted); background: transparent; font-size: 1.3rem; line-height: 1; cursor: pointer; }
.pwa-install-dismiss:hover { color: var(--ink); background: var(--surface-tint); }
.connectivity-status { position: fixed; z-index: 1001; left: 50%; bottom: 1rem; padding: .65rem .9rem; border-radius: 99px; color: white; background: #173c34; box-shadow: 0 10px 30px rgba(14, 38, 31, .25); font-size: .72rem; font-weight: 800; transform: translateX(-50%); }
.connectivity-status.is-offline { background: #8a3c32; }

@media (display-mode: standalone), (display-mode: window-controls-overlay) {
    .pwa-install-banner { display: none; }
}

@media (max-width: 620px) {
    .pwa-install-banner { grid-template-columns: auto minmax(0, 1fr) auto; }
    .pwa-install-banner .button { grid-column: 1 / -1; width: 100%; }
    .pwa-install-dismiss { grid-column: 3; grid-row: 1; }
}

.auth-body { background: var(--paper); }
.auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(330px, .8fr) minmax(520px, 1.2fr); }
.auth-brand-panel { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 100vh; padding: clamp(2rem, 4vw, 4rem); color: white; overflow: hidden; background: var(--forest); }
.auth-brand-panel::before, .auth-brand-panel::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.auth-brand-panel::before { width: 430px; height: 430px; right: -245px; top: 12%; border: 1px solid rgba(217,237,139,.22); box-shadow: 0 0 0 65px rgba(217,237,139,.035), 0 0 0 130px rgba(217,237,139,.025); }
.auth-brand-panel::after { width: 230px; height: 230px; left: -130px; bottom: -80px; background: rgba(217,237,139,.08); }
.auth-register-panel { background: #244c42; }
.auth-panel-copy { position: relative; z-index: 1; max-width: 510px; }
.eyebrow-light { color: var(--lime); }
.auth-panel-copy h1 { margin: .9rem 0 1.2rem; font: 800 clamp(2.4rem, 4.3vw, 4.8rem)/1.02 Manrope, sans-serif; letter-spacing: -.055em; }
.auth-panel-copy p { max-width: 460px; color: #bed0ca; line-height: 1.7; }
.auth-panel-note { position: relative; z-index: 1; margin: 0; color: #91aaa2; font-size: .82rem; }
.auth-form-panel { display: grid; place-items: center; padding: 3rem clamp(1.5rem, 7vw, 7rem); }
.auth-form-wrap { width: min(510px, 100%); }
.mobile-brand { display: none; margin-bottom: 2.8rem; }
.form-heading { margin-bottom: 2rem; }
.form-heading h2 { margin: .65rem 0 .5rem; font: 800 clamp(2rem, 3vw, 2.7rem)/1.1 Manrope, sans-serif; letter-spacing: -.045em; }
.form-heading p { margin: 0; color: var(--muted); line-height: 1.6; }
.auth-form { display: grid; gap: 1.15rem; }
.social-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-bottom: 1.2rem; }
.social-button { display: flex; align-items: center; justify-content: center; gap: .65rem; width: 100%; min-height: 3.35rem; padding: .8rem 1rem; border: 1px solid #ccd5d1; border-radius: 11px; color: #26342f; background: white; box-shadow: 0 4px 14px rgba(25,45,38,.04); font-size: .88rem; font-weight: 700; text-decoration: none; transition: border-color .18s, box-shadow .18s, transform .18s; }
.social-button:hover { border-color: #9cafaa; box-shadow: 0 8px 22px rgba(25,45,38,.08); transform: translateY(-1px); }
.social-button svg { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; }
.facebook-button { border-color: #c9d7ec; color: #1769d2; background: #f8fbff; }
.auth-divider { display: flex; align-items: center; gap: .8rem; margin: 0 0 1.2rem; color: #8b9692; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }
.auth-divider::before, .auth-divider::after { content: ""; flex: 1; height: 1px; background: #e1e6e3; }
.auth-divider span { white-space: nowrap; }
.oauth-error { margin-bottom: 1rem; padding: .8rem .9rem; border: 1px solid #efc5c1; border-radius: 10px; color: #8f3028; background: #fff1f0; font-size: .8rem; line-height: 1.5; }
.field-group { display: grid; align-content: start; min-width: 0; gap: .5rem; }
.field-group label { color: #35443f; font-size: .83rem; font-weight: 700; }
.field-group input, .field-group select, .field-group textarea { width: 100%; min-height: 3.35rem; padding: .8rem 1rem; border: 1px solid #d4ddd9; border-radius: 11px; outline: none; color: var(--ink); background: #fbfcfa; transition: border .18s, box-shadow .18s; }
.field-group textarea { min-height: 7rem; resize: vertical; line-height: 1.5; }
.field-group input::placeholder { color: #a1aaa6; }
.field-group input:focus, .field-group select:focus, .field-group textarea:focus { border-color: #4d7c6f; box-shadow: 0 0 0 4px rgba(77,124,111,.1); background: white; }
.field-group input.field-error { border-color: #c76860; }
.password-input-shell { position: relative; }.password-input-shell > input { padding-right: 3.25rem; }.password-visibility-toggle { position: absolute; top: 50%; right: .55rem; display: grid; place-items: center; width: 2.3rem; height: 2.3rem; padding: 0; border: 0; border-radius: 9px; color: var(--muted); background: transparent; cursor: pointer; transform: translateY(-50%); transition: color .16s, background .16s; }.password-visibility-toggle:hover, .password-visibility-toggle:focus-visible { color: var(--forest); background: var(--mint); outline: none; }.password-visibility-toggle i { font-size: .88rem; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
.error-text { margin: 0; color: var(--danger); font-size: .78rem; }
.error-after-row { margin-top: -.75rem; }
.password-hint { margin: -.5rem 0 .15rem; color: #7f8a85; font-size: .74rem; }
.field-label-row { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.field-label-row a, .account-recovery-note a { color: var(--forest); font-size: .74rem; font-weight: 800; text-underline-offset: 3px; }
.account-recovery-note { margin: 1rem 0 0; color: var(--muted); font-size: .74rem; line-height: 1.55; text-align: center; }
.check-row { display: inline-flex; align-items: center; gap: .65rem; width: max-content; color: #5b6863; font-size: .82rem; cursor: pointer; }
.check-row input { width: 1rem; height: 1rem; accent-color: var(--forest); }
.form-footer { margin: 1.75rem 0 0; text-align: center; color: var(--muted); font-size: .87rem; }
.form-footer a { color: var(--forest); font-weight: 800; text-underline-offset: 3px; }

.dashboard-body { overflow-x: hidden; background: var(--dashboard-bg); }
.dashboard-shell { min-width: 0; min-height: 100vh; display: grid; grid-template-columns: 245px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 1.7rem 1.25rem; color: white; background: var(--forest); }
.sidebar-toggle, .sidebar-scrim { display: none; }
.sidebar-panel { display: flex; min-width: 0; min-height: 0; width: 100%; flex: 1 1 auto; flex-direction: column; overflow: hidden; }
.sidebar-nav { display: grid; min-height: 0; gap: .35rem; margin-top: 3rem; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: rgba(255,255,255,.3) transparent; scrollbar-width: thin; -webkit-overflow-scrolling: touch; touch-action: pan-y; }
.sidebar-nav::-webkit-scrollbar { width: 5px; }
.sidebar-nav::-webkit-scrollbar-thumb { border-radius: 99px; background: rgba(255,255,255,.3); }
.sidebar-nav a, .sidebar-logout button { display: flex; align-items: center; gap: .8rem; width: 100%; padding: .75rem .85rem; border: 0; border-radius: 9px; color: var(--sidebar-muted); background: transparent; font-size: .86rem; text-decoration: none; text-align: left; }
.sidebar-nav-icon { flex: 0 0 1.1rem; width: 1.1rem; color: inherit; font-size: .88rem; line-height: 1; text-align: center; }
.sidebar-nav a.active { color: var(--forest); background: var(--lime); font-weight: 800; }
.sidebar-nav a.disabled { cursor: default; opacity: .65; }
.sidebar-label { margin: 1.2rem .85rem .4rem; color: var(--sidebar-label); font-size: .62rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.sidebar-logout { margin-top: auto; }.sidebar-logout button { cursor: pointer; }.sidebar-logout button:hover { color: white; background: rgba(255,255,255,.07); }
.dashboard-main { width: 100%; min-width: 0; max-width: 100%; padding: 2.5rem clamp(1.5rem, 4vw, 4.5rem); overflow-x: clip; }
.dashboard-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.dashboard-header h1 { margin: .4rem 0 0; font: 800 clamp(1.8rem, 3vw, 2.7rem) Manrope; letter-spacing: -.045em; }
.profile-menu { position: relative; z-index: 20; }
.profile-menu > summary { list-style: none; }
.profile-menu > summary::-webkit-details-marker { display: none; }
.user-badge { display: flex; align-items: center; gap: .7rem; min-height: 3.35rem; padding: .35rem .5rem .35rem .35rem; border: 1px solid transparent; border-radius: 14px; cursor: pointer; user-select: none; transition: background .18s ease, border-color .18s ease, box-shadow .18s ease; }
.user-badge:hover, .profile-menu[open] .user-badge { border-color: var(--card-line); background: var(--surface); box-shadow: var(--card-shadow); }
.user-badge > span:first-child, .user-badge > img { display: grid; place-items: center; flex: 0 0 auto; width: 2.65rem; height: 2.65rem; border-radius: 50%; color: white; background: var(--forest); font-weight: 800; }
.user-badge > img { object-fit: cover; }
.user-badge-copy { display: grid; min-width: 0; gap: .1rem; }
.user-badge strong { max-width: 180px; overflow: hidden; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.user-badge small { max-width: 190px; overflow: hidden; color: var(--muted); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.profile-verification-warning { position: relative; display: grid; place-items: center; width: 1.45rem; height: 1.45rem; flex: 0 0 auto; border: 2px solid var(--surface); border-radius: 50%; color: #68490e; background: #f2c65d; box-shadow: 0 0 0 1px #c7963a, 0 3px 8px rgba(93, 65, 13, .18); font-size: .68rem; font-weight: 900; cursor: help; }
.profile-verification-warning::after { content: attr(data-tooltip); position: absolute; z-index: 50; top: calc(100% + .7rem); right: -2rem; width: min(290px, calc(100vw - 2rem)); padding: .7rem .8rem; border: 1px solid #d9b45b; border-radius: 9px; color: #5f491d; background: #fff7df; box-shadow: 0 12px 30px rgba(43, 34, 14, .16); font-size: .62rem; font-weight: 700; line-height: 1.45; text-align: left; pointer-events: none; opacity: 0; transform: translateY(-4px); transition: opacity .15s ease, transform .15s ease; }
.profile-verification-warning:hover::after, .profile-verification-warning:focus-visible::after { opacity: 1; transform: translateY(0); }
.profile-verification-warning:focus-visible { outline: 3px solid color-mix(in srgb, #c7963a 30%, transparent); outline-offset: 2px; }
.user-badge .profile-chevron { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; margin-left: .1rem; border-radius: 50%; color: var(--muted); background: transparent; font-size: 1rem; transition: transform .18s ease, background .18s ease; }
.profile-menu[open] .profile-chevron { transform: rotate(180deg); }
.profile-popover { position: absolute; top: calc(100% + .65rem); right: 0; width: min(355px, calc(100vw - 2rem)); padding: 1.15rem; border: 1px solid var(--card-line); border-radius: 18px; color: var(--ink); background: var(--surface); box-shadow: 0 24px 64px rgba(14, 32, 26, .18); }
.profile-popover::before { content: ""; position: absolute; top: -6px; right: 1.55rem; width: 10px; height: 10px; border-top: 1px solid var(--card-line); border-left: 1px solid var(--card-line); background: var(--surface); transform: rotate(45deg); }
.profile-heading { display: grid; gap: .18rem; padding: .15rem .15rem .25rem; }
.profile-heading strong { margin-top: .15rem; font: 800 1rem Manrope, sans-serif; }
.profile-heading small { overflow: hidden; color: var(--muted); font-size: .74rem; text-overflow: ellipsis; white-space: nowrap; }
.profile-label { color: var(--forest); font-size: .61rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.profile-divider { height: 1px; margin: .9rem -.15rem 1rem; background: var(--row-line); }
.appearance-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.appearance-heading h2 { margin: .22rem 0 0; font: 800 1rem Manrope, sans-serif; letter-spacing: -.025em; }
.appearance-icon { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 9px; color: var(--forest); background: var(--lime); font-size: .75rem; }
.appearance-switch { display: flex; align-items: center; gap: .8rem; margin-top: 1rem; padding: .85rem; border: 1px solid var(--card-line); border-radius: 12px; background: var(--surface-soft); cursor: pointer; }
.appearance-switch > span:first-child { display: grid; flex: 1; gap: .18rem; }
.appearance-switch strong { font-size: .8rem; }
.appearance-switch small { color: var(--muted); font-size: .66rem; line-height: 1.35; }
.appearance-switch input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.switch-track { position: relative; flex: 0 0 auto; width: 2.55rem; height: 1.45rem; border-radius: 99px; background: #c8d1cd; transition: background .18s ease; }
.switch-track span { position: absolute; top: 3px; left: 3px; width: calc(1.45rem - 6px); height: calc(1.45rem - 6px); border-radius: 50%; background: white; box-shadow: 0 2px 6px rgba(0, 0, 0, .2); transition: transform .18s ease; }
.appearance-switch input:checked + .switch-track { background: var(--forest); }
.appearance-switch input:checked + .switch-track span { transform: translateX(1.1rem); }
.appearance-switch input:focus-visible + .switch-track { outline: 3px solid color-mix(in srgb, var(--forest) 25%, transparent); outline-offset: 2px; }
.theme-picker { min-width: 0; padding: 0; margin: 1rem 0 0; border: 0; }
.theme-picker legend { margin-bottom: .55rem; color: var(--muted); font-size: .66rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.theme-options { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.theme-option { display: grid; grid-template-columns: 1.15rem 1fr 1rem; align-items: center; gap: .5rem; min-height: 2.5rem; padding: .55rem .65rem; border: 1px solid var(--card-line); border-radius: 10px; color: var(--ink); background: var(--surface); font-size: .72rem; font-weight: 700; text-align: left; cursor: pointer; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.theme-option:hover { transform: translateY(-1px); background: var(--surface-soft); }
.theme-option[aria-pressed="true"] { border-color: var(--forest); background: var(--mint); }
.theme-option:focus-visible { outline: 3px solid color-mix(in srgb, var(--forest) 22%, transparent); outline-offset: 1px; }
.theme-swatch { width: 1.05rem; height: 1.05rem; border: 3px solid white; border-radius: 50%; box-shadow: 0 0 0 1px rgba(26, 38, 33, .2); }
.theme-option-system { grid-column: 1 / -1; }
.theme-swatch-system { background: linear-gradient(135deg, var(--system-primary) 0 55%, var(--system-accent) 55% 100%); }.theme-swatch-forest { background: #286153; }.theme-swatch-ocean { background: #2877a7; }.theme-swatch-violet { background: #7350a3; }.theme-swatch-sunset { background: #b55d42; }
.theme-check { color: var(--forest); opacity: 0; font-weight: 900; }
.theme-option[aria-pressed="true"] .theme-check { opacity: 1; }
.flash-dashboard { margin: 1.5rem 0 0; }
.empty-dashboard { margin-top: 2rem; }
.setup-card { display: flex; align-items: center; gap: 1.4rem; padding: clamp(1.4rem, 3vw, 2.2rem); border: 1px solid var(--setup-border); border-radius: 18px; background: linear-gradient(115deg, var(--setup-start), var(--setup-end)); }
.setup-icon { flex: 0 0 auto; display: grid; place-items: center; width: 3.6rem; height: 3.6rem; border-radius: 50%; color: white; background: var(--forest); font-size: 1.25rem; font-weight: 800; }
.setup-card h2 { margin: .45rem 0 .35rem; font: 800 clamp(1.3rem, 2vw, 1.8rem) Manrope; letter-spacing: -.035em; }.setup-card p { max-width: 750px; margin: 0; color: var(--muted); line-height: 1.55; }
.stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 1.4rem; }
.stat-grid article { padding: 1.3rem; border: 1px solid var(--card-line); border-radius: 15px; background: var(--surface); box-shadow: var(--card-shadow); }
.stat-grid small { display: block; margin-top: .9rem; color: var(--muted); font-size: .73rem; }.stat-grid strong { display: block; margin-top: .2rem; font: 800 1.8rem Manrope; }.stat-grid p { margin: .4rem 0 0; color: #97a09d; font-size: .7rem; }
.stat-icon { display: block; font-size: .65rem; }.stat-icon.car { color: #789849; }.stat-icon.condo { color: #4f8578; }.stat-icon.driving { color: #c0913d; }.stat-icon.pet { color: #9b6d80; }
.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 1rem; }
.service-grid article { display: flex; align-items: center; gap: .8rem; padding: 1rem 1.1rem; border: 1px solid var(--card-line); border-radius: 13px; background: var(--surface-translucent); }.service-grid article > span { font-size: 1.35rem; }.service-grid div { display: grid; gap: .2rem; }.service-grid strong { font-size: .8rem; }.service-grid small { color: var(--muted); font-size: .67rem; }
.client-overview, .host-overview { display: grid; gap: 1.2rem; margin-top: 2rem; }
.client-market-hero, .host-control-hero { display: flex; align-items: end; justify-content: space-between; gap: 2rem; padding: clamp(1.5rem, 3vw, 2.35rem); overflow: hidden; border: 1px solid var(--setup-border); border-radius: 20px; background: linear-gradient(120deg, var(--setup-start), var(--setup-end)); }
.client-market-hero > div:first-child, .host-control-hero > div:first-child { max-width: 740px; }
.client-market-hero h2, .host-control-hero h2 { margin: .55rem 0 .6rem; font: 800 clamp(1.65rem, 3vw, 2.45rem)/1.08 Manrope; letter-spacing: -.045em; }
.client-market-hero p, .host-control-hero p { margin: 0 0 1.25rem; color: var(--muted); font-size: .82rem; line-height: 1.6; }
.client-market-hero .button, .host-control-hero .button { min-height: 2.9rem; }
.market-hero-points { display: grid; grid-template-columns: repeat(3, 1fr); min-width: 360px; padding: 1rem; border: 1px solid color-mix(in srgb, var(--forest) 18%, transparent); border-radius: 15px; background: var(--surface-translucent); }
.market-hero-points span { display: grid; gap: .2rem; padding: .3rem .85rem; border-left: 1px solid var(--row-line); }.market-hero-points span:first-child { border-left: 0; }
.market-hero-points strong { font: 800 .9rem Manrope; }.market-hero-points small { color: var(--muted); font-size: .57rem; }
.market-category-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; }
.market-category-row a { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .15rem .65rem; padding: .9rem 1rem; border: 1px solid var(--card-line); border-radius: 13px; background: var(--surface); box-shadow: var(--card-shadow); text-decoration: none; }
.market-category-row a > span { grid-row: span 2; font-size: 1.35rem; }.market-category-row strong { font-size: .72rem; }.market-category-row small { color: var(--muted); font-size: .55rem; }
.overview-section { padding: 1.2rem; border: 1px solid var(--card-line); border-radius: 18px; background: var(--surface); box-shadow: var(--card-shadow); }
.overview-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.overview-section-heading h2 { margin: .3rem 0 0; font: 800 1.2rem Manrope; letter-spacing: -.03em; }.overview-section-heading > a { color: var(--forest); font-size: .65rem; font-weight: 800; }
.marketing-unit-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
.marketing-unit-card { min-width: 0; overflow: hidden; border: 1px solid var(--row-line); border-radius: 13px; background: var(--surface-soft); }
.marketing-unit-photo { position: relative; display: grid; place-items: center; height: 145px; overflow: hidden; background: var(--surface-tint); }.marketing-unit-photo > img { width: 100%; height: 100%; object-fit: cover; }.marketing-unit-photo > span { font-size: 2rem; }.marketing-unit-photo > small { position: absolute; top: .55rem; right: .55rem; padding: .3rem .45rem; border-radius: 99px; color: #2f735d; background: rgba(232, 247, 239, .92); font-size: .5rem; font-weight: 800; }
.marketing-unit-copy { padding: .8rem; }.marketing-unit-copy > span { color: var(--muted); font-size: .52rem; font-weight: 800; text-transform: uppercase; }.marketing-unit-copy h3 { margin: .35rem 0 .25rem; overflow: hidden; font: 800 .8rem Manrope; text-overflow: ellipsis; white-space: nowrap; }.marketing-unit-copy p { min-height: 2.7rem; margin: 0; color: var(--muted); font-size: .59rem; line-height: 1.45; }.marketing-unit-copy > div { display: flex; align-items: end; justify-content: space-between; gap: .5rem; padding-top: .65rem; margin-top: .65rem; border-top: 1px solid var(--row-line); }.marketing-unit-copy > div > span { display: grid; }.marketing-unit-copy small { color: var(--muted); font-size: .5rem; }.marketing-unit-copy strong { font-size: .7rem; }.marketing-unit-copy a { color: var(--forest); font-size: .57rem; font-weight: 800; }
.overview-booking-list { display: grid; border: 1px solid var(--row-line); border-radius: 12px; overflow: hidden; }.overview-booking-list > a { display: grid; grid-template-columns: 68px minmax(0, 1fr) auto; align-items: center; gap: .85rem; padding: .8rem; border-top: 1px solid var(--row-line); text-decoration: none; }.overview-booking-list > a:first-child { border-top: 0; }.overview-booking-list > a:hover { background: var(--surface-tint); }.overview-booking-list time { display: grid; color: var(--forest); font-size: .7rem; font-weight: 900; }.overview-booking-list time small, .overview-booking-list > a > span small { color: var(--muted); font-size: .54rem; font-weight: 500; }.overview-booking-list > a > span { display: grid; gap: .15rem; min-width: 0; }.overview-booking-list > a > span strong { overflow: hidden; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }.overview-booking-list b { font-size: .65rem; }
.host-control-hero > div:last-child { display: flex; flex-wrap: wrap; justify-content: end; gap: .6rem; }.host-control-hero p { margin-bottom: 0; }.host-stat-grid { margin-top: 0; }
.host-unit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }.host-unit-grid > article { padding: .9rem; border: 1px solid var(--row-line); border-radius: 12px; background: var(--surface-soft); }.host-unit-status { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }.host-unit-status > span { font-size: 1.25rem; }.host-unit-status em { padding: .28rem .42rem; border-radius: 99px; font-size: .51rem; font-style: normal; font-weight: 800; }.host-unit-status em.available { color: #2f735d; background: #e1f3ea; }.host-unit-status em.occupied { color: #8a6121; background: #fff0cb; }.host-unit-status em.inactive { color: var(--muted); background: var(--row-line); }.host-unit-grid h3 { margin: .65rem 0 .15rem; font: 800 .8rem Manrope; }.host-unit-grid > article > p { margin: 0; color: var(--muted); font-size: .57rem; }.host-unit-next { display: grid; gap: .12rem; padding: .6rem; margin: .7rem 0; border-radius: 8px; background: var(--surface-tint); }.host-unit-next small { color: var(--muted); font-size: .51rem; }.host-unit-next strong { font-size: .63rem; }.host-unit-grid > article > a { color: var(--forest); font-size: .58rem; font-weight: 800; }
.host-booking-list > a { grid-template-columns: 68px minmax(0, 1fr) auto auto; }.overview-empty { grid-column: 1 / -1; padding: 2rem; border: 1px dashed var(--card-line); border-radius: 12px; color: var(--muted); text-align: center; }.overview-empty > span { display: block; margin-bottom: .4rem; font-size: 1.5rem; }.overview-empty strong { color: var(--ink); font-size: .72rem; }.overview-empty p { margin: .3rem 0 0; font-size: .6rem; }.overview-empty.compact { border: 0; }
.field-help { color: var(--muted); font-size: .57rem; line-height: 1.4; }
.listing-location-field { grid-column: 1 / -1; }
.map-field-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.map-field-heading > div { display: grid; gap: .25rem; }.map-field-heading > div > small, .overview-section-heading p { margin: .2rem 0 0; color: var(--muted); font-size: .58rem; line-height: 1.45; }.map-field-heading > span { color: var(--forest); font-size: .57rem; font-weight: 800; }
.map-address-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .55rem; }
.map-action-button, .map-clear-button { min-height: 2.7rem; padding: .6rem .8rem; border: 1px solid var(--card-line); border-radius: 9px; color: var(--forest); background: var(--surface); font-size: .59rem; font-weight: 800; cursor: pointer; }.map-action-button:hover { border-color: var(--forest); background: var(--mint); }.map-clear-button { color: var(--muted); background: transparent; }
.google-map-canvas { width: 100%; min-height: 320px; overflow: hidden; border: 1px solid var(--card-line); border-radius: 13px; background: radial-gradient(circle at 35% 35%, var(--mint), transparent 26%), linear-gradient(145deg, var(--surface-tint), var(--surface-soft)); }
.listing-map-canvas { min-height: 340px; }.search-map-canvas { min-height: 360px; }.overview-map-canvas { min-height: 390px; }
.map-setup-note { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem .8rem; margin-top: -3.9rem; margin-right: .75rem; margin-left: .75rem; border: 1px solid #d9b45b; border-radius: 9px; color: #765415; background: #fff7df; box-shadow: 0 8px 24px rgba(52, 42, 17, .12); }.map-setup-note strong { font-size: .62rem; }.map-setup-note span { color: #765f2e; font-size: .55rem; }.map-setup-note code { font-size: .54rem; }
.map-status { min-height: .9rem; color: var(--muted); font-size: .56rem; }
.radius-control { display: grid; grid-template-columns: minmax(0, 1fr) 55px; align-items: center; gap: .55rem; min-height: 3.35rem; padding: .65rem .8rem; border: 1px solid #d4ddd9; border-radius: 11px; background: var(--surface-soft); }.radius-control input { width: 100%; min-height: 0; padding: 0; accent-color: var(--forest); }.radius-control output { color: var(--forest); font-size: .62rem; font-weight: 800; text-align: right; }
.search-map-panel { display: grid; grid-column: 1 / -1; gap: .7rem; padding-top: .2rem; }.map-toolbar { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .45rem; }.nearby-map-section .overview-section-heading p { max-width: 620px; }.nearby-map-section .map-toolbar > a { color: var(--forest); font-size: .62rem; font-weight: 800; }
.map-info-card { display: grid; gap: .18rem; min-width: 170px; color: #18231f; }.map-info-card strong { font-size: .72rem; }.map-info-card span, .map-info-card small { color: #66736e; font-size: .58rem; }.map-info-card a { margin-top: .3rem; color: #173c34; font-size: .58rem; font-weight: 800; }
.accounts-section { margin-top: 2rem; }
.account-alert { width: 100%; margin: 0 0 1rem; }
.accounts-summary { display: grid; grid-template-columns: repeat(3, minmax(110px, .45fr)) minmax(260px, 1.5fr); align-items: end; gap: 1.5rem; padding: 1.5rem 1.7rem; border: 1px solid var(--card-line); border-radius: 16px 16px 0 0; background: var(--surface-tint); }
.accounts-summary h2 { margin: .35rem 0 0; font: 800 1.7rem Manrope; letter-spacing: -.04em; }
.accounts-summary p { margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.55; }
.account-summary-stat + .account-summary-stat { padding-left: 1.5rem; border-left: 1px solid #d5dfd9; }
.accounts-table-wrap { overflow-x: auto; border: 1px solid var(--card-line); border-top: 0; border-radius: 0 0 16px 16px; background: var(--surface); box-shadow: var(--card-shadow); }
.accounts-table { width: 100%; min-width: 1050px; border-collapse: collapse; }
.accounts-table th { padding: .85rem 1.3rem; color: var(--muted); background: var(--surface-soft); font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-align: left; text-transform: uppercase; }
.accounts-table td { padding: 1rem 1.3rem; border-top: 1px solid var(--row-line); color: var(--ink); font-size: .8rem; vertical-align: middle; }
.account-identity { display: flex; align-items: center; gap: .8rem; }
.account-identity > span, .account-identity > img { display: grid; place-items: center; flex: 0 0 auto; width: 2.5rem; height: 2.5rem; border-radius: 50%; color: white; background: #51776c; font-size: .8rem; font-weight: 800; object-fit: cover; }
.account-identity div { display: grid; gap: .16rem; }.account-identity strong { font-size: .82rem; }.account-identity small, .registered-time { color: var(--muted); font-size: .7rem; }
.method-badge { display: inline-flex; padding: .38rem .6rem; border-radius: 99px; font-size: .7rem; font-weight: 800; }
.method-google { color: #315f52; background: #e5f2ec; }.method-facebook { color: #285b9b; background: #eaf2fc; }.method-email { color: #6c5727; background: #f7efd9; }
.role-badge, .verification-badge { display: inline-flex; padding: .36rem .58rem; border-radius: 99px; color: #596761; background: #edf0ee; font-size: .68rem; font-weight: 800; }
.role-host { color: #315f52; background: #dceee7; }.admin-marker { display: block; margin-top: .28rem; color: #8b7025; font-size: .6rem; font-weight: 800; text-transform: uppercase; }.verification-badge { color: #39705f; background: #e5f2ec; }.verification-pending { color: #866527; background: #fff2d6; }
.account-status { display: inline-flex; align-items: center; gap: .4rem; color: #39705f; font-size: .7rem; font-weight: 800; }.account-status i { width: .45rem; height: .45rem; border-radius: 50%; background: #5ca483; }.account-status.status-suspended { color: #98443c; }.account-status.status-suspended i { background: #c56b62; }
.registered-date, .registered-time { display: block; }.registered-time { margin-top: .18rem; }
.account-actions { display: flex; align-items: center; gap: .65rem; }.account-actions a, .account-actions button { padding: 0; border: 0; color: #34695b; background: transparent; font-size: .72rem; font-weight: 800; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }.account-actions button { color: #a3463d; }
.accounts-empty { padding: 3rem !important; color: var(--muted) !important; text-align: center; }
.accounts-privacy-note { margin: .8rem 0 0; color: #88928e; font-size: .7rem; }
.back-link { display: inline-block; margin-bottom: .5rem; color: #4e7268; font-size: .78rem; font-weight: 800; text-decoration: none; }
.account-edit-card { width: min(720px, 100%); margin-top: 2rem; padding: clamp(1.4rem, 3vw, 2.2rem); border: 1px solid var(--card-line); border-radius: 18px; background: var(--surface); box-shadow: var(--card-shadow); }
.edit-account-heading { display: flex; align-items: center; gap: 1rem; padding-bottom: 1.5rem; margin-bottom: 1.5rem; border-bottom: 1px solid #e7ebe8; }.edit-account-heading > img, .edit-account-heading > span { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; color: white; background: #51776c; font-weight: 800; object-fit: cover; }.edit-account-heading h2 { margin: .25rem 0 .1rem; font: 800 1.35rem Manrope; }.edit-account-heading p { margin: 0; color: var(--muted); font-size: .78rem; }
.account-edit-form { display: grid; gap: 1.35rem; }.management-options { display: grid; gap: .8rem; }.management-option { display: flex; align-items: flex-start; gap: .85rem; padding: 1rem; border: 1px solid #dce3df; border-radius: 12px; cursor: pointer; }.management-option > input[type="checkbox"] { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin-top: .15rem; accent-color: var(--forest); }.management-option span { display: grid; gap: .25rem; }.management-option strong { font-size: .83rem; }.management-option small { color: var(--muted); line-height: 1.45; }
.self-protection-note { margin: 0; padding: .75rem .85rem; border-radius: 9px; color: #725b27; background: #fff5dc; font-size: .73rem; line-height: 1.5; }.edit-form-actions { display: flex; justify-content: flex-end; gap: .7rem; padding-top: .3rem; }
.verification-shell { min-height: 100vh; display: grid; place-items: center; padding: 2rem 1rem; background: radial-gradient(circle at 80% 20%, #e3efd2, transparent 30%), var(--cream); }
.verification-card { width: min(570px, 100%); padding: clamp(1.7rem, 5vw, 3.2rem); border: 1px solid #e0e5df; border-radius: 22px; background: var(--paper); box-shadow: var(--shadow); text-align: center; }.verification-card .brand { margin-bottom: 2rem; }.verification-icon { display: grid; place-items: center; width: 4rem; height: 4rem; margin: 0 auto 1.2rem; border-radius: 50%; color: var(--forest); background: var(--lime); font-size: 1.5rem; }.verification-card h1 { margin: .55rem 0 .7rem; font: 800 clamp(1.8rem, 5vw, 2.45rem) Manrope; letter-spacing: -.045em; }.verification-card > p { margin: 0; color: var(--muted); line-height: 1.65; }.verification-card > small { display: block; margin-top: 1.2rem; color: #89938f; }.verification-flash { margin: 1.3rem 0 0; text-align: left; }.verification-actions { display: grid; justify-items: center; gap: .85rem; margin-top: 1.6rem; }.verification-logout { padding: .25rem; border: 0; color: #58736b; background: transparent; font-size: .78rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

html[data-color-mode="dark"] .landing-shell { background: radial-gradient(circle at 85% 24%, color-mix(in srgb, var(--forest) 28%, transparent) 0, transparent 29%), var(--cream); }
html[data-color-mode="dark"] .landing-nav { border-color: var(--line); }
html[data-color-mode="dark"] .button-ghost { border-color: var(--line); background: var(--surface-translucent); }
html[data-color-mode="dark"] .calendar-card { border-color: var(--card-line); background: rgba(25, 34, 30, .92); }
html[data-color-mode="dark"] .service-list a { border-color: var(--line); color: var(--muted); background: var(--surface-translucent); }
html[data-color-mode="dark"] .service-list a.active { border-color: var(--lime); color: var(--forest-deep); background: var(--lime); }
html[data-color-mode="dark"] .calendar-grid > a { color: #c7d2ce; border-color: var(--row-line); }
html[data-color-mode="dark"] .calendar-grid > a.outside-month { color: #66756f; }
html[data-color-mode="dark"] .calendar-grid > a.in-range { background: color-mix(in srgb, var(--mint) 62%, transparent); }
html[data-color-mode="dark"] .chip-car, html[data-color-mode="dark"] .chip-condo, html[data-color-mode="dark"] .chip-service, html[data-color-mode="dark"] .calendar-list-empty { background: var(--surface-tint); }
html[data-color-mode="dark"] .listing-icon { background: rgba(255,255,255,.06); }
html[data-color-mode="dark"] .see-all-available { color: var(--lime); }
html[data-color-mode="dark"] .auth-body, html[data-color-mode="dark"] .auth-form-panel { background: var(--paper); }
html[data-color-mode="dark"] .social-button { border-color: var(--card-line); color: var(--ink); background: var(--surface); box-shadow: none; }
html[data-color-mode="dark"] .facebook-button { color: #86b8f2; background: #182636; }
html[data-color-mode="dark"] .auth-divider::before, html[data-color-mode="dark"] .auth-divider::after { background: var(--line); }
html[data-color-mode="dark"] .field-group label { color: var(--ink); }
html[data-color-mode="dark"] .field-group input { border-color: var(--card-line); color: var(--ink); background: var(--surface-soft); }
html[data-color-mode="dark"] .field-group input:focus { border-color: var(--lime); background: var(--surface); box-shadow: 0 0 0 4px color-mix(in srgb, var(--forest) 28%, transparent); }
html[data-color-mode="dark"] .check-row { color: var(--muted); }
html[data-color-mode="dark"] .form-footer a, html[data-color-mode="dark"] .text-link { color: var(--lime); }
html[data-color-mode="dark"] .eyebrow, html[data-color-mode="dark"] .form-kicker, html[data-color-mode="dark"] .profile-label { color: var(--lime); }
html[data-color-mode="dark"] .theme-option[aria-pressed="true"] { background: var(--mint); }
html[data-color-mode="dark"] .stat-grid p { color: #7f9089; }
html[data-color-mode="dark"] .account-summary-stat + .account-summary-stat, html[data-color-mode="dark"] .accounts-summary p { border-color: var(--card-line); }
html[data-color-mode="dark"] .management-option { border-color: var(--card-line); background: var(--surface-soft); }
html[data-color-mode="dark"] .edit-account-heading { border-color: var(--row-line); }
html[data-color-mode="dark"] .role-badge { color: #c0ccc7; background: #2a3732; }
html[data-color-mode="dark"] .role-admin { color: #f0da85; background: #463f23; }
html[data-color-mode="dark"] .verification-badge, html[data-color-mode="dark"] .method-google { color: #9ed2be; background: #203a31; }
html[data-color-mode="dark"] .verification-pending, html[data-color-mode="dark"] .method-email { color: #ebce8a; background: #40351f; }
html[data-color-mode="dark"] .method-facebook { color: #9fc6f4; background: #20334b; }
html[data-color-mode="dark"] .back-link, html[data-color-mode="dark"] .account-actions a { color: var(--lime); }
html[data-color-mode="dark"] .verification-shell { background: radial-gradient(circle at 80% 20%, color-mix(in srgb, var(--forest) 28%, transparent), transparent 30%), var(--cream); }
html[data-color-mode="dark"] .verification-card { border-color: var(--card-line); }
html[data-color-mode="dark"] .verification-logout { color: var(--lime); }

@media (max-width: 980px) {
    .hero { grid-template-columns: 1fr; padding-top: 3.5rem; }.hero-copy { max-width: 700px; }.hero-visual { width: min(650px, 90%); margin: 0 auto; }
    .availability-sticky-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }.availability-filter-title { grid-column: 1 / -1; }.availability-sticky-filter .button { grid-column: 1 / -1; }.available-unit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .auth-shell { grid-template-columns: minmax(280px, .65fr) minmax(480px, 1fr); }.auth-brand-panel { padding: 2.2rem; }
    .stat-grid, .service-grid { grid-template-columns: 1fr 1fr; }
    .client-market-hero, .host-control-hero { align-items: stretch; flex-direction: column; }.market-hero-points { min-width: 0; }.marketing-unit-grid { grid-template-columns: repeat(2, 1fr); }.host-unit-grid { grid-template-columns: 1fr 1fr; }
    .accounts-summary { grid-template-columns: repeat(3, 1fr); }.accounts-summary p { grid-column: 1 / -1; padding-top: 1rem; border-top: 1px solid #d5dfd9; }
}

@media (max-width: 740px) {
    .landing-nav { min-height: 74px; }.nav-actions .button-ghost { display: none; }.hero { min-height: auto; padding: 3.5rem 0 5rem; }.hero h1 { font-size: clamp(3rem, 15vw, 4.6rem); }.hero-actions { align-items: flex-start; flex-direction: column; }.hero-visual { width: 100%; }.floating-stat { right: -.5rem; }.calendar-card { padding: 1.1rem; }
    .availability-filter { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }.availability-filter .button { grid-column: 1 / -1; width: 100%; }.availability-field input { font-size: .67rem; }
    .availability-page-nav, .availability-page { width: min(100% - 1.5rem, 1220px); }.availability-page-nav { min-height: 72px; }.availability-back-link { font-size: .68rem; }.availability-sticky-filter { top: .5rem; grid-template-columns: 1fr 1fr; gap: .55rem; padding: .7rem; border-radius: 15px; }.availability-filter-title, .availability-category-field, .availability-location-field { grid-column: 1 / -1; }.availability-sticky-filter .button { grid-column: 1 / -1; width: 100%; }.availability-page-heading { align-items: start; flex-direction: column; padding-top: 2.4rem; }.available-unit-grid { grid-template-columns: 1fr; }.available-unit-photo { height: 205px; }
    .auth-shell { display: block; }.auth-brand-panel { display: none; }.auth-form-panel { min-height: 100vh; padding: 2rem 1.25rem 3rem; }.mobile-brand { display: inline-flex; }.form-heading h2 { font-size: 2rem; }
    .dashboard-shell { display: block; }
    .sidebar { position: fixed; z-index: 101; inset: 0 auto 0 0; width: min(82vw, 280px); height: 100dvh; padding: 1.35rem 1rem; overflow: visible; border-right: 1px solid rgba(255, 255, 255, .24); background: rgba(23, 60, 52, .9); background: color-mix(in srgb, var(--forest) 88%, transparent); box-shadow: 12px 0 36px rgba(7, 24, 19, .14); backdrop-filter: blur(18px) saturate(125%); -webkit-backdrop-filter: blur(18px) saturate(125%); transform: translateX(-100%); transition: transform .25s ease, box-shadow .25s ease; }
    .sidebar.is-open { box-shadow: 20px 0 55px rgba(7, 24, 19, .3); transform: translateX(0); }
    .sidebar-panel { height: 100%; max-height: 100%; }
    .sidebar-toggle { position: absolute; right: -4rem; bottom: calc(1.25rem + env(safe-area-inset-bottom)); display: grid; place-items: center; width: 3.25rem; height: 3.25rem; padding: 0; border: 1px solid rgba(255, 255, 255, .3); border-radius: 50%; color: white; background: var(--forest); box-shadow: 0 12px 30px rgba(5, 20, 16, .3); cursor: pointer; }
    .sidebar-toggle:focus-visible { outline: 3px solid var(--lime); outline-offset: 2px; }
    .sidebar-toggle-icon { display: grid; place-items: center; width: 1.25rem; height: 1.25rem; }
    .sidebar-toggle-glyph { grid-area: 1 / 1; display: block; color: inherit; font-size: 1.15rem; line-height: 1; transition: opacity .18s ease, transform .22s ease; }
    .sidebar-toggle-glyph-menu { opacity: 1; transform: scale(1) rotate(0); }
    .sidebar-toggle-glyph-close { opacity: 0; transform: scale(.7) rotate(-45deg); }
    .sidebar.is-open .sidebar-toggle-glyph-menu { opacity: 0; transform: scale(.7) rotate(45deg); }
    .sidebar.is-open .sidebar-toggle-glyph-close { opacity: 1; transform: scale(1) rotate(0); }
    .sidebar-scrim { position: fixed; z-index: 100; inset: 0; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(8, 19, 16, .28); backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); }
    .sidebar-scrim[hidden] { display: none; }
    .sidebar-nav { display: grid; min-width: 0; min-height: 0; width: 100%; flex: 1 1 auto; grid-template-columns: minmax(0, 1fr); align-content: start; margin-top: 1.25rem; padding: 0 .2rem .75rem 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; -webkit-overflow-scrolling: touch; touch-action: pan-y; }
    .sidebar-nav a { padding: .75rem .85rem; }
    .sidebar-nav a span { display: inline; }
    .sidebar-nav .sidebar-label { display: block; }
    .sidebar-nav a.disabled { display: flex; }
    .sidebar-logout { margin-top: auto; }
    .sidebar-logout button { padding: .75rem .85rem; }
    .dashboard-main { width: 100%; max-width: 100%; margin-left: 0; padding: 1.4rem .85rem 5.5rem; }
    .dashboard-header { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; align-items: flex-start; }
    .dashboard-header > div { min-width: 0; }
    .dashboard-header h1 { overflow-wrap: anywhere; }
    .user-badge div { display: none; }
    .setup-card { align-items: flex-start; }
    .stat-grid, .service-grid { grid-template-columns: 1fr 1fr; }
    .accounts-summary { gap: .8rem; }.account-summary-stat + .account-summary-stat { padding-left: .8rem; }.accounts-summary p { padding-top: .8rem; }
    body.mobile-sidebar-open { overflow: hidden; }
    .market-category-row { grid-template-columns: 1fr 1fr; }.host-booking-list > a { grid-template-columns: 58px minmax(0, 1fr) auto; }.host-booking-list > a b { display: none; }
    .map-address-row { grid-template-columns: 1fr 1fr; }.map-address-row input { grid-column: 1 / -1; }.map-field-heading { align-items: start; flex-direction: column; }.google-map-canvas { min-height: 300px; }.nearby-map-section .overview-section-heading { align-items: stretch; }
}
@media (max-width: 740px) {
    .listing-view-heading-actions, .catalog-heading-actions { width: 100%; justify-content: space-between; }
    .results-heading, .catalog-heading, .listing-map-heading { align-items: stretch; flex-direction: column; }
    .listing-view-toggle { width: 100%; }
    .listing-view-toggle button { width: 100%; }
    .listing-results-map-panel .booking-discovery-map { min-height: 420px; }
    .listing-map-heading .map-action-button { width: 100%; }
}
@media (max-width: 480px) {
    .listing-view-heading-actions { align-items: stretch; flex-direction: column; }
    .listing-results-map-panel .booking-discovery-map { min-height: 360px; }
}

/* Public listings and affiliate sales */
.public-listing-body { min-height: 100vh; color: var(--ink); background: var(--page-bg, #f5f7f4); }
.public-listing-nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; max-width: 1240px; padding: 1.1rem 1.5rem; margin: auto; }
.public-listing-nav .brand { color: var(--forest); }.public-listing-nav nav { display: flex; align-items: center; gap: 1rem; }.public-listing-nav nav > a:not(.button) { color: var(--ink); font-size: .72rem; font-weight: 800; text-decoration: none; }
.public-listing-shell { max-width: 1240px; padding: 1rem 1.5rem 5rem; margin: auto; }
.public-listing-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr); gap: 1.25rem; align-items: stretch; }
.public-listing-gallery { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: repeat(2, minmax(180px, 1fr)); gap: .55rem; min-height: 470px; overflow: hidden; border-radius: 22px; background: #dce7e2; }
.public-listing-gallery img { width: 100%; height: 100%; min-height: 0; object-fit: cover; }.public-listing-gallery img:first-child { grid-row: 1 / 3; }.public-listing-gallery img:nth-child(n+4) { display: none; }.public-listing-placeholder { display: grid; grid-column: 1 / -1; grid-row: 1 / -1; place-items: center; font-size: 6rem; }
.public-listing-summary { display: flex; flex-direction: column; justify-content: center; padding: 2.25rem; border: 1px solid var(--card-line); border-radius: 22px; background: var(--surface); box-shadow: var(--card-shadow); }.public-listing-summary h1 { margin: .45rem 0 .6rem; font: 800 clamp(1.8rem, 4vw, 3.1rem)/1.02 Manrope; letter-spacing: -.05em; }.public-listing-summary > p { color: var(--muted); line-height: 1.65; }.public-listing-location { margin: 0; color: var(--forest) !important; font-size: .72rem; font-weight: 800; }
.public-listing-price { display: flex; align-items: baseline; gap: .4rem; padding: 1rem 0; margin-top: auto; border-top: 1px solid var(--row-line); }.public-listing-price small { color: var(--muted); }.public-listing-price strong { margin-left: auto; color: var(--forest); font: 800 1.55rem Manrope; }.public-listing-price span { color: var(--muted); font-size: .65rem; }
.public-share-row { display: flex; gap: .45rem; }.public-share-row input { min-width: 0; flex: 1; padding: .72rem; border: 1px solid var(--card-line); border-radius: 9px; color: var(--muted); background: var(--surface-soft); font-size: .58rem; }.public-share-row .button { min-height: 2.7rem; padding: 0 .9rem; }.referral-disclosure { margin-top: .6rem; color: var(--muted); font-size: .55rem; }
.public-listing-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 1.25rem; margin-top: 1.25rem; }.public-listing-details { display: grid; gap: 1rem; }.public-listing-details > section, .public-inquiry-card { padding: 1.5rem; border: 1px solid var(--card-line); border-radius: 18px; background: var(--surface); box-shadow: var(--card-shadow); }.public-listing-details h2, .public-inquiry-card h2 { margin: .35rem 0 .7rem; font: 800 1.3rem Manrope; }.public-listing-details p, .public-inquiry-card p { color: var(--muted); font-size: .7rem; line-height: 1.7; }
.public-listing-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: .6rem; margin: 1rem 0 0; }.public-listing-facts div { padding: .85rem; border-radius: 11px; background: var(--surface-tint); }.public-listing-facts dt { color: var(--muted); font-size: .54rem; font-weight: 800; text-transform: uppercase; }.public-listing-facts dd { margin: .25rem 0 0; font-size: .68rem; font-weight: 800; }
.public-rate-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .6rem; }.public-rate-grid span { display: grid; gap: .25rem; padding: .9rem; border: 1px solid var(--row-line); border-radius: 11px; }.public-rate-grid small { color: var(--muted); font-size: .55rem; }.public-rate-grid strong { color: var(--forest); font: 800 .9rem Manrope; }
.public-inquiry-card { position: sticky; top: 1rem; align-self: start; }.public-inquiry-card > small { display: block; margin-top: .6rem; color: var(--muted); text-align: center; }.public-inquiry-action { width: 100%; margin-top: .5rem; }.public-inquiry-form { display: grid; gap: .75rem; }.public-inquiry-form input, .public-inquiry-form textarea { width: 100%; }
.affiliate-hero { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1.6rem; margin: 2rem 0 1rem; border-radius: 18px; color: white; background: linear-gradient(135deg, var(--forest), #307866); }.affiliate-hero h2 { max-width: 750px; margin: .35rem 0; font: 800 1.45rem Manrope; }.affiliate-hero p { max-width: 750px; margin: 0; color: rgba(255,255,255,.75); font-size: .7rem; }.affiliate-hero > div:last-child { display: grid; min-width: 130px; text-align: center; }.affiliate-hero > div:last-child strong { font: 800 2.2rem Manrope; }.affiliate-hero > div:last-child small { color: rgba(255,255,255,.7); }
.affiliate-partnership-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .75rem; }.affiliate-partnership-grid > a { display: grid; gap: .35rem; padding: 1.15rem; border: 1px solid var(--card-line); border-radius: 14px; color: var(--ink); background: var(--surface); text-decoration: none; transition: transform .18s, border-color .18s; }.affiliate-partnership-grid > a:hover { transform: translateY(-2px); border-color: var(--forest); }.affiliate-partnership-grid h3 { margin: 0; font: 800 1rem Manrope; }.affiliate-partnership-grid p { min-height: 2rem; margin: .3rem 0; color: var(--muted); font-size: .62rem; }.affiliate-partnership-grid p strong { color: var(--forest); }.affiliate-partnership-grid > a > b { color: var(--forest); font-size: .7rem; }.affiliate-partnership-grid > a > span:last-child { margin-top: .35rem; color: var(--forest); font-size: .62rem; font-weight: 800; }
.affiliate-status { justify-self: start; padding: .3rem .55rem; border-radius: 99px; color: #84611e; background: #fff0c9; font-size: .55rem; font-weight: 900; text-transform: uppercase; }.affiliate-status.status-accepted { color: #2c735b; background: #ddf2e8; }.affiliate-status.status-rejected { color: #973f38; background: #f9e2df; }
.affiliate-assignment-form { display: grid; align-content: start; gap: .8rem; }.affiliate-assignment-form h3 { margin: 0; font: 800 .95rem Manrope; }.affiliate-unit-options { display: grid; gap: .45rem; min-width: 0; padding: .75rem; margin: 0; border: 1px solid var(--row-line); border-radius: 11px; }.affiliate-unit-options legend { padding: 0 .3rem; font-size: .62rem; font-weight: 800; }.affiliate-unit-options > p { margin: 0 0 .2rem; font-size: .56rem; }.affiliate-unit-options label { display: flex; align-items: center; gap: .55rem; padding: .55rem; border-radius: 8px; background: var(--surface-soft); cursor: pointer; }.affiliate-unit-options input { width: 1rem; height: 1rem; flex: 0 0 auto; accent-color: var(--forest); }.affiliate-unit-options label > span { display: grid; gap: .1rem; }.affiliate-unit-options strong { font-size: .62rem; }.affiliate-unit-options small { color: var(--muted); font-size: .52rem; }
.affiliate-host-grid { display: grid; gap: .75rem; }.affiliate-host-grid > article { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(240px, .5fr); gap: 1rem; align-items: center; padding: 1.1rem; border: 1px solid var(--card-line); border-radius: 14px; background: var(--surface); }.affiliate-host-grid > article > span { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: 50%; color: white; background: var(--forest); }.affiliate-host-grid h3 { margin: .2rem 0; font: 800 .9rem Manrope; }.affiliate-host-grid p { margin: .2rem 0; color: var(--muted); font-size: .62rem; }.affiliate-host-grid strong { font-size: .62rem; }.affiliate-host-grid details summary { list-style: none; cursor: pointer; }.affiliate-host-grid details[open] { align-self: stretch; }.affiliate-host-grid details[open] summary { margin-bottom: .7rem; }.affiliate-host-grid textarea { width: 100%; }
.affiliate-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 1rem; margin-top: 2rem; }.affiliate-detail-layout > div { display: grid; gap: 1rem; min-width: 0; }.affiliate-application-card { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 1.5rem; padding: 1.4rem; border: 1px solid var(--card-line); border-radius: 16px; background: var(--surface); box-shadow: var(--card-shadow); }.affiliate-application-card h2 { margin: .45rem 0; font: 800 1.2rem Manrope; }.affiliate-application-card p, .affiliate-application-card blockquote { color: var(--muted); font-size: .68rem; line-height: 1.6; }.affiliate-application-card blockquote { padding: .8rem; margin: .7rem 0 0; border-left: 3px solid var(--forest); background: var(--surface-tint); }.percentage-input { display: flex; align-items: center; }.percentage-input input { min-width: 0; flex: 1; }.percentage-input span { padding: .85rem; font-weight: 900; }.affiliate-review-actions { display: flex; flex-wrap: wrap; gap: .5rem; }.affiliate-commission-callout { display: grid; align-content: center; padding: 1rem; border-radius: 13px; color: white; background: var(--forest); text-align: center; }.affiliate-commission-callout strong { font: 800 2.6rem Manrope; }.affiliate-commission-callout span { color: rgba(255,255,255,.7); font-size: .58rem; }
.affiliate-link-list, .affiliate-sales-list { display: grid; gap: .55rem; }.affiliate-link-list article { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto auto; gap: .7rem; align-items: center; padding: .7rem; border: 1px solid var(--row-line); border-radius: 11px; }.affiliate-link-list img, .affiliate-link-placeholder { width: 58px; height: 58px; border-radius: 8px; object-fit: cover; }.affiliate-link-placeholder { display: grid; place-items: center; background: var(--surface-tint); font-size: 1.35rem; }.affiliate-link-list article > div { display: grid; gap: .2rem; min-width: 0; }.affiliate-link-list input { width: 100%; min-width: 0; border: 0; color: var(--muted); background: transparent; font-size: .55rem; }.affiliate-link-list button, .affiliate-link-list a { border: 0; color: var(--forest); background: transparent; font-size: .6rem; font-weight: 800; cursor: pointer; }
.affiliate-sales-list > article { display: grid; grid-template-columns: minmax(0, 1fr) auto 100px; gap: .7rem; align-items: center; padding: .8rem; border: 1px solid var(--row-line); border-radius: 10px; color: var(--ink); }.affiliate-sales-list > article > span:first-child { display: grid; }.affiliate-sales-list small { color: var(--muted); }.affiliate-sales-list b { color: var(--forest); text-align: right; }
.affiliate-chat-card { position: sticky; top: 1rem; align-self: start; padding: 1.2rem; border: 1px solid var(--card-line); border-radius: 16px; background: var(--surface); box-shadow: var(--card-shadow); }.affiliate-chat-card h2 { margin: .3rem 0 1rem; font: 800 1.1rem Manrope; }.affiliate-message-list { display: grid; gap: .55rem; max-height: 520px; overflow-y: auto; padding: .25rem; }.affiliate-message-list article { max-width: 88%; padding: .7rem; border-radius: 4px 12px 12px; background: var(--surface-tint); }.affiliate-message-list article.mine { justify-self: end; border-radius: 12px 4px 12px 12px; color: white; background: var(--forest); }.affiliate-message-list article small, .affiliate-message-list article time { display: block; color: var(--muted); font-size: .5rem; }.affiliate-message-list article.mine small, .affiliate-message-list article.mine time { color: rgba(255,255,255,.65); }.affiliate-message-list article p { margin: .2rem 0; font-size: .65rem; line-height: 1.5; white-space: pre-wrap; }.affiliate-chat-card form { padding-top: .8rem; margin-top: .8rem; border-top: 1px solid var(--row-line); }.affiliate-chat-card textarea { width: 100%; }

@media (max-width: 980px) {
    .public-listing-hero, .public-listing-layout, .affiliate-detail-layout { grid-template-columns: 1fr; }.public-inquiry-card, .affiliate-chat-card { position: static; }.affiliate-application-card { grid-template-columns: 1fr; }.public-listing-facts { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 680px) {
    .public-listing-nav, .public-listing-shell { padding-right: 1rem; padding-left: 1rem; }.public-listing-nav .brand-name { display: none; }.public-listing-hero { gap: .75rem; }.public-listing-gallery { grid-template-columns: 1fr; grid-template-rows: minmax(280px, 52vh); min-height: 0; }.public-listing-gallery img:first-child { grid-row: auto; }.public-listing-gallery img:nth-child(n+2) { display: none; }.public-listing-summary { padding: 1.35rem; }.public-listing-summary h1 { font-size: 2rem; }.public-share-row { align-items: stretch; flex-direction: column; }.public-listing-facts { grid-template-columns: 1fr 1fr; }.affiliate-hero { align-items: flex-start; flex-direction: column; }.affiliate-host-grid > article { grid-template-columns: auto 1fr; }.affiliate-host-grid details { grid-column: 1 / -1; }.affiliate-link-list article { grid-template-columns: 45px minmax(0, 1fr) auto; }.affiliate-link-list img, .affiliate-link-placeholder { width: 45px; height: 45px; }.affiliate-link-list a { grid-column: 2 / -1; }.affiliate-sales-list > article { grid-template-columns: 1fr auto; }.affiliate-sales-list > article > b { grid-column: 1 / -1; text-align: left; }
}

/* Per-listing calendar identity and booking finance ledger */
.calendar-booking-span[style*="--unit-accent"] { color:var(--unit-ink); background:var(--unit-fill,var(--unit-soft)); }
.listing-timeline-booking[style*="--unit-accent"] { color:var(--unit-ink); background:var(--unit-fill,var(--unit-soft)); }
.calendar-listing-avatar { flex:0 0 auto; width:.88rem; height:.88rem; border:1px solid color-mix(in srgb,var(--unit-accent) 55%,white); border-radius:3px; object-fit:cover; }
.calendar-unit-legend { display:flex; gap:.55rem; padding:.65rem 1.25rem; overflow-x:auto; border:1px solid var(--card-line); border-top:0; background:var(--surface-soft); }
.calendar-unit-legend > a { display:flex; flex:0 0 auto; align-items:center; gap:.45rem; min-width:180px; padding:.42rem .55rem; border:1px solid color-mix(in srgb,var(--calendar-event-border,var(--unit-accent)) 42%,var(--card-line)); border-left:4px solid var(--calendar-event-border,var(--unit-accent)); border-radius:9px; color:var(--unit-ink,var(--ink)); background:var(--unit-fill,var(--unit-soft)); text-decoration:none; }
.calendar-unit-legend img,.calendar-unit-legend > a > span:first-child { width:30px; height:30px; border-radius:6px; object-fit:cover; }.calendar-unit-legend > a > span:first-child { display:grid; place-items:center; }
.calendar-unit-legend a > span:last-child { display:grid; gap:.1rem; }.calendar-unit-legend strong { max-width:155px; overflow:hidden; font-size:.57rem; text-overflow:ellipsis; white-space:nowrap; }.calendar-unit-legend small { color:inherit; opacity:.72; font-size:.44rem; }
.booking-finance-card { padding:1.25rem; border:1px solid var(--card-line); border-radius:16px; background:var(--surface); box-shadow:var(--card-shadow); }
.booking-extension-card { display:grid; gap:1rem; padding:1.25rem; border:1px solid color-mix(in srgb,var(--forest) 34%,var(--card-line)); border-radius:16px; background:var(--surface); box-shadow:var(--card-shadow); }
.booking-extension-editor { overflow:hidden; border:1px solid var(--row-line); border-radius:12px; background:var(--surface-soft); }.booking-extension-editor > summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.85rem 1rem; cursor:pointer; list-style:none; }.booking-extension-editor > summary::-webkit-details-marker { display:none; }.booking-extension-editor > summary > span { display:grid; gap:.15rem; }.booking-extension-editor > summary strong { font-size:.72rem; }.booking-extension-editor > summary small { color:var(--muted); font-size:.54rem; }.booking-extension-editor > summary b { padding:.45rem .65rem; border-radius:8px; color:var(--forest); background:var(--mint); font-size:.55rem; }
.booking-extension-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; padding:1rem; border-top:1px solid var(--row-line); background:var(--surface); }.booking-extension-form .field-group { min-width:0; }.booking-extension-form input,.booking-extension-form select { width:100%; min-width:0; }.booking-extension-preview,.booking-extension-notes { grid-column:1/-1; }.booking-extension-preview { padding:.65rem .75rem; border-left:3px solid var(--forest); border-radius:8px; color:var(--forest); background:var(--mint); font-size:.61rem; font-weight:800; }.booking-extension-form > .button { grid-column:1/-1; justify-self:end; }
.booking-extension-history { overflow:hidden; border:1px solid var(--row-line); border-radius:12px; }.booking-extension-history > p { margin:0; padding:1rem; color:var(--muted); font-size:.62rem; text-align:center; }.booking-extension-history article { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.75rem; padding:.8rem; border-bottom:1px solid var(--row-line); }.booking-extension-history article:last-child { border-bottom:0; }.booking-extension-icon { display:grid; place-items:center; width:1.8rem; height:1.8rem; border-radius:50%; color:white; background:var(--forest); font-weight:900; }.booking-extension-history article > div:nth-child(2) { display:grid; gap:.13rem; }.booking-extension-history article strong { font-size:.67rem; }.booking-extension-history article small,.booking-extension-history article p,.booking-extension-history article > div:nth-child(2) > span { margin:0; color:var(--muted); font-size:.51rem; }.booking-extension-value { display:grid; justify-items:end; gap:.3rem; }.booking-extension-value > strong { color:var(--forest); font-size:.75rem; }
.booking-correction-card { display:grid; gap:1rem; padding:1.25rem; border:1px solid #9bbdaf; border-radius:16px; background:linear-gradient(145deg, #f7fcf9, #fff); box-shadow:var(--card-shadow); }
.booking-correction-editor { border:1px solid var(--row-line); border-radius:12px; background:var(--surface); overflow:hidden; }
.booking-correction-editor > summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem; cursor:pointer; list-style:none; }
.booking-correction-editor > summary::-webkit-details-marker { display:none; }
.booking-correction-editor > summary span { display:grid; gap:.15rem; }
.booking-correction-editor > summary small { color:var(--forest); font-size:.54rem; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.booking-correction-editor > summary strong { font:800 .9rem Manrope; }
.booking-correction-editor > summary em { color:var(--muted); font-size:.58rem; font-style:normal; }
.booking-correction-editor > summary b { padding:.5rem .7rem; border-radius:8px; color:var(--forest); background:var(--mint); font-size:.58rem; }
.booking-correction-editor[open] > summary b { font-size:0; }
.booking-correction-editor[open] > summary b::after { content:'Close editor'; font-size:.58rem; }
.booking-correction-body { display:grid; gap:1rem; padding:0 1rem 1rem; border-top:1px solid var(--row-line); }
.booking-correction-notice { display:flex; align-items:flex-start; gap:.65rem; margin-top:1rem; padding:.75rem; border-radius:10px; color:#76580e; background:#fff7df; }
.booking-correction-notice > span { display:grid; place-items:center; width:1.55rem; height:1.55rem; flex:0 0 auto; border-radius:50%; color:white; background:#b3862a; font-weight:900; }
.booking-correction-notice p { margin:0; font-size:.6rem; line-height:1.55; }
.booking-correction-form { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); align-items:start; gap:.85rem; }
.booking-correction-form .booking-correction-reason { grid-column:1 / -1; }
.booking-correction-form > .button { grid-column:1 / -1; justify-self:start; }
.booking-correction-history { display:grid; gap:.8rem; }
.booking-correction-history > div:first-child h2 { margin:.15rem 0; font:800 1rem Manrope; }
.booking-correction-history > div:first-child p { margin:0; color:var(--muted); font-size:.6rem; }
.booking-correction-revision { display:grid; gap:.7rem; padding:.9rem; border:1px solid var(--row-line); border-radius:10px; background:var(--surface); }
.booking-correction-revision header { display:flex; justify-content:space-between; gap:1rem; }
.booking-correction-revision header strong { font-size:.65rem; }
.booking-correction-revision time { color:var(--muted); font-size:.56rem; }
.booking-correction-revision > p { margin:0; padding:.55rem .65rem; border-radius:8px; background:var(--surface-soft); font-size:.6rem; }
.booking-correction-revision dl { display:grid; gap:.4rem; margin:0; }
.booking-correction-revision dl div { display:grid; grid-template-columns:110px minmax(0, 1fr); gap:.65rem; align-items:start; }
.booking-correction-revision dt { color:var(--muted); font-size:.57rem; font-weight:700; }
.booking-correction-revision dd { display:grid; grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr); gap:.5rem; margin:0; font-size:.58rem; overflow-wrap:anywhere; }
.booking-correction-revision dd span { color:var(--muted); text-decoration:line-through; }
.booking-correction-revision dd b { color:var(--muted); }
.booking-correction-empty { display:flex; align-items:center; gap:.65rem; padding:.8rem; border:1px dashed #9bbdaf; border-radius:10px; }
.booking-correction-empty > span { color:var(--forest); font-weight:900; }
.booking-correction-empty p { margin:0; color:var(--muted); font-size:.6rem; }
@media (max-width: 740px) { .booking-correction-form { grid-template-columns:1fr; }.booking-correction-form .booking-correction-reason, .booking-correction-form > .button { grid-column:auto; }.booking-correction-editor > summary { align-items:flex-start; }.booking-correction-editor > summary b { white-space:nowrap; }.booking-correction-revision header { display:grid; gap:.2rem; }.booking-correction-revision dl div { grid-template-columns:1fr; gap:.2rem; }.booking-correction-revision dd { grid-template-columns:1fr; gap:.2rem; }.booking-correction-revision dd b { transform:rotate(90deg); justify-self:start; } }
.booking-finance-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }.booking-finance-heading h2 { margin:.25rem 0; font:800 1.1rem Manrope; }.booking-finance-heading p { margin:0; color:var(--muted); font-size:.68rem; }
.booking-finance-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.7rem; margin:1rem 0; }.booking-finance-metrics > div { display:grid; gap:.22rem; padding:.8rem; border:1px solid var(--row-line); border-radius:10px; background:var(--surface-soft); }.booking-finance-metrics > div.attention { border-color:#e7b856; background:#fff8df; }.booking-finance-metrics small,.booking-finance-metrics span { color:var(--muted); font-size:.52rem; }.booking-finance-metrics strong { font-size:.85rem; }
.booking-finance-ledger { border:1px solid var(--row-line); border-radius:10px; overflow:hidden; }.booking-finance-entry { padding:.7rem .8rem; border-bottom:1px solid var(--row-line); }.booking-finance-entry:last-child { border-bottom:0; }.booking-finance-entry-summary { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }.booking-finance-entry-summary > span { display:grid; gap:.16rem; }.booking-finance-ledger strong { font-size:.65rem; }.booking-finance-ledger small,.booking-finance-ledger em { color:var(--muted); font-size:.5rem; font-style:normal; }.booking-finance-entry-summary > b { color:var(--forest); font-size:.66rem; }.booking-finance-ledger .kind-charge .booking-finance-entry-summary > b { color:#b45309; }.booking-finance-ledger > p { margin:0; padding:1rem; color:var(--muted); font-size:.62rem; text-align:center; }
.booking-finance-edit,.booking-finance-history { margin-top:.55rem; border-top:1px dashed var(--row-line); }.booking-finance-edit > summary,.booking-finance-history > summary { width:max-content; padding-top:.5rem; color:var(--forest); font-size:.52rem; font-weight:900; cursor:pointer; list-style:none; }.booking-finance-edit > summary::-webkit-details-marker,.booking-finance-history > summary::-webkit-details-marker { display:none; }.booking-finance-history > summary span { display:inline-grid; place-items:center; min-width:1rem; height:1rem; padding:0 .25rem; margin-left:.2rem; border-radius:99px; color:white; background:var(--forest); font-size:.44rem; }
.booking-finance-history ol { display:grid; gap:.55rem; padding:0; margin:.55rem 0 0; list-style:none; }.booking-finance-history li { display:grid; gap:.45rem; padding:.6rem; border-radius:8px; background:var(--surface-soft); }.booking-finance-history li > div { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }.booking-finance-history dl { display:grid; gap:.3rem; margin:0; }.booking-finance-history dl > div { display:grid; grid-template-columns:72px minmax(0,1fr); gap:.5rem; }.booking-finance-history dt { color:var(--muted); font-size:.48rem; font-weight:900; }.booking-finance-history dd { margin:0; font-size:.52rem; overflow-wrap:anywhere; }
.booking-finance-edit form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; padding:.7rem; margin-top:.55rem; border-radius:9px; background:var(--surface-soft); }.booking-finance-edit label { display:grid; gap:.25rem; min-width:0; }.booking-finance-edit label > span { color:var(--muted); font-size:.5rem; font-weight:800; }.booking-finance-edit input,.booking-finance-edit select,.booking-finance-edit textarea { width:100%; min-width:0; }.booking-finance-edit textarea { resize:vertical; }.booking-finance-edit-wide,.booking-finance-edit-actions { grid-column:1 / -1; }.booking-finance-edit-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; }.booking-finance-edit-actions small { max-width:430px; }.booking-finance-locked-type { align-self:end; min-height:3.2rem; padding:.8rem; margin:0; border:1px solid var(--row-line); border-radius:9px; font-size:.55rem; }
.booking-finance-forms { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin-top:1rem; }.booking-finance-forms form { display:grid; align-content:start; gap:.55rem; padding:.8rem; border:1px solid var(--row-line); border-radius:10px; background:var(--surface-soft); }.booking-finance-forms form > strong { font-size:.68rem; }.booking-finance-forms label { display:grid; gap:.25rem; }.booking-finance-forms label > span { color:var(--muted); font-size:.5rem; font-weight:800; }.booking-finance-forms input,.booking-finance-forms select { width:100%; min-width:0; }
html[data-color-mode="dark"] .calendar-booking-span[style*="--unit-accent"],html[data-color-mode="dark"] .listing-timeline-booking[style*="--unit-accent"] { color:var(--unit-ink); background:var(--unit-fill,var(--unit-soft)); }
@media (max-width:900px) { .booking-finance-metrics { grid-template-columns:1fr 1fr; }.booking-finance-forms { grid-template-columns:1fr; } }
@media (max-width:680px) { .booking-extension-form { grid-template-columns:1fr; }.booking-extension-preview,.booking-extension-notes,.booking-extension-form > .button { grid-column:auto; }.booking-extension-form > .button { width:100%; }.booking-extension-history article { grid-template-columns:auto minmax(0,1fr); }.booking-extension-value { grid-column:2; justify-items:start; } }
.booking-expense-card { margin-top:1rem; }.booking-expense-list { display:grid; border:1px solid var(--row-line); border-radius:10px; overflow:hidden; }.booking-expense-list > p { margin:0; padding:1rem; color:var(--muted); font-size:.62rem; text-align:center; }.booking-expense-entry { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:1rem; padding:.8rem; border-bottom:1px solid var(--row-line); }.booking-expense-entry:last-child { border-bottom:0; }.booking-expense-entry > div:first-child { display:grid; gap:.16rem; }.booking-expense-entry small,.booking-expense-entry span,.booking-expense-entry p { margin:0; color:var(--muted); font-size:.52rem; }.booking-expense-entry strong { font-size:.67rem; }.booking-expense-amount { display:grid; justify-items:end; gap:.3rem; }.booking-expense-amount b { color:var(--forest); font-size:.72rem; }.booking-expense-entry form { display:flex; gap:.35rem; }.booking-expense-entry form select { min-width:120px; }.booking-expense-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; margin-top:1rem; padding:1rem; border:1px solid var(--row-line); border-radius:10px; background:var(--surface-soft); }.booking-expense-form .field-group { min-width:0; }.booking-expense-form input,.booking-expense-form select { width:100%; min-width:0; }.booking-expense-form > button { grid-column:1/-1; justify-self:end; }
.booking-expense-form-heading,.booking-expense-form-error,.booking-expense-choice-grid { grid-column:1/-1; }.booking-expense-form-heading { display:grid; gap:.2rem; }.booking-expense-form-heading strong { font-size:.72rem; }.booking-expense-form-heading small { color:var(--muted); font-size:.55rem; }.booking-expense-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }.booking-expense-choice { border:1px solid var(--row-line); border-radius:10px; background:var(--surface); overflow:hidden; }.booking-expense-choice.selected { border-color:color-mix(in srgb,var(--forest) 45%,var(--row-line)); }.booking-expense-choice-toggle { display:flex; padding:.75rem; cursor:pointer; }.booking-expense-choice-toggle > input:not([type="hidden"]) { width:auto; margin:.15rem .55rem 0 0; }.booking-expense-choice-toggle > span { display:grid; gap:.12rem; }.booking-expense-choice-toggle strong { font-size:.65rem; }.booking-expense-choice-toggle small { color:var(--muted); font-size:.5rem; }.booking-expense-choice-fields { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; padding:.75rem; border-top:1px solid var(--row-line); }.booking-expense-choice-note { grid-column:1/-1; }
.private-file-links { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem; margin-top:.35rem; }.private-file-links a { color:var(--forest); font-size:.5rem; font-weight:700; text-decoration:underline; }.expense-payment-form,.service-completion-form { display:grid !important; gap:.4rem !important; min-width:210px; }.expense-payment-form label,.service-completion-form label { display:grid; gap:.25rem; font-size:.5rem; font-weight:700; }.expense-payment-form input,.service-completion-form input { width:100%; min-width:0; font-size:.48rem; }.expense-payment-form button,.service-completion-form button { justify-self:end; }
.service-work-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; margin-bottom:1rem; }.service-work-metrics article { display:grid; gap:.35rem; padding:1rem; border:1px solid var(--card-line); border-radius:14px; background:var(--surface); box-shadow:var(--card-shadow); }.service-work-metrics small { color:var(--muted); font-size:.55rem; }.service-work-metrics strong { color:var(--forest); font-size:1rem; }.service-work-panel { padding:1.1rem; border:1px solid var(--card-line); border-radius:16px; background:var(--surface); box-shadow:var(--card-shadow); }.service-work-list { display:grid; gap:.65rem; }.service-work-card { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:1rem; padding:.85rem; border:1px solid var(--row-line); border-radius:10px; background:var(--surface-soft); }.service-work-card > div:first-child { display:grid; gap:.18rem; }.service-work-card h3,.service-work-card p { margin:0; }.service-work-card h3 { font-size:.72rem; }.service-work-card p,.service-work-card small { color:var(--muted); font-size:.53rem; }.service-work-value { display:grid; justify-items:end; gap:.3rem; }.service-work-value > strong { color:var(--forest); font-size:.78rem; }
.service-application-panel { margin-bottom:1rem; }.service-application-list,.service-host-list,.my-provider-applications { display:grid; gap:.65rem; }.service-application-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.65fr); gap:1rem; padding:.85rem; border:1px solid var(--row-line); border-radius:10px; background:var(--surface-soft); }.service-application-card > div:first-child { display:grid; gap:.2rem; }.service-application-card h3,.service-application-card p { margin:0; }.service-application-card h3 { font-size:.72rem; }.service-application-card p,.service-application-card small { color:var(--muted); font-size:.53rem; }.service-application-card strong { font-size:.6rem; }.service-application-actions { display:grid; gap:.45rem; }.service-application-actions form { display:flex; gap:.4rem; }.service-application-actions input { min-width:0; flex:1; }.my-provider-applications { grid-template-columns:repeat(3,minmax(0,1fr)); margin-bottom:.8rem; }.my-provider-applications article { display:grid; gap:.25rem; padding:.75rem; border:1px solid var(--row-line); border-radius:9px; background:var(--surface-soft); }.my-provider-applications strong { font-size:.65rem; }.my-provider-applications small,.my-provider-applications p { margin:0; color:var(--muted); font-size:.51rem; }.service-host-card { border:1px solid var(--row-line); border-radius:10px; background:var(--surface-soft); overflow:hidden; }.service-host-card > summary { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.65rem; padding:.8rem; cursor:pointer; list-style:none; }.service-host-card > summary::-webkit-details-marker { display:none; }.service-host-card > summary > span { font-size:1rem; }.service-host-card > summary > div { display:grid; gap:.12rem; }.service-host-card > summary strong { font-size:.67rem; }.service-host-card > summary small { color:var(--muted); font-size:.5rem; }.service-host-card > summary b { color:var(--forest); font-size:.55rem; }.service-host-card > form { display:grid; gap:.75rem; padding:.85rem; border-top:1px solid var(--row-line); background:var(--surface); }.service-host-card fieldset { min-width:0; border:0; padding:0; margin:0; }.service-host-card legend { margin-bottom:.45rem; font-size:.58rem; font-weight:800; }
.host-service-overview { display:grid; gap:1rem; padding:1.1rem; margin-bottom:1rem; border:1px solid var(--card-line); border-radius:16px; background:var(--surface); box-shadow:var(--card-shadow); }.host-service-summary-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.7rem; }.host-service-summary-grid article { display:grid; align-content:start; gap:.25rem; min-height:100px; padding:.8rem; border:1px solid var(--row-line); border-radius:11px; background:var(--surface-soft); }.host-service-summary-grid article.attention { border-color:#e7b856; background:#fff8df; }.host-service-summary-grid small,.host-service-summary-grid span { color:var(--muted); font-size:.5rem; }.host-service-summary-grid strong { color:var(--forest); font:800 .92rem Manrope; }.host-service-chart-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:.8rem; }.host-service-chart-card { display:grid; gap:.8rem; min-width:0; padding:.9rem; border:1px solid var(--row-line); border-radius:12px; background:var(--surface-soft); }.host-service-chart-card h3 { margin:.18rem 0 0; font-size:.72rem; }.service-status-chart { display:grid; gap:.5rem; }.service-status-chart > div { --status-color:#6b7280; display:grid; grid-template-columns:minmax(145px,.8fr) minmax(80px,1fr) 28px; align-items:center; gap:.5rem; }.service-status-chart > .status-assigned { --status-color:#2563eb; }.service-status-chart > .status-completed { --status-color:#d97706; }.service-status-chart > .status-paid { --status-color:#7c3aed; }.service-status-chart > .status-payment_received { --status-color:#15803d; }.service-status-chart span,.service-status-chart b { font-size:.49rem; }.service-status-chart span { color:var(--muted); }.service-status-chart b { text-align:right; }.service-status-chart > div > div { height:8px; overflow:hidden; border-radius:99px; background:var(--row-line); }.service-status-chart i { display:block; width:var(--status-width); height:100%; border-radius:inherit; background:var(--status-color); }.service-month-chart { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); align-items:end; gap:.45rem; min-height:155px; padding-top:1rem; }.service-month-chart > div { display:grid; grid-template-rows:auto 115px auto; align-items:end; justify-items:center; gap:.3rem; min-width:0; }.service-month-chart b,.service-month-chart span { font-size:.46rem; }.service-month-chart b { max-width:100%; overflow:hidden; color:var(--muted); text-overflow:ellipsis; white-space:nowrap; }.service-month-chart i { display:block; width:min(28px,70%); height:max(4px,var(--month-height)); max-height:115px; border-radius:7px 7px 3px 3px; background:linear-gradient(180deg,var(--forest),#5c877a); }.service-status-filter { display:flex; align-items:end; gap:.65rem; padding:.8rem; margin-bottom:.8rem; border:1px solid var(--row-line); border-radius:11px; background:var(--surface-soft); }.service-status-filter fieldset { flex:1; min-width:0; padding:0; border:0; }.service-status-filter legend { margin-bottom:.45rem; font-size:.55rem; font-weight:900; }.service-status-filter fieldset > div { display:flex; flex-wrap:wrap; gap:.4rem; }.service-status-filter label { --status-color:#6b7280; display:flex; align-items:center; gap:.35rem; min-height:2rem; padding:.35rem .5rem; border:1px solid var(--row-line); border-radius:8px; background:var(--surface); cursor:pointer; }.service-status-filter label.status-assigned { --status-color:#2563eb; }.service-status-filter label.status-completed { --status-color:#d97706; }.service-status-filter label.status-paid { --status-color:#7c3aed; }.service-status-filter label.status-payment_received { --status-color:#15803d; }.service-status-filter label:has(input:checked) { border-color:var(--status-color); box-shadow:inset 3px 0 var(--status-color); }.service-status-filter input { width:auto; margin:0; }.service-status-filter label span,.service-status-filter label b,.service-status-filter > a { font-size:.49rem; }.service-status-filter label b { display:grid; place-items:center; min-width:1.15rem; height:1.15rem; border-radius:99px; color:white; background:var(--status-color); }.service-status-filter > a { color:var(--forest); font-weight:900; white-space:nowrap; }.host-service-request-list { display:grid; gap:.7rem; }.host-service-request { display:grid; gap:.7rem; padding:.9rem; border:1px solid var(--row-line); border-left:4px solid #6b7280; border-radius:11px; background:var(--surface-soft); }.host-service-request.status-assigned { border-left-color:#2563eb; }.host-service-request.status-completed { border-left-color:#d97706; }.host-service-request.status-paid { border-left-color:#7c3aed; }.host-service-request.status-payment_received { border-left-color:#15803d; }.host-service-request-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }.host-service-request-heading > div { display:grid; gap:.18rem; }.host-service-request-heading > div:last-child { justify-items:end; }.host-service-request-heading h3,.host-service-request-heading p { margin:0; }.host-service-request-heading h3 { font-size:.72rem; }.host-service-request-heading p,.host-service-request-heading small { color:var(--muted); font-size:.51rem; }.host-service-request-heading strong { color:var(--forest); font-size:.75rem; }.service-request-timeline { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:0; margin:0; list-style:none; }.service-request-timeline li { position:relative; display:grid; justify-items:center; gap:.3rem; color:var(--muted); font-size:.47rem; text-align:center; }.service-request-timeline li::before { position:absolute; top:7px; right:50%; width:100%; height:2px; content:""; background:var(--row-line); }.service-request-timeline li:first-child::before { display:none; }.service-request-timeline i { z-index:1; width:15px; height:15px; border:3px solid var(--row-line); border-radius:50%; background:var(--surface); }.service-request-timeline li.complete::before,.service-request-timeline li.current::before { background:var(--forest); }.service-request-timeline li.complete i,.service-request-timeline li.current i { border-color:var(--forest); background:var(--forest); }.service-request-timeline li.current { color:var(--forest); font-weight:900; }.service-request-notes,.service-request-cancelled { margin:0; padding:.55rem; border-radius:8px; color:var(--muted); background:var(--surface); font-size:.52rem; }.service-request-cancelled { color:#991b1b; background:#fef2f2; }.host-service-request-footer { display:flex; align-items:end; justify-content:space-between; gap:1rem; border-top:1px solid var(--row-line); padding-top:.6rem; }.host-service-pay-form { display:flex; align-items:end; gap:.45rem; }.host-service-pay-form label { display:grid; gap:.22rem; color:var(--muted); font-size:.48rem; font-weight:800; }.host-service-pay-form input { width:210px; min-width:0; font-size:.46rem; }
html[data-color-mode="dark"] .host-service-summary-grid article.attention { border-color:#7e6730; background:#342e1c; }html[data-color-mode="dark"] .service-request-cancelled { color:#f0aaa4; background:#382522; }
@media (max-width:900px) { .booking-expense-entry,.service-work-card,.service-application-card { grid-template-columns:1fr; align-items:stretch; }.booking-expense-amount,.service-work-value { justify-items:start; }.booking-expense-entry form,.service-application-actions form { flex-wrap:wrap; }.booking-expense-form,.service-work-metrics,.booking-expense-choice-grid,.booking-expense-choice-fields,.my-provider-applications { grid-template-columns:1fr; }.booking-expense-choice-note { grid-column:auto; }.booking-expense-form > button { grid-column:auto; width:100%; } }
@media (max-width:1100px) { .host-service-summary-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.host-service-chart-grid { grid-template-columns:1fr; } }
@media (max-width:760px) { .host-service-summary-grid { grid-template-columns:1fr 1fr; }.service-status-filter,.host-service-request-footer,.host-service-request-heading { align-items:stretch; flex-direction:column; }.service-status-filter fieldset > div { display:grid; grid-template-columns:1fr; }.service-status-filter label { width:100%; }.host-service-request-heading > div:last-child { justify-items:start; }.host-service-pay-form { display:grid; align-items:stretch; width:100%; }.host-service-pay-form input { width:100%; }.service-status-chart > div { grid-template-columns:minmax(115px,.9fr) minmax(70px,1fr) 24px; } }
@media (max-width:480px) { .host-service-summary-grid { grid-template-columns:1fr; }.service-month-chart { gap:.2rem; }.service-month-chart b { font-size:.4rem; }.service-request-timeline li span { font-size:.41rem; } }

.money-input { display:grid; grid-template-columns:2.8rem minmax(0,1fr); align-items:stretch; width:100%; min-height:3.35rem; overflow:hidden; border:1px solid #d4ddd9; border-radius:11px; background:#fbfcfa; transition:border .18s,box-shadow .18s,background .18s; }.money-input:focus-within { border-color:#4d7c6f; box-shadow:0 0 0 4px rgba(77,124,111,.1); background:white; }.money-input > span { display:grid; place-items:center; border-right:1px solid #e0e7e3; color:var(--forest); font-weight:900; }.money-input > input { width:100%; height:100%; min-height:0!important; padding:.8rem 1rem!important; border:0!important; border-radius:0!important; outline:0!important; background:transparent!important; box-shadow:none!important; font-variant-numeric:tabular-nums; }.money-input > input:focus { box-shadow:none!important; }html[data-color-mode="dark"] .money-input { border-color:var(--card-line); background:var(--surface-soft); }html[data-color-mode="dark"] .money-input:focus-within { background:var(--surface); }
@media (max-width:680px) { .booking-finance-edit form { grid-template-columns:1fr; }.booking-finance-edit-wide,.booking-finance-edit-actions { grid-column:auto; }.booking-finance-edit-actions,.booking-finance-history li > div { align-items:stretch; flex-direction:column; } }

.sidebar-notification-badge { display: inline-grid; place-items: center; min-width: 1.35rem; height: 1.35rem; padding: 0 .32rem; margin-left: auto; border: 2px solid color-mix(in srgb, var(--forest) 82%, black); border-radius: 99px; color: #173c34; background: var(--lime); font-size: .58rem; font-weight: 900; line-height: 1; }
.sidebar-nav a.active .sidebar-notification-badge { border-color: var(--forest); color: white; background: var(--forest); }
.sidebar-notification-badge.attention { color: #fff; background: #c2702d; }
.identity-selfie-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.selfie-upload-card { display: grid; justify-items: center; gap: .5rem; min-width: 0; padding: 1rem; border: 1px solid var(--card-line); border-radius: 15px; background: var(--surface-soft); text-align: center; transition: border-color .18s, box-shadow .18s, transform .18s; }
.selfie-upload-card:hover, .selfie-upload-card:focus-within { border-color: var(--forest); box-shadow: 0 0 0 4px color-mix(in srgb, var(--forest) 10%, transparent); transform: translateY(-1px); }
.selfie-preview { position: relative; display: grid; place-items: center; width: min(100%, 340px); aspect-ratio: 4 / 3; overflow: hidden; border: 1px dashed #8da59b; border-radius: 13px; color: var(--muted); background: var(--surface-tint); }
.selfie-preview.face-preview { width: min(230px, 80%); aspect-ratio: 1; border-radius: 50%; }
.selfie-preview img { width: 100%; height: 100%; object-fit: cover; }.selfie-preview.id-hold-preview img { object-fit: contain; }
.selfie-preview.face-preview i { position: absolute; inset: 10% 21%; border: 2px dashed rgba(255, 255, 255, .95); border-radius: 48% 48% 45% 45%; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .55)); pointer-events: none; }
.selfie-placeholder { width: 75%; color: var(--muted); font-size: .62rem; font-weight: 800; line-height: 1.45; }
.selfie-upload-card > strong { font: 800 .78rem Manrope; }.selfie-upload-card > small { max-width: 390px; color: var(--muted); font-size: .59rem; line-height: 1.5; }
.selfie-file-action { display: inline-flex; min-height: 2.4rem; align-items: center; justify-content: center; padding: .55rem .75rem; margin-top: .25rem; border: 0; border-radius: 9px; color: white; background: var(--forest); font-size: .62rem; font-weight: 800; cursor: pointer; }
.selfie-upload-card input[type="file"] { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.selfie-upload-card .error-text { font-size: .6rem; }.camera-requirement-error { margin: .9rem 0 0; text-align: center; }.camera-requirement-error[hidden] { display: none; }.identity-privacy-note { margin: .9rem 0 0; color: var(--muted); font-size: .58rem; text-align: center; }
.admin-identity-grid { display: grid; grid-template-columns: minmax(180px, .65fr) minmax(260px, 1fr); gap: 1rem; }.admin-identity-grid figure { display: grid; justify-items: center; gap: .55rem; margin: 0; }.admin-identity-grid figure > div { display: grid; place-items: center; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; border: 1px solid var(--card-line); border-radius: 13px; color: var(--muted); background: var(--surface-tint); }.admin-identity-grid .admin-face-selfie { width: min(100%, 260px); aspect-ratio: 1; border-radius: 50%; }.admin-identity-grid img { width: 100%; height: 100%; object-fit: cover; }.admin-identity-grid figure:nth-child(2) img { object-fit: contain; }.admin-identity-grid figcaption { color: var(--muted); font-size: .6rem; font-weight: 800; }.identity-missing-warning { padding: .7rem; margin: .9rem 0 0; border: 1px solid #d39a91; border-radius: 9px; color: #91433c; background: #fff1ef; font-size: .62rem; font-weight: 800; }
html[data-color-mode="dark"] .identity-missing-warning { border-color: #76504b; color: #e2aaa4; background: #382522; }
.selfie-camera-dialog { width: min(94vw, 720px); max-height: 94dvh; padding: 0; overflow: auto; border: 0; border-radius: 20px; color: var(--ink); background: var(--surface); box-shadow: 0 28px 80px rgba(8, 24, 19, .38); }.selfie-camera-dialog::backdrop { background: rgba(4, 13, 10, .78); backdrop-filter: blur(5px); }.selfie-camera-panel { padding: 1.1rem; }.selfie-camera-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }.selfie-camera-panel > header h2 { margin: .25rem 0 0; font: 800 1.2rem Manrope; }.selfie-camera-panel > header button { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border: 0; border-radius: 50%; color: var(--ink); background: var(--surface-tint); font-size: 1.4rem; cursor: pointer; }.selfie-camera-panel > p { margin: .7rem 0; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.camera-capture-stage { position: relative; display: grid; place-items: center; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 16px; background: #08110e; }.camera-capture-stage video, .camera-capture-stage > img { width: 100%; height: 100%; object-fit: contain; }.camera-face-guide { display: none; position: absolute; inset: 12% 32%; border: 3px solid rgba(255,255,255,.95); border-radius: 48% 48% 45% 45%; box-shadow: 0 0 0 999px rgba(0,0,0,.25), 0 0 18px rgba(0,0,0,.45); pointer-events: none; }.selfie-camera-dialog[data-camera-mode="face"] .camera-face-guide { display: block; }.selfie-camera-dialog[data-camera-mode="id"] .camera-face-guide { display: block; inset: 12% 50% 18% 8%; box-shadow: 0 0 18px rgba(0,0,0,.45); }.camera-id-guide { display: none; position: absolute; right: 5%; bottom: 6%; width: 34%; aspect-ratio: 1.58; border: 3px dashed rgba(255,255,255,.96); border-radius: 10px; place-items: center; color: white; background: rgba(0,0,0,.18); text-align: center; pointer-events: none; }.camera-id-guide i { width: 80%; font-size: .56rem; font-style: normal; font-weight: 800; text-shadow: 0 1px 3px black; }.selfie-camera-dialog[data-camera-mode="id"] .camera-id-guide { display: grid; }.camera-status { min-height: 1.2rem; text-align: center; }.camera-actions { display: flex; justify-content: flex-end; gap: .6rem; flex-wrap: wrap; }.camera-actions .button { min-height: 2.75rem; }

@media (max-width: 740px) {
    .identity-selfie-grid, .admin-identity-grid { grid-template-columns: 1fr; }.selfie-preview.face-preview { width: min(210px, 85%); }.admin-identity-grid .admin-face-selfie { width: min(220px, 85%); }.selfie-camera-dialog { width: 100vw; max-width: none; max-height: 100dvh; margin: auto 0 0; border-radius: 20px 20px 0 0; }.selfie-camera-panel { padding: .85rem; }.camera-capture-stage { aspect-ratio: 3 / 4; }.camera-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }.camera-actions .button { width: 100%; }.camera-face-guide { inset: 15% 20% 30%; }.selfie-camera-dialog[data-camera-mode="id"] .camera-face-guide { inset: 13% 52% 36% 7%; }.camera-id-guide { right: 5%; bottom: 5%; width: 43%; }
}

@media (min-width: 741px) {
    .sidebar-toggle, .sidebar-scrim { display: none !important; }
}

@media (max-width: 480px) {
    .brand { gap: .5rem; font-size: .92rem; }.brand-mark { width: 2.95rem; height: 2.15rem; }.nav-actions .button { padding: .55rem .75rem; }.calendar-grid > a { font-size: .65rem; }.floating-stat { display: none; }
    .field-row { grid-template-columns: 1fr; }.setup-card { display: block; }.setup-card .setup-icon { margin-bottom: 1rem; }.stat-grid, .service-grid { grid-template-columns: 1fr; }.accounts-summary { grid-template-columns: 1fr 1fr; }.accounts-summary .account-summary-stat:first-child { grid-column: 1 / -1; }.account-summary-stat + .account-summary-stat { padding-left: 0; border-left: 0; }.accounts-summary p { grid-column: 1 / -1; }.edit-form-actions { align-items: stretch; flex-direction: column-reverse; }.edit-form-actions .button { width: 100%; }
    .market-hero-points, .marketing-unit-grid, .host-unit-grid { grid-template-columns: 1fr; }.market-hero-points span { border-top: 1px solid var(--row-line); border-left: 0; }.market-hero-points span:first-child { border-top: 0; }.overview-section-heading { align-items: start; flex-direction: column; }.overview-booking-list > a { grid-template-columns: 54px minmax(0, 1fr); }.overview-booking-list > a b, .host-booking-list .booking-status { display: none; }
    .map-address-row { grid-template-columns: 1fr; }.map-address-row input { grid-column: auto; }.map-toolbar { align-items: stretch; flex-direction: column; }.map-toolbar > * { width: 100%; }.map-setup-note { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 420px) {
    .landing-nav .brand-name { display: none; }
}

/* Multi-image galleries and category details */
.photo-upload-multiple { min-height: 125px; }
.existing-photo-grid, .new-photo-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; }
.existing-photo-grid { margin-bottom: .8rem; }.new-photo-grid:not(:empty) { margin-bottom: .8rem; }
.existing-photo, .new-photo-preview { position: relative; display: block; overflow: hidden; border: 1px solid var(--card-line); border-radius: 11px; background: var(--surface-soft); }
.existing-photo img, .new-photo-grid img { display: block; width: 100%; height: 120px; border-radius: 10px; object-fit: cover; }
.photo-controls { display: flex; align-items: center; justify-content: space-between; gap: .35rem; padding: .45rem .5rem; }
.photo-choice { display: inline-flex; align-items: center; gap: .28rem; color: var(--muted); font-size: .6rem; font-weight: 700; cursor: pointer; }
.listing-photo-field .photo-choice input[type="checkbox"], .listing-photo-field .photo-choice input[type="radio"] { flex: 0 0 auto; width: .78rem; height: .78rem; min-height: 0; padding: 0; margin: 0; border: 0; border-radius: 0; box-shadow: none; accent-color: var(--forest); }
.listing-photo-field .remove-choice input[type="checkbox"] { accent-color: var(--danger); }
.photo-marked-remove { opacity: .48; }
.photo-marked-remove img { filter: grayscale(1); }
.rental-rate-option { padding: .7rem; border: 1px solid var(--card-line); border-radius: 10px; background: var(--surface); transition: opacity .18s, background .18s; }.rental-rate-option.rate-not-offered { opacity: .55; background: var(--surface-soft); }
.rate-offer-toggle { display: flex; align-items: center; gap: .45rem; cursor: pointer; }.rate-offer-toggle input { width: 1rem; height: 1rem; accent-color: var(--forest); }.rate-offer-toggle span { font-size: .72rem; font-weight: 800; }
.category-detail-fields { grid-column: 1 / -1; min-width: 0; padding: 1.1rem; margin: 0; border: 1px solid var(--card-line); border-radius: 14px; background: var(--surface-soft); }.category-detail-fields legend { width: 100%; padding: 0 0 .9rem; }.category-detail-fields legend strong { display: block; margin-top: .3rem; font: 800 .9rem Manrope; }
.detail-field-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }.option-check-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; margin-top: .9rem; }.option-check-grid label { position: relative; cursor: pointer; }.option-check-grid input { position: absolute; width: 1px; height: 1px; opacity: 0; }.option-check-grid span { display: block; padding: .55rem .65rem; border: 1px solid var(--card-line); border-radius: 8px; color: var(--muted); background: var(--surface); font-size: .65rem; font-weight: 700; text-align: center; }.option-check-grid input:checked + span { border-color: var(--forest); color: var(--forest); background: var(--mint); }
.listing-photo { position: relative; }.photo-count { position: absolute; right: .6rem; bottom: .6rem; padding: .3rem .5rem; border-radius: 99px; color: white; background: rgba(14, 34, 28, .78); font-size: .58rem; font-weight: 800; }
.listing-detail-summary { display: grid; gap: .15rem; padding: .65rem .7rem; margin-bottom: .55rem; border-radius: 9px; background: var(--surface-tint); }.listing-detail-summary strong { font-size: .7rem; }.listing-detail-summary small { color: var(--muted); font-size: .6rem; }.detail-chip-list { display: flex; flex-wrap: wrap; gap: .3rem; margin-bottom: .7rem; }.detail-chip-list span { padding: .28rem .42rem; border: 1px solid var(--card-line); border-radius: 99px; color: var(--muted); font-size: .55rem; font-weight: 700; }

@media (max-width: 740px) {
    .existing-photo-grid, .new-photo-grid { grid-template-columns: 1fr 1fr; }
    .detail-field-grid { grid-template-columns: 1fr 1fr; }
    .option-check-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 480px) {
    .detail-field-grid { grid-template-columns: 1fr; }
}

/* Listing photos and package rates */
.listing-photo-field { grid-column: 1 / -1; }
.listing-photo-field > input[type="file"] { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.photo-upload { position: relative; display: grid; place-items: center; min-height: 210px; overflow: hidden; border: 1px dashed #b8c8c1; border-radius: 14px; background: var(--surface-soft); cursor: pointer; }
.photo-upload:hover { border-color: var(--forest); background: var(--surface-tint); }
.photo-upload img { width: 100%; height: 250px; object-fit: cover; }
.photo-upload > span { display: grid; justify-items: center; gap: .35rem; padding: 2rem; color: var(--muted); text-align: center; }
.photo-upload > span::before { content: "＋"; display: grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: .25rem; border-radius: 50%; color: var(--forest); background: var(--lime); font-size: 1.15rem; font-weight: 800; }
.photo-upload strong { color: var(--ink); font-size: .85rem; }.photo-upload small { font-size: .7rem; }
.photo-upload.photo-upload-multiple { min-height: 92px; }
.photo-upload.photo-upload-multiple > span { grid-template-columns: auto minmax(0, 1fr); justify-items: start; align-items: center; column-gap: .75rem; padding: .85rem 1rem; text-align: left; }
.photo-upload.photo-upload-multiple > span::before { grid-row: 1 / span 2; width: 2.4rem; height: 2.4rem; margin: 0; }
.standard-rate-fields { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.rental-rate-fields { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; min-width: 0; padding: 1.1rem; margin: 0; border: 1px solid var(--card-line); border-radius: 14px; background: var(--surface-tint); }
.rental-rate-fields legend { display: block; width: 100%; padding: 0 0 .9rem; }
.rental-rate-fields legend strong { display: block; margin-top: .3rem; font: 800 .9rem Manrope; }
.rental-rate-fields [data-condo-rate-set] { display: contents; }
.car-coverage-rates { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
.car-coverage-rates > .detail-subheading, .car-coverage-rates > .error-text { grid-column: 1 / -1; }
.rental-coverage-card { min-width: 0; padding: .9rem; border: 1px solid var(--card-line); border-radius: 12px; background: var(--surface); transition: opacity .18s, background .18s; }
.rental-coverage-card.rate-not-offered { background: var(--surface-soft); }
.rental-coverage-toggle { display: flex; align-items: flex-start; gap: .6rem; cursor: pointer; }
.rental-coverage-toggle input { flex: 0 0 auto; width: 1rem; height: 1rem; margin-top: .15rem; accent-color: var(--forest); }
.rental-coverage-toggle span { display: grid; gap: .15rem; }
.rental-coverage-toggle strong { font-size: .73rem; }
.rental-coverage-toggle small { color: var(--muted); font-size: .61rem; line-height: 1.4; }
.rental-coverage-options { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-top: .8rem; }
.rental-coverage-choice { margin-bottom: .85rem; }
.currency-input { position: relative; }.currency-input > span { position: absolute; z-index: 1; top: 50%; left: .85rem; color: var(--muted); font-weight: 700; transform: translateY(-50%); }.currency-input input { padding-left: 1.75rem; }
.listing-photo { height: 155px; margin: -1.25rem -1.25rem 1rem; overflow: hidden; border-radius: 16px 16px 0 0; background: var(--surface-tint); }
.listing-photo img { width: 100%; height: 100%; object-fit: cover; }.listing-photo > span { display: grid; place-items: center; height: 100%; font-size: 2rem; }
.rental-rate-list { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; padding: .8rem 0; border-top: 1px solid var(--row-line); }.rental-rate-list span { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .42rem .5rem; border-radius: 7px; background: var(--surface-tint); }.rental-rate-list small { color: var(--muted); font-size: .57rem; }.rental-rate-list strong { font-size: .64rem; }
.rate-setup-note { min-height: 0 !important; padding: .7rem; margin: 0 0 .75rem !important; border-radius: 8px; color: #7a5c20 !important; background: #fff3d8; font-size: .65rem !important; }
.availability-photo { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 8px; object-fit: cover; }
.availability-photo-placeholder { border: 1px solid var(--row-line); background: var(--surface); font-size: .9rem; }
.field-help { color: var(--muted); font-size: .66rem; line-height: 1.45; }
[hidden] { display: none !important; }

@media (max-width: 740px) {
    .rental-rate-fields { grid-template-columns: 1fr 1fr; }
    .car-coverage-rates { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .standard-rate-fields, .rental-rate-fields { grid-template-columns: 1fr; }
    .rental-coverage-options { grid-template-columns: 1fr; }
    .photo-upload { min-height: 170px; }.photo-upload img { height: 200px; }
}

/* Account roles */
.role-selector { min-width: 0; padding: 0; margin: 0; border: 0; }
.role-selector legend { margin-bottom: .55rem; color: #35443f; font-size: .83rem; font-weight: 700; }
.role-options { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.role-options label { position: relative; display: block; cursor: pointer; }
.role-options input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.role-options label > span { display: grid; gap: .2rem; min-height: 4.25rem; padding: .8rem .95rem; border: 1px solid #d4ddd9; border-radius: 11px; background: #fbfcfa; transition: border .18s, background .18s, box-shadow .18s; }
.role-options strong { font-size: .8rem; }
.role-options small { color: var(--muted); font-size: .68rem; }
.role-options input:checked + span { border-color: var(--forest); background: var(--mint); box-shadow: 0 0 0 2px color-mix(in srgb, var(--forest) 9%, transparent); }
.role-options input:focus-visible + span { outline: 3px solid color-mix(in srgb, var(--forest) 22%, transparent); outline-offset: 1px; }
.header-actions { display: flex; align-items: center; gap: .8rem; }
.setup-link { display: inline-block; margin-top: .8rem; color: var(--forest); font-size: .8rem; font-weight: 800; text-underline-offset: 3px; }

/* Listings */
.listing-section, .booking-calendar-section { margin-top: 2rem; }
.listing-summary-bar { display: grid; grid-template-columns: repeat(3, minmax(100px, .45fr)) minmax(260px, 1.4fr); align-items: center; gap: 1.25rem; padding: 1.25rem 1.5rem; border: 1px solid var(--card-line); border-radius: 16px; background: var(--surface-tint); }
.listing-summary-bar > div + div { padding-left: 1.25rem; border-left: 1px solid var(--card-line); }
.listing-summary-bar strong { display: block; margin-top: .25rem; font: 800 1.65rem Manrope; }
.listing-summary-bar p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.listing-grid { display: grid; grid-template-columns: repeat(3, minmax(240px, 1fr)); gap: 1rem; margin-top: 1rem; }
.listing-card { display: flex; flex-direction: column; min-width: 0; padding: 1.25rem; border: 1px solid var(--card-line); border-radius: 16px; background: var(--surface); box-shadow: var(--card-shadow); }
.listing-card-top { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.listing-icon { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: 12px; background: var(--surface-tint); font-size: 1.15rem; }
.availability-badge { display: inline-flex; align-items: center; width: max-content; padding: .32rem .55rem; border-radius: 99px; font-size: .62rem; font-weight: 800; white-space: nowrap; }
.availability-badge.available { color: #2f735d; background: #e1f3ea; }
.availability-badge.booked { color: #8a6121; background: #fff0cb; }
.availability-badge.unavailable { color: #8d4741; background: #f7e4e1; }
.listing-kind { margin-top: 1rem; color: var(--muted); font-size: .64rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.listing-card h2 { margin: .35rem 0 .45rem; font: 800 1.2rem Manrope; letter-spacing: -.03em; }
.listing-card > p { min-height: 3.4em; margin: 0 0 1rem; color: var(--muted); font-size: .75rem; line-height: 1.55; }
.listing-meta { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; padding: .85rem 0; margin-top: auto; border-top: 1px solid var(--row-line); }
.listing-meta span { display: grid; gap: .18rem; min-width: 0; }
.listing-meta small { color: var(--muted); font-size: .62rem; }
.listing-meta strong { overflow: hidden; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.listing-card-actions { display: flex; align-items: center; gap: .7rem; padding-top: .8rem; border-top: 1px solid var(--row-line); }
.listing-card-actions a, .listing-card-actions button { padding: 0; border: 0; color: var(--forest); background: transparent; font-size: .68rem; font-weight: 800; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.listing-card-actions button { color: var(--danger); }
.listing-moderation-actions { display: flex; align-items: center; gap: .6rem; margin-left: auto; }
.listing-moderation-actions form { margin: 0; }
.listing-moderation-actions button.availability-action { color: var(--forest); }
.listing-moderation-actions > span { color: var(--muted); font-size: .6rem; font-weight: 700; white-space: nowrap; }
.listing-delete-dialog { width: min(92vw, 500px); padding: 0; border: 0; border-radius: 20px; color: var(--ink); background: var(--surface); box-shadow: 0 24px 70px rgba(15, 36, 30, .3); }
.listing-delete-dialog::backdrop { background: rgba(10, 25, 21, .6); backdrop-filter: blur(3px); }
.listing-delete-dialog-panel { padding: 1.5rem; }
.listing-delete-dialog h2 { margin: .3rem 0 .55rem; font: 800 1.35rem Manrope; }
.listing-delete-dialog p { margin: 0; color: var(--muted); line-height: 1.6; }
.listing-delete-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.35rem; }
.listing-record-summary { display: flex; align-items: center; gap: .55rem; padding: .55rem .65rem; margin-bottom: .75rem; border: 1px solid var(--card-line); border-radius: 9px; background: var(--surface-tint); }
.listing-record-summary > strong { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; color: var(--forest); background: var(--lime); font-size: .7rem; }
.listing-record-summary > span { display: grid; color: var(--ink); font-size: .62rem; font-weight: 800; }
.listing-record-summary small { margin-top: .08rem; color: var(--muted); font-size: .54rem; font-weight: 600; }
.empty-listing-state { grid-column: 1 / -1; padding: clamp(2rem, 6vw, 5rem); border: 1px dashed var(--card-line); border-radius: 18px; background: var(--surface); text-align: center; }
.empty-listing-state > span { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; margin: 0 auto 1rem; border-radius: 50%; color: var(--forest); background: var(--lime); font-size: 1.3rem; }
.empty-listing-state h2 { margin: 0; font: 800 1.4rem Manrope; }
.empty-listing-state p { margin: .5rem auto 1.3rem; color: var(--muted); font-size: .8rem; }
.listing-form-card { width: min(860px, 100%); margin-top: 2rem; padding: clamp(1.4rem, 3vw, 2.2rem); border: 1px solid var(--card-line); border-radius: 18px; background: var(--surface); box-shadow: var(--card-shadow); }
.form-card-heading { padding-bottom: 1.25rem; margin-bottom: 1.25rem; border-bottom: 1px solid var(--row-line); }
.form-card-heading h2 { margin: .4rem 0 .3rem; font: 800 1.35rem Manrope; letter-spacing: -.035em; }
.form-card-heading p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.5; }
.listing-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.listing-calendar-color-field { display:grid; grid-column:1 / -1; gap:.9rem; padding:1rem; border:1px solid var(--row-line); border-radius:14px; background:var(--surface-soft); }
.listing-calendar-color-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(170px,.42fr); gap:1rem; align-items:stretch; }
.listing-calendar-color-heading > div:first-child { display:grid; align-content:center; gap:.2rem; }.listing-calendar-color-heading strong { font:800 .82rem Manrope; }.listing-calendar-color-heading small { color:var(--muted); font-size:.58rem; line-height:1.5; }
.listing-calendar-color-preview { display:grid; place-items:center; min-height:68px; padding:.8rem; border-radius:10px; color:#fff; box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); text-shadow:0 1px 3px rgba(0,0,0,.5); transition:background .18s; }.listing-calendar-color-preview span { font-size:.62rem; font-weight:900; }.listing-calendar-color-preview.is-automatic { color:var(--muted); text-shadow:none; }
.listing-calendar-color-toggle { display:flex; align-items:center; gap:.65rem; width:max-content; max-width:100%; cursor:pointer; }.listing-calendar-color-toggle input { width:1rem; height:1rem; flex:0 0 auto; min-height:0; padding:0; accent-color:var(--forest); }.listing-calendar-color-toggle > span { display:grid; gap:.08rem; }.listing-calendar-color-toggle strong { font-size:.64rem; }.listing-calendar-color-toggle small { color:var(--muted); font-size:.52rem; }
.listing-calendar-color-controls { display:grid; grid-template-columns:minmax(150px,.75fr) minmax(210px,1fr) minmax(150px,.75fr); gap:.8rem; align-items:center; padding-top:.85rem; border-top:1px solid var(--row-line); transition:opacity .18s; }.listing-calendar-color-controls.is-disabled { opacity:.48; }
.listing-calendar-color-choice { display:grid; grid-template-columns:auto minmax(64px,1fr); gap:.35rem .55rem; align-items:center; }.listing-calendar-color-choice > span { grid-column:1 / -1; color:var(--muted); font-size:.52rem; font-weight:800; text-transform:uppercase; }.listing-calendar-color-choice input[type="color"] { width:100%; height:42px; min-height:0; padding:3px; border:1px solid var(--card-line); border-radius:9px; background:var(--surface); cursor:pointer; }.listing-calendar-color-choice output { color:var(--muted); font:700 .56rem monospace; }
@media (max-width:760px) { .listing-calendar-color-heading { grid-template-columns:1fr; }.listing-calendar-color-controls { grid-template-columns:1fr; }.listing-calendar-color-toggle { width:100%; }.listing-calendar-color-choice { grid-template-columns:minmax(90px,1fr) auto; } }
.listing-name-field, .listing-description-field { grid-column: 1 / -1; }
.optional-label { color: var(--muted); font-size: .65rem; font-weight: 500; }
.availability-toggle { display: flex; align-items: flex-start; gap: .85rem; padding: 1rem; border: 1px solid var(--card-line); border-radius: 12px; background: var(--surface-soft); cursor: pointer; }
.availability-toggle input[type="checkbox"] { width: 1.1rem; height: 1.1rem; margin-top: .1rem; accent-color: var(--forest); }
.availability-toggle span { display: grid; gap: .2rem; }
.availability-toggle strong { font-size: .8rem; }
.availability-toggle small { color: var(--muted); font-size: .7rem; }

/* Calendar and bookings */
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.25rem; border: 1px solid var(--card-line); border-radius: 16px 16px 0 0; background: var(--surface); }
.calendar-mode-switch { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; margin-bottom: 1rem; border: 1px solid var(--card-line); border-radius: 12px; background: var(--surface-tint); }
.calendar-mode-switch span { color: var(--muted); font-size: .7rem; line-height: 1.45; }
.calendar-mode-switch .button { flex: 0 0 auto; }
.manual-booking-card { margin-bottom: 1rem; overflow: hidden; border: 1px solid color-mix(in srgb, var(--forest) 30%, var(--card-line)); border-radius: 16px; background: var(--surface); box-shadow: var(--card-shadow); }
.manual-booking-card > summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .8rem; padding: 1rem 1.1rem; cursor: pointer; list-style: none; }.manual-booking-card > summary::-webkit-details-marker { display: none; }.manual-booking-card > summary > span { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 10px; color: white; background: var(--forest); font-size: 1.1rem; font-weight: 900; }.manual-booking-card > summary > div { display: grid; gap: .12rem; }.manual-booking-card > summary strong { font-size: .78rem; }.manual-booking-card > summary small { color: var(--muted); font-size: .61rem; line-height: 1.45; }.manual-booking-card > summary > b { padding: .42rem .62rem; border-radius: 99px; color: var(--forest); background: var(--mint); font-size: .59rem; }
.manual-booking-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; padding: 1.1rem; border-top: 1px solid var(--row-line); background: var(--surface-soft); }.manual-booking-form .field-group { min-width: 0; }.manual-booking-form input, .manual-booking-form select, .manual-booking-form textarea { width: 100%; min-width: 0; }.manual-booking-wide, .manual-booking-intro, .manual-booking-submit { grid-column: 1 / -1; }.manual-booking-intro { display: flex; align-items: center; gap: .65rem; padding: .75rem .85rem; border-left: 3px solid var(--forest); border-radius: 8px; background: var(--surface); }.manual-booking-intro > span { flex: 0 0 auto; padding: .3rem .5rem; border-radius: 99px; color: var(--forest); background: var(--mint); font-size: .54rem; font-weight: 900; text-transform: uppercase; }.manual-booking-intro p { margin: 0; color: var(--muted); font-size: .62rem; line-height: 1.5; }.manual-booking-duration { grid-column: 1 / -1; padding: .6rem .75rem; border-radius: 8px; color: var(--forest); background: var(--mint); font-size: .62rem; font-weight: 800; }.manual-booking-submit { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: .85rem; border-top: 1px solid var(--row-line); }.manual-booking-submit small { max-width: 520px; color: var(--muted); font-size: .58rem; line-height: 1.45; }
.offline-booking-queue { padding: .9rem 1.1rem; border-top: 1px solid #e2c570; background: #fff8df; }.offline-booking-queue[hidden] { display: none; }.offline-booking-queue > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.offline-booking-queue > div:first-child > span { display: grid; gap: .16rem; }.offline-booking-queue strong { color: #6f5317; font-size: .7rem; }.offline-booking-queue small { color: #7c6b43; font-size: .57rem; line-height: 1.45; }.offline-booking-list { display: grid; gap: .45rem; margin: .7rem 0; }.offline-booking-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .7rem; padding: .65rem .7rem; border: 1px solid #e6d59e; border-radius: 9px; background: rgba(255,255,255,.72); }.offline-booking-item > span { display: grid; gap: .14rem; min-width: 0; }.offline-booking-item b { color: var(--ink); font-size: .63rem; overflow-wrap: anywhere; }.offline-booking-item em { color: #8d3c34; font-size: .56rem; font-style: normal; }.offline-booking-remove { min-height: 2rem; padding: .35rem .5rem; border: 0; border-radius: 7px; color: #8d3c34; background: #f8e4df; font-size: .55rem; font-weight: 800; cursor: pointer; }
.calendar-toolbar h2 { margin: .25rem 0 0; font: 800 1.55rem Manrope; }
.calendar-toolbar-actions { display: flex; align-items: center; gap: .7rem; }
.calendar-view-switch { display: flex; gap: .2rem; padding: .2rem; border: 1px solid var(--card-line); border-radius: 10px; background: var(--surface-soft); }
.calendar-view-switch a { display: flex; align-items: center; gap: .3rem; min-height: 2rem; padding: 0 .65rem; border-radius: 7px; color: var(--muted); font-size: .6rem; font-weight: 800; text-decoration: none; }
.calendar-view-switch a.active { color: white; background: var(--forest); box-shadow: 0 2px 6px rgba(23, 60, 52, .18); }
.calendar-navigation { display: flex; align-items: center; gap: .4rem; }
.calendar-navigation a { display: grid; place-items: center; min-width: 2.4rem; height: 2.4rem; padding: 0 .7rem; border: 1px solid var(--card-line); border-radius: 9px; background: var(--surface-soft); color: var(--ink); font-weight: 800; text-decoration: none; }
.calendar-navigation .calendar-today-link { width: auto; font-size: .72rem; }
.calendar-filter-bar { display: grid; grid-template-columns: minmax(160px, .7fr) minmax(220px, 1fr) auto auto; align-items: end; gap: .75rem; padding: .85rem 1.25rem; border-right: 1px solid var(--card-line); border-left: 1px solid var(--card-line); background: var(--surface-soft); }
.calendar-filter-bar label { display: grid; min-width: 0; gap: .3rem; }
.calendar-filter-bar label > span { color: var(--muted); font-size: .56rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.calendar-filter-bar select { width: 100%; min-width: 0; height: 2.4rem; padding: 0 2rem 0 .7rem; border: 1px solid var(--card-line); border-radius: 8px; color: var(--ink); background: var(--surface); font: 700 .65rem Inter, sans-serif; }
.calendar-filter-bar .button { min-height: 2.4rem; }
.calendar-filter-reset { align-self: center; color: var(--forest); font-size: .64rem; font-weight: 800; text-underline-offset: 3px; }
.calendar-category-legend { display: flex; flex-wrap: wrap; gap: .42rem .75rem; padding: .62rem 1.25rem; border: 1px solid var(--card-line); border-top: 1px solid var(--row-line); background: var(--surface); }
.calendar-category-legend > span { display: inline-flex; align-items: center; gap: .3rem; color: var(--muted); font-size: .58rem; font-weight: 700; }
.calendar-category-legend > span::before { width: .65rem; height: .38rem; border-radius: 99px; background: var(--calendar-event-border, #8a9f99); content: ''; }
.calendar-category-legend b { font-size: .72rem; line-height: 1; }
.listing-timeline-card { border: 1px solid var(--card-line); border-top: 0; border-radius: 0 0 16px 16px; overflow: hidden; background: var(--surface); box-shadow: var(--card-shadow); }
.listing-timeline-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--row-line); }
.listing-timeline-heading h2 { margin: .2rem 0 0; font: 800 1rem Manrope; }
.listing-timeline-heading p { margin: .25rem 0 0; color: var(--muted); font-size: .62rem; }
.listing-timeline-heading > span { flex: 0 0 auto; padding: .35rem .55rem; border-radius: 99px; color: var(--forest); background: var(--mint); font-size: .56rem; font-weight: 800; }
.listing-timeline-scroll { max-width: 100%; overflow: auto; overscroll-behavior-inline: contain; scrollbar-color: var(--forest) var(--surface-soft); }
.listing-timeline-scroll:focus-visible { outline: 3px solid color-mix(in srgb, var(--forest) 45%, transparent); outline-offset: -3px; }
.listing-timeline-grid { position: relative; display: grid; grid-template-columns: 240px repeat(var(--timeline-days), 52px); grid-template-rows: 62px repeat(var(--timeline-rows), 76px); width: max-content; min-width: 100%; background: var(--surface); }
.listing-timeline-corner { position: sticky; z-index: 8; left: 0; top: 0; display: grid; align-content: center; gap: .15rem; padding: 0 .85rem; border-right: 1px solid var(--card-line); border-bottom: 1px solid var(--card-line); background: var(--surface-soft); box-shadow: 5px 0 10px rgba(23, 60, 52, .05); }
.listing-timeline-corner strong { font-size: .7rem; }.listing-timeline-corner small { color: var(--muted); font-size: .52rem; }
.listing-timeline-date { position: sticky; z-index: 6; top: 0; display: grid; place-content: center; gap: .17rem; border-right: 1px solid var(--row-line); border-bottom: 1px solid var(--card-line); color: var(--ink); background: var(--surface-soft); text-align: center; text-decoration: none; }
.listing-timeline-date small { color: var(--muted); font-size: .45rem; font-weight: 800; text-transform: uppercase; }.listing-timeline-date strong { font-size: .68rem; }
.listing-timeline-date.is-weekend, .listing-timeline-cell.is-weekend { background: color-mix(in srgb, var(--surface-tint) 70%, var(--surface)); }
.listing-timeline-date.is-today strong { display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; color: white; background: var(--forest); }
.listing-timeline-date.selected { box-shadow: inset 0 -3px var(--forest); }
.listing-timeline-unit { position: sticky; z-index: 5; left: 0; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: .65rem; padding: .65rem .75rem; border-right: 1px solid var(--card-line); border-bottom: 1px solid var(--row-line); background: var(--surface); box-shadow: 5px 0 10px rgba(23, 60, 52, .05); }
.listing-timeline-unit img, .listing-timeline-placeholder { width: 42px; height: 42px; border-radius: 9px; object-fit: cover; }
.listing-timeline-placeholder { display: grid; place-items: center; background: var(--surface-tint); font-size: 1.15rem; }
.listing-timeline-unit > div { display: grid; min-width: 0; gap: .18rem; }.listing-timeline-unit strong { overflow: hidden; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }.listing-timeline-unit small { overflow: hidden; color: var(--muted); font-size: .48rem; text-overflow: ellipsis; white-space: nowrap; }
.listing-timeline-unit > i { width: .5rem; height: .5rem; border-radius: 50%; background: #a4adaa; }.listing-timeline-unit > i.active { background: #31a375; box-shadow: 0 0 0 3px color-mix(in srgb, #31a375 18%, transparent); }
.listing-timeline-cell { z-index: 1; border-right: 1px solid var(--row-line); border-bottom: 1px solid var(--row-line); background: var(--surface); text-decoration: none; }.listing-timeline-cell:hover { background: var(--surface-tint); }.listing-timeline-cell.is-today { background: color-mix(in srgb, var(--mint) 55%, var(--surface)); }.listing-timeline-cell.selected { box-shadow: inset 2px 0 var(--forest), inset -2px 0 var(--forest); }
.listing-timeline-booking { z-index: 3; display: flex; align-self: center; align-items: center; gap: .38rem; height: 34px; min-width: 0; margin: 0 3px; padding: 0 .55rem; overflow: hidden; border: 1px solid var(--timeline-border, #3b8a70); border-left-width: 4px; border-radius: 8px; color: var(--timeline-ink, #215b49); background: var(--timeline-background, #dff1e8); box-shadow: 0 3px 9px rgba(23, 60, 52, .12); text-decoration: none; white-space: nowrap; transition: filter .16s ease, box-shadow .16s ease, transform .16s ease; transform-origin: center; }
.listing-timeline-booking:hover { z-index: 12; filter: brightness(.97); box-shadow: 0 5px 13px rgba(23, 60, 52, .22); transform: scale(1.035); }.listing-timeline-booking > span { flex: 0 0 auto; font-size: .62rem; }.listing-timeline-booking strong { min-width: 0; overflow: hidden; font-size: .56rem; text-overflow: ellipsis; }.listing-timeline-booking small { margin-left: auto; font-size: .45rem; font-weight: 800; }
.listing-timeline-booking.status-pending { border-style: dashed; }.listing-timeline-booking.status-reserved { --timeline-border: #1a9a78; --timeline-ink: #155e50; --timeline-background: #d5f5e9; }
.listing-timeline-booking.category-condo { --timeline-border: #2563eb; --timeline-ink: #1e3a8a; --timeline-background: #dbeafe; }.listing-timeline-booking.category-car { --timeline-border: #d97706; --timeline-ink: #7c2d12; --timeline-background: #ffedd5; }.listing-timeline-booking.category-cleaning { --timeline-border: #0f766e; --timeline-ink: #115e59; --timeline-background: #ccfbf1; }.listing-timeline-booking.category-driving { --timeline-border: #7c3aed; --timeline-ink: #5b21b6; --timeline-background: #ede9fe; }.listing-timeline-booking.category-massage { --timeline-border: #db2777; --timeline-ink: #9d174d; --timeline-background: #fce7f3; }.listing-timeline-booking.category-consultancy { --timeline-border: #475569; --timeline-ink: #334155; --timeline-background: #e2e8f0; }.listing-timeline-booking.category-pet-transport { --timeline-border: #65a30d; --timeline-ink: #3f6212; --timeline-background: #ecfccb; }.listing-timeline-booking.category-other { --timeline-border: #64748b; --timeline-ink: #334155; --timeline-background: #f1f5f9; }
.listing-timeline-help { display: flex; align-items: center; gap: .4rem; margin: 0; padding: .65rem 1rem; border-top: 1px solid var(--row-line); color: var(--muted); background: var(--surface-soft); font-size: .54rem; }.listing-timeline-help span { color: var(--forest); font-size: .8rem; font-weight: 900; }
.listing-timeline-empty { display: grid; justify-items: center; gap: .35rem; padding: 3rem 1rem; color: var(--muted); text-align: center; }.listing-timeline-empty > span { font-size: 1.8rem; }.listing-timeline-empty strong { color: var(--ink); font-size: .76rem; }.listing-timeline-empty p { margin: 0; font-size: .62rem; }
.calendar-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; border: 1px solid var(--card-line); border-top: 0; border-radius: 0 0 16px 16px; overflow: hidden; background: var(--surface); box-shadow: var(--card-shadow); }
.calendar-month-panel { min-width: 0; }
.calendar-weekdays, .booking-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.booking-calendar-grid { grid-template-rows: repeat(var(--calendar-weeks), minmax(calc(3.35rem + var(--calendar-lanes) * 1.35rem), auto)); }
.calendar-weekdays { border-bottom: 1px solid var(--row-line); }
.calendar-weekdays span { padding: .65rem; color: var(--muted); background: var(--surface-soft); font-size: .62rem; font-weight: 800; text-align: center; text-transform: uppercase; }
.calendar-day { display: flex; flex-direction: column; gap: .35rem; min-width: 0; min-height: 104px; padding: .55rem; border-right: 1px solid var(--row-line); border-bottom: 1px solid var(--row-line); color: var(--ink); text-decoration: none; transition: background .15s; }
.calendar-day[style*="grid-column: 7"] { border-right: 0; }
.calendar-day:hover { background: var(--surface-tint); }
.calendar-day.outside-month { color: #a6afab; background: var(--surface-soft); }
.calendar-day.selected { box-shadow: inset 0 0 0 2px var(--forest); background: var(--mint); }
.calendar-day-number { display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; font-size: .7rem; font-weight: 800; }
.calendar-day.is-today .calendar-day-number { color: white; background: var(--forest); }
.calendar-day-bookings { display: grid; min-width: 0; gap: .2rem; }
.calendar-booking-dot { display: block; overflow: hidden; padding: .25rem .35rem; border-left: 3px solid #8a9f99; border-radius: 4px; color: #4e625b; background: #edf2ef; font-size: .58rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.calendar-booking-dot.status-confirmed { border-color: #3b8a70; background: #e2f2eb; }
.calendar-booking-dot.status-pending { border-color: #c7963a; background: #fff3d8; }
.calendar-day-bookings small { color: var(--muted); font-size: .55rem; }
.calendar-booking-span { z-index: 3; display: flex; align-self: start; align-items: center; gap: .35rem; height: 1.15rem; min-width: 0; margin: calc(2.45rem + var(--calendar-lane) * 1.35rem) .14rem 0; padding: 0 .42rem; overflow: hidden; border: 1px solid #8a9f99; border-left-width: 3px; border-radius: 4px; color: #4e625b; background: #edf2ef; box-shadow: 0 1px 2px rgba(23, 60, 52, .08); font-size: .52rem; line-height: 1; text-decoration: none; white-space: nowrap; transition: filter .16s ease, box-shadow .16s ease, transform .16s ease; transform-origin: center; }.calendar-booking-span:hover { z-index: 12; filter: brightness(.97); box-shadow: 0 4px 10px rgba(23, 60, 52, .22); transform: scale(1.035); }.calendar-booking-span.status-confirmed { border-color: #3b8a70; background: #dff1e8; }.calendar-booking-span.status-pending { border-color: #c7963a; background: #fff0ca; }.calendar-booking-span:not(.starts-booking) { border-left-width: 1px; border-radius: 0 4px 4px 0; }.calendar-booking-span:not(.ends-booking) { border-radius: 4px 0 0 4px; }.calendar-booking-span.continues-before.continues-after { border-radius: 0; }.calendar-booking-span strong { min-width: 0; overflow: hidden; font-size: .56rem; text-overflow: ellipsis; }.calendar-booking-span time { flex: 0 0 auto; font-size: .47rem; font-weight: 800; }.calendar-span-continuation { flex: 0 0 auto; font-weight: 900; }
.calendar-booking-span.status-pending { border-style: dashed; }
.calendar-booking-span.status-pre_approved { border-color: #477da9; background: #e4f0fb; }
.calendar-booking-span.status-payment_submitted { border-color: #75549f; background: #eee7fa; }
.calendar-booking-span.category-condo, .calendar-category-legend .category-condo, .calendar-unit-legend .category-condo { --calendar-event-border: #2563eb; }.calendar-booking-span.category-condo { border-color: #2563eb; color: #1e3a8a; background: #dbeafe; }
.calendar-booking-span.category-car, .calendar-category-legend .category-car, .calendar-unit-legend .category-car { --calendar-event-border: #d97706; }.calendar-booking-span.category-car { border-color: #d97706; color: #7c2d12; background: #ffedd5; }
.calendar-booking-span.category-cleaning, .calendar-category-legend .category-cleaning, .calendar-unit-legend .category-cleaning { --calendar-event-border: #0f766e; }.calendar-booking-span.category-cleaning { border-color: #0f766e; color: #115e59; background: #ccfbf1; }
.calendar-booking-span.category-driving, .calendar-category-legend .category-driving, .calendar-unit-legend .category-driving { --calendar-event-border: #7c3aed; }.calendar-booking-span.category-driving { border-color: #7c3aed; color: #5b21b6; background: #ede9fe; }
.calendar-booking-span.category-massage, .calendar-category-legend .category-massage, .calendar-unit-legend .category-massage { --calendar-event-border: #db2777; }.calendar-booking-span.category-massage { border-color: #db2777; color: #9d174d; background: #fce7f3; }
.calendar-booking-span.category-consultancy, .calendar-category-legend .category-consultancy, .calendar-unit-legend .category-consultancy { --calendar-event-border: #475569; }.calendar-booking-span.category-consultancy { border-color: #475569; color: #334155; background: #e2e8f0; }
.calendar-booking-span.category-pet-transport, .calendar-category-legend .category-pet-transport, .calendar-unit-legend .category-pet-transport { --calendar-event-border: #65a30d; }.calendar-booking-span.category-pet-transport { border-color: #65a30d; color: #3f6212; background: #ecfccb; }
.calendar-booking-span.category-other, .calendar-category-legend .category-other, .calendar-unit-legend .category-other { --calendar-event-border: #64748b; }.calendar-booking-span.category-other { border-color: #64748b; color: #334155; background: #f1f5f9; }
.calendar-event-icon { flex: 0 0 auto; font-size: .62rem; line-height: 1; }
.calendar-side-panel { padding: 1rem; border-left: 1px solid var(--row-line); background: var(--surface-soft); }
.selected-date-heading { display: flex; align-items: center; gap: .8rem; padding-bottom: 1rem; border-bottom: 1px solid var(--row-line); }
.selected-date-number { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: 11px; color: white; background: var(--forest); font: 800 1rem Manrope; }
.selected-date-heading h2 { margin: .22rem 0 0; font: 800 .95rem Manrope; }
.availability-list { margin-top: 1rem; }
.side-panel-title { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.side-panel-title h3, .side-panel-title h2 { margin: 0; font: 800 .85rem Manrope; }
.side-panel-title h2 { margin-top: .25rem; font-size: 1.2rem; }
.side-panel-title > span { display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; color: var(--forest); background: var(--lime); font-size: .65rem; font-weight: 800; }
.availability-row { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr) max-content; align-items: center; gap: .65rem; min-width: 0; padding: .75rem .2rem; border-bottom: 1px solid var(--row-line); border-radius: 9px; color: var(--ink); text-decoration: none; transition: background .16s ease, transform .16s ease; }
.availability-row:hover, .availability-row:focus-visible { background: var(--surface-tint); transform: translateX(2px); }
.availability-row:focus-visible { outline: 2px solid var(--forest); outline-offset: 2px; }
.availability-row > .availability-copy { display: grid; min-width: 0; gap: .17rem; }
.availability-row strong { overflow: hidden; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.availability-row small { overflow: hidden; color: var(--muted); font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.side-empty { color: var(--muted); font-size: .72rem; line-height: 1.5; }
.booking-workspace { display: grid; grid-template-columns: minmax(360px, .85fr) minmax(440px, 1.15fr); gap: 1rem; margin-top: 1rem; }
.booking-workspace > section { padding: 1.25rem; border: 1px solid var(--card-line); border-radius: 16px; background: var(--surface); box-shadow: var(--card-shadow); }
.booking-workspace > .day-bookings-card:only-child { grid-column: 1 / -1; }
.booking-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: .9rem; }
.booking-form .field-group { min-width: 0; }
.booking-form input, .booking-form select, .booking-form textarea { min-width: 0; max-width: 100%; }
.booking-unit-field, .booking-notes-field { grid-column: 1 / -1; }
.booking-form .button { grid-column: 1 / -1; justify-self: end; min-height: 2.8rem; }
.day-booking-list { display: grid; gap: .65rem; margin-top: 1rem; }
.day-booking-item { display: grid; grid-template-columns: 95px 1fr auto; align-items: start; gap: .8rem; padding: .9rem; border: 1px solid var(--row-line); border-radius: 12px; background: var(--surface-soft); }
.booking-card-main-link { display: grid; grid-column: 1 / 3; grid-template-columns: 95px minmax(0, 1fr) auto; gap: .8rem; min-width: 0; margin: -.55rem 0 -.55rem -.55rem; padding: .55rem; border-radius: 9px; color: var(--ink); text-decoration: none; transition: background .15s, transform .15s; }.booking-card-main-link:hover { background: var(--surface-tint); transform: translateY(-1px); }.booking-card-main-link:hover .booking-card-open { color: var(--forest); }.booking-card-open { align-self: center; color: var(--muted); font-size: .58rem; font-weight: 800; white-space: nowrap; }
.booking-time { display: grid; gap: .15rem; color: var(--forest); font-size: .72rem; font-weight: 800; }
.booking-time small { color: var(--muted); font-size: .58rem; font-weight: 500; }
.booking-details { display: grid; min-width: 0; gap: .2rem; }
.booking-details strong { font-size: .78rem; }
.booking-details small { color: var(--muted); font-size: .63rem; }
.booking-details p { margin: .25rem 0 0; color: var(--muted); font-size: .65rem; line-height: 1.45; }
.booking-item-actions { display: flex; align-items: flex-end; flex-direction: column; gap: .35rem; }
.booking-status { padding: .28rem .48rem; border-radius: 99px; font-size: .58rem; font-weight: 800; }
.booking-status.status-pending { color: #8a6121; background: #fff0cb; }
.booking-status.status-pre_approved { color: #315f87; background: #e4f0fb; }
.booking-status.status-payment_submitted { color: #70549a; background: #eee7fa; }
.booking-status.status-confirmed { color: #2f735d; background: #e1f3ea; }
.booking-status.status-cancelled, .booking-status.status-declined, .booking-status.status-unavailable { color: #8d4741; background: #f7e4e1; }
.booking-item-actions form { line-height: 1; }
.booking-item-actions button { padding: 0; border: 0; color: var(--forest); background: transparent; font-size: .62rem; font-weight: 800; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.booking-item-actions button.danger-action { color: var(--danger); }
.day-bookings-empty { display: grid; justify-items: center; gap: .5rem; padding: 2rem; color: var(--muted); text-align: center; }
.day-bookings-empty > span { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; color: var(--forest); background: var(--mint); }
.day-bookings-empty p { margin: 0; font-size: .75rem; }
.calendar-booking-dialog { width: min(560px, calc(100vw - 2rem)); max-width: none; padding: 0; overflow: hidden; border: 0; border-radius: 18px; color: var(--ink); background: var(--surface); box-shadow: 0 26px 80px rgba(6, 28, 22, .35); }
.calendar-booking-dialog::backdrop { background: rgba(6, 21, 17, .6); backdrop-filter: blur(4px); }
.calendar-booking-dialog-panel { display: grid; }
.calendar-booking-dialog header { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .8rem; padding: 1.15rem 1.2rem; border-bottom: 1px solid var(--row-line); background: var(--surface-soft); }
.calendar-dialog-icon { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 11px; background: var(--mint); font-size: 1.25rem; }
.calendar-booking-dialog header h2 { margin: .22rem 0 0; font: 800 1.12rem Manrope; }
.calendar-booking-dialog header button { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; padding: 0; border: 1px solid var(--card-line); border-radius: 50%; color: var(--ink); background: var(--surface); font-size: 1.25rem; cursor: pointer; }
.calendar-dialog-status-row { padding: 1rem 1.2rem 0; }
.calendar-booking-dialog dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: .65rem 1.2rem 0; border: 1px solid var(--row-line); border-radius: 11px; overflow: hidden; }
.calendar-booking-dialog dl div { display: grid; gap: .22rem; padding: .75rem; border-right: 1px solid var(--row-line); border-bottom: 1px solid var(--row-line); background: var(--surface-soft); }
.calendar-booking-dialog dl div:nth-child(2n) { border-right: 0; }.calendar-booking-dialog dl div:last-child { border-bottom: 0; }
.calendar-booking-dialog dt, .calendar-dialog-notes small { color: var(--muted); font-size: .55rem; font-weight: 800; text-transform: uppercase; }
.calendar-booking-dialog dd { margin: 0; font-size: .68rem; font-weight: 700; overflow-wrap: anywhere; }
.calendar-dialog-notes { margin: .85rem 1.2rem 0; padding: .75rem; border-radius: 10px; background: var(--surface-soft); }.calendar-dialog-notes p { margin: .3rem 0 0; color: var(--muted); font-size: .67rem; line-height: 1.55; white-space: pre-wrap; }
.calendar-booking-dialog footer { display: flex; justify-content: flex-end; gap: .6rem; padding: 1rem 1.2rem 1.2rem; }.calendar-booking-dialog footer .button { min-height: 2.5rem; }

html[data-color-mode="dark"] .field-group select, html[data-color-mode="dark"] .field-group textarea { border-color: var(--card-line); color: var(--ink); background: var(--surface-soft); }
html[data-color-mode="dark"] .field-group select:focus, html[data-color-mode="dark"] .field-group textarea:focus { border-color: var(--lime); background: var(--surface); box-shadow: 0 0 0 4px color-mix(in srgb, var(--forest) 28%, transparent); }

/* Administrator system settings */
.settings-page { padding-bottom: 5rem; }
.settings-alert { margin: 1.5rem 0 0; }
.settings-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; align-items: start; gap: 1.35rem; margin-top: 2rem; }
.settings-form-stack { display: grid; gap: 1rem; min-width: 0; }
.settings-card, .settings-preview-panel { border: 1px solid var(--card-line); border-radius: 18px; background: var(--surface); box-shadow: var(--card-shadow); }
.settings-card { padding: clamp(1.1rem, 2.5vw, 1.65rem); }
.settings-card-heading { display: flex; align-items: flex-start; gap: .9rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--row-line); }
.settings-step { display: grid; flex: 0 0 auto; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 10px; color: var(--forest); background: var(--mint); font: 800 .7rem Manrope, sans-serif; }
.settings-card-heading h2 { margin: 0; font: 800 1.05rem Manrope, sans-serif; letter-spacing: -.025em; }
.settings-card-heading p { margin: .25rem 0 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.settings-fields { display: grid; gap: 1rem; padding-top: 1.25rem; }
.settings-fields.two-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.settings-field-wide { grid-column: 1 / -1; }
.settings-fields .field-group small { color: var(--muted); font-size: .66rem; line-height: 1.45; }
.asset-upload-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding-top: 1.25rem; }
.asset-upload-card { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .85rem; padding: 1rem; border: 1px solid var(--row-line); border-radius: 14px; background: var(--surface-soft); }
.asset-preview { display: grid; place-items: center; overflow: hidden; border: 1px solid var(--line); background: #f6f3ea; }
.asset-preview img { display: block; width: 100%; height: 100%; object-fit: contain; }
.logo-preview { width: 5rem; height: 3.8rem; padding: .35rem; border-radius: 11px; }
.favicon-preview { width: 3.8rem; height: 3.8rem; padding: .4rem; border-radius: 13px; }
.asset-upload-copy { display: grid; gap: .25rem; }
.asset-upload-copy strong { font-size: .82rem; }
.asset-upload-copy small { color: var(--muted); font-size: .61rem; line-height: 1.4; }
.asset-upload-card .button { grid-column: 1 / -1; width: 100%; }
.asset-reset { grid-column: 1 / -1; display: flex; align-items: center; justify-content: center; gap: .45rem; color: var(--muted); font-size: .66rem; font-weight: 700; cursor: pointer; }
.asset-reset input { accent-color: var(--forest); }
.asset-upload-card .error-text { grid-column: 1 / -1; }
.color-settings-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; padding-top: 1.25rem; }
.color-setting { display: flex; align-items: center; gap: .75rem; padding: .8rem; border: 1px solid var(--row-line); border-radius: 12px; background: var(--surface-soft); cursor: pointer; }
.color-setting input { flex: 0 0 auto; width: 2.65rem; height: 2.65rem; padding: .15rem; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); cursor: pointer; }
.color-setting span { display: grid; gap: .08rem; min-width: 0; }
.color-setting strong { font-size: .72rem; }
.color-setting small { color: var(--muted); font-size: .56rem; }
.color-setting code { margin-top: .22rem; color: var(--forest); font-size: .58rem; text-transform: uppercase; }
.settings-preview-panel { position: sticky; top: 1rem; padding: 1.1rem; }
.brand-preview-card { margin-top: .8rem; overflow: hidden; border: 1px solid color-mix(in srgb, var(--preview-primary) 16%, transparent); border-radius: 15px; background: #fffefa; box-shadow: 0 16px 35px color-mix(in srgb, var(--preview-primary) 12%, transparent); }
.brand-preview-nav { display: flex; align-items: center; gap: .55rem; padding: .8rem; color: white; background: var(--preview-primary); }
.brand-preview-nav > span { display: grid; place-items: center; width: 2.5rem; height: 2rem; padding: .18rem; overflow: hidden; border-radius: 7px; background: #f6f3ea; }
.brand-preview-nav img { width: 100%; height: 100%; object-fit: contain; }
.brand-preview-nav strong { overflow: hidden; font: 800 .68rem Manrope, sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.brand-preview-body { padding: 1.1rem; color: #18231f; }
.brand-preview-body > small { color: var(--preview-primary); font-size: .52rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.brand-preview-body h3 { margin: .5rem 0 .35rem; font: 800 1.3rem Manrope, sans-serif; letter-spacing: -.045em; }
.brand-preview-body p { min-height: 2.2rem; margin: 0 0 1rem; color: #66736e; font-size: .65rem; line-height: 1.5; }
.brand-preview-body button { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: .68rem .75rem; border: 0; border-radius: 8px; color: white; background: var(--preview-primary); font-size: .64rem; font-weight: 800; }
.brand-preview-body button:hover { background: var(--preview-secondary); }
.brand-preview-body > div { display: flex; align-items: center; gap: .4rem; margin-top: .75rem; color: #66736e; font-size: .58rem; }
.brand-preview-body > div i { width: .65rem; height: .65rem; border-radius: 50%; background: var(--preview-accent); }
.settings-preview-note { margin: .9rem 0 0; color: var(--muted); font-size: .63rem; line-height: 1.5; }
.settings-updated { display: block; margin-top: .55rem; color: var(--muted); font-size: .58rem; }
.settings-save { width: 100%; margin-top: 1rem; }
html[data-color-mode="dark"] .asset-preview { border-color: var(--card-line); }

@media (max-width: 1050px) {
    .settings-layout { grid-template-columns: 1fr; }
    .settings-preview-panel { position: static; }
    .brand-preview-card { max-width: 420px; }
}

@media (max-width: 680px) {
    .settings-page .dashboard-header { padding-left: 3.5rem; }
    .settings-fields.two-column, .asset-upload-grid, .color-settings-grid { grid-template-columns: 1fr; }
    .settings-field-wide { grid-column: auto; }
}

/* Unit colors fill booking bars; category colors remain visible on their borders. */
.calendar-booking-span.calendar-booking-span[style*="--unit-fill"],
.listing-timeline-booking.listing-timeline-booking[style*="--unit-fill"],
html[data-color-mode="dark"] .calendar-booking-span.calendar-booking-span[style*="--unit-fill"],
html[data-color-mode="dark"] .listing-timeline-booking.listing-timeline-booking[style*="--unit-fill"] {
    color: var(--unit-ink);
    background: var(--unit-fill, var(--unit-soft));
}

@media (prefers-reduced-motion: reduce) {
    .calendar-booking-span,
    .listing-timeline-booking { transition: none; }

    .calendar-booking-span:hover,
    .listing-timeline-booking:hover { transform: none; }
}
html[data-color-mode="dark"] .role-selector legend { color: var(--ink); }
html[data-color-mode="dark"] .role-options label > span { border-color: var(--card-line); background: var(--surface-soft); }
html[data-color-mode="dark"] .role-options input:checked + span { background: var(--mint); }
html[data-color-mode="dark"] .role-host { color: #9ed2be; background: #203a31; }
html[data-color-mode="dark"] .setup-link, html[data-color-mode="dark"] .listing-card-actions a, html[data-color-mode="dark"] .booking-time, html[data-color-mode="dark"] .booking-item-actions button { color: var(--lime); }
html[data-color-mode="dark"] .availability-badge.available, html[data-color-mode="dark"] .booking-status.status-confirmed { color: #9ed2be; background: #203a31; }
html[data-color-mode="dark"] .availability-badge.booked, html[data-color-mode="dark"] .booking-status.status-pending { color: #ebce8a; background: #40351f; }
html[data-color-mode="dark"] .booking-status.status-pre_approved { color: #b8d8f0; background: #203547; }
html[data-color-mode="dark"] .booking-status.status-payment_submitted { color: #d8c5f2; background: #37294a; }
html[data-color-mode="dark"] .availability-badge.unavailable, html[data-color-mode="dark"] .booking-status.status-cancelled, html[data-color-mode="dark"] .booking-status.status-declined, html[data-color-mode="dark"] .booking-status.status-unavailable { color: #e3aaa4; background: #422824; }
html[data-color-mode="dark"] .calendar-booking-dot { color: var(--ink); background: var(--surface-tint); }
html[data-color-mode="dark"] .calendar-booking-span { color: var(--ink); background: var(--surface-tint); }
html[data-color-mode="dark"] .calendar-booking-span.status-confirmed { color: #b7e1cf; background: #203a31; }
html[data-color-mode="dark"] .calendar-booking-span.status-pending { color: #ebce8a; background: #40351f; }
html[data-color-mode="dark"] .calendar-booking-span.status-pre_approved { color: #b8d8f0; background: #203547; }
html[data-color-mode="dark"] .calendar-booking-span.status-payment_submitted { color: #d8c5f2; background: #37294a; }
html[data-color-mode="dark"] .calendar-booking-span.category-condo { border-color: #60a5fa; color: #bfdbfe; background: #172554; }
html[data-color-mode="dark"] .calendar-booking-span.category-car { border-color: #fb923c; color: #fed7aa; background: #431407; }
html[data-color-mode="dark"] .calendar-booking-span.category-cleaning { border-color: #2dd4bf; color: #99f6e4; background: #042f2e; }
html[data-color-mode="dark"] .calendar-booking-span.category-driving { border-color: #a78bfa; color: #ddd6fe; background: #2e1065; }
html[data-color-mode="dark"] .calendar-booking-span.category-massage { border-color: #f472b6; color: #fbcfe8; background: #500724; }
html[data-color-mode="dark"] .calendar-booking-span.category-consultancy { border-color: #94a3b8; color: #e2e8f0; background: #1e293b; }
html[data-color-mode="dark"] .calendar-booking-span.category-pet-transport { border-color: #a3e635; color: #d9f99d; background: #1a2e05; }
html[data-color-mode="dark"] .calendar-booking-span.category-other { border-color: #94a3b8; color: #e2e8f0; background: #1e293b; }
html[data-color-mode="dark"] .listing-timeline-booking { color: #b7e1cf; background: #203a31; }
html[data-color-mode="dark"] .listing-timeline-booking.category-condo { color: #bfdbfe; background: #172554; } html[data-color-mode="dark"] .listing-timeline-booking.category-car { color: #fed7aa; background: #431407; } html[data-color-mode="dark"] .listing-timeline-booking.category-cleaning { color: #99f6e4; background: #042f2e; } html[data-color-mode="dark"] .listing-timeline-booking.category-driving { color: #ddd6fe; background: #2e1065; } html[data-color-mode="dark"] .listing-timeline-booking.category-massage { color: #fbcfe8; background: #500724; } html[data-color-mode="dark"] .listing-timeline-booking.category-consultancy, html[data-color-mode="dark"] .listing-timeline-booking.category-other { color: #e2e8f0; background: #1e293b; } html[data-color-mode="dark"] .listing-timeline-booking.category-pet-transport { color: #d9f99d; background: #1a2e05; }
html[data-color-mode="dark"] .calendar-day.outside-month { color: #65736e; }

@media (max-width: 980px) {
    .listing-grid { grid-template-columns: 1fr 1fr; }
    .listing-summary-bar { grid-template-columns: repeat(3, 1fr); }
    .listing-summary-bar p { grid-column: 1 / -1; padding-top: .8rem; border-top: 1px solid var(--card-line); }
    .calendar-layout { grid-template-columns: 1fr; }
    .calendar-side-panel { border-top: 1px solid var(--row-line); border-left: 0; }
    .booking-workspace { grid-template-columns: 1fr; }
    .booking-workspace > .day-bookings-card:only-child { grid-column: auto; }
    .calendar-filter-bar { grid-template-columns: 1fr 1fr auto auto; }
}

@media (max-width: 740px) {
    .header-actions .button { display: none; }
    .listing-grid { grid-template-columns: 1fr; }
.booking-calendar-section { margin-top: 1.2rem; }
    .calendar-day { min-height: 82px; padding: .35rem; }
    .calendar-booking-dot { padding: .18rem .25rem; font-size: .52rem; }
    .calendar-booking-span { margin-top: calc(2.15rem + var(--calendar-lane) * 1.18rem); }
    .calendar-day-bookings small { display: none; }
    .calendar-filter-bar { grid-template-columns: 1fr 1fr; padding: .8rem; }
    .calendar-filter-bar .button { width: 100%; }
    .calendar-filter-reset { justify-self: start; }
    .calendar-category-legend { padding: .55rem .8rem; }
    .calendar-toolbar { align-items: flex-start; }
    .calendar-toolbar-actions { align-items: flex-end; flex-direction: column-reverse; }
    .listing-timeline-grid { grid-template-columns: 190px repeat(var(--timeline-days), 46px); }
    .listing-timeline-heading { align-items: flex-start; }
    .listing-form-grid { grid-template-columns: 1fr; }
    .listing-name-field, .listing-description-field { grid-column: auto; }
}

/* Booking details */
.booking-detail-shell { display: grid; gap: 1rem; margin-top: 2rem; }.booking-detail-status { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1.2rem 1.35rem; border: 1px solid #d9b45b; border-radius: 16px; background: #fff7df; }.booking-detail-status.status-pre_approved { border-color: #8db4d3; background: #edf6fd; }.booking-detail-status.status-payment_submitted { border-color: #b6a0d5; background: #f5f0fc; }.booking-detail-status.status-confirmed { border-color: #6eaa94; background: #e8f5ef; }.booking-detail-status.status-cancelled, .booking-detail-status.status-declined, .booking-detail-status.status-unavailable { border-color: #d4a09a; background: #f9ebe9; }.booking-detail-status > span { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: 50%; color: white; background: #b3862a; font-weight: 900; }.booking-detail-status.status-pre_approved > span { background: #477da9; }.booking-detail-status.status-payment_submitted > span { background: #75549f; }.booking-detail-status.status-confirmed > span { background: var(--forest); }.booking-detail-status.status-cancelled > span, .booking-detail-status.status-declined > span, .booking-detail-status.status-unavailable > span { background: var(--danger); }.booking-detail-status small { color: var(--muted); font-size: .56rem; font-weight: 800; text-transform: uppercase; }.booking-detail-status h2 { margin: .18rem 0; font: 800 1.05rem Manrope; }.booking-detail-status p { margin: 0; color: var(--muted); font-size: .65rem; }.booking-detail-status .button { min-height: 2.5rem; }
.booking-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; align-items: start; gap: 1rem; }.booking-detail-main { display: grid; gap: 1rem; }.booking-unit-card, .booking-summary-card, .booking-notes-card { border: 1px solid var(--card-line); border-radius: 16px; background: var(--surface); box-shadow: var(--card-shadow); }.booking-unit-card { overflow: hidden; }.booking-unit-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 3px; height: 280px; background: var(--surface-tint); }.booking-unit-gallery img { width: 100%; height: 100%; object-fit: cover; }.booking-unit-gallery img:only-child { grid-column: 1 / -1; }.booking-unit-gallery > span { display: grid; grid-column: 1 / -1; place-items: center; height: 100%; font-size: 3rem; }.booking-unit-copy { padding: 1.25rem 1.25rem .8rem; }.booking-unit-copy h2 { margin: .35rem 0; font: 800 1.45rem Manrope; letter-spacing: -.035em; }.booking-unit-copy > p { margin: .45rem 0 0; color: var(--muted); font-size: .72rem; line-height: 1.6; }.booking-unit-copy .booking-unit-location { color: var(--ink); font-size: .65rem; font-weight: 800; }.booking-unit-facts { display: grid; grid-template-columns: repeat(3, 1fr); padding: 0 1.25rem 1rem; }.booking-unit-facts span { display: grid; gap: .2rem; padding: .7rem; border: 1px solid var(--row-line); background: var(--surface-soft); }.booking-unit-facts span:first-child { border-radius: 9px 0 0 9px; }.booking-unit-facts span:last-child { border-radius: 0 9px 9px 0; }.booking-unit-facts small { color: var(--muted); font-size: .55rem; }.booking-unit-facts strong { font-size: .66rem; }.booking-feature-list { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding: 0 1.25rem 1rem; }.booking-feature-list > strong { width: 100%; font-size: .7rem; }.booking-feature-list > span { width: 100%; color: var(--muted); font-size: .6rem; }.booking-feature-list em { padding: .3rem .45rem; border-radius: 99px; color: var(--muted); background: var(--surface-tint); font-size: .54rem; font-style: normal; font-weight: 700; }.booking-detail-rules { margin: 0 1.25rem 1.25rem; }.booking-notes-card { padding: 1.1rem 1.25rem; }.booking-notes-card p { margin: .45rem 0 0; color: var(--muted); font-size: .7rem; line-height: 1.6; white-space: pre-wrap; }
.booking-gallery-trigger { position: relative; min-width: 0; min-height: 0; padding: 0; overflow: hidden; border: 0; color: white; background: #16231f; cursor: zoom-in; }.booking-gallery-trigger:only-of-type { grid-column: 1 / -1; }.booking-gallery-trigger img { display: block; transition: transform .25s ease, opacity .2s ease; }.booking-gallery-trigger:hover img, .booking-gallery-trigger:focus-visible img { opacity: .88; transform: scale(1.025); }.booking-gallery-trigger:focus-visible { z-index: 1; outline: 3px solid var(--lime); outline-offset: -3px; }.booking-gallery-label { position: absolute; right: .65rem; bottom: .65rem; max-width: calc(100% - 1.3rem); padding: .42rem .62rem; border: 1px solid rgba(255, 255, 255, .35); border-radius: 99px; color: #fff; background: rgba(12, 23, 20, .72); box-shadow: 0 4px 16px rgba(0, 0, 0, .2); backdrop-filter: blur(7px); font-size: .58rem; font-weight: 800; line-height: 1.2; text-shadow: 0 1px 2px rgba(0, 0, 0, .45); white-space: nowrap; }
.booking-photo-viewer { width: min(1060px, calc(100vw - 2rem)); max-width: none; max-height: calc(100vh - 2rem); padding: 0; overflow: hidden; border: 0; border-radius: 18px; color: #f6fbf8; background: #101b18; box-shadow: 0 28px 80px rgba(0, 0, 0, .48); }.booking-photo-viewer::backdrop { background: rgba(4, 11, 9, .78); backdrop-filter: blur(5px); }.booking-photo-viewer-panel { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; max-height: calc(100vh - 2rem); }.booking-photo-viewer header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; background: rgba(22, 40, 34, .92); }.booking-photo-viewer header h2 { margin: .15rem 0 0; color: white; font: 800 1rem Manrope; }.booking-photo-viewer header .eyebrow { color: #bdd2c9; }.booking-photo-viewer-actions { display: flex; align-items: center; gap: .7rem; }.booking-photo-viewer-actions > span { padding: .35rem .55rem; border-radius: 99px; color: white; background: rgba(0, 0, 0, .35); font-size: .6rem; font-weight: 800; }.booking-photo-viewer-actions button { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; padding: 0; border: 1px solid rgba(255, 255, 255, .28); border-radius: 50%; color: white; background: rgba(0, 0, 0, .35); font-size: 1.3rem; cursor: pointer; }.booking-photo-stage { position: relative; display: grid; place-items: center; min-height: 320px; overflow: hidden; background: #09100e; }.booking-photo-stage > img { display: block; width: 100%; height: min(66vh, 680px); object-fit: contain; }.booking-photo-nav { position: absolute; z-index: 1; top: 50%; display: grid; place-items: center; width: 2.7rem; height: 2.7rem; padding: 0; border: 1px solid rgba(255, 255, 255, .38); border-radius: 50%; color: white; background: rgba(8, 18, 15, .68); backdrop-filter: blur(7px); font-size: 1.8rem; cursor: pointer; transform: translateY(-50%); }.booking-photo-nav.previous { left: 1rem; }.booking-photo-nav.next { right: 1rem; }.booking-photo-thumbnails { display: flex; gap: .5rem; padding: .65rem; overflow-x: auto; background: rgba(22, 40, 34, .96); }.booking-photo-thumbnails button { width: 72px; height: 52px; flex: 0 0 auto; padding: 2px; overflow: hidden; border: 2px solid transparent; border-radius: 7px; background: transparent; cursor: pointer; }.booking-photo-thumbnails button.active { border-color: var(--lime); }.booking-photo-thumbnails img { width: 100%; height: 100%; border-radius: 4px; object-fit: cover; }.booking-detail-return { margin-top: .8rem; }
.booking-summary-card { position: sticky; top: 1rem; padding: 1.15rem; }.booking-summary-card > h2 { margin: .3rem 0 1rem; font: 800 1.2rem Manrope; }.booking-summary-card dl { display: grid; gap: .7rem; margin: 0; }.booking-summary-card dl div { display: grid; grid-template-columns: 85px 1fr; gap: .6rem; padding-bottom: .7rem; border-bottom: 1px solid var(--row-line); }.booking-summary-card dt { color: var(--muted); font-size: .58rem; }.booking-summary-card dd { margin: 0; font-size: .65rem; font-weight: 700; }.booking-total { display: grid; gap: .2rem; padding: .9rem 0; }.booking-total small { color: var(--muted); font-size: .58rem; }.booking-total strong { font: 800 1.35rem Manrope; }.booking-summary-card > .button { margin-bottom: .55rem; }.booking-chat-note { display: block; margin: -.15rem 0 .7rem; color: var(--muted); font-size: .54rem; text-align: center; }.booking-cancel-button { width: 100%; padding: .65rem; border: 0; color: var(--danger); background: transparent; font-size: .62rem; font-weight: 800; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }.booking-host-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }.booking-host-actions .button { width: 100%; }.booking-host-actions .booking-cancel-button { min-height: 2.6rem; border: 1px solid #d4a09a; border-radius: 8px; text-decoration: none; }
.booking-change-card, .booking-change-state { border: 1px solid var(--card-line); border-radius: 16px; background: var(--surface); box-shadow: var(--card-shadow); }.booking-change-card { padding: 1.25rem; }.booking-change-heading { display: flex; align-items: flex-start; gap: .8rem; margin-bottom: 1rem; }.booking-change-heading > span { display: grid; place-items: center; width: 2.35rem; height: 2.35rem; flex: 0 0 auto; border-radius: 10px; color: var(--forest); background: var(--mint); font-size: 1.05rem; font-weight: 900; }.booking-change-heading small, .booking-change-state small { color: var(--muted); font-size: .55rem; font-weight: 800; text-transform: uppercase; }.booking-change-heading h2, .booking-change-state h2 { margin: .18rem 0; font: 800 1.05rem Manrope; }.booking-change-heading p, .booking-change-state p { margin: 0; color: var(--muted); font-size: .65rem; line-height: 1.5; }.booking-change-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; gap: .8rem; }.booking-change-form .booking-change-note { grid-column: 1 / -1; }.booking-change-form > .button { justify-self: start; }.booking-package-recalc-note { display: flex; grid-column: 1 / -1; align-items: center; gap: .65rem; padding: .7rem .8rem; border-radius: 10px; color: var(--forest); background: var(--mint); }.booking-package-recalc-note > span { display: grid; place-items: center; width: 1.7rem; height: 1.7rem; flex: 0 0 auto; border-radius: 50%; color: white; background: var(--forest); font-weight: 900; }.booking-package-recalc-note > div { display: grid; gap: .1rem; }.booking-package-recalc-note strong { font-size: .66rem; }.booking-package-recalc-note small { color: var(--muted); font-size: .57rem; }.booking-change-state { display: grid; grid-template-columns: auto minmax(200px, .7fr) minmax(320px, 1fr); align-items: center; gap: 1rem; padding: 1.1rem 1.25rem; }.booking-change-state > span { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; color: white; background: #b3862a; font-weight: 900; }.booking-change-state.status-approved > span { background: #3b8a70; }.booking-change-state.status-declined > span { background: var(--danger); }.booking-change-state dl { display: grid; gap: .45rem; margin: 0; padding: .75rem; border-radius: 10px; background: var(--surface-soft); }.booking-change-state dl div { display: grid; grid-template-columns: 95px 1fr; gap: .6rem; }.booking-change-state dt { color: var(--muted); font-size: .56rem; }.booking-change-state dd { margin: 0; font-size: .62rem; font-weight: 700; overflow-wrap: anywhere; }.host-review-card { border-color: #d9b45b; }.booking-change-comparison { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .8rem; margin-bottom: 1rem; }.booking-change-comparison > div { display: grid; gap: .25rem; padding: .85rem; border: 1px solid var(--row-line); border-radius: 10px; background: var(--surface-soft); }.booking-change-comparison small { color: var(--muted); font-size: .55rem; }.booking-change-comparison strong { font-size: .68rem; }.booking-change-comparison span { color: var(--muted); font-size: .6rem; }.booking-change-actions { display: flex; gap: .6rem; }.booking-change-actions form { margin: 0; }.booking-decline-change { min-height: 2.6rem; padding: .65rem 1rem; border: 1px solid #d4a09a; border-radius: 8px; color: var(--danger); background: transparent; font-size: .62rem; font-weight: 800; cursor: pointer; }
@media (max-width: 900px) { .booking-detail-layout { grid-template-columns: 1fr; }.booking-summary-card { position: static; } }
@media (max-width: 740px) { .booking-detail-status, .booking-change-state { grid-template-columns: auto 1fr; }.booking-detail-status .button, .booking-change-state dl { grid-column: 1 / -1; }.booking-change-form { grid-template-columns: 1fr; }.booking-change-form .booking-change-note { grid-column: auto; }.booking-unit-gallery { height: 220px; }.booking-card-main-link { grid-column: 1; grid-template-columns: 1fr; margin: -.45rem; padding: .55rem; }.booking-card-main-link .booking-time { grid-column: auto; }.booking-card-open { display: none; } }
@media (max-width: 480px) { .booking-unit-gallery { grid-template-columns: 1fr; height: 210px; }.booking-unit-gallery img:not(:first-child) { display: none; }.booking-unit-facts { grid-template-columns: 1fr; }.booking-unit-facts span:first-child, .booking-unit-facts span:last-child { border-radius: 0; }.booking-summary-card dl div { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .booking-unit-gallery .booking-gallery-trigger:not(:first-child) { display: none; }.booking-photo-viewer { width: calc(100vw - 1rem); max-height: calc(100vh - 1rem); }.booking-photo-viewer-panel { max-height: calc(100vh - 1rem); }.booking-photo-viewer header { padding: .75rem; }.booking-photo-stage > img { height: 65vh; }.booking-photo-nav { width: 2.35rem; height: 2.35rem; }.booking-photo-nav.previous { left: .5rem; }.booking-photo-nav.next { right: .5rem; } }
@media (max-width: 480px) { .booking-change-comparison { grid-template-columns: 1fr; }.booking-change-comparison > span { justify-self: center; transform: rotate(90deg); }.booking-change-actions { flex-direction: column; }.booking-change-actions button { width: 100%; } }

/* Calendar connections, negotiation, reviews, clients, and sales */
.calendar-integration-card { margin-bottom: 1rem; border: 1px solid var(--card-line); border-radius: 14px; background: var(--surface); box-shadow: var(--card-shadow); }
.calendar-integration-card > summary { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .75rem; padding: .9rem 1rem; cursor: pointer; list-style: none; }.calendar-integration-card > summary::-webkit-details-marker { display: none; }.calendar-integration-card > summary > span { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 9px; color: var(--forest); background: var(--mint); font-size: 1rem; }.calendar-integration-card > summary > div { display: grid; gap: .12rem; }.calendar-integration-card > summary strong { font-size: .74rem; }.calendar-integration-card > summary small { color: var(--muted); font-size: .6rem; }.calendar-integration-card > summary > b { color: var(--forest); font-size: .62rem; }
.calendar-integration-body { padding: 1rem; border-top: 1px solid var(--row-line); }.calendar-integration-body > p { margin: 0 0 .85rem; color: var(--muted); font-size: .67rem; line-height: 1.55; }.calendar-integration-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-bottom: .9rem; }.calendar-integration-body > label { display: grid; gap: .35rem; }.calendar-integration-body > label > span { font-size: .6rem; font-weight: 800; }.calendar-integration-body > label > div { display: flex; }.calendar-integration-body input { width: 100%; min-width: 0; padding: .65rem .75rem; border: 1px solid var(--card-line); border-radius: 8px 0 0 8px; color: var(--muted); background: var(--surface-soft); font-size: .6rem; }.calendar-integration-body label button { padding: .6rem .8rem; border: 0; border-radius: 0 8px 8px 0; color: white; background: var(--forest); font-size: .6rem; font-weight: 800; cursor: pointer; }.calendar-integration-body label small { color: var(--danger); font-size: .54rem; }.calendar-integration-body > form:last-child button:not(.button) { padding: .5rem 0 0; border: 0; color: var(--danger); background: transparent; font-size: .58rem; font-weight: 800; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.booking-calendar-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; margin-bottom: .75rem; }.booking-calendar-actions a { padding: .58rem .45rem; border: 1px solid var(--card-line); border-radius: 8px; color: var(--forest); background: var(--surface-soft); font-size: .55rem; font-weight: 800; text-align: center; text-decoration: none; }
.standard-inquiry-pricing { display: grid; gap: .7rem; padding: .85rem; margin-top: 1rem; border: 1px solid color-mix(in srgb, var(--forest) 24%, var(--card-line)); border-radius: 12px; background: var(--surface-soft); }.standard-inquiry-pricing-heading { display: flex; align-items: center; gap: .6rem; }.standard-inquiry-pricing-heading > span { display: grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: 9px; color: white; background: var(--forest); font-weight: 900; }.standard-inquiry-pricing-heading > div { display: grid; gap: .1rem; }.standard-inquiry-pricing-heading small { color: var(--muted); font-size: .54rem; text-transform: uppercase; }.standard-inquiry-pricing-heading strong { font-size: .7rem; }.standard-inquiry-rate-grid { display: grid; gap: .5rem; }.standard-inquiry-rate-grid article { display: grid; gap: .35rem; padding: .6rem; border: 1px solid var(--row-line); border-radius: 9px; background: var(--surface); }.standard-inquiry-rate-grid article > small { color: var(--muted); font-size: .52rem; font-weight: 800; text-transform: uppercase; }.standard-inquiry-rate-grid span { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }.standard-inquiry-rate-grid b { font-size: .58rem; }.standard-inquiry-rate-grid strong { color: var(--forest); font-size: .62rem; }.standard-inquiry-pricing > p { margin: 0; color: var(--muted); font-size: .55rem; line-height: 1.45; }
.price-negotiation-panel { display: grid; gap: .7rem; padding: .85rem; margin-top: 1rem; border: 1px solid color-mix(in srgb, var(--forest) 30%, var(--card-line)); border-radius: 12px; background: var(--surface); }.price-negotiation-heading { display: flex; align-items: center; gap: .6rem; }.price-negotiation-heading > span { display: grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: 9px; color: var(--forest); background: var(--lime); font-weight: 900; }.price-negotiation-heading > div { display: grid; gap: .1rem; }.price-negotiation-heading small { color: var(--muted); font-size: .54rem; text-transform: uppercase; }.price-negotiation-heading strong { font-size: .7rem; }.agreed-price-note { margin: 0; padding: .6rem; border-radius: 8px; color: #28644f; background: #e1f3ea; font-size: .58rem; line-height: 1.45; }
.price-proposal-current { padding: .7rem; border: 1px solid var(--row-line); border-radius: 9px; background: var(--surface-soft); }.price-proposal-current > small { display: block; color: var(--muted); font-size: .54rem; }.price-proposal-current > strong { display: block; margin-top: .15rem; font: 800 1.1rem Manrope; }.price-proposal-current > p { margin: .3rem 0; color: var(--muted); font-size: .58rem; line-height: 1.45; }.price-proposal-current > div { display: flex; gap: .4rem; margin-top: .6rem; }.price-proposal-current .button { min-height: 2.1rem; padding: .45rem .65rem; }.price-proposal-current > em { display: block; margin-top: .4rem; color: var(--muted); font-size: .54rem; font-style: normal; }
.price-proposal-form > summary, .price-proposal-history > summary { color: var(--forest); font-size: .59rem; font-weight: 800; cursor: pointer; }.price-proposal-form form { display: grid; gap: .6rem; padding-top: .65rem; }.price-proposal-form .field-group { gap: .25rem; }.price-proposal-form input, .price-proposal-form textarea { padding: .55rem .65rem; }.price-proposal-history span { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .45rem 0; border-bottom: 1px solid var(--row-line); }.price-proposal-history b { font-size: .62rem; }.price-proposal-history small { color: var(--muted); font-size: .52rem; }
.negotiated-booking-price { display: flex; grid-column: 1 / -1; gap: .7rem; padding: .85rem; border: 1px solid #8ec6ae; border-radius: 11px; background: #e8f5ef; }.negotiated-booking-price > span { display: grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: 50%; color: white; background: var(--forest); }.negotiated-booking-price div { display: grid; gap: .12rem; }.negotiated-booking-price small { color: #39705d; font-size: .55rem; font-weight: 800; text-transform: uppercase; }.negotiated-booking-price strong { font: 800 1.1rem Manrope; }.negotiated-booking-price p { margin: 0; color: var(--muted); font-size: .57rem; }
.fixed-property-schedule { margin: .7rem 0 0; padding: .65rem .75rem; border-radius: 9px; color: #315e50; background: var(--mint); font-size: .6rem; font-weight: 700; line-height: 1.45; }
.booking-review-card { padding: 1.25rem; border: 1px solid var(--card-line); border-radius: 16px; background: var(--surface); box-shadow: var(--card-shadow); }.review-form { display: grid; gap: .85rem; }.review-form fieldset { padding: 0; border: 0; }.review-form legend { margin-bottom: .35rem; font-size: .62rem; font-weight: 800; }.review-star-options { display: flex; flex-direction: row-reverse; justify-content: flex-end; width: max-content; }.review-star-options input { position: absolute; opacity: 0; pointer-events: none; }.review-star-options label { color: #cbd5d1; font-size: 1.7rem; cursor: pointer; transition: color .15s, transform .15s; }.review-star-options label:hover, .review-star-options label:hover ~ label, .review-star-options input:checked ~ label { color: #e0a52e; }.review-star-options label:hover { transform: scale(1.1); }.review-submitted { padding: .85rem; border-radius: 11px; background: var(--surface-soft); }.review-submitted strong { color: #d3951d; letter-spacing: .08em; }.review-submitted p { margin: .4rem 0; color: var(--muted); font-size: .68rem; line-height: 1.55; }.review-submitted small { color: var(--muted); font-size: .55rem; }
.profile-reviews-section { padding: 1.2rem; border-top: 1px solid var(--row-line); }.profile-reviews-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.profile-reviews-heading h2 { margin: .2rem 0 0; font: 800 1.1rem Manrope; }.profile-reviews-heading > span { color: var(--muted); font-size: .6rem; }.profile-rating-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; margin-top: .9rem; }.profile-rating-summary article { display: grid; gap: .15rem; padding: .75rem; border: 1px solid var(--row-line); border-radius: 10px; background: var(--surface-soft); }.profile-rating-summary small, .profile-rating-summary span { color: var(--muted); font-size: .54rem; }.profile-rating-summary strong { color: #b67910; font: 800 1rem Manrope; }.profile-review-list { display: grid; gap: .65rem; margin-top: .9rem; }.profile-review-list > article { padding: .85rem; border: 1px solid var(--row-line); border-radius: 11px; }.profile-review-list article > div { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .6rem; }.profile-review-list article > div > span { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; color: var(--forest); background: var(--mint); font-size: .65rem; font-weight: 900; }.profile-review-list article > div > div { display: grid; gap: .12rem; }.profile-review-list article strong { font-size: .66rem; }.profile-review-list article small { color: var(--muted); font-size: .53rem; }.profile-review-list article b { color: #d3951d; font-size: .7rem; letter-spacing: .04em; }.profile-review-list article p { margin: .6rem 0 .35rem; color: var(--muted); font-size: .66rem; line-height: 1.55; }
.affiliate-partnership-review { margin-top: 1rem; }.affiliate-partnership-review .review-form { margin-top: 1rem; }
.workspace-page, .sales-dashboard { margin-top: 1.5rem; }.workspace-hero { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 1.35rem; border: 1px solid var(--card-line); border-radius: 16px; background: linear-gradient(135deg, var(--surface), var(--surface-tint)); box-shadow: var(--card-shadow); }.workspace-hero h2 { margin: .3rem 0; font: 800 1.25rem Manrope; }.workspace-hero p { margin: 0; color: var(--muted); font-size: .68rem; }.workspace-hero > strong { display: grid; min-width: 80px; color: var(--forest); font: 800 2rem Manrope; text-align: right; }.workspace-hero > strong small { color: var(--muted); font: 700 .55rem Inter; text-transform: uppercase; }.workspace-client-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }.workspace-client-card { display: grid; gap: .9rem; padding: 1rem; border: 1px solid var(--card-line); border-radius: 15px; background: var(--surface); box-shadow: var(--card-shadow); }.workspace-client-person { display: flex; align-items: center; gap: .7rem; }.workspace-client-person > span { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; flex: 0 0 auto; border-radius: 12px; color: var(--forest); background: var(--lime); font-weight: 900; }.workspace-client-person div { min-width: 0; }.workspace-client-person small { color: var(--muted); font-size: .52rem; text-transform: uppercase; }.workspace-client-person h2 { margin: .15rem 0; font: 800 .9rem Manrope; }.workspace-client-person p { margin: 0; color: var(--muted); font-size: .57rem; }.workspace-client-card dl { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; overflow: hidden; border: 1px solid var(--row-line); border-radius: 9px; }.workspace-client-card dl div { display: grid; gap: .2rem; padding: .65rem; border-right: 1px solid var(--row-line); background: var(--surface-soft); }.workspace-client-card dl div:last-child { border-right: 0; }.workspace-client-card dt { color: var(--muted); font-size: .5rem; }.workspace-client-card dd { margin: 0; font-size: .66rem; font-weight: 800; }.workspace-client-latest { display: grid; gap: .15rem; }.workspace-client-latest small, .workspace-client-latest span { color: var(--muted); font-size: .54rem; }.workspace-client-latest strong { font-size: .68rem; }.workspace-client-actions { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding-top: .7rem; border-top: 1px solid var(--row-line); }.workspace-client-actions .button { min-height: 2.2rem; }.workspace-client-actions > a:last-child { color: var(--forest); font-size: .58rem; font-weight: 800; }.workspace-empty { grid-column: 1 / -1; padding: 3rem; }
.sales-category-tabs { display: flex; gap: .35rem; padding-bottom: .65rem; overflow-x: auto; }.sales-category-tabs a { flex: 0 0 auto; padding: .55rem .75rem; border: 1px solid var(--card-line); border-radius: 99px; color: var(--muted); background: var(--surface); font-size: .6rem; font-weight: 800; text-decoration: none; }.sales-category-tabs a.active { border-color: var(--forest); color: white; background: var(--forest); }.sales-metric-grid { display: grid; grid-template-columns: 1.45fr repeat(4, 1fr); gap: .75rem; }.sales-metric-grid article, .sales-metric-grid > .sales-metric-card { display: grid; align-content: center; min-height: 108px; padding: .9rem; border: 1px solid var(--card-line); border-radius: 14px; background: var(--surface); box-shadow: var(--card-shadow); }.sales-metric-grid .primary { color: white; background: linear-gradient(135deg, var(--forest), #2d6b59); }.sales-metric-grid span { color: var(--muted); font-size: .54rem; font-weight: 800; text-transform: uppercase; }.sales-metric-grid .primary span, .sales-metric-grid .primary small { color: #c9ded5; }.sales-metric-grid strong { margin: .35rem 0; font: 800 1.15rem Manrope; }.sales-metric-grid .primary strong { font-size: 1.4rem; }.sales-metric-grid small { color: var(--muted); font-size: .52rem; }.sales-metric-card { position: relative; width: 100%; color: var(--ink); font-family: inherit; text-align: left; cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }.sales-metric-card > i { position: absolute; right: .85rem; bottom: .55rem; color: var(--forest); font-size: .46rem; font-style: normal; font-weight: 850; opacity: .72; }.sales-metric-card.primary > i { color: #d9eee5; }.sales-metric-card:hover { border-color: color-mix(in srgb, var(--forest) 45%, var(--card-line)); box-shadow: 0 12px 28px rgba(22, 65, 52, .13); transform: translateY(-2px); }.sales-metric-card:focus-visible { outline: 3px solid color-mix(in srgb, var(--forest) 35%, transparent); outline-offset: 3px; }.sales-chart-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr); gap: 1rem; margin-top: 1rem; }.sales-chart-card, .sales-ledger-card { padding: 1rem; border: 1px solid var(--card-line); border-radius: 15px; background: var(--surface); box-shadow: var(--card-shadow); }.monthly-sales-chart { grid-row: span 2; }.sales-chart-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }.sales-chart-heading h2 { margin: .25rem 0 0; font: 800 .95rem Manrope; }.sales-chart-heading > small { color: var(--muted); font-size: .54rem; }.sales-bars { display: grid; grid-template-columns: repeat(12, minmax(22px, 1fr)); align-items: end; gap: .45rem; height: 260px; padding-top: 2rem; margin-top: .8rem; border-bottom: 1px solid var(--row-line); background: repeating-linear-gradient(to bottom, transparent 0, transparent 24%, var(--row-line) 25%, transparent 25.5%); }.sales-bars > div { position: relative; display: grid; grid-template-rows: 1fr auto; align-items: end; height: 100%; text-align: center; }.sales-bars i { width: min(26px, 72%); min-height: 3px; justify-self: center; border-radius: 5px 5px 0 0; background: linear-gradient(to top, var(--forest), #79c4a7); }.sales-bars small { padding: .45rem 0; color: var(--muted); font-size: .48rem; }.sales-bar-value { position: absolute; bottom: calc(var(--bar-height, 0%) + 1.1rem); left: 50%; display: none; padding: .25rem; border-radius: 5px; color: white; background: var(--forest); font-size: .45rem; white-space: nowrap; transform: translateX(-50%); }.sales-bars > div:hover .sales-bar-value { display: block; }.category-sales-bars { display: grid; gap: .65rem; margin-top: 1rem; }.category-sales-bars > div { display: grid; grid-template-columns: 100px 1fr 85px; align-items: center; gap: .55rem; }.category-sales-bars span { display: grid; gap: .1rem; }.category-sales-bars strong { overflow: hidden; font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }.category-sales-bars small { color: var(--muted); font-size: .48rem; }.category-sales-bars i { height: .45rem; overflow: hidden; border-radius: 99px; background: var(--surface-tint); }.category-sales-bars b { display: block; height: 100%; border-radius: inherit; background: #5b8def; }.category-sales-bars em { font-size: .55rem; font-style: normal; font-weight: 800; text-align: right; }.sales-status-visual { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 1rem; margin-top: 1rem; }.sales-donut { display: grid; place-content: center; width: 105px; height: 105px; border-radius: 50%; background: radial-gradient(circle at center, var(--surface) 0 53%, transparent 54%), conic-gradient(#3b8a70 0 var(--confirmed-angle), #e0a52e var(--confirmed-angle) var(--pending-angle), #bd6860 var(--pending-angle) 360deg); text-align: center; }.sales-donut strong { font: 800 1rem Manrope; }.sales-donut small { color: var(--muted); font-size: .48rem; }.sales-status-visual ul { display: grid; gap: .45rem; padding: 0; margin: 0; list-style: none; }.sales-status-visual li { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .4rem; font-size: .55rem; }.sales-status-visual li i { width: .5rem; height: .5rem; border-radius: 50%; }.sales-status-visual i.confirmed { background: #3b8a70; }.sales-status-visual i.pending { background: #e0a52e; }.sales-status-visual i.cancelled { background: #bd6860; }.sales-ledger-card { margin-top: 1rem; }.sales-ledger-table { margin-top: .8rem; overflow-x: auto; }.sales-ledger-head, .sales-ledger-table > a { display: grid; grid-template-columns: minmax(190px, 1.5fr) minmax(120px, 1fr) 100px 90px 110px; align-items: center; gap: .7rem; min-width: 680px; padding: .7rem; }.sales-ledger-head { color: var(--muted); background: var(--surface-soft); font-size: .5rem; font-weight: 800; text-transform: uppercase; }.sales-ledger-table > a { border-bottom: 1px solid var(--row-line); color: var(--ink); font-size: .58rem; text-decoration: none; }.sales-ledger-table > a:hover { background: var(--surface-tint); }.sales-ledger-table > a > span:first-child { display: grid; gap: .12rem; }.sales-ledger-table > a small { color: var(--muted); font-size: .49rem; }.sales-ledger-table .booking-status { width: max-content; font-style: normal; }.sales-ledger-table > a > strong:last-child { text-align: right; }
.sales-report-filter { display:grid; grid-template-columns:minmax(220px,1fr) repeat(3,minmax(145px,.55fr)) auto auto; align-items:end; gap:.7rem; padding:1rem; margin-bottom:1rem; border:1px solid var(--card-line); border-radius:15px; background:var(--surface); box-shadow:var(--card-shadow); }.sales-report-filter h2 { margin:.2rem 0 0; font:800 1rem Manrope; }.sales-report-filter label { display:grid; gap:.25rem; min-width:0; }.sales-report-filter label > span { color:var(--muted); font-size:.51rem; font-weight:800; }.sales-report-filter label > small { color:var(--muted); font-size:.45rem; }.sales-report-filter input,.sales-report-filter select { width:100%; min-width:0; }.sales-profit-metrics { grid-template-columns:1.35fr repeat(5,1fr); }.sales-profit-metrics .positive strong,.positive { color:#25745f!important; }.sales-profit-metrics .negative strong,.negative { color:#b44942!important; }.sales-profit-metrics .attention { border-color:#e0b04a; background:#fff9e8; }.sales-unit-report-card { padding:1rem; margin-top:1rem; border:1px solid var(--card-line); border-radius:15px; background:var(--surface); box-shadow:var(--card-shadow); }.unit-profit-table { margin-top:.85rem; overflow-x:auto; }.unit-profit-head,.unit-profit-table > a { display:grid; grid-template-columns:minmax(180px,1.4fr) repeat(6,minmax(100px,1fr)); align-items:center; gap:.6rem; min-width:920px; padding:.72rem; }.unit-profit-head { color:var(--muted); background:var(--surface-soft); font-size:.48rem; font-weight:900; text-transform:uppercase; }.unit-profit-table > a { border-bottom:1px solid var(--row-line); color:var(--ink); text-decoration:none; }.unit-profit-table > a:hover { background:var(--surface-tint); }.unit-profit-table > a > span:first-child,.unit-profit-table > a > b { display:grid; gap:.1rem; }.unit-profit-table strong,.unit-profit-table b { font-size:.58rem; }.unit-profit-table small { color:var(--muted); font-size:.46rem; font-weight:500; }.unit-profit-table b.attention { color:#a56f10; }.sales-profit-chart-grid { grid-template-columns:minmax(0,1.7fr) minmax(280px,.75fr); }.profit-bars > a { position:relative; display:grid; grid-template-rows:1fr auto; align-items:end; height:100%; color:inherit; text-align:center; text-decoration:none; }.profit-bars > a:hover .sales-bar-value { display:block; }.profit-bar-pair { display:flex; align-items:end; justify-content:center; gap:3px; height:100%; }.profit-bar-pair i,.profit-bar-pair b { width:min(13px,38%); min-height:3px; border-radius:4px 4px 0 0; }.profit-bar-pair i { background:linear-gradient(to top,var(--forest),#79c4a7); }.profit-bar-pair b { background:#4e82d8; }.profit-bar-pair b.negative { background:#c55d55; }.sales-chart-legend { display:flex; gap:1rem; margin-top:.75rem; color:var(--muted); font-size:.5rem; }.sales-chart-legend span { display:flex; align-items:center; gap:.35rem; }.sales-chart-legend i { width:.65rem; height:.65rem; border-radius:3px; background:var(--forest); }.sales-chart-legend span:last-child i { background:#4e82d8; }.sales-health-list { display:grid; gap:.6rem; margin:1rem 0 0; }.sales-health-list div { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem; border:1px solid var(--row-line); border-radius:9px; background:var(--surface-soft); }.sales-health-list dt { color:var(--muted); font-size:.53rem; }.sales-health-list dd { margin:0; font-size:.68rem; font-weight:900; }
.unit-finance-workspace { display:grid; gap:1rem; padding:1.15rem; margin-top:1rem; border:1px solid color-mix(in srgb,var(--forest) 30%,var(--card-line)); border-radius:17px; background:linear-gradient(145deg,var(--surface),var(--surface-tint)); box-shadow:var(--card-shadow); }.unit-finance-heading { display:flex; align-items:start; justify-content:space-between; gap:1rem; }.unit-finance-heading h2 { margin:.2rem 0; font:800 1.15rem Manrope; }.unit-finance-heading p { margin:0; color:var(--muted); font-size:.62rem; }.unit-finance-heading > span { display:grid; justify-items:end; color:var(--muted); font-size:.5rem; }.unit-finance-heading > span strong { margin-top:.2rem; color:var(--forest); font:800 1rem Manrope; }.unit-finance-summary { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.65rem; }.unit-finance-summary article { display:grid; gap:.25rem; padding:.75rem; border:1px solid var(--row-line); border-radius:10px; background:var(--surface); }.unit-finance-summary small { color:var(--muted); font-size:.48rem; }.unit-finance-summary strong { font-size:.68rem; }.unit-finance-config-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }.unit-finance-panel { overflow:hidden; border:1px solid var(--row-line); border-radius:12px; background:var(--surface); }.unit-finance-panel > summary { display:flex; justify-content:space-between; gap:.7rem; padding:.85rem; cursor:pointer; list-style:none; }.unit-finance-panel > summary::-webkit-details-marker { display:none; }.unit-finance-panel > summary > span { display:grid; gap:.12rem; }.unit-finance-panel > summary strong { font-size:.65rem; }.unit-finance-panel > summary small { color:var(--muted); font-size:.48rem; }.unit-finance-panel > summary b { align-self:center; padding:.35rem .5rem; border-radius:7px; color:var(--forest); background:var(--mint); font-size:.48rem; }.unit-finance-form { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; padding:.85rem; border-top:1px solid var(--row-line); background:var(--surface-soft); }.unit-finance-form label { display:grid; align-content:start; gap:.25rem; min-width:0; }.unit-finance-form label > span { color:var(--muted); font-size:.48rem; font-weight:800; }.unit-finance-form label small { font-weight:500; }.unit-finance-form input,.unit-finance-form select { width:100%; min-width:0; }.unit-finance-form .wide,.unit-finance-form > p,.unit-finance-form > button { grid-column:1/-1; }.unit-finance-form > p { margin:0; color:var(--muted); font-size:.48rem; line-height:1.45; }.unit-finance-form > button { justify-self:end; }.unit-finance-ledger-grid { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }.unit-ledger-panel { min-width:0; padding:.9rem; border:1px solid var(--row-line); border-radius:13px; background:var(--surface); }.unit-cost-list,.unit-obligation-list { display:grid; gap:.55rem; margin-top:.75rem; }.unit-cost-list > p,.unit-obligation-list > p { margin:0; padding:1rem; color:var(--muted); font-size:.55rem; text-align:center; }.unit-cost-list article { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:.6rem; padding:.65rem; border:1px solid var(--row-line); border-radius:9px; background:var(--surface-soft); }.unit-cost-icon { display:grid; place-items:center; width:1.6rem; height:1.6rem; border-radius:7px; color:var(--forest); background:var(--mint); font-weight:900; }.unit-cost-list article > div:nth-child(2),.unit-cost-list article > div:nth-child(3) { display:grid; gap:.1rem; }.unit-cost-list article > div:nth-child(3) { justify-items:end; }.unit-cost-list strong,.unit-cost-list b { font-size:.58rem; }.unit-cost-list small,.unit-cost-list p { margin:0; color:var(--muted); font-size:.46rem; }.unit-obligation-list article { display:grid; gap:.55rem; padding:.7rem; border:1px solid var(--row-line); border-radius:10px; background:var(--surface-soft); }.unit-obligation-list header { display:flex; justify-content:space-between; gap:.75rem; }.unit-obligation-list header > span { display:grid; gap:.1rem; }.unit-obligation-list header strong,.unit-obligation-list header b { font-size:.59rem; }.unit-obligation-list header small { color:var(--muted); font-size:.46rem; }.obligation-progress { height:6px; overflow:hidden; border-radius:99px; background:var(--row-line); }.obligation-progress i { display:block; height:100%; border-radius:inherit; background:var(--forest); }.obligation-facts { display:flex; justify-content:space-between; gap:.5rem; color:var(--muted); font-size:.45rem; }.unit-obligation-list form { display:grid; grid-template-columns:1fr 1.25fr auto; align-items:end; gap:.45rem; padding-top:.55rem; border-top:1px solid var(--row-line); }.unit-obligation-list form input { width:100%; min-width:0; }.unit-obligation-list .money-input { min-height:2.25rem; grid-template-columns:2rem minmax(0,1fr); }.due-payables-panel { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; padding:1rem; border:1px solid #e0b04a; border-radius:13px; background:#fff9e8; }.due-payables-panel h2 { margin:.2rem 0; font:800 .9rem Manrope; }.due-payables-panel p { margin:0; color:#7b672f; font-size:.54rem; }.due-payables-panel > strong { color:#9a6812; font:800 1.1rem Manrope; }.due-payables-panel ul { grid-column:1/-1; display:grid; gap:.35rem; padding:0; margin:0; list-style:none; }.due-payables-panel li { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.55rem .65rem; border-radius:8px; background:rgba(255,255,255,.7); }.due-payables-panel li span { display:grid; gap:.1rem; }.due-payables-panel li b,.due-payables-panel li strong { font-size:.56rem; }.due-payables-panel li small { color:#7b672f; font-size:.45rem; }
html[data-color-mode="dark"] .agreed-price-note, html[data-color-mode="dark"] .negotiated-booking-price { color: #b7e1cf; background: #203a31; }
@media (max-width: 1100px) { .sales-metric-grid { grid-template-columns: repeat(3, 1fr); }.sales-metric-grid article.primary { grid-column: span 2; }.sales-chart-grid { grid-template-columns: 1fr; }.monthly-sales-chart { grid-row: auto; } }
@media (max-width:1100px) { .sales-report-filter { grid-template-columns:1fr 1fr 1fr; }.sales-report-filter > div { grid-column:1/-1; }.sales-profit-metrics { grid-template-columns:repeat(3,1fr); }.unit-finance-config-grid { grid-template-columns:1fr; }.unit-finance-summary { grid-template-columns:repeat(3,1fr); } }
@media (max-width: 740px) { .workspace-client-grid { grid-template-columns: 1fr; }.sales-metric-grid { grid-template-columns: 1fr 1fr; }.sales-metric-grid article.primary { grid-column: 1 / -1; }.profile-rating-summary { grid-template-columns: 1fr; }.sales-bars { gap: .18rem; height: 210px; }.sales-bars i { width: 72%; }.category-sales-bars > div { grid-template-columns: 85px 1fr 72px; } }
@media (max-width:740px) { .sales-report-filter { grid-template-columns:1fr; }.sales-report-filter > div { grid-column:auto; }.sales-report-filter .button { width:100%; }.unit-finance-heading { flex-direction:column; }.unit-finance-heading > span { justify-items:start; }.unit-finance-summary { grid-template-columns:1fr 1fr; }.unit-finance-ledger-grid { grid-template-columns:1fr; }.unit-cost-list article { grid-template-columns:auto minmax(0,1fr) auto; }.unit-cost-list article form { grid-column:2/-1; }.unit-obligation-list form { grid-template-columns:1fr; }.due-payables-panel { grid-template-columns:1fr; }.due-payables-panel ul { grid-column:auto; } }
@media (max-width: 480px) { .calendar-integration-actions { display: grid; }.calendar-integration-actions .button { width: 100%; }.booking-calendar-actions { grid-template-columns: 1fr; }.workspace-hero { align-items: flex-start; }.workspace-client-card dl { grid-template-columns: 1fr; }.workspace-client-card dl div { border-right: 0; border-bottom: 1px solid var(--row-line); }.workspace-client-actions { align-items: stretch; flex-direction: column; }.sales-metric-grid { grid-template-columns: 1fr; }.sales-metric-grid article.primary { grid-column: auto; }.sales-bars { overflow-x: auto; grid-template-columns: repeat(12, 30px); }.sales-status-visual { grid-template-columns: 1fr; justify-items: center; }.sales-status-visual ul { width: 100%; }.profile-review-list article > div { grid-template-columns: auto 1fr; }.profile-review-list article b { grid-column: 1 / -1; }.price-proposal-current > div { flex-direction: column; } }

@media (max-width: 480px) {
    .role-options { grid-template-columns: 1fr; }
    .listing-summary-bar { grid-template-columns: 1fr 1fr; }
    .listing-summary-bar > div + div { padding-left: 0; border-left: 0; }
    .listing-summary-bar > div:first-child { grid-column: 1 / -1; }
    .calendar-toolbar { padding: .85rem; }
    .calendar-toolbar h2 { font-size: 1.2rem; }
    .calendar-toolbar { flex-direction: column; }
    .calendar-toolbar-actions { width: 100%; align-items: stretch; }
    .calendar-view-switch { display: grid; grid-template-columns: 1fr 1fr; }
    .calendar-view-switch a { justify-content: center; }
    .calendar-navigation { justify-content: space-between; }
    .listing-timeline-heading > span { display: none; }
    .calendar-day { min-height: 58px; }
    .booking-calendar-grid { grid-template-rows: repeat(var(--calendar-weeks), minmax(calc(3rem + var(--calendar-lanes) * .48rem), auto)); }
    .calendar-day-bookings { display: none; }
    .calendar-booking-span { height: .34rem; margin: calc(2.35rem + var(--calendar-lane) * .48rem) .08rem 0; padding: 0; border-left-width: 2px; font-size: 0; }
    .calendar-booking-span strong, .calendar-booking-span time, .calendar-span-continuation { display: none; }
    .calendar-booking-span .calendar-event-icon { display: none; }
    .calendar-filter-bar { grid-template-columns: 1fr; }
    .calendar-booking-dialog dl { grid-template-columns: 1fr; }
    .calendar-booking-dialog dl div { border-right: 0; }
    .calendar-booking-dialog footer { flex-direction: column-reverse; }
    .calendar-booking-dialog footer .button { width: 100%; }
    .calendar-weekdays span { padding: .5rem .1rem; font-size: .54rem; }
    .booking-form { grid-template-columns: 1fr; }
    .booking-unit-field, .booking-notes-field, .booking-form .button { grid-column: auto; }
    .booking-form .button { width: 100%; }
    .manual-booking-form { grid-template-columns: 1fr; }
    .manual-booking-wide, .manual-booking-intro, .manual-booking-duration, .manual-booking-submit { grid-column: auto; }
    .manual-booking-card > summary { grid-template-columns: auto minmax(0, 1fr); }.manual-booking-card > summary > b { display: none; }
    .manual-booking-intro, .manual-booking-submit { align-items: stretch; flex-direction: column; }
    .manual-booking-submit .button { width: 100%; }
    .day-booking-item { grid-template-columns: 1fr auto; }
    .booking-time { grid-column: 1 / -1; }
    .sidebar-nav a { font-size: .68rem; padding: .5rem; }
}

/* Rental rules and private host details */
.private-detail-panel { margin-top: 1rem; padding: 1rem; border: 1px solid color-mix(in srgb, var(--forest) 30%, var(--card-line)); border-radius: 12px; background: var(--surface); }
.private-detail-heading { display: flex; align-items: center; gap: .65rem; margin-bottom: .9rem; }
.private-detail-heading > span { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 8px; background: var(--mint); }
.private-detail-heading div { display: grid; gap: .1rem; }
.private-detail-heading strong { font-size: .76rem; }
.private-detail-heading small { color: var(--muted); font-size: .62rem; }
.gps-notes-field { grid-column: span 2; }
.field-reveal-button { align-self: start; padding: .25rem 0; border: 0; color: var(--forest); background: transparent; font-size: .62rem; font-weight: 800; cursor: pointer; }
.listing-rules-field { grid-column: 1 / -1; }
.listing-rules-field textarea { white-space: pre-wrap; }
.private-gps-preview, .listing-rules-preview { margin-bottom: .7rem; padding: .65rem .7rem; border: 1px solid var(--card-line); border-radius: 9px; background: var(--surface-soft); font-size: .65rem; }
.private-gps-preview summary, .listing-rules-preview summary { color: var(--forest); font-weight: 800; cursor: pointer; }
.private-gps-preview dl { display: grid; gap: .35rem; margin: .65rem 0 0; }
.private-gps-preview dl div { display: grid; grid-template-columns: 65px minmax(0, 1fr); gap: .4rem; }
.private-gps-preview dt { color: var(--muted); }
.private-gps-preview dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.private-gps-preview a { color: var(--forest); }
.listing-rules-preview p { min-height: 0; margin: .55rem 0 0; color: var(--muted); font-size: .63rem; line-height: 1.5; white-space: pre-wrap; }
.booking-rules-panel { padding: .85rem; border-left: 3px solid var(--forest); border-radius: 8px; background: var(--surface-tint); }
.booking-rules-panel strong { font-size: .72rem; }

/* Profile photos, global discovery, host storefronts, and page guides */
.user-avatar { position: relative; display: grid; place-items: center; flex: 0 0 auto; overflow: hidden; color: white; background: var(--forest); font-weight: 900; }
.user-avatar > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.user-avatar > span { display: grid; place-items: center; width: 100%; height: 100%; }
.header-user-tools { display: flex; align-items: center; justify-content: flex-end; gap: .55rem; min-width: 0; }
.user-badge .header-user-avatar { width: 2.65rem; height: 2.65rem; border-radius: 50%; }
.profile-photo-manager { padding: 1.1rem; border: 1px solid var(--card-line); border-radius: 16px; background: var(--surface); box-shadow: var(--card-shadow); }
.profile-photo-manager-heading { display: flex; align-items: center; gap: 1rem; }.profile-photo-current { width: 5rem; height: 5rem; border: 4px solid var(--surface); border-radius: 18px; box-shadow: 0 0 0 1px var(--card-line), 0 10px 24px rgba(20, 44, 37, .16); font-size: 1.35rem; }.profile-photo-manager-heading h2 { margin: .22rem 0 .3rem; font: 800 1.15rem Manrope; }.profile-photo-manager-heading p { max-width: 780px; margin: 0; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.profile-photo-upload { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .75rem; padding: .8rem; margin-top: 1rem; border: 1px dashed color-mix(in srgb, var(--forest) 38%, var(--card-line)); border-radius: 12px; background: var(--surface-soft); }.profile-photo-upload label { display: grid; gap: .18rem; }.profile-photo-upload label span { font-size: .7rem; font-weight: 800; }.profile-photo-upload label small { color: var(--muted); font-size: .56rem; }.profile-photo-upload input { min-width: 0; font-size: .62rem; }.profile-photo-upload > img { width: 3rem; height: 3rem; border-radius: 10px; object-fit: cover; }.profile-photo-upload .error-text { grid-column: 1 / -1; }
.profile-photo-history { display: grid; grid-template-columns: repeat(auto-fill, minmax(205px, 1fr)); gap: .7rem; margin-top: 1rem; }.profile-photo-history article { display: grid; grid-template-columns: 3.2rem minmax(0, 1fr); align-items: center; gap: .65rem; padding: .65rem; border: 1px solid var(--row-line); border-radius: 11px; background: var(--surface-soft); }.profile-photo-history article.active { border-color: #6eaa94; background: var(--mint); }.profile-photo-history article > img { width: 3.2rem; height: 3.2rem; border-radius: 10px; object-fit: cover; }.profile-photo-history article > div { display: grid; gap: .15rem; min-width: 0; }.profile-photo-history strong { font-size: .62rem; }.profile-photo-history small { color: var(--muted); font-size: .5rem; }.profile-photo-actions { display: flex !important; grid-column: 1 / -1; flex-direction: row !important; gap: .55rem !important; padding-top: .55rem; border-top: 1px solid var(--row-line); }.profile-photo-actions form { flex: 1; }.profile-photo-actions button { width: 100%; padding: .4rem; border: 0; border-radius: 7px; color: var(--forest); background: var(--surface); font-size: .54rem; font-weight: 800; cursor: pointer; }.profile-photo-actions button.danger { color: var(--danger); }.profile-photo-empty { margin: .8rem 0 0; color: var(--muted); font-size: .62rem; }
.public-profile-avatar { width: 3.3rem; height: 3.3rem; border-radius: 14px; color: var(--forest); background: var(--lime); font: 800 1.2rem Manrope; }.reviewer-avatar { width: 2rem; height: 2rem; border-radius: 50%; color: var(--forest); background: var(--mint); }.inquiry-avatar { overflow: hidden; }.context-partner-avatar { width: 2.5rem; height: 2.5rem; border-radius: 11px; }.workspace-client-avatar { width: 2.8rem; height: 2.8rem; border-radius: 12px; color: var(--forest); background: var(--lime); }.account-avatar { width: 2.5rem; height: 2.5rem; border-radius: 50%; }
.global-listing-search { position: relative; z-index: 46; }.global-search-toggle { display: flex; align-items: center; justify-content: center; gap: .4rem; min-width: 2.65rem; height: 2.65rem; padding: 0 .72rem; border: 1px solid var(--card-line); border-radius: 99px; color: var(--ink); background: var(--surface); box-shadow: var(--card-shadow); font-size: 1rem; cursor: pointer; }.global-search-toggle span { font-size: .6rem; font-weight: 800; }.global-search-panel { position: absolute; top: calc(100% + .65rem); right: 0; width: min(470px, calc(100vw - 2rem)); padding: .85rem; border: 1px solid var(--card-line); border-radius: 15px; background: var(--surface); box-shadow: 0 20px 50px rgba(20, 44, 37, .22); }.global-search-panel input { width: 100%; padding: .75rem .85rem; border: 1px solid var(--card-line); border-radius: 10px; color: var(--ink); background: var(--surface-soft); font-size: .7rem; }.global-search-panel input:focus { outline: 0; border-color: var(--forest); box-shadow: 0 0 0 3px color-mix(in srgb, var(--forest) 14%, transparent); }.global-search-help, .global-search-empty { margin: .55rem .2rem; color: var(--muted); font-size: .55rem; line-height: 1.45; }.global-search-results { display: grid; max-height: min(430px, 60vh); overflow-y: auto; }.global-search-result { display: grid; grid-template-columns: 3.6rem minmax(0, 1fr) auto; align-items: center; gap: .65rem; padding: .65rem .2rem; border-top: 1px solid var(--row-line); }.global-search-result-photo { display: grid; place-items: center; width: 3.6rem; height: 3rem; overflow: hidden; border-radius: 9px; background: var(--surface-tint); text-decoration: none; }.global-search-result-photo img { width: 100%; height: 100%; object-fit: cover; }.global-search-result > div { display: grid; gap: .13rem; min-width: 0; }.global-search-result-name { overflow: hidden; color: var(--ink); font-size: .67rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; text-decoration: none; }.global-search-result small { overflow: hidden; color: var(--muted); font-size: .51rem; text-overflow: ellipsis; white-space: nowrap; }.global-search-result-host { color: var(--forest); font-size: .53rem; font-weight: 800; text-decoration: none; }.global-search-result > strong { font-size: .59rem; white-space: nowrap; }
.page-guide { position: relative; z-index: 1000; }.page-guide-button { display: grid; place-items: center; width: 2.65rem; height: 2.65rem; padding: 0; border: 1px solid var(--card-line); border-radius: 50%; color: var(--forest); background: var(--surface); box-shadow: var(--card-shadow); font: 900 .88rem Georgia, serif; cursor: pointer; }.page-guide-dialog { width: min(520px, calc(100vw - 2rem)); max-width: none; max-height: min(760px, calc(100dvh - 2rem)); overflow-y: auto; padding: 0; border: 0; border-radius: 18px; color: var(--ink); background: var(--surface); box-shadow: 0 28px 80px rgba(8, 25, 20, .34); }.page-guide-dialog::backdrop { background: rgba(9, 25, 20, .58); backdrop-filter: blur(3px); }.page-guide-dialog-heading { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .75rem; padding: 1rem; border-bottom: 1px solid var(--row-line); }.page-guide-dialog-heading > span { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; color: var(--forest); background: var(--lime); font-weight: 900; }.page-guide-dialog-heading small { color: var(--muted); font-size: .5rem; font-weight: 800; text-transform: uppercase; }.page-guide-dialog h2 { margin: .15rem 0 0; font: 800 1rem Manrope; }.page-guide-dialog-heading > button { width: 2rem; height: 2rem; border: 0; border-radius: 50%; color: var(--muted); background: var(--surface-soft); font-size: 1.15rem; cursor: pointer; }.page-guide-dialog > p { margin: .9rem 1rem .55rem; color: var(--muted); font-size: .63rem; line-height: 1.5; }.page-guide-dialog ol { display: grid; gap: .45rem; padding: 0 1rem; margin: 0; list-style: none; }.page-guide-dialog li button { display: grid; grid-template-columns: auto 1fr; gap: .12rem .65rem; width: 100%; padding: .7rem; border: 1px solid var(--row-line); border-radius: 10px; color: var(--ink); background: var(--surface-soft); text-align: left; cursor: pointer; }.page-guide-dialog li button:hover { border-color: color-mix(in srgb, var(--forest) 34%, var(--row-line)); background: var(--surface-tint); }.page-guide-dialog li button > span { display: grid; grid-row: span 2; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%; color: var(--forest); background: var(--lime); font-size: .56rem; font-weight: 900; }.page-guide-dialog li strong { font-size: .64rem; }.page-guide-dialog li small { color: var(--muted); font-size: .54rem; line-height: 1.4; }.page-guide-dialog footer { position: sticky; bottom: 0; display: flex; justify-content: flex-end; gap: .55rem; padding: 1rem; border-top: 1px solid var(--row-line); background: var(--surface); }.guide-demo-highlight { position: relative; z-index: 80 !important; outline: 5px solid color-mix(in srgb, var(--lime) 78%, white); outline-offset: 5px; border-radius: 12px; box-shadow: 0 0 0 9999px rgba(7, 22, 17, .52) !important; }.guide-demo-hint { position: fixed; z-index: 1002; right: 1rem; bottom: 1rem; isolation: isolate; width: min(350px, calc(100vw - 2rem)); padding: 1rem; border: 2px solid color-mix(in srgb, var(--lime) 65%, var(--card-line)); border-radius: 14px; color: var(--ink); background: var(--surface); box-shadow: 0 18px 55px rgba(8, 25, 20, .4); opacity: 1; }.guide-demo-hint > small { color: var(--forest); font-size: .5rem; font-weight: 900; text-transform: uppercase; }.guide-demo-hint > strong { display: block; margin-top: .2rem; font: 800 .76rem Manrope; }.guide-demo-hint > p { margin: .35rem 0 .8rem; color: var(--muted); font-size: .6rem; line-height: 1.5; }.guide-demo-hint > div { display: flex; justify-content: space-between; gap: .5rem; }.guide-demo-hint button { min-height: 2rem; padding: .42rem .65rem; border: 0; border-radius: 7px; color: var(--forest); background: var(--mint); font-size: .55rem; font-weight: 800; cursor: pointer; }.guide-demo-hint [data-guide-demo-next] { background: var(--lime); }
.booking-map-explorer { overflow: hidden; }.booking-map-explorer .step-heading { grid-template-columns: auto 1fr auto; }.booking-discovery-map { min-height: 390px; margin-top: .8rem; border-radius: 12px; }.map-info-card { display: grid; gap: .35rem; width: 260px; max-width: 100%; padding: .1rem; color: #1d2d28; }.map-info-card > img { width: 100%; height: 110px; border-radius: 9px; object-fit: cover; }.map-info-host { display: flex; align-items: center; gap: .5rem; }.map-info-host > img { width: 2rem; height: 2rem; border-radius: 50%; object-fit: cover; }.map-info-host > span { display: grid; }.map-info-host small { color: #64736e; font-size: .62rem; }.map-info-host b { font-size: .72rem; }.map-info-card > strong { margin-top: .1rem; font-size: .82rem; }.map-info-card > span, .map-info-card > small { color: #64736e; font-size: .65rem; }.map-info-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem; margin-top: .25rem; }.map-info-actions a { padding: .45rem; border-radius: 7px; color: white; background: #173c34; font-size: .58rem; font-weight: 800; text-align: center; text-decoration: none; }.map-info-actions a:last-child { color: #173c34; background: #d9ed8b; }
.map-profile-marker { position: absolute; display: flex; align-items: center; gap: .38rem; min-width: max-content; height: 46px; padding: .2rem .58rem .2rem .2rem; border: 2px solid #fff; border-radius: 99px; color: #173c34; background: #fff; box-shadow: 0 5px 16px rgba(14, 42, 34, .32); cursor: pointer; transform: translate(-23px, -100%); transition: box-shadow .16s ease, transform .16s ease; }.map-profile-marker:hover, .map-profile-marker:focus-visible { outline: 0; box-shadow: 0 0 0 4px rgba(217, 237, 139, .78), 0 8px 20px rgba(14, 42, 34, .4); transform: translate(-23px, calc(-100% - 3px)); }.map-profile-marker-avatar { position: relative; display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 auto; overflow: hidden; border-radius: 50%; color: #fff; background: #173c34; }.map-profile-marker-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }.map-profile-marker-initials { font-size: .62rem; font-weight: 900; letter-spacing: .02em; }.map-profile-marker-price { color: #173c34; font: 900 .72rem Manrope; white-space: nowrap; }.map-cluster-marker { position: absolute; display: grid; place-items: center; width: 46px; height: 46px; padding: 0; overflow: visible; border: 3px solid #fff; border-radius: 50%; color: #173c34; background: #d9ed8b; box-shadow: 0 4px 14px rgba(14, 42, 34, .36); cursor: pointer; font: 900 .75rem Manrope; transform: translate(-50%, -100%); }.map-cluster-marker::after { position: absolute; inset: -7px; border: 2px solid rgba(23, 60, 52, .2); border-radius: 50%; content: ''; }.map-cluster-marker:hover, .map-cluster-marker:focus-visible { outline: 0; box-shadow: 0 0 0 5px rgba(217, 237, 139, .46), 0 7px 18px rgba(14, 42, 34, .42); }.map-info-actions a.map-info-navigate { color: #173c34; background: #d9ed8b; }.map-info-actions a.map-info-host-link { color: #173c34; background: #edf3f0; }
@media (max-width: 480px) { .map-profile-marker { height: 42px; transform: translate(-21px, -100%); }.map-profile-marker:hover, .map-profile-marker:focus-visible { transform: translate(-21px, calc(-100% - 2px)); }.map-profile-marker-avatar { width: 32px; height: 32px; } }
.host-storefront-shell { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; padding: 2rem 0 4rem; }.host-storefront-header { display: flex; align-items: center; justify-content: space-between; padding: 1rem max(1rem, calc((100vw - 1180px) / 2)); border-bottom: 1px solid var(--card-line); background: var(--surface); }.host-storefront-header .brand { display: flex; align-items: center; gap: .55rem; color: var(--ink); text-decoration: none; }.host-storefront-header .brand > span { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 9px; color: var(--forest); background: var(--lime); font-size: .58rem; font-weight: 900; }.host-storefront-header nav { display: flex; align-items: center; gap: .8rem; }.host-storefront-header nav > a:not(.button) { color: var(--forest); font-size: .65rem; font-weight: 800; }.host-storefront-hero { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1.2rem; padding: clamp(1.3rem, 4vw, 2.2rem); border-radius: 20px; color: white; background: linear-gradient(120deg, var(--forest), color-mix(in srgb, var(--forest) 70%, #5d897c)); }.host-storefront-avatar { width: 6rem; height: 6rem; border: 4px solid rgba(255,255,255,.7); border-radius: 20px; background: var(--lime); color: var(--forest); font-size: 1.6rem; }.host-storefront-hero h1 { margin: .35rem 0; font: 800 clamp(1.6rem, 4vw, 2.8rem) Manrope; }.host-storefront-hero p { max-width: 650px; margin: .25rem 0 0; color: rgba(255,255,255,.75); font-size: .7rem; line-height: 1.5; }.host-storefront-hero dl { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.22); border-radius: 13px; background: rgba(255,255,255,.08); }.host-storefront-hero dl div { display: grid; gap: .2rem; min-width: 100px; padding: .8rem; border-left: 1px solid rgba(255,255,255,.18); }.host-storefront-hero dl div:first-child { border-left: 0; }.host-storefront-hero dt { color: rgba(255,255,255,.65); font-size: .5rem; }.host-storefront-hero dd { margin: 0; font-size: .67rem; font-weight: 800; }.host-storefront-listings { margin-top: 1.5rem; }.host-storefront-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: .9rem; }.host-storefront-heading h2 { margin: .3rem 0 0; font: 800 1.25rem Manrope; }.host-storefront-heading > a { color: var(--forest); font-size: .62rem; font-weight: 800; }.host-listing-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }.host-listing-grid > article { overflow: hidden; border: 1px solid var(--card-line); border-radius: 15px; background: var(--surface); box-shadow: var(--card-shadow); }.host-listing-photo { display: grid; place-items: center; height: 210px; overflow: hidden; background: var(--surface-tint); font-size: 2.4rem; }.host-listing-photo img { width: 100%; height: 100%; object-fit: cover; }.host-listing-grid article > div { padding: .95rem; }.host-listing-grid article small { color: var(--muted); font-size: .53rem; font-weight: 800; text-transform: uppercase; }.host-listing-grid h3 { margin: .4rem 0 .25rem; font: 800 .9rem Manrope; }.host-listing-grid p { min-height: 2.8rem; margin: 0; color: var(--muted); font-size: .62rem; line-height: 1.5; }.host-listing-grid footer { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding-top: .75rem; margin-top: .75rem; border-top: 1px solid var(--row-line); }.host-listing-grid footer span { color: var(--muted); font-size: .55rem; }.host-listing-grid footer strong { color: var(--ink); font-size: .68rem; }.host-listing-grid footer .button { min-height: 2.25rem; padding: .5rem .7rem; }.public-host-link { color: var(--forest); font-weight: 800; }.public-host-preview > div:first-child { display: flex; align-items: center; gap: .75rem; }.public-host-avatar { width: 3.1rem; height: 3.1rem; border-radius: 12px; }.public-host-preview h2 { margin: .15rem 0; }.public-host-preview small { color: var(--muted); font-size: .57rem; }
.public-info-guide { position: relative; }.public-info-guide > summary { display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid var(--card-line); border-radius: 50%; color: var(--forest); background: var(--surface); font: 900 .72rem Georgia, serif; cursor: pointer; list-style: none; }.public-info-guide > summary::-webkit-details-marker { display: none; }.public-info-guide > div { position: absolute; z-index: 20; top: calc(100% + .55rem); right: 0; width: min(300px, calc(100vw - 2rem)); padding: .75rem; border: 1px solid var(--card-line); border-radius: 10px; color: var(--ink); background: var(--surface); box-shadow: var(--card-shadow); }.public-info-guide strong { font-size: .68rem; }.public-info-guide p { margin: .35rem 0 0; color: var(--muted); font-size: .58rem; line-height: 1.5; }

@media (max-width: 980px) {
    .global-search-toggle span, .user-badge-copy { display: none; }
    .host-storefront-hero { grid-template-columns: auto 1fr; }.host-storefront-hero dl { grid-column: 1 / -1; }
    .host-listing-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 740px) {
    .header-user-tools { gap: .3rem; }.global-search-toggle, .page-guide-button, .notification-bell { width: 2.35rem; height: 2.35rem; min-width: 2.35rem; }.profile-menu .user-badge { min-height: 2.35rem; padding: 0; }.user-badge .header-user-avatar { width: 2.35rem; height: 2.35rem; }.user-badge .profile-chevron, .profile-verification-warning { display: none; }
    .global-search-panel { position: fixed; top: 4.25rem; right: .75rem; left: .75rem; width: auto; }.profile-photo-upload { grid-template-columns: 1fr; }.profile-photo-upload > img { grid-row: 2; }.booking-map-explorer .step-heading { grid-template-columns: auto 1fr; }.booking-map-explorer .step-heading > button { grid-column: 1 / -1; }.booking-discovery-map { min-height: 330px; }.host-storefront-hero { grid-template-columns: 1fr; text-align: center; }.host-storefront-avatar { justify-self: center; }.host-storefront-hero dl { grid-column: auto; }.host-storefront-hero dl div { min-width: 0; }.host-listing-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
    .profile-photo-manager-heading { align-items: flex-start; }.profile-photo-current { width: 4rem; height: 4rem; }.profile-photo-history { grid-template-columns: 1fr; }.host-storefront-hero dl { grid-template-columns: 1fr; }.host-storefront-hero dl div { border-top: 1px solid rgba(255,255,255,.18); border-left: 0; }.map-info-actions { grid-template-columns: 1fr; }.global-search-result { grid-template-columns: 3.2rem minmax(0, 1fr); }.global-search-result > strong { grid-column: 2; }.page-guide-dialog footer { flex-direction: column; }.page-guide-dialog footer .button { width: 100%; }
}
.booking-rules-panel p { margin: .4rem 0; color: var(--ink); font-size: .68rem; line-height: 1.55; white-space: pre-wrap; }
.booking-rules-panel small { color: var(--muted); font-size: .6rem; }

@media (max-width: 480px) {
    .gps-notes-field { grid-column: auto; }
}

/* Client booking discovery */
.booking-journey { display: grid; gap: 1rem; }
.journey-intro { padding: 1.5rem 0 .35rem; }
.journey-intro h2 { margin: .4rem 0 .35rem; font: 800 clamp(1.7rem, 3vw, 2.45rem) Manrope; letter-spacing: -.055em; }
.journey-intro p { max-width: 620px; margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.6; }
.booking-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; padding: 0; margin: 0 0 .35rem; list-style: none; }
.booking-steps li { position: relative; display: flex; align-items: center; gap: .55rem; color: var(--muted); font-size: .68rem; }
.booking-steps li::after { content: ''; height: 1px; flex: 1; margin: 0 .7rem; background: var(--card-line); }
.booking-steps li:last-child::after { display: none; }
.booking-steps span { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; flex: 0 0 auto; border: 1px solid var(--card-line); border-radius: 50%; background: var(--surface); font-size: .62rem; }
.booking-steps li.active { color: var(--ink); }
.booking-steps li.active span { border-color: var(--forest); color: white; background: var(--forest); }
.booking-step-card, .booking-selection-card, .client-bookings-card, .client-catalog { padding: clamp(1.15rem, 2.5vw, 1.65rem); border: 1px solid var(--card-line); border-radius: 18px; background: var(--surface); box-shadow: var(--card-shadow); }
.step-heading { display: flex; align-items: flex-start; gap: .8rem; margin-bottom: 1.1rem; }
.step-heading > span { padding: .35rem .55rem; border-radius: 99px; color: var(--forest); background: var(--mint); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.step-heading h3, .results-heading h3, .booking-selection-card h3 { margin: 0; font: 800 1.12rem Manrope; letter-spacing: -.03em; }
.step-heading p, .results-heading p, .booking-selection-card > div > p { margin: .22rem 0 0; color: var(--muted); font-size: .7rem; line-height: 1.5; }
.booking-category-grid { display: grid; grid-template-columns: repeat(5, minmax(125px, 1fr)); gap: .7rem; }
.booking-category-card { display: grid; gap: .28rem; min-height: 125px; padding: 1rem; border: 1px solid var(--card-line); border-radius: 13px; color: var(--ink); background: var(--surface-soft); text-decoration: none; transition: transform .15s, border-color .15s, background .15s; }
.booking-category-card:hover { transform: translateY(-2px); border-color: var(--forest); }
.booking-category-card.selected { border-color: var(--forest); background: var(--mint); box-shadow: inset 0 0 0 1px var(--forest); }
.booking-category-card > span { font-size: 1.55rem; }
.booking-category-card strong { margin-top: auto; font-size: .75rem; }
.booking-category-card small { color: var(--muted); font-size: .57rem; line-height: 1.35; }
.discovery-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: .85rem; }
.discovery-form .field-group { min-width: 0; }
.discovery-form input, .discovery-form select { min-width: 0; }
.discovery-submit { grid-column: span 2; min-height: 3rem; justify-content: space-between; }
.results-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--row-line); }
.results-heading h3 { margin-top: .3rem; font-size: 1.3rem; }
.client-result-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.client-result-card { display: grid; grid-template-columns: 42% 1fr; min-width: 0; overflow: hidden; border: 1px solid var(--card-line); border-radius: 14px; background: var(--surface-soft); }
.client-result-card.selected { border-color: var(--forest); box-shadow: 0 0 0 2px var(--mint); }
.result-photo { min-height: 265px; background: var(--surface-tint); }
.result-photo img { width: 100%; height: 100%; object-fit: cover; }
.result-photo > span { display: grid; place-items: center; height: 100%; font-size: 2.5rem; }
.result-card-body { display: flex; min-width: 0; flex-direction: column; padding: 1rem; }
.result-card-kicker { display: flex; align-items: center; justify-content: space-between; gap: .5rem; color: var(--muted); font-size: .55rem; font-weight: 800; text-transform: uppercase; }
.result-card-kicker small { padding: .25rem .4rem; border-radius: 99px; color: #2f735d; background: #e1f3ea; font-size: .52rem; text-transform: none; }
.result-card-body h4 { margin: .6rem 0 .18rem; font: 800 1rem Manrope; }
.result-card-body > p { margin: .45rem 0; color: var(--muted); font-size: .63rem; line-height: 1.5; }
.result-card-body .result-location { margin: 0; color: var(--ink); font-weight: 700; }
.result-facts { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; padding: .7rem 0; margin-top: auto; border-top: 1px solid var(--row-line); }
.result-facts span { display: grid; gap: .15rem; min-width: 0; }
.result-facts small, .result-card-footer small { color: var(--muted); font-size: .53rem; }
.result-facts strong { overflow: hidden; font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.result-card-footer { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding-top: .7rem; border-top: 1px solid var(--row-line); }
.result-card-footer > div { display: grid; }
.result-card-footer > div strong { font: 800 .85rem Manrope; }
.result-card-footer .button { min-height: 2.2rem; padding: .55rem .75rem; font-size: .6rem; }
.button-selected { border: 1px solid var(--forest); color: var(--forest); background: var(--mint); }
.no-results { grid-column: 1 / -1; padding: 2.5rem; border: 1px dashed var(--card-line); border-radius: 14px; text-align: center; }
.no-results > span { font-size: 2rem; }.no-results h4 { margin: .6rem 0 .25rem; font: 800 1rem Manrope; }.no-results p { margin: 0 0 .75rem; color: var(--muted); font-size: .7rem; }.no-results a { color: var(--forest); font-size: .68rem; font-weight: 800; }
.booking-selection-card { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); gap: 1.5rem; border-color: color-mix(in srgb, var(--forest) 45%, var(--card-line)); }
.booking-selection-card h3 { margin-top: .35rem; font-size: 1.35rem; }
.selection-facts { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1rem 0; }
.selection-facts span { padding: .38rem .55rem; border-radius: 99px; color: var(--muted); background: var(--surface-soft); font-size: .6rem; font-weight: 700; }
.client-unit-rules { margin-top: .6rem; border: 1px solid var(--card-line); border-radius: 10px; background: var(--surface-soft); }
.client-unit-rules summary { display: flex; justify-content: space-between; gap: .7rem; padding: .75rem; color: var(--ink); font-size: .66rem; font-weight: 800; cursor: pointer; list-style: none; }
.client-unit-rules summary::-webkit-details-marker { display: none; }
.client-unit-rules summary span { color: var(--forest); font-size: .57rem; }
.client-unit-rules[open] summary span { font-size: 0; }.client-unit-rules[open] summary span::after { content: 'Collapse'; font-size: .57rem; }
.client-unit-rules p { margin: 0; padding: .75rem; border-top: 1px solid var(--row-line); color: var(--muted); font-size: .65rem; line-height: 1.55; white-space: pre-wrap; }
.client-unit-rules > small { display: block; padding: 0 .75rem .75rem; color: var(--muted); font-size: .56rem; }
.selection-booking-form { align-self: start; padding: 1rem; border-radius: 12px; background: var(--surface-soft); }
.selection-booking-form .button { width: 100%; }
.booking-package-builder { display: grid; grid-column: 1 / -1; gap: .8rem; padding: .9rem; border: 1px solid color-mix(in srgb, var(--forest) 28%, var(--card-line)); border-radius: 12px; background: var(--surface); }
.package-builder-heading { display: flex; align-items: end; justify-content: space-between; gap: .8rem; }
.package-builder-heading h3 { margin: .18rem 0 0; font: 800 .82rem Manrope; }
.package-builder-heading > small { color: var(--muted); font-size: .57rem; }
.package-quantity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.package-quantity-card { display: flex; align-items: center; justify-content: space-between; gap: .65rem; padding: .65rem .7rem; border: 1px solid var(--row-line); border-radius: 9px; background: var(--surface-soft); cursor: pointer; }
.package-quantity-card > span { display: grid; gap: .1rem; min-width: 0; }
.package-quantity-card strong { font-size: .65rem; }
.package-quantity-card small { color: var(--muted); font-size: .53rem; }
.package-quantity-card input { width: 4.3rem; min-width: 4.3rem; padding: .5rem; text-align: center; }
.package-calculation-summary { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.package-calculation-summary > span { display: grid; gap: .16rem; padding: .62rem .7rem; border-radius: 9px; color: var(--forest); background: var(--mint); }
.package-calculation-summary small { color: var(--muted); font-size: .52rem; font-weight: 800; text-transform: uppercase; }
.package-calculation-summary strong { font-size: .65rem; }
.package-breakdown-list { display: grid; gap: .3rem; }
.package-breakdown-list span { display: grid; gap: .08rem; }
.package-breakdown-list small { color: var(--muted); font-size: .52rem; font-weight: 500; }
.booking-change-package-builder { margin-top: .15rem; }
.request-note { color: var(--muted); font-size: .58rem; text-align: center; }
.client-catalog { padding: clamp(1.15rem, 2.5vw, 1.65rem); }
.catalog-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--row-line); }.catalog-heading h3 { margin: .22rem 0 0; font: 800 1.18rem Manrope; letter-spacing: -.03em; }.catalog-heading p { margin: .22rem 0 0; color: var(--muted); font-size: .65rem; }.catalog-heading > span { display: grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: 50%; color: var(--forest); background: var(--lime); font-size: .65rem; font-weight: 900; }
.catalog-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; padding-top: 1rem; }
.catalog-card { display: flex; min-width: 0; overflow: hidden; flex-direction: column; border: 1px solid var(--row-line); border-radius: 13px; background: var(--surface-soft); }.catalog-photo { display: grid; place-items: center; height: 175px; overflow: hidden; color: var(--forest); background: var(--surface-tint); text-decoration: none; }.catalog-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s; }.catalog-card:hover .catalog-photo img { transform: scale(1.025); }.catalog-photo > span { font-size: 2.5rem; }.catalog-card-body { display: flex; flex: 1; flex-direction: column; padding: .85rem; }.catalog-card-category { display: flex; align-items: center; justify-content: space-between; gap: .5rem; color: var(--muted); font-size: .52rem; font-weight: 800; text-transform: uppercase; }.catalog-card-category small { padding: .22rem .38rem; border-radius: 99px; color: #2f735d; background: #e1f3ea; font-size: .49rem; text-transform: none; }.catalog-card h4 { margin: .5rem 0 .18rem; font: 800 .82rem Manrope; }.catalog-card h4 a { color: var(--ink); text-decoration: none; }.catalog-location, .catalog-host { margin: .18rem 0; color: var(--muted); font-size: .59rem; line-height: 1.4; }.catalog-host a { color: var(--forest); font-weight: 800; }.catalog-fees { display: block; margin-top: .35rem; color: var(--muted); font-size: .53rem; line-height: 1.4; }.catalog-rules { margin-top: .55rem; }.catalog-price { display: flex; align-items: end; justify-content: space-between; gap: .5rem; padding-top: .65rem; margin-top: auto; }.catalog-price > span { display: grid; }.catalog-price small { color: var(--muted); font-size: .51rem; }.catalog-price strong { font: 800 .78rem Manrope; }.catalog-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; padding-top: .65rem; margin-top: .55rem; border-top: 1px solid var(--row-line); }.catalog-actions .button { min-height: 2.25rem; padding: .5rem; font-size: .56rem; }.catalog-navigate-link { grid-column: 1 / -1; color: var(--forest); font-size: .55rem; font-weight: 800; text-align: center; text-decoration: none; }
.client-bookings-card { margin-bottom: 1rem; }

html[data-color-mode="dark"] .result-card-kicker small { color: #9ed2be; background: #203a31; }
html[data-color-mode="dark"] .button-selected { color: var(--lime); }

@media (max-width: 1100px) {
    .booking-category-grid { grid-template-columns: repeat(3, 1fr); }
    .client-result-grid { grid-template-columns: 1fr; }
    .catalog-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 740px) {
    .booking-steps strong { display: none; }
    .booking-category-grid { grid-template-columns: repeat(2, 1fr); }
    .discovery-form, .booking-selection-card { grid-template-columns: 1fr; }
    .discovery-submit { grid-column: auto; }
    .client-result-card { grid-template-columns: 1fr; }
    .result-photo { min-height: 190px; max-height: 240px; }
    .catalog-list { grid-template-columns: 1fr; }
    .package-quantity-grid, .package-calculation-summary { grid-template-columns: 1fr; }
    .package-builder-heading { align-items: start; flex-direction: column; }
}

@media (max-width: 480px) {
    .booking-category-grid { grid-template-columns: 1fr 1fr; gap: .5rem; }
    .booking-category-card { min-height: 110px; padding: .75rem; }
    .booking-step-card, .booking-selection-card, .client-bookings-card { padding: 1rem; }
}

/* Verification profiles and pre-booking inquiries */
.profile-settings-link { display: block; padding: .6rem .8rem; border-radius: 8px; color: var(--forest); background: var(--surface-tint); font-size: .62rem; font-weight: 800; text-decoration: none; }
.profile-required-banner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; padding: 1rem 1.2rem; margin-top: 1.5rem; border: 1px solid #d9b45b; border-radius: 14px; background: #fff7df; }
.profile-required-banner > span { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; color: #765415; background: #f3d98b; font-weight: 900; }.profile-required-banner strong { font-size: .76rem; }.profile-required-banner p { margin: .18rem 0 0; color: #765f2e; font-size: .65rem; }.profile-required-banner .button { min-height: 2.35rem; }
.profile-verification-shell { display: grid; min-width: 0; width: 100%; max-width: 100%; gap: 1rem; margin-top: 2rem; }
.verification-status-card { display: flex; align-items: center; gap: 1rem; padding: 1.2rem 1.35rem; border: 1px solid #d9b45b; border-radius: 16px; background: #fff7df; }
.verification-status-card.complete { border-color: #6eaa94; background: #e8f5ef; }
.verification-status-card > span { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; flex: 0 0 auto; border-radius: 50%; color: white; background: #b3862a; font-weight: 900; }.verification-status-card.complete > span { background: var(--forest); }
.verification-status-card small { color: var(--muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; }.verification-status-card h2 { margin: .2rem 0; font: 800 1rem Manrope; }.verification-status-card p { margin: 0; color: var(--muted); font-size: .66rem; }
.verification-form { display: grid; min-width: 0; width: 100%; gap: 1rem; }
.verification-form > section { min-width: 0; width: 100%; max-width: 100%; padding: 1.35rem; border: 1px solid var(--card-line); border-radius: 16px; background: var(--surface); box-shadow: var(--card-shadow); }
.verification-section-heading { display: flex; align-items: flex-start; gap: .8rem; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--row-line); }
.verification-section-heading > span { display: grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: 8px; color: var(--forest); background: var(--mint); font-size: .62rem; font-weight: 900; }.verification-section-heading > div { min-width: 0; }.verification-section-heading h2 { margin: 0; font: 800 1rem Manrope; overflow-wrap: anywhere; }.verification-section-heading p { margin: .2rem 0 0; color: var(--muted); font-size: .65rem; overflow-wrap: anywhere; }
.profile-password-form .verification-actions { margin-top: 1rem; }.password-setup-note { display: flex; align-items: flex-start; gap: .55rem; margin: 0 0 1rem; padding: .75rem .85rem; border: 1px solid color-mix(in srgb, var(--forest) 15%, transparent); border-radius: 10px; color: var(--forest); background: var(--mint); font-size: .68rem; line-height: 1.5; }.password-setup-note svg { width: .85rem; margin-top: .13rem; flex: 0 0 auto; }
.verification-grid { display: grid; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }.verification-wide { min-width: 0; grid-column: 1 / -1; }
.verification-grid .field-group, .verification-grid input, .verification-grid select, .verification-grid textarea { min-width: 0; max-width: 100%; }
.profile-date-shell { position: relative; width: 100%; min-width: 0; max-width: 100%; height: 2.75rem; overflow: hidden; border-radius: 11px; }
.profile-date-shell::after { content: "⌄"; position: absolute; z-index: 1; top: 50%; right: .8rem; color: var(--muted); pointer-events: none; transform: translateY(-50%); }
.profile-date-input { position: absolute; inset: 0; display: block; box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; height: 100%; min-height: 0 !important; max-height: 100%; inline-size: 100%; min-inline-size: 0; max-inline-size: 100%; padding: .55rem 2.3rem .55rem .75rem !important; overflow: hidden; line-height: 1.1; -webkit-appearance: none; appearance: none; }
.profile-date-input::-webkit-date-and-time-value { width: 100%; min-width: 0; margin: 0; text-align: left; }
.profile-date-input::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.verification-grid input[type="file"] { width: 100%; max-width: 100%; padding: .65rem; overflow: hidden; background: var(--surface-soft); font-size: .72rem; }
.verification-grid input[type="file"]::file-selector-button { max-width: 100%; margin-right: .45rem; }
.searchable-combobox { position: relative; min-width: 0; max-width: 100%; }
.searchable-combobox input { padding-right: 2.6rem; }
.searchable-combobox > span { position: absolute; top: 50%; right: 1rem; color: var(--muted); font-size: .85rem; pointer-events: none; transform: translateY(-50%); }
.id-document-preview { display: grid; min-width: 0; width: min(360px, 100%); max-width: 100%; gap: .6rem; margin-top: .35rem; padding: .7rem; overflow: hidden; border: 1px solid var(--card-line); border-radius: 12px; background: var(--surface-soft); }
.id-document-preview[hidden] { display: none; }
.id-document-preview img { display: block; width: 100%; max-width: 100%; height: 180px; border: 0; border-radius: 9px; object-fit: contain; background: white; }
.id-document-preview object { display: block; width: 100%; max-width: 100%; height: 220px; border: 0; border-radius: 9px; background: white; }
.id-preview-meta { display: flex; min-width: 0; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; padding: .15rem .2rem; }
.id-preview-meta strong { min-width: 0; overflow: hidden; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.id-preview-meta a, .id-preview-meta small { color: var(--forest); font-size: .6rem; font-weight: 800; }
.verification-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; border: 1px solid var(--card-line); border-radius: 14px; background: var(--surface); }.verification-actions p { margin: 0; color: var(--muted); font-size: .64rem; }
.public-profile-card { min-width: 0; max-width: 100%; margin-top: 2rem; border: 1px solid var(--card-line); border-radius: 18px; overflow: hidden; background: var(--surface); box-shadow: var(--card-shadow); }
.public-profile-hero { display: grid; min-width: 0; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1.5rem; color: white; background: var(--forest); }.public-profile-hero > span { display: grid; place-items: center; width: 3.3rem; height: 3.3rem; border-radius: 14px; color: var(--forest); background: var(--lime); font: 800 1.2rem Manrope; }.public-profile-hero > div { min-width: 0; }.public-profile-hero small { opacity: .7; font-size: .58rem; text-transform: uppercase; }.public-profile-hero h2 { margin: .15rem 0; font: 800 1.35rem Manrope; overflow-wrap: anywhere; }.public-profile-hero p { margin: 0; opacity: .75; font-size: .66rem; overflow-wrap: anywhere; }.public-profile-hero > strong { padding: .5rem .7rem; border-radius: 99px; color: var(--forest); background: var(--lime); font-size: .62rem; }
.profile-validation-grid { display: grid; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }.profile-validation-grid > section { min-width: 0; min-height: 180px; padding: 1.35rem; border-right: 1px solid var(--row-line); border-bottom: 1px solid var(--row-line); }.profile-validation-grid > section:nth-child(2n) { border-right: 0; }.profile-validation-grid p { color: var(--muted); font-size: .72rem; line-height: 1.65; overflow-wrap: anywhere; }.profile-validation-grid dl { display: grid; gap: .65rem; margin: .75rem 0; }.profile-validation-grid dl div { display: grid; min-width: 0; grid-template-columns: 90px minmax(0, 1fr); gap: .7rem; }.profile-validation-grid dt { color: var(--muted); font-size: .6rem; }.profile-validation-grid dd { min-width: 0; margin: 0; font-size: .68rem; font-weight: 700; overflow-wrap: anywhere; }.profile-document-link { color: var(--forest); font-size: .64rem; font-weight: 800; }
.profile-privacy-note { margin: 0; padding: .85rem 1.35rem; color: var(--muted); background: var(--surface-soft); font-size: .6rem; text-align: center; }
.document-viewer-body { min-height: 100vh; color: #f6fbf8; background: #09100e; }
.document-viewer-shell { min-height: 100dvh; display: grid; grid-template-rows: auto minmax(0, 1fr); }
.document-viewer-header { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) 1rem max(1rem, env(safe-area-inset-left)); border-bottom: 1px solid rgba(255,255,255,.14); background: rgba(14, 31, 26, .94); backdrop-filter: blur(14px); }
.document-viewer-header > div { display: grid; justify-items: end; gap: .15rem; text-align: right; }.document-viewer-header span { color: #a9bbb5; font-size: .58rem; text-transform: uppercase; letter-spacing: .08em; }.document-viewer-header strong { color: white; font-size: .72rem; }
.document-viewer-back { display: inline-flex; align-items: center; min-height: 2.6rem; padding: .65rem .85rem; border: 1px solid rgba(255,255,255,.25); border-radius: 10px; color: white; background: rgba(255,255,255,.08); font-size: .72rem; font-weight: 800; text-decoration: none; }
.document-viewer-stage { display: grid; min-width: 0; min-height: 0; place-items: center; padding: 1rem; overflow: auto; }
.document-viewer-stage img { display: block; max-width: 100%; max-height: calc(100dvh - 6.5rem); object-fit: contain; }
.document-viewer-stage object { width: min(100%, 1000px); height: calc(100dvh - 6.5rem); min-height: 420px; border: 0; border-radius: 8px; background: white; }
.selection-gate-card { align-self: start; padding: 1.25rem; border: 1px solid #d9b45b; border-radius: 12px; background: #fff7df; }.selection-gate-card > span { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 8px; color: #765415; background: #f3d98b; font-size: .62rem; font-weight: 900; }.selection-gate-card h3 { margin: .8rem 0 .3rem; font: 800 1rem Manrope; }.selection-gate-card p { margin: 0 0 1rem; color: #765f2e; font-size: .66rem; line-height: 1.55; }
.inquiry-required-heading { padding-bottom: .85rem; border-bottom: 1px solid var(--row-line); }.inquiry-required-heading > span { color: #8a6121; font-size: .57rem; font-weight: 900; text-transform: uppercase; }.inquiry-required-heading h3 { margin: .25rem 0; font: 800 1rem Manrope; }.inquiry-required-heading p { margin: 0; color: var(--muted); font-size: .65rem; line-height: 1.5; }
.inquiry-complete-note { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .6rem; padding: .7rem; border-radius: 9px; background: var(--mint); }.inquiry-complete-note > span { display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; color: white; background: var(--forest); font-size: .58rem; }.inquiry-complete-note div { display: grid; }.inquiry-complete-note strong { font-size: .65rem; }.inquiry-complete-note small { color: var(--muted); font-size: .55rem; }.inquiry-complete-note a { color: var(--forest); font-size: .58rem; font-weight: 800; }
.inquiry-list-section { margin-top: 2rem; }.inquiry-list-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; padding: 1.35rem; border: 1px solid var(--card-line); border-radius: 16px 16px 0 0; background: var(--surface); }.inquiry-list-heading h2 { margin: .25rem 0; font: 800 1.2rem Manrope; }.inquiry-list-heading p { margin: 0; color: var(--muted); font-size: .7rem; }.inquiry-list-heading > span { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; color: var(--forest); background: var(--lime); font-size: .68rem; font-weight: 900; }
.inquiry-list { border: 1px solid var(--card-line); border-top: 0; border-radius: 0 0 16px 16px; overflow: hidden; background: var(--surface); box-shadow: var(--card-shadow); }
.inquiry-row { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; padding: 1rem 1.2rem; border-bottom: 1px solid var(--row-line); color: var(--ink); text-decoration: none; }.inquiry-row:hover { background: var(--surface-tint); }.inquiry-avatar { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: 12px; color: white; background: var(--forest); font-weight: 900; }.inquiry-row-main > div { display: flex; align-items: center; gap: .5rem; }.inquiry-row-main strong { font-size: .76rem; }.inquiry-row-main > small { color: var(--muted); font-size: .58rem; }.inquiry-row-main p { margin: .3rem 0 0; color: var(--muted); font-size: .65rem; }.inquiry-row-meta { display: grid; justify-items: end; gap: .2rem; }.inquiry-row-meta > span { display: grid; place-items: center; min-width: 1.3rem; height: 1.3rem; border-radius: 99px; color: var(--forest); background: var(--lime); font-size: .55rem; font-weight: 900; }.inquiry-row-meta small { color: var(--muted); font-size: .55rem; }.inquiry-row-meta b { color: var(--forest); }
.inquiry-status { padding: .28rem .48rem; border-radius: 99px; color: #2f735d; background: #e1f3ea; font-size: .53rem; font-weight: 800; }.inquiry-status.status-booking_requested { color: #8a6121; background: #fff0cb; }.inquiry-status.status-closed { color: #8d4741; background: #f7e4e1; }
.inquiry-empty { display: grid; justify-items: center; gap: .4rem; padding: 4rem 1rem; text-align: center; }.inquiry-empty > span { font-size: 1.5rem; }.inquiry-empty h2 { margin: .3rem 0 0; font: 800 1rem Manrope; }.inquiry-empty p { margin: 0 0 .7rem; color: var(--muted); font-size: .68rem; }
.conversation-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 1rem; margin-top: 2rem; }.chat-card, .inquiry-context-card { border: 1px solid var(--card-line); border-radius: 16px; background: var(--surface); box-shadow: var(--card-shadow); }.chat-card { overflow: hidden; }.chat-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.2rem; border-bottom: 1px solid var(--row-line); }.chat-heading h2 { margin: .25rem 0; font: 800 1.1rem Manrope; }.chat-heading p { margin: 0; color: var(--muted); font-size: .64rem; }
.chat-heading-status { display: flex; align-items: center; gap: .4rem; }.live-chat-status { display: inline-flex; align-items: center; gap: .3rem; padding: .28rem .48rem; border-radius: 99px; color: #2f735d; background: #e1f3ea; font-size: .53rem; font-weight: 800; }.live-chat-status i { width: .38rem; height: .38rem; border-radius: 50%; background: #3b8a70; box-shadow: 0 0 0 3px rgba(59, 138, 112, .15); }
.message-thread { display: flex; min-height: 390px; max-height: 58vh; flex-direction: column; gap: .7rem; overflow-y: auto; padding: 1.2rem; background: var(--surface-soft); }.chat-message { align-self: flex-start; max-width: min(75%, 540px); padding: .75rem .85rem; border: 1px solid var(--card-line); border-radius: 4px 12px 12px 12px; background: var(--surface); }.chat-message.mine { align-self: flex-end; border-color: var(--forest); border-radius: 12px 4px 12px 12px; background: var(--mint); }.chat-message > div { display: flex; justify-content: space-between; gap: 1rem; }.chat-message strong { font-size: .6rem; }.chat-message time { color: var(--muted); font-size: .52rem; }.chat-message p { margin: .35rem 0 0; font-size: .68rem; line-height: 1.55; white-space: pre-wrap; }
.chat-image-attachment { display: grid; gap: .3rem; margin-top: .55rem; color: var(--muted); font-size: .55rem; text-decoration: none; }.chat-image-attachment img { display: block; width: min(320px, 100%); max-height: 260px; border-radius: 8px; object-fit: cover; }.chat-image-attachment small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-typing-indicator { display: flex; align-items: center; gap: .22rem; min-height: 2rem; padding: .4rem 1.2rem; color: var(--muted); background: var(--surface-soft); font-size: .58rem; }.chat-typing-indicator[hidden] { display: none; }.chat-typing-indicator > span { width: .32rem; height: .32rem; border-radius: 50%; background: var(--forest); animation: typing-bounce 1s infinite ease-in-out; }.chat-typing-indicator > span:nth-child(2) { animation-delay: .14s; }.chat-typing-indicator > span:nth-child(3) { animation-delay: .28s; }.chat-typing-indicator strong { margin-left: .3rem; font-weight: 700; }
@keyframes typing-bounce { 0%, 60%, 100% { transform: translateY(0); opacity: .35; } 30% { transform: translateY(-3px); opacity: 1; } }
.chat-composer { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .7rem; padding: 1rem; border-top: 1px solid var(--row-line); }.chat-composer-main { position: relative; min-width: 0; border: 1px solid var(--input-border); border-radius: 10px; background: var(--surface); }.chat-composer textarea { width: 100%; min-height: 64px; padding: .75rem .8rem .35rem; border: 0; border-radius: 10px 10px 0 0; resize: none; box-shadow: none; }.chat-composer textarea:focus { border: 0; box-shadow: none; }.chat-composer .button { min-height: 3rem; }.chat-composer-tools { position: relative; display: flex; align-items: center; gap: .35rem; min-height: 2.1rem; padding: .25rem .45rem; border-top: 1px solid var(--row-line); }.chat-tool-button { display: inline-flex; align-items: center; gap: .3rem; padding: .3rem .45rem; border: 0; border-radius: 6px; color: var(--muted); background: transparent; font-size: .58rem; font-weight: 800; cursor: pointer; }.chat-tool-button:hover { color: var(--forest); background: var(--surface-tint); }.emoji-picker { position: absolute; z-index: 10; left: 0; bottom: calc(100% + .4rem); display: grid; grid-template-columns: repeat(8, 1fr); gap: .2rem; width: 285px; padding: .55rem; border: 1px solid var(--card-line); border-radius: 10px; background: var(--surface); box-shadow: 0 16px 35px rgba(14, 32, 26, .18); }.emoji-picker[hidden] { display: none; }.emoji-picker button { display: grid; place-items: center; width: 1.9rem; height: 1.9rem; padding: 0; border: 0; border-radius: 6px; background: transparent; font-size: 1rem; cursor: pointer; }.emoji-picker button:hover { background: var(--surface-tint); transform: scale(1.08); }.chat-attachment-button { cursor: pointer; }.chat-composer input[type="file"] { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }.chat-composer-tools > small { max-width: 150px; overflow: hidden; color: var(--muted); font-size: .52rem; text-overflow: ellipsis; white-space: nowrap; }.chat-attachment-locked { margin-left: auto; color: var(--muted); font-size: .52rem; }.chat-send-error { grid-column: 1 / -1; margin: 0; color: var(--danger); font-size: .6rem; }.chat-send-error[hidden] { display: none; }
.inquiry-context-card { align-self: start; padding: 1rem; }.context-partner { display: flex; align-items: center; gap: .7rem; padding-bottom: .9rem; border-bottom: 1px solid var(--row-line); }.context-partner > span { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 11px; color: white; background: var(--forest); font-weight: 900; }.context-partner div { display: grid; }.context-partner small { color: var(--muted); font-size: .55rem; }.context-partner strong { font-size: .72rem; }.context-partner em { color: #2f735d; font-size: .55rem; font-style: normal; font-weight: 800; }.inquiry-context-card > .button { width: 100%; margin-top: .8rem; }.context-details { display: grid; gap: .7rem; padding: 1rem 0; }.context-details span { display: grid; gap: .15rem; }.context-details small, .inquiry-booking-state small { color: var(--muted); font-size: .55rem; }.context-details strong { font-size: .65rem; }.context-note { display: block; margin-top: .5rem; color: var(--muted); font-size: .55rem; line-height: 1.45; text-align: center; }.inquiry-booking-state { display: grid; gap: .25rem; padding: .8rem; border-radius: 9px; background: var(--mint); }.inquiry-booking-state strong { font-size: .7rem; }.inquiry-booking-state span { font: 800 .9rem Manrope; }.booking-trust-links { display: flex; gap: .65rem; margin-top: .3rem; }.booking-trust-links a { color: var(--forest); font-size: .58rem; font-weight: 800; }

html[data-color-mode="dark"] .profile-required-banner, html[data-color-mode="dark"] .selection-gate-card { border-color: #806a35; background: #3a321f; }.profile-required-banner p, html[data-color-mode="dark"] .selection-gate-card p { color: var(--muted); }

@media (max-width: 900px) {
    .conversation-layout { grid-template-columns: 1fr; }.inquiry-context-card { width: 100%; }
}
@media (max-width: 740px) {
    .profile-required-banner, .public-profile-hero { grid-template-columns: auto minmax(0, 1fr); }.profile-required-banner .button, .public-profile-hero > strong { grid-column: 1 / -1; }.profile-verification-shell, .verification-form, .verification-form > section { width: 100%; max-width: 100%; }.verification-grid, .profile-validation-grid { width: 100%; max-width: 100%; grid-template-columns: minmax(0, 1fr); }.verification-wide { grid-column: auto; }.profile-validation-grid > section { min-height: 0; border-right: 0; }.verification-form > section { padding: .85rem; }.verification-status-card { min-width: 0; max-width: 100%; align-items: flex-start; padding: .85rem; }.verification-actions { min-width: 0; max-width: 100%; align-items: stretch; flex-direction: column; padding: .85rem; }.verification-actions .button { width: 100%; }.id-document-preview { width: min(280px, 100%); }.id-document-preview img { height: 140px; }.id-document-preview object { height: 170px; }.chat-composer { grid-template-columns: 1fr; }.chat-message { max-width: 88%; }.chat-heading { flex-direction: column; }.inquiry-row { grid-template-columns: auto 1fr; }.inquiry-row-meta { grid-column: 2; grid-template-columns: auto auto auto; justify-content: end; align-items: center; }
}

@media (max-width: 420px) {
    .dashboard-main { padding-right: .65rem; padding-left: .65rem; }
    .verification-status-card { display: grid; grid-template-columns: auto minmax(0, 1fr); }
    .verification-status-card p { grid-column: 1 / -1; }
    .verification-section-heading { gap: .6rem; }
    .profile-validation-grid dl div { grid-template-columns: 1fr; gap: .2rem; }
}

/* Property amenity access */
.amenity-config-grid { display: grid; gap: .8rem; margin-top: 1rem; }
.amenity-config-panel { margin-top: 0; }
.paid-amenity-panel { padding: 1rem; border: 1px solid var(--card-line); border-radius: 12px; background: var(--surface); }
.existing-wifi-qr { display: flex; align-items: center; gap: .8rem; padding-top: .8rem; margin-top: .8rem; border-top: 1px solid var(--row-line); }
.existing-wifi-qr img { width: 90px; height: 90px; border: 1px solid var(--card-line); border-radius: 8px; object-fit: contain; background: white; }
.existing-wifi-qr label { display: flex; align-items: center; gap: .4rem; color: var(--muted); font-size: .65rem; font-weight: 700; cursor: pointer; }
.existing-wifi-qr input[type="checkbox"] { width: .85rem; height: .85rem; min-height: 0; padding: 0; }
.amenity-access-list { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; margin-bottom: .7rem; }
.amenity-access-list span { display: grid; gap: .15rem; padding: .45rem .5rem; border-radius: 7px; background: var(--surface-tint); }
.amenity-access-list small { color: var(--muted); font-size: .55rem; }
.amenity-access-list strong { font-size: .62rem; }
.host-wifi-qr { display: block; width: 110px; height: 110px; margin-top: .7rem; border: 1px solid var(--card-line); border-radius: 8px; object-fit: contain; background: white; }
.booking-fees-panel { border-left-color: #b7822d; }
.confirmed-wifi-access { display: grid; gap: .45rem; padding: .75rem; margin-top: .55rem; border: 1px solid color-mix(in srgb, var(--forest) 25%, var(--card-line)); border-radius: 9px; background: var(--mint); }
.confirmed-wifi-access > strong { color: var(--forest); font-size: .7rem; }
.confirmed-wifi-access span { display: grid; gap: .1rem; font-size: .68rem; font-weight: 700; overflow-wrap: anywhere; }
.confirmed-wifi-access span small { color: var(--muted); font-size: .55rem; text-transform: uppercase; }
.confirmed-wifi-access img { width: 130px; height: 130px; margin-top: .25rem; border: 1px solid var(--card-line); border-radius: 8px; object-fit: contain; background: white; }
.locked-access-note { min-height: 0 !important; padding: .55rem .65rem; margin-top: .5rem !important; border-radius: 7px; color: var(--muted) !important; background: var(--surface-tint); font-size: .61rem !important; }

/* Notifications and booking request events */
.notification-center { position: relative; z-index: 45; }
.notification-bell { position: relative; display: grid; place-items: center; width: 2.65rem; height: 2.65rem; padding: 0; border: 1px solid var(--card-line); border-radius: 50%; color: var(--ink); background: var(--surface); font-size: 1.15rem; cursor: pointer; box-shadow: var(--card-shadow); }
.notification-bell > span { transform: rotate(45deg); }
.notification-bell > b { position: absolute; top: -.32rem; right: -.32rem; display: grid; place-items: center; min-width: 1.2rem; height: 1.2rem; padding: 0 .25rem; border: 2px solid var(--surface); border-radius: 99px; color: #173c34; background: var(--lime); font-size: .52rem; font-weight: 900; }
.notification-panel { position: absolute; top: calc(100% + .65rem); right: 0; width: min(390px, calc(100vw - 2rem)); overflow: hidden; border: 1px solid var(--card-line); border-radius: 15px; background: var(--surface); box-shadow: 0 20px 50px rgba(20, 44, 37, .2); }
.notification-panel > header { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .9rem 1rem; border-bottom: 1px solid var(--row-line); }
.notification-panel h2 { margin: .12rem 0 0; font: 800 1rem Manrope; }
.notification-panel header button, .notification-panel footer button { padding: 0; border: 0; color: var(--forest); background: transparent; font-size: .62rem; font-weight: 800; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.notification-list { display: grid; max-height: 390px; overflow-y: auto; }
.notification-item { display: grid; grid-template-columns: 2rem 1fr; gap: .65rem; width: 100%; padding: .8rem 1rem; border: 0; border-bottom: 1px solid var(--row-line); color: var(--ink); background: var(--surface); text-align: left; cursor: pointer; }
.notification-item:hover, .notification-item.unread { background: var(--surface-tint); }
.notification-item > span:first-child { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 8px; color: var(--forest); background: var(--mint); font-weight: 900; }
.notification-item > span:last-child { display: grid; gap: .14rem; min-width: 0; }
.notification-item strong { font-size: .7rem; }
.notification-item small { color: var(--muted); font-size: .62rem; line-height: 1.42; }
.notification-item time { color: var(--muted); font-size: .54rem; }
.notification-empty { padding: 1.5rem; margin: 0; color: var(--muted); font-size: .68rem; text-align: center; }
.notification-panel footer { display: grid; gap: .25rem; padding: .75rem 1rem; border-top: 1px solid var(--row-line); background: var(--surface-soft); }
.notification-panel footer button { justify-self: start; }
.notification-panel footer small { color: var(--muted); font-size: .56rem; }
.notification-toast-stack { position: fixed; z-index: 1000; top: 1rem; right: 1rem; display: grid; gap: .6rem; width: min(370px, calc(100vw - 2rem)); pointer-events: none; }
.notification-toast { display: grid; grid-template-columns: 2.2rem 1fr; align-items: center; gap: .7rem; width: 100%; padding: .85rem; border: 1px solid var(--card-line); border-radius: 13px; color: var(--ink); background: var(--surface); box-shadow: 0 18px 45px rgba(15, 38, 31, .25); text-align: left; cursor: pointer; opacity: 0; pointer-events: auto; transform: translateY(-12px); transition: opacity .2s, transform .2s; }
.notification-toast.show { opacity: 1; transform: translateY(0); }
.notification-toast > span:first-child { display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 9px; color: var(--forest); background: var(--lime); font-weight: 900; }
.notification-toast > span:last-child { display: grid; gap: .18rem; }
.notification-toast strong { font-size: .72rem; }.notification-toast small { color: var(--muted); font-size: .62rem; line-height: 1.4; }
.chat-booking-request { display: grid; grid-template-columns: 2.3rem minmax(0, 1fr) auto; align-items: start; gap: .7rem; padding: .85rem; margin: .55rem 0; border: 1px solid color-mix(in srgb, var(--forest) 25%, var(--card-line)); border-radius: 12px; background: var(--surface-tint); }
.chat-booking-request > span { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 9px; color: var(--forest); background: var(--lime); font-weight: 900; }
.chat-booking-request > div { display: grid; gap: .18rem; }.chat-booking-request small { color: var(--muted); font-size: .56rem; font-weight: 800; text-transform: uppercase; }.chat-booking-request strong { font-size: .72rem; }.chat-booking-request p { margin: 0; color: var(--muted); font-size: .62rem; }.chat-booking-request a { justify-self: start; margin-top: .2rem; color: var(--forest); font-size: .65rem; font-weight: 900; text-decoration: underline; text-underline-offset: 3px; }.chat-booking-request > em { font-style: normal; }

@media (max-width: 560px) {
    .notification-panel { position: fixed; top: 4.5rem; right: .75rem; left: .75rem; width: auto; }
    .notification-list { max-height: min(55vh, 420px); }
    .chat-booking-request { grid-template-columns: 2.3rem 1fr; }
    .chat-booking-request > em { grid-column: 2; justify-self: start; }
}
/* Listing drafts and car-specific pricing */
.unit-drafts-panel { margin: 0 0 1.25rem; padding: 1.25rem; border: 1px solid var(--line, #dce5e1); border-radius: 18px; background: var(--surface, #fff); }
.unit-drafts-panel h2 { margin: .2rem 0; }
.unit-drafts-panel > div:first-child p { margin: .25rem 0 1rem; color: var(--muted, #61706b); }
.unit-draft-list { display: grid; gap: .65rem; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.unit-draft-card { display: flex; align-items: center; gap: .75rem; padding: .75rem; border: 1px solid var(--line, #dce5e1); border-radius: 13px; }
.unit-draft-card.active { border-color: var(--primary, #245f50); box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary, #245f50) 16%, transparent); }
.unit-draft-card > a { min-width: 0; flex: 1; display: grid; gap: .15rem; color: inherit; text-decoration: none; }
.unit-draft-card > a strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.unit-draft-card small, .draft-save-status { color: var(--muted, #61706b); }
.unit-draft-card button { border: 0; background: transparent; color: #a33c36; font-weight: 700; cursor: pointer; }
.draft-leave-dialog { width: min(92vw, 520px); padding: 0; border: 0; border-radius: 20px; color: var(--ink, #18231f); background: var(--surface, #fff); box-shadow: 0 24px 70px rgba(15, 36, 30, .28); }
.draft-leave-dialog::backdrop { background: rgba(10, 25, 21, .58); backdrop-filter: blur(3px); }
.draft-leave-dialog form { padding: 1.5rem; }
.draft-leave-dialog h2 { margin: .3rem 0 .55rem; }
.draft-leave-dialog p { margin: 0; color: var(--muted, #61706b); line-height: 1.6; }
.draft-leave-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.35rem; }
.draft-leave-actions .button-danger { background: #a33c36; border-color: #a33c36; color: #fff; }
.draft-save-status { display: block; margin-top: .55rem; }
.detail-subheading { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; margin-top: .35rem; }
.detail-subheading small { color: var(--muted, #61706b); }
.custom-accessory-panel, .car-charge-panel { margin-top: 1rem; padding: 1rem; border: 1px solid var(--line, #dce5e1); border-radius: 16px; background: color-mix(in srgb, var(--surface, #fff) 93%, var(--primary, #245f50)); }
.custom-accessory-panel .private-detail-heading, .car-charge-panel .private-detail-heading { display: flex; align-items: center; gap: .75rem; }
.custom-accessory-panel .private-detail-heading > div, .car-charge-panel .private-detail-heading > div { flex: 1; display: grid; }
.custom-accessory-list { display: grid; gap: .55rem; margin-top: .8rem; }
.custom-accessory-row { display: flex; gap: .5rem; }
.custom-accessory-row input { flex: 1; width: 100%; min-height: 3.35rem; padding: .8rem 1rem; border: 1px solid #d4ddd9; border-radius: 11px; outline: none; color: var(--ink); background: #fbfcfa; transition: border .18s, box-shadow .18s, background .18s; }
.custom-accessory-row input:focus { border-color: #4d7c6f; box-shadow: 0 0 0 4px rgba(77,124,111,.1); background: white; }
.custom-accessory-row button { flex: 0 0 3.35rem; width: 3.35rem; min-height: 3.35rem; border: 1px solid #d4ddd9; border-radius: 11px; background: #fbfcfa; color: #a33c36; font-size: 1.25rem; cursor: pointer; }
.car-charge-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-top: .9rem; }
.car-charge-card { display: grid; align-content: start; gap: .75rem; padding: .95rem; border: 1px solid var(--line, #dce5e1); border-radius: 13px; background: var(--surface, #fff); }
.car-charge-card > label { display: flex; gap: .55rem; align-items: flex-start; cursor: pointer; }
.car-charge-card > label span { display: grid; }
.car-charge-card > label small { color: var(--muted, #61706b); }
.car-charge-amount-field { display: grid; gap: .5rem; margin-top: auto; }
.car-charge-amount-field > label { color: #35443f; font-size: .7rem; font-weight: 700; }
.car-charge-card .currency-input input { width: 100%; min-height: 3.35rem; padding: .8rem 1rem .8rem 1.75rem; border: 1px solid #d4ddd9; border-radius: 11px; outline: none; color: var(--ink); background: #fbfcfa; transition: border .18s, box-shadow .18s, background .18s; }
.car-charge-card .currency-input input:focus { border-color: #4d7c6f; box-shadow: 0 0 0 4px rgba(77,124,111,.1); background: white; }
html[data-color-mode="dark"] .custom-accessory-row input, html[data-color-mode="dark"] .custom-accessory-row button, html[data-color-mode="dark"] .car-charge-card .currency-input input { border-color: var(--card-line); color: var(--ink); background: var(--surface-soft); }
.detail-chip-list.custom span { border-style: dashed; }
@media (max-width: 760px) {
    .car-charge-grid { grid-template-columns: 1fr; }
    .detail-subheading { align-items: flex-start; flex-direction: column; gap: .2rem; }
}

/* Host applications */
.host-application-shell { display: grid; gap: 1rem; margin-top: 2rem; }
.application-intro-card, .application-status-card, .host-application-prompt { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.35rem 1.5rem; border: 1px solid var(--setup-border); border-radius: 17px; background: linear-gradient(135deg, var(--setup-start), var(--setup-end)); }
.application-intro-card h2, .application-status-card h2, .host-application-prompt h2 { margin: .28rem 0; font: 800 1.15rem Manrope; letter-spacing: -.025em; }
.application-intro-card p, .application-status-card p, .host-application-prompt p { max-width: 760px; margin: 0; color: var(--muted); font-size: .7rem; line-height: 1.55; }
.application-intro-card > strong { flex: 0 0 auto; color: var(--forest); font-size: .72rem; }
.application-status-card { justify-content: flex-start; background: var(--surface); }
.application-status-card > span { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; flex: 0 0 auto; border-radius: 50%; color: white; background: #a77925; font-size: 1rem; font-weight: 900; }
.application-status-card > div { min-width: 0; flex: 1; }.application-status-card > div > small { color: var(--muted); font-size: .58rem; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.application-status-card.status-approved { border-color: #80b59f; background: #edf8f2; }.application-status-card.status-approved > span { background: #31755e; }
.application-status-card.status-rejected, .application-status-card.status-needs_changes { border-color: #d39a91; background: #fff1ef; }.application-status-card.status-rejected > span, .application-status-card.status-needs_changes > span { background: #a84a40; }
.application-profile-card, .application-summary-card, .application-timeline-card { padding: 1.35rem; border: 1px solid var(--card-line); border-radius: 16px; background: var(--surface); box-shadow: var(--card-shadow); }
.application-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--row-line); }
.application-card-heading h2 { margin: .25rem 0 0; font: 800 1.08rem Manrope; }.application-card-heading p { margin: .25rem 0 0; color: var(--muted); font-size: .65rem; }.application-card-heading > a { color: var(--forest); font-size: .65rem; font-weight: 800; }
.application-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.application-profile-grid > div { display: grid; gap: .2rem; min-width: 0; padding: .75rem .8rem; border-radius: 10px; background: var(--surface-tint); }.application-profile-grid .wide { grid-column: 1 / -1; }.application-profile-grid small { color: var(--muted); font-size: .55rem; font-weight: 700; text-transform: uppercase; }.application-profile-grid strong { overflow-wrap: anywhere; font-size: .7rem; }
.profile-required-inline { display: grid; grid-template-columns: 1fr auto; gap: .2rem 1rem; align-items: center; padding: .85rem; margin-top: 1rem; border: 1px solid #d9b45b; border-radius: 10px; background: #fff7df; }.profile-required-inline strong, .profile-required-inline span { font-size: .66rem; }.profile-required-inline span { color: var(--muted); }.profile-required-inline .button { grid-column: 2; grid-row: 1 / 3; min-height: 2.5rem; }
.business-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding: 1rem; margin-top: 1rem; border: 1px solid var(--card-line); border-radius: 12px; background: var(--surface-soft); }.business-fields[hidden] { display: none; }.business-fields .verification-wide { grid-column: 1 / -1; }
.application-checklist { display: grid; gap: .65rem; }.application-checklist label { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: flex-start; gap: .7rem; padding: .8rem; border: 1px solid var(--row-line); border-radius: 10px; cursor: pointer; }.application-checklist input { width: 1rem; height: 1rem; min-height: 0; margin-top: .08rem; accent-color: var(--forest); }.application-checklist span { display: grid; gap: .15rem; }.application-checklist strong { font-size: .68rem; }.application-checklist small { color: var(--muted); font-size: .58rem; line-height: 1.45; }
.application-detail-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin: 0; }.application-detail-list > div { display: grid; gap: .2rem; padding: .75rem; border-radius: 9px; background: var(--surface-tint); }.application-detail-list .wide { grid-column: 1 / -1; }.application-detail-list dt { color: var(--muted); font-size: .54rem; font-weight: 800; text-transform: uppercase; }.application-detail-list dd { margin: 0; font-size: .7rem; line-height: 1.55; white-space: pre-line; }
.application-timeline-card ol { display: grid; gap: .8rem; padding: 0; margin: 0; list-style: none; }.application-timeline-card li { display: grid; grid-template-columns: auto 1fr; gap: .7rem; }.application-timeline-card li > span { width: .65rem; height: .65rem; margin-top: .2rem; border: 2px solid var(--surface); border-radius: 50%; background: var(--forest); box-shadow: 0 0 0 1px var(--forest); }.application-timeline-card li > div { display: grid; gap: .15rem; }.application-timeline-card li strong { font-size: .68rem; }.application-timeline-card li small { color: var(--muted); font-size: .55rem; }.application-timeline-card li p { margin: .2rem 0 0; color: var(--muted); font-size: .62rem; }
.host-application-prompt { margin-bottom: 1rem; }.host-application-prompt .button { flex: 0 0 auto; }
.application-admin-section { display: grid; gap: 0; }.application-admin-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--card-line); border-radius: 16px 16px 0 0; background: var(--card-line); }.application-admin-summary > div { display: grid; gap: .2rem; padding: 1.1rem 1.25rem; background: var(--surface); }.application-admin-summary small { color: var(--muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; }.application-admin-summary strong { font: 800 1.45rem Manrope; }
.application-filter-bar { display: flex; align-items: center; gap: .65rem; padding: .8rem; border-right: 1px solid var(--card-line); border-left: 1px solid var(--card-line); background: var(--surface-soft); }.application-filter-bar label:first-child { flex: 1; }.application-filter-bar input, .application-filter-bar select { width: 100%; min-height: 2.65rem; padding: .6rem .75rem; border: 1px solid var(--card-line); border-radius: 9px; color: var(--ink); background: var(--surface); }.application-filter-bar .button { min-height: 2.65rem; }.application-filter-bar > a { color: var(--forest); font-size: .65rem; font-weight: 800; }
.application-admin-section .accounts-table-wrap { border-radius: 0 0 16px 16px; }.host-applications-table { min-width: 1100px; }.table-subcopy { display: block; margin-top: .22rem; color: var(--muted); font-size: .57rem; }.application-status-badge { display: inline-flex; padding: .35rem .55rem; border-radius: 99px; color: #7c5b1f; background: #fff0cb; font-size: .62rem; font-weight: 800; white-space: nowrap; }.application-status-badge.status-approved { color: #2f735d; background: #e1f3ea; }.application-status-badge.status-rejected { color: #91433c; background: #f8e3e0; }.application-status-badge.status-needs_changes { color: #91433c; background: #fff0e5; }.application-status-badge.status-under_review { color: #35658b; background: #e4f0f8; }.table-review-link { color: var(--forest); font-weight: 800; white-space: nowrap; }.simple-pagination { display: flex; justify-content: space-between; padding: .8rem .2rem; }.simple-pagination a, .simple-pagination span, .simple-pagination small { color: var(--muted); font-size: .62rem; }.simple-pagination a { color: var(--forest); font-weight: 800; }
.back-link { display: inline-block; margin-bottom: .4rem; color: var(--forest); font-size: .66rem; font-weight: 800; }.admin-application-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 1rem; margin-top: 2rem; }.admin-application-content { display: grid; gap: 1rem; min-width: 0; }.application-review-panel { position: sticky; top: 1rem; align-self: start; padding: 1.2rem; border: 1px solid var(--card-line); border-radius: 16px; background: var(--surface); box-shadow: var(--card-shadow); }.application-review-panel h2 { margin: .3rem 0; font: 800 1.15rem Manrope; }.application-review-panel > p { margin: 0 0 1rem; color: var(--muted); font-size: .65rem; line-height: 1.55; }.application-review-panel textarea { width: 100%; }.review-actions { display: grid; gap: .55rem; margin-top: .8rem; }.review-actions .button { width: 100%; min-height: 2.75rem; }.button-ghost.warning { color: #805b1a; border-color: #d7ba81; background: #fff8e8; }.button-danger { color: white; border-color: #a84a40; background: #a84a40; }.review-complete { display: grid; gap: .3rem; padding: .8rem; border-radius: 10px; background: var(--surface-tint); }.review-complete strong { font-size: .72rem; }.review-complete span, .review-complete p { color: var(--muted); font-size: .6rem; }.review-complete p { margin: .3rem 0 0; }.private-document-link { display: inline-flex; margin-top: .9rem; color: var(--forest); font-size: .64rem; font-weight: 800; }
html[data-color-mode="dark"] .application-status-card.status-approved { background: #1e332a; }html[data-color-mode="dark"] .application-status-card.status-rejected, html[data-color-mode="dark"] .application-status-card.status-needs_changes { background: #382522; }html[data-color-mode="dark"] .profile-required-inline { border-color: #806a35; background: #3a321f; }html[data-color-mode="dark"] .button-ghost.warning { color: #dfbd7e; border-color: #745d31; background: #332a1b; }

/* Client listing sales, ratings, and favorites */
.available-unit-media, .catalog-media, .host-listing-media, .result-photo { position: relative; }
.listing-favorite-control { position: absolute; z-index: 4; top: .7rem; right: .7rem; display: grid; place-items: center; width: 2.35rem; height: 2.35rem; padding: 0; border: 1px solid rgba(255,255,255,.75); border-radius: 50%; color: #fff; background: rgba(24,35,31,.48); box-shadow: 0 5px 18px rgba(18,30,26,.22); backdrop-filter: blur(8px); text-decoration: none; }
.listing-favorite-control button { display: grid; place-items: center; width: 100%; height: 100%; padding: 0; border: 0; border-radius: inherit; color: inherit; background: transparent; font: 1.45rem/1 Arial, sans-serif; cursor: pointer; }
.listing-favorite-control button.is-favorited { color: #fff; background: #b53f54; }
.listing-favorite-control button:disabled { cursor: wait; opacity: .72; }
.listing-favorite-control .favorite-icon-loading { display: inline-block; animation: loading-spin .65s linear infinite; }
.listing-favorite-control:focus-within, a.listing-favorite-control:focus-visible { outline: 3px solid var(--lime); outline-offset: 2px; }
.listing-sale-badge { position: absolute; z-index: 3; top: .75rem; left: .75rem; padding: .38rem .58rem; border-radius: 99px; color: #fff; background: #b34150; box-shadow: 0 5px 16px rgba(78,21,30,.2); font-size: .55rem; font-weight: 900; text-transform: uppercase; }
.available-unit-amenities { display: flex; min-height: 1.45rem; flex-wrap: wrap; gap: .35rem; margin-top: .65rem; }
.available-unit-amenities span { padding: .25rem .4rem; border-radius: 6px; color: var(--muted); background: var(--surface-tint); font-size: .52rem; font-weight: 700; }
.available-unit-footer > span del, .catalog-price del, .result-card-footer del, .public-listing-price del, .public-rate-grid del, .host-listing-grid footer del { color: var(--muted); font-size: .56rem; }
.available-unit-footer > span em { color: var(--muted); font-size: .5rem; font-style: normal; }
.available-unit-footer > span b, .catalog-price em, .result-card-footer em { color: #2f785d; font-size: .52rem; font-style: normal; }
.result-card-kicker strong, .catalog-card-category strong { color: #9a7318; font-size: .58rem; white-space: nowrap; }
.result-card-kicker strong small, .catalog-card-category strong small { padding: 0; color: var(--muted); background: transparent; font-size: .52rem; }
.booking-sale-note { padding: .65rem .75rem; margin: .7rem 0 0; border-radius: 9px; color: #28684f; background: #e7f5ed; font-size: .62rem; font-weight: 800; }
.catalog-media .catalog-photo { height: 175px; }
.public-listing-summary { position: relative; }
.public-summary-favorite { top: 1.2rem; right: 1.2rem; color: var(--ink); background: var(--surface-tint); }
.public-listing-location { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .55rem; }
.public-listing-location span { color: #9a7318; }
.public-listing-price { flex-wrap: wrap; }
.public-listing-price em { flex-basis: 100%; color: #2f785d; font-size: .62rem; font-style: normal; font-weight: 800; text-align: right; }
.public-rate-grid del { align-self: end; }
.public-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.public-review-grid article { padding: .9rem; border: 1px solid var(--row-line); border-radius: 11px; background: var(--surface-soft); }
.public-review-grid header { display: flex; justify-content: space-between; gap: .7rem; font-size: .66rem; }
.public-review-grid header span { color: #9a7318; font-weight: 800; }
.public-review-grid p { margin: .55rem 0; color: var(--muted); font-size: .64rem; line-height: 1.55; }
.public-review-grid article > small, .public-review-empty { color: var(--muted); font-size: .55rem; }
.host-listing-grid article > .host-listing-media { padding: 0; }
.host-listing-rating { color: #9a7318; font-size: .58rem; font-weight: 800; }
.listing-photo .listing-sale-badge { right: auto; left: .65rem; }
.listing-sale-field .percentage-input { overflow: hidden; border: 1px solid #d4ddd9; border-radius: 11px; background: #fbfcfa; }
.listing-sale-field .percentage-input input { border: 0; border-radius: 0; }
.listing-sale-field .percentage-input span { color: var(--forest); background: var(--surface-tint); font-size: .7rem; }

@media (max-width: 620px) {
    .public-review-grid { grid-template-columns: 1fr; }
    .listing-favorite-control { width: 2.6rem; height: 2.6rem; }
}

/* Saved listings */
.favorites-section { padding: 1.2rem; border: 1px solid var(--card-line); border-radius: 18px; background: var(--surface); box-shadow: var(--card-shadow); }
.favorites-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--row-line); }
.favorites-heading h2 { margin: .3rem 0 .25rem; font: 800 1.25rem Manrope; }
.favorites-heading p { margin: 0; color: var(--muted); font-size: .66rem; }
.favorites-heading > span { padding: .4rem .6rem; border-radius: 99px; color: var(--forest); background: var(--mint); font-size: .58rem; font-weight: 900; }
.favorite-listing-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.favorite-listing-card { min-width: 0; overflow: hidden; border: 1px solid var(--row-line); border-radius: 15px; background: var(--surface-soft); }
.favorite-listing-media { position: relative; height: 205px; overflow: hidden; background: var(--surface-tint); }
.favorite-listing-media > a { display: grid; place-items: center; width: 100%; height: 100%; color: var(--forest); text-decoration: none; }
.favorite-listing-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s; }
.favorite-listing-card:hover .favorite-listing-media img { transform: scale(1.025); }
.favorite-listing-media > a > span { font-size: 2.5rem; }

/* Listing card photo carousels */
.listing-card-carousel { position: relative; width: 100%; height: 100%; min-height: inherit; overflow: hidden; }
[data-listing-carousel-link] { position: relative; display: grid; place-items: center; width: 100%; height: 100%; min-height: inherit; overflow: hidden; color: var(--forest); background: var(--surface-tint); text-decoration: none; }
.listing-card-carousel-slide { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; pointer-events: none; transform: translate3d(0, 0, 0) scale(1.035) !important; transition: opacity .42s cubic-bezier(.22, 1, .36, 1), transform .42s cubic-bezier(.22, 1, .36, 1), filter .42s ease; filter: saturate(.92) brightness(.96); will-change: opacity, transform; }
.listing-card-carousel-slide.is-active { z-index: 1; opacity: 1; pointer-events: auto; transform: translate3d(0, 0, 0) scale(1) !important; filter: none; }
.listing-card-carousel-slide.is-entering-next { transform: translate3d(9%, 0, 0) scale(1.025) !important; }.listing-card-carousel-slide.is-entering-previous { transform: translate3d(-9%, 0, 0) scale(1.025) !important; }
.listing-card-carousel-slide.is-leaving-next { z-index: 1; opacity: 0; transform: translate3d(-6%, 0, 0) scale(1.01) !important; }.listing-card-carousel-slide.is-leaving-previous { z-index: 1; opacity: 0; transform: translate3d(6%, 0, 0) scale(1.01) !important; }
.listing-card-carousel:hover .listing-card-carousel-slide.is-active { transform: translate3d(0, 0, 0) scale(1.018) !important; }
.listing-card-carousel-placeholder { display: grid; place-items: center; width: 100%; height: 100%; font-size: 2.6rem; }
.listing-card-carousel-nav { position: absolute; z-index: 2; top: 50%; display: grid; place-items: center; width: 2.15rem; height: 2.15rem; padding: 0; border: 1px solid rgba(255,255,255,.82); border-radius: 50%; color: #fff; background: rgba(19,34,29,.62); box-shadow: 0 5px 16px rgba(10,22,18,.2); backdrop-filter: blur(7px); font: 700 1.45rem/1 Arial, sans-serif; cursor: pointer; opacity: .82; transform: translateY(-50%); transition: opacity .15s ease, background .15s ease, transform .15s ease; }
.listing-card-carousel-nav.previous { left: .55rem; }.listing-card-carousel-nav.next { right: .55rem; }
.listing-card-carousel-nav:hover, .listing-card-carousel-nav:focus-visible { opacity: 1; background: rgba(19,34,29,.86); transform: translateY(-50%) scale(1.05); }
.listing-card-carousel-nav:focus-visible { outline: 3px solid var(--lime); outline-offset: 2px; }
.listing-card-carousel-dots { position: absolute; z-index: 2; right: 50%; bottom: .65rem; display: flex; align-items: center; gap: .05rem; max-width: calc(100% - 5rem); padding: .22rem .35rem; overflow-x: auto; border-radius: 99px; background: rgba(16,29,25,.54); scrollbar-width: none; transform: translateX(50%); }
.listing-card-carousel-dots::-webkit-scrollbar { display: none; }
.listing-card-carousel-dots button { display: grid; place-items: center; width: 1rem; height: 1rem; flex: 0 0 auto; padding: 0; border: 0; border-radius: 99px; background: transparent; cursor: pointer; }
.listing-card-carousel-dots button::before { width: .34rem; height: .34rem; border-radius: 50%; background: rgba(255,255,255,.58); content: ''; transition: width .22s ease, background .22s ease, box-shadow .22s ease; }
.listing-card-carousel-dots button.is-active { width: 1.25rem; }.listing-card-carousel-dots button.is-active::before { width: .95rem; border-radius: 99px; background: #fff; box-shadow: 0 0 0 1px rgba(255,255,255,.25); }
.listing-card-carousel-dots button:hover::before { background: #fff; }.listing-card-carousel-dots button:focus-visible { outline: 2px solid var(--lime); outline-offset: 1px; }
.available-unit-media > .listing-card-carousel { height: 220px; }
.catalog-media > .listing-card-carousel { height: 175px; }
.host-listing-media > .listing-card-carousel { height: 210px; }
.favorite-listing-media > .listing-card-carousel, .listing-photo > .listing-card-carousel { height: 100%; margin: 0; }
.result-photo .listing-card-carousel, .result-photo [data-listing-carousel-link] { min-height: 265px; }
@media (max-width: 740px) { .listing-card-carousel-nav { width: 2.35rem; height: 2.35rem; opacity: .92; }.available-unit-media > .listing-card-carousel { height: 205px; }.result-photo .listing-card-carousel, .result-photo [data-listing-carousel-link] { min-height: 190px; } }
@media (prefers-reduced-motion: reduce) { .listing-card-carousel-slide, .listing-card-carousel-nav, .listing-card-carousel-dots button::before { transition: none; } }
.favorite-listing-copy { display: flex; min-height: 245px; flex-direction: column; padding: .9rem; }
.favorite-listing-meta { display: flex; align-items: center; justify-content: space-between; gap: .5rem; color: var(--muted); font-size: .54rem; font-weight: 800; text-transform: uppercase; }
.favorite-listing-meta strong { color: #9a7318; font-size: .58rem; }.favorite-listing-meta strong small { color: var(--muted); }
.favorite-listing-copy h3 { margin: .45rem 0 .25rem; font: 800 .9rem Manrope; }.favorite-listing-copy h3 a { color: var(--ink); text-decoration: none; }
.favorite-listing-copy > p, .favorite-listing-copy > small { margin: 0; color: var(--muted); font-size: .6rem; line-height: 1.5; }
.favorite-listing-copy > small { margin-top: .35rem; }
.favorite-listing-copy footer { display: flex; align-items: end; justify-content: space-between; gap: .65rem; padding-top: .75rem; margin-top: auto; border-top: 1px solid var(--row-line); }
.favorite-listing-copy footer > span { display: grid; gap: .1rem; }.favorite-listing-copy footer > span small, .favorite-listing-copy footer del { color: var(--muted); font-size: .5rem; }.favorite-listing-copy footer strong { font: 800 .78rem Manrope; }.favorite-listing-copy footer em { color: #2f785d; font-size: .5rem; font-style: normal; font-weight: 800; }
.favorite-listing-copy footer > div { display: flex; gap: .35rem; }.favorite-listing-copy footer .button { min-height: 2.15rem; padding: .48rem .58rem; font-size: .54rem; }
.favorites-empty { grid-column: 1 / -1; display: grid; justify-items: center; padding: 4rem 1rem; border: 1px dashed var(--card-line); border-radius: 15px; text-align: center; }
.favorites-empty > span { display: grid; place-items: center; width: 3.2rem; height: 3.2rem; border-radius: 50%; color: var(--forest); background: var(--mint); font-size: 1.8rem; }.favorites-empty h2 { margin: .8rem 0 .25rem; font: 800 1.1rem Manrope; }.favorites-empty p { margin: 0 0 1rem; color: var(--muted); font-size: .68rem; }

@media (max-width: 1040px) { .favorite-listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .favorites-page-body .dashboard-header { padding-left: 3.5rem; }.favorites-section { padding: .85rem; }.favorites-heading { align-items: flex-start; flex-direction: column; }.favorite-listing-grid { grid-template-columns: 1fr; }.favorite-listing-copy footer { align-items: stretch; flex-direction: column; }.favorite-listing-copy footer > div { display: grid; grid-template-columns: 1fr 1fr; }.favorite-listing-copy footer .button { width: 100%; } }

/* Platform loading feedback */
.global-loading-overlay { position: fixed; z-index: 5000; inset: 0; display: grid; place-items: center; padding: 1.25rem; visibility: hidden; opacity: 0; pointer-events: none; background: rgba(239, 241, 233, .76); backdrop-filter: blur(12px) saturate(115%); -webkit-backdrop-filter: blur(12px) saturate(115%); transition: opacity .16s ease, visibility 0s linear .16s; }
body.is-booting .global-loading-overlay, body.is-loading .global-loading-overlay { visibility: visible; pointer-events: auto; animation: global-loader-reveal .16s .18s both; transition: none; }
body.is-loading { cursor: progress; overflow: hidden; }
.global-loading-card { display: grid; justify-items: center; width: min(330px, 100%); padding: 1.5rem; border: 1px solid rgba(255,255,255,.82); border-radius: 22px; color: var(--ink); background: color-mix(in srgb, var(--surface) 92%, transparent); box-shadow: 0 24px 70px rgba(17,43,35,.22); text-align: center; }
.global-loading-brand { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; overflow: hidden; border-radius: 15px; background: var(--surface); box-shadow: 0 8px 24px rgba(20,48,40,.13); }
.global-loading-brand img { width: 100%; height: 100%; object-fit: contain; }
.global-loading-spinner { width: 2rem; height: 2rem; margin: 1rem 0 .8rem; border: 3px solid color-mix(in srgb, var(--forest) 18%, transparent); border-top-color: var(--forest); border-radius: 50%; animation: loading-spin .75s linear infinite; }
.global-loading-card strong { font: 800 1rem Manrope; }.global-loading-card small { max-width: 255px; margin-top: .35rem; color: var(--muted); font-size: .64rem; line-height: 1.5; }
.is-form-submitting button[type="submit"], .is-form-submitting input[type="submit"] { pointer-events: none; }
.is-submit-loading { cursor: wait !important; }
.submit-loading-content { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; white-space: nowrap; }
.submit-loading-spinner { width: .9rem; height: .9rem; flex: 0 0 auto; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: loading-spin .65s linear infinite; }
html[data-color-mode="dark"] .global-loading-overlay { background: rgba(12,18,15,.78); }
@keyframes loading-spin { to { transform: rotate(360deg); } }
@keyframes global-loader-reveal { from { opacity: 0; transform: scale(1.01); } to { opacity: 1; transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .global-loading-spinner, .submit-loading-spinner, .favorite-icon-loading { animation-duration: 1.5s; }.global-loading-overlay { transition: none; } }
@media (max-width: 520px) { .global-loading-card { padding: 1.25rem; border-radius: 18px; }.global-loading-brand { width: 3rem; height: 3rem; } }

/* Shared form rhythm: labels, controls, helper text, and actions keep the same baseline. */
.aligned-filter-form {
    --aligned-filter-label-height: .9rem;
    --aligned-filter-control-height: 2.65rem;
    --aligned-filter-helper-height: 1rem;
    --aligned-filter-gap: .3rem;
    align-items: start !important;
}
.aligned-filter-form > label {
    display: grid;
    grid-template-rows: var(--aligned-filter-label-height) var(--aligned-filter-control-height) minmax(var(--aligned-filter-helper-height), auto);
    align-content: start;
    min-width: 0;
    gap: var(--aligned-filter-gap);
}
.aligned-filter-form > label > span { align-self: end; }
.aligned-filter-form > label > input,
.aligned-filter-form > label > select { width: 100%; min-width: 0; height: var(--aligned-filter-control-height); min-height: var(--aligned-filter-control-height); }
.aligned-filter-form > label > small { align-self: start; min-height: var(--aligned-filter-helper-height); line-height: var(--aligned-filter-helper-height); }
.aligned-filter-actions {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-width: max-content;
    margin-top: calc(var(--aligned-filter-label-height) + var(--aligned-filter-gap));
}
.aligned-filter-actions .button { min-height: var(--aligned-filter-control-height); }

:where(.field-row, .verification-grid, .manual-booking-form, .booking-correction-form, .booking-form, .discovery-form, .support-report-form) > .field-group {
    grid-template-rows: auto auto minmax(1rem, auto);
    align-content: start;
}

.calendar-filter-bar { align-items: start; }
.calendar-filter-bar > label {
    grid-template-rows: .85rem 2.4rem minmax(.85rem, auto);
    align-content: start;
}
.calendar-filter-bar > label > span { align-self: end; }
.calendar-filter-bar > .button,
.calendar-filter-bar > .calendar-filter-reset { margin-top: 1.15rem; }
.calendar-filter-reset { align-self: center; }

.availability-sticky-filter { align-items: start; }
.availability-sticky-filter > .availability-field {
    grid-template-rows: .8rem 2.55rem minmax(.8rem, auto);
    align-content: start;
}
.availability-sticky-filter > .availability-field label { align-self: end; }
.availability-sticky-filter > .button { margin-top: 1.08rem; }
.availability-sticky-filter > .availability-filter-title { align-self: start; min-height: 2.55rem; margin-top: 1.08rem; }

.admin-booking-filters { align-items: start; }
.admin-booking-filters > label {
    grid-template-rows: 1rem 44px minmax(1rem, auto);
    align-content: start;
}
.admin-booking-filters > label > span { align-self: end; }

.sales-report-filter > div:first-child { align-self: start; padding-top: .15rem; }
.sales-report-filter { grid-template-columns: minmax(220px, 1fr) repeat(3, minmax(145px, .55fr)) auto; }
.sales-report-filter .aligned-filter-actions { flex-wrap: wrap; }

.unit-profit-heading-actions { display: flex; align-items: center; gap: .65rem; }
.unit-profit-heading-actions > small { white-space: nowrap; }
.unit-profit-heading-actions .button { min-height: 2.25rem; padding: .5rem .75rem; font-size: .56rem; }
.unit-profit-report-dialog { width: min(1180px, calc(100% - 2rem)); max-width: none; max-height: calc(100vh - 2rem); padding: 0; overflow: auto; border: 0; border-radius: 20px; color: var(--ink); background: var(--surface); box-shadow: 0 30px 90px rgba(10, 34, 27, .3); }
.unit-profit-report-dialog::backdrop { background: rgba(10, 28, 23, .62); backdrop-filter: blur(8px); }
.unit-profit-print-sheet { display: grid; gap: 1rem; padding: clamp(1rem, 3vw, 2rem); }
.unit-profit-print-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--row-line); }
.unit-profit-print-header h2 { margin: .25rem 0 .15rem; font: 800 clamp(1.35rem, 3vw, 2.15rem) Manrope; letter-spacing: -.04em; }
.unit-profit-print-header p { margin: 0; color: var(--muted); font-size: .68rem; }
.unit-profit-report-actions { display: flex; gap: .55rem; }
.unit-profit-report-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--row-line); border-radius: 12px; background: var(--row-line); gap: 1px; }
.unit-profit-report-meta > div { display: grid; gap: .18rem; padding: .75rem; background: var(--surface-soft); }
.unit-profit-report-meta small,
.unit-profit-report-summary small { color: var(--muted); font-size: .5rem; text-transform: uppercase; letter-spacing: .06em; }
.unit-profit-report-meta strong { font-size: .63rem; }
.unit-profit-report-summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .65rem; }
.unit-profit-report-summary article { display: grid; align-content: start; gap: .2rem; min-height: 88px; padding: .75rem; border: 1px solid var(--row-line); border-radius: 11px; background: var(--surface-soft); }
.unit-profit-report-summary strong { margin-top: auto; font: 800 .78rem Manrope; }
.unit-profit-report-summary span { color: var(--muted); font-size: .48rem; }
.unit-profit-booking-section { display: grid; gap: .8rem; padding-top: .35rem; }
.unit-profit-report-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.unit-profit-report-section-heading h3 { margin: .2rem 0 0; font: 800 1rem Manrope; }
.unit-profit-report-section-heading > strong { color: var(--forest); font-size: .62rem; }
.unit-profit-report-table-wrap { overflow-x: auto; border: 1px solid var(--row-line); border-radius: 12px; }
.unit-profit-report-table { width: 100%; min-width: 940px; border-collapse: collapse; }
.unit-profit-report-table th,
.unit-profit-report-table td { padding: .72rem .68rem; border-bottom: 1px solid var(--row-line); font-size: .56rem; text-align: left; vertical-align: middle; }
.unit-profit-report-table thead th { color: var(--muted); background: var(--surface-soft); font-size: .47rem; text-transform: uppercase; letter-spacing: .05em; }
.unit-profit-report-table tbody td:nth-last-child(-n+3),
.unit-profit-report-table thead th:nth-last-child(-n+3),
.unit-profit-report-table tfoot th:nth-last-child(-n+3) { text-align: right; }
.unit-profit-report-table td:first-child,
.unit-profit-report-table td:nth-child(2),
.unit-profit-report-table td:nth-child(3) { display: table-cell; }
.unit-profit-report-table td > strong,
.unit-profit-report-table td > small,
.unit-profit-report-table td > a { display: block; }
.unit-profit-report-table td > a { color: var(--forest); font-weight: 900; }
.unit-profit-report-table td > small { margin-top: .12rem; color: var(--muted); font-size: .47rem; }
.unit-profit-report-table .booking-status { width: max-content; }
.unit-profit-report-table tfoot th { border-bottom: 0; color: var(--ink); background: var(--surface-tint); font-size: .56rem; }
.unit-profit-report-empty { padding: 2rem !important; color: var(--muted); text-align: center !important; }
.unit-profit-report-note { margin: 0; color: var(--muted); font-size: .55rem; line-height: 1.5; }

@media (max-width: 900px) {
    .unit-profit-report-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .unit-profit-report-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 741px) and (max-width: 1100px) {
    .sales-report-filter { grid-template-columns: 1fr 1fr 1fr; }
    .sales-report-filter > div:first-child { grid-column: 1 / -1; }
    .sales-report-filter > .aligned-filter-actions { grid-column: auto; }
}
@media (max-width: 740px) {
    .sales-report-filter { grid-template-columns: minmax(0, 1fr); }
    .sales-report-filter > div:first-child { grid-column: auto; }
    .sales-report-filter .aligned-filter-actions { width: 100%; margin-top: 0; }
    .sales-report-filter .aligned-filter-actions .button { flex: 1; }
    .unit-profit-heading-actions { align-items: flex-end; flex-direction: column; }
    .unit-profit-print-header { flex-direction: column; }
    .unit-profit-report-actions { width: 100%; }
    .unit-profit-report-actions .button { flex: 1; }
    .unit-profit-report-dialog { width: calc(100% - 1rem); max-height: calc(100vh - 1rem); border-radius: 14px; }
}

@media print {
    @page { size: A4 landscape; margin: 10mm; }
    body * { visibility: hidden !important; }
    .unit-profit-report-dialog[open],
    .unit-profit-report-dialog[open] * { visibility: visible !important; }
    .unit-profit-report-dialog[open] { position: absolute; inset: 0; width: 100%; max-height: none; margin: 0; overflow: visible; border-radius: 0; color: #17231f; background: white; box-shadow: none; }
    .unit-profit-print-sheet { gap: 8px; padding: 0; }
    .report-print-hidden { display: none !important; }
    .unit-profit-report-summary { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; }
    .unit-profit-report-summary article { min-height: 58px; padding: 7px; break-inside: avoid; }
    .unit-profit-report-meta > div { padding: 7px; }
    .unit-profit-report-table-wrap { overflow: visible; }
    .unit-profit-report-table { min-width: 0; }
    .unit-profit-report-table th,
    .unit-profit-report-table td { padding: 5px; font-size: 8px; }
    .unit-profit-report-table a { color: #17231f; text-decoration: none; }
    .unit-profit-report-table tr { break-inside: avoid; }
}

/* Finance-center controls use one consistent, icon-led input system. */
.finance-control {
    display: grid;
    grid-template-columns: 2.7rem minmax(0, 1fr);
    align-items: stretch;
    width: 100%;
    min-height: 3.35rem;
    overflow: hidden;
    border: 1px solid #d4ddd9;
    border-radius: 13px;
    background: #fbfcfa;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease, transform .18s ease;
}
.finance-control:hover { border-color: color-mix(in srgb, var(--forest) 40%, #d4ddd9); }
.finance-control:focus-within { border-color: var(--forest); background: var(--surface); box-shadow: 0 0 0 4px color-mix(in srgb, var(--forest) 11%, transparent); }
.finance-control > span {
    display: grid;
    place-items: center;
    border-right: 1px solid #e0e7e3;
    color: var(--forest);
    background: color-mix(in srgb, var(--mint) 58%, transparent);
    font-size: .72rem;
}
.unit-finance-form .finance-control > input,
.unit-finance-form .finance-control > select {
    width: 100%;
    min-width: 0;
    min-height: 3.35rem;
    padding: .75rem .82rem;
    border: 0;
    border-radius: 0;
    outline: 0;
    color: var(--ink);
    background: transparent;
    box-shadow: none;
    font-size: .68rem;
}
.unit-finance-form .finance-control > select { padding-right: 1.75rem; }
.unit-finance-form .finance-control > input:focus,
.unit-finance-form .finance-control > select:focus { box-shadow: none; }
.unit-finance-form .finance-control-money { min-height: 3.35rem; border-radius: 13px; }
.unit-finance-form .finance-control-money > span { background: color-mix(in srgb, var(--mint) 58%, transparent); }
html[data-color-mode="dark"] .finance-control { border-color: var(--card-line); background: var(--surface-soft); }
html[data-color-mode="dark"] .finance-control > span { border-color: var(--card-line); background: var(--surface-tint); }

/* Every sales chart exposes its records through the same drill-down interaction. */
.profit-bars > a { border-radius: 8px 8px 0 0; outline: none; transition: background .18s ease, transform .18s ease; }
.profit-bars > a:hover,
.profit-bars > a:focus-visible { background: color-mix(in srgb, var(--mint) 34%, transparent); transform: translateY(-2px); }
.profit-bars > a:focus-visible,
.category-sales-bars > button:focus-visible,
.sales-source-bars > button:focus-visible,
.sales-status-visual button:focus-visible { outline: 3px solid color-mix(in srgb, var(--lime) 86%, transparent); outline-offset: 2px; }
.category-sales-bars > button {
    display: grid;
    grid-template-columns: 100px 1fr 85px;
    align-items: center;
    width: 100%;
    padding: .35rem;
    gap: .55rem;
    border: 0;
    border-radius: 8px;
    color: var(--ink);
    background: transparent;
    text-align: left;
    cursor: pointer;
    transition: background .18s ease, transform .18s ease;
}
.category-sales-bars > button:hover { background: var(--surface-tint); transform: translateX(2px); }
.category-sales-bars > button span { display: grid; gap: .1rem; }
.category-sales-bars > button strong { overflow: hidden; font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }
.category-sales-bars > button small { color: var(--muted); font-size: .48rem; }
.category-sales-bars > button i { height: .45rem; overflow: hidden; border-radius: 99px; background: var(--surface-tint); }
.category-sales-bars > button b { display: block; height: 100%; border-radius: inherit; background: #5b8def; }
.category-sales-bars > button em { font-size: .55rem; font-style: normal; font-weight: 800; text-align: right; }

.sales-source-bars { display: grid; gap: .45rem; margin-top: .85rem; }
.sales-source-bars > button {
    display: grid;
    grid-template-columns: 1.7rem minmax(100px, .75fr) minmax(90px, 1fr) 78px;
    align-items: center;
    gap: .55rem;
    width: 100%;
    min-width: 0;
    padding: .55rem;
    border: 1px solid transparent;
    border-radius: 10px;
    color: var(--ink);
    background: var(--surface-soft);
    text-align: left;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.sales-source-bars > button:hover { border-color: color-mix(in srgb, var(--forest) 24%, transparent); background: var(--surface-tint); transform: translateY(-1px); }
.sales-source-rank { display: grid; place-items: center; width: 1.65rem; height: 1.65rem; border-radius: 7px; color: var(--forest); background: var(--mint); font-size: .48rem; font-weight: 900; }
.sales-source-bars > button > span:nth-child(2) { display: grid; gap: .1rem; min-width: 0; }
.sales-source-bars strong { overflow: hidden; font-size: .56rem; text-overflow: ellipsis; white-space: nowrap; }
.sales-source-bars small { color: var(--muted); font-size: .45rem; }
.sales-source-bars i { height: .48rem; overflow: hidden; border-radius: 99px; background: var(--surface-tint); }
.sales-source-bars i b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--forest), #6fb998); }
.sales-source-bars em { font-size: .55rem; font-style: normal; font-weight: 900; text-align: right; }

.sales-donut { border: 0; color: var(--ink); cursor: pointer; transition: transform .18s ease, box-shadow .18s ease; }
.sales-donut:hover { box-shadow: 0 10px 28px color-mix(in srgb, var(--forest) 18%, transparent); transform: scale(1.025); }
.sales-status-visual li { display: block; }
.sales-status-visual li > button {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .4rem;
    width: 100%;
    padding: .38rem .45rem;
    border: 0;
    border-radius: 7px;
    color: var(--ink);
    background: transparent;
    font-size: .55rem;
    text-align: left;
    cursor: pointer;
}
.sales-status-visual li > button:hover { background: var(--surface-tint); }

.sales-drilldown-dialog {
    width: min(1020px, calc(100% - 2rem));
    max-width: none;
    max-height: calc(100vh - 2rem);
    padding: 0;
    overflow: auto;
    border: 0;
    border-radius: 20px;
    color: var(--ink);
    background: var(--surface);
    box-shadow: 0 30px 90px rgba(10, 34, 27, .3);
}
.sales-drilldown-dialog::backdrop { background: rgba(10, 28, 23, .62); backdrop-filter: blur(8px); }
.sales-drilldown-dialog > article { display: grid; gap: 1rem; padding: clamp(1rem, 3vw, 1.65rem); }
.sales-drilldown-dialog header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.sales-drilldown-dialog header h2 { margin: .25rem 0 .18rem; font: 800 clamp(1.25rem, 3vw, 1.7rem) Manrope; letter-spacing: -.035em; }
.sales-drilldown-dialog header p { margin: 0; color: var(--muted); font-size: .62rem; }
.sales-drilldown-dialog header > button { display: grid; place-items: center; width: 2.3rem; height: 2.3rem; flex: 0 0 auto; border: 1px solid var(--row-line); border-radius: 50%; color: var(--ink); background: var(--surface-soft); font-size: 1.2rem; cursor: pointer; }
.sales-drilldown-summary { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border: 1px solid var(--row-line); border-radius: 12px; background: var(--row-line); gap: 1px; }
.sales-drilldown-summary > div { display: grid; gap: .2rem; padding: .75rem; background: var(--surface-soft); }
.sales-drilldown-summary small { color: var(--muted); font-size: .48rem; text-transform: uppercase; letter-spacing: .06em; }
.sales-drilldown-summary strong { font: 800 .78rem Manrope; }
.sales-drilldown-table-wrap { overflow-x: auto; border: 1px solid var(--row-line); border-radius: 12px; }
.sales-drilldown-table { width: 100%; min-width: 780px; border-collapse: collapse; }
.sales-drilldown-table th,
.sales-drilldown-table td { padding: .72rem .68rem; border-bottom: 1px solid var(--row-line); font-size: .55rem; text-align: left; vertical-align: middle; }
.sales-drilldown-table th { color: var(--muted); background: var(--surface-soft); font-size: .47rem; text-transform: uppercase; letter-spacing: .05em; }
.sales-drilldown-table td:first-child,
.sales-drilldown-table td:nth-child(2) { min-width: 135px; }
.sales-drilldown-table td:nth-child(3) { min-width: 190px; }
.sales-drilldown-table td:last-child,
.sales-drilldown-table th:last-child { text-align: right; }
.sales-drilldown-table td > a,
.sales-drilldown-table td > strong,
.sales-drilldown-table td > small { display: block; }
.sales-drilldown-table td > a { color: var(--forest); font-weight: 900; }
.sales-drilldown-table td > small { margin-top: .12rem; color: var(--muted); font-size: .46rem; }
.sales-drilldown-table .booking-status { width: max-content; }
.sales-drilldown-table .pipeline-value { color: #9a6d12; font-weight: 800; }
.sales-drilldown-empty { padding: 2.5rem 1rem; color: var(--muted); text-align: center; }
.sales-drilldown-empty strong { color: var(--ink); }
.sales-drilldown-empty p { margin: .25rem 0 0; font-size: .6rem; }
.sales-drilldown-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.sales-drilldown-dialog footer > span { color: var(--muted); font-size: .54rem; }
.sales-summary-panel { display: grid; gap: .85rem; }
.sales-summary-panel[hidden] { display: none; }
.sales-summary-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: .25rem .1rem 0; }
.sales-summary-section-heading h3 { margin: 0; font: 800 .72rem Manrope; }
.sales-summary-section-heading p { margin: .18rem 0 0; color: var(--muted); font-size: .52rem; }
.sales-summary-section-heading > strong { font-size: .7rem; }
.sales-summary-list { display: grid; gap: .55rem; }
.sales-summary-list > article { display: grid; grid-template-columns: minmax(250px, 1.45fr) minmax(165px, 1fr) minmax(125px, .65fr) minmax(145px, .7fr); align-items: center; gap: .8rem; padding: .75rem; border: 1px solid var(--row-line); border-radius: 12px; background: var(--surface-soft); }
.sales-summary-list > article > div { display: grid; align-content: center; gap: .14rem; min-width: 0; }
.sales-summary-list > article > div:first-child { grid-template-columns: auto minmax(0, 1fr); align-items: center; }
.sales-summary-list > article > div:first-child > span:last-child { display: grid; gap: .12rem; min-width: 0; }
.sales-summary-list a { color: var(--forest); font-weight: 850; }
.sales-summary-list strong { font-size: .59rem; }
.sales-summary-list small { color: var(--muted); font-size: .47rem; line-height: 1.4; }
.sales-summary-list > article > div:last-child { justify-items: end; text-align: right; }
.sales-summary-icon { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 9px; color: var(--forest); background: var(--mint); font-size: .76rem; }
.sales-summary-icon.attention { color: #94620c; background: #fff1c8; }
.summary-status { width: max-content; max-width: 100%; padding: .3rem .48rem; border-radius: 999px; color: #426259; background: #e8efec; font-size: .45rem; font-weight: 850; }
.summary-status.is-complete { color: #24684f; background: #dff3e9; }
.summary-status.is-pending { color: #8a610f; background: #fff0c9; }
.summary-status.is-overdue { color: #9b3f38; background: #fbe1df; }
.sales-summary-empty-row { padding: .8rem; border: 1px dashed var(--row-line); border-radius: 10px; color: var(--muted); font-size: .52rem; text-align: center; }
.sales-summary-action-list > article { grid-template-columns: minmax(250px, 1.4fr) minmax(170px, .9fr) minmax(120px, .55fr) minmax(220px, .95fr); }
.sales-summary-action-list form { display: flex; align-items: center; justify-content: flex-end; gap: .45rem; min-width: 0; }
.sales-summary-action-list form > a { flex: 0 0 auto; font-size: .48rem; white-space: nowrap; }
.sales-summary-action-list form label { min-width: 96px; }
.sales-summary-action-list form .money-input { min-height: 2.1rem; grid-template-columns: 1.6rem minmax(0, 1fr); }
.sales-summary-action-list form .money-input > span:first-child { font-size: .55rem; }
.sales-summary-action-list form input { width: 100%; min-width: 0; padding: .45rem; font-size: .53rem; }
.sales-summary-action-list form .button { min-height: 2.1rem; flex: 0 0 auto; padding-inline: .65rem; }
.sales-collectible-list > article { grid-template-columns: minmax(220px, 1.25fr) minmax(170px, .85fr) minmax(105px, .45fr) minmax(340px, 1.3fr); }
.sales-collectible-list form label { min-width: 130px; }
.sales-collectible-list form .button { padding-inline: .55rem; }

/* Host accounting ledger and financial account controls */
.financial-account-select-field { display: grid; gap: .25rem; min-width: 0; }
.financial-account-select-field > span { color: var(--muted); font-size: .48rem; font-weight: 800; }
.financial-account-select-field select { width: 100%; min-width: 0; }
.financial-account-select-field > small { color: var(--muted); font-size: .43rem; }
.financial-account-required { display: flex; align-items: center; justify-content: center; gap: .4rem; min-height: 2.4rem; padding: .55rem .7rem; border: 1px dashed #d2a13c; border-radius: 9px; color: #8b620f; background: #fff8e6; font-size: .5rem; font-weight: 850; text-decoration: none; }
.financial-account-required.compact { min-height: 2rem; padding: .4rem .55rem; font-size: .45rem; }
.booking-entry-account { width: max-content; padding: .2rem .38rem; border-radius: 999px; color: #276850!important; background: #e2f2eb; font-weight: 750; }
.booking-entry-account.unassigned { color: #94620c!important; background: #fff0c9; }
.booking-extension-account { grid-column: 1 / -1; }
.expense-payment-form .financial-account-select-field { min-width: 180px; }
.unit-cost-payment-form { display: grid; gap: .35rem; min-width: 150px; }
.unit-cost-payment-form select { width: 100%; min-width: 0; font-size: .47rem; }
.unit-obligation-list form { grid-template-columns: 1fr 1.1fr 1.15fr auto; }
.unit-obligation-list form select { width: 100%; min-width: 0; }
.sales-summary-action-list form > select { width: min(155px, 100%); min-width: 115px; font-size: .48rem; }
.sales-collectible-list > article { grid-template-columns: minmax(210px, 1.15fr) minmax(150px, .78fr) minmax(100px, .42fr) minmax(430px, 1.65fr); }
.sales-collectible-list form label { min-width: 118px; }

.accounting-page { display: grid; min-width: 0; gap: 1rem; margin-top: 1.5rem; }
.accounting-page > * { min-width: 0; }
.accounting-hero { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: clamp(1rem, 3vw, 1.45rem); border: 1px solid color-mix(in srgb, var(--forest) 25%, var(--card-line)); border-radius: 18px; background: linear-gradient(135deg, var(--surface), var(--surface-tint)); box-shadow: var(--card-shadow); }
.accounting-hero > div { min-width: 0; }
.accounting-hero h2 { max-width: 720px; margin: .28rem 0; font: 800 clamp(1.15rem, 3vw, 1.55rem) Manrope; letter-spacing: -.035em; }
.accounting-hero p { max-width: 820px; margin: 0; color: var(--muted); font-size: .64rem; line-height: 1.55; }
.accounting-hero .button { flex: 0 0 auto; }
.accounting-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.accounting-summary-grid article { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .7rem; padding: .9rem; border: 1px solid var(--card-line); border-radius: 14px; background: var(--surface); box-shadow: var(--card-shadow); }
.accounting-summary-grid article > div { display: grid; gap: .12rem; }
.accounting-summary-grid small { color: var(--muted); font-size: .48rem; font-weight: 800; text-transform: uppercase; }
.accounting-summary-grid strong { font: 800 .95rem Manrope; }
.accounting-summary-grid p { margin: 0; color: var(--muted); font-size: .45rem; line-height: 1.35; }
.accounting-summary-icon { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 9px; color: var(--forest); background: var(--mint); }
.accounting-summary-icon.income { color: #237256; background: #dff3e9; }
.accounting-summary-icon.expense { color: #a4453e; background: #fae4e2; }
.accounting-summary-icon.net { color: #395f9b; background: #e6eefb; }
.accounting-unassigned-alert { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; padding: .8rem 1rem; border: 1px solid #ddb250; border-radius: 12px; color: #795b19; background: #fff9e8; }
.accounting-unassigned-alert > span { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: #ffedbd; }
.accounting-unassigned-alert strong { display: block; color: #58400d; font-size: .62rem; }
.accounting-unassigned-alert p { margin: .12rem 0 0; font-size: .52rem; }
.accounting-unassigned-alert a { color: #76520b; font-size: .52rem; font-weight: 850; white-space: nowrap; }
.financial-accounts-panel, .accounting-ledger-panel { padding: 1rem; scroll-margin-top: 4.5rem; border: 1px solid var(--card-line); border-radius: 16px; background: var(--surface); box-shadow: var(--card-shadow); }
.accounting-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.accounting-section-heading h2 { margin: .2rem 0; font: 800 1rem Manrope; }
.accounting-section-heading p { margin: 0; color: var(--muted); font-size: .56rem; }
.accounting-section-heading > strong { padding: .38rem .55rem; border-radius: 999px; color: var(--forest); background: var(--mint); font-size: .48rem; white-space: nowrap; }
.financial-account-layout { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.35fr); align-items: start; gap: .85rem; margin-top: .85rem; }
.financial-account-form { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; padding: .85rem; border: 1px solid var(--row-line); border-radius: 13px; background: var(--surface-soft); }
.financial-account-form-heading { grid-column: 1 / -1; display: flex; align-items: center; gap: .6rem; padding-bottom: .65rem; border-bottom: 1px solid var(--row-line); }
.financial-account-form-heading > span { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 10px; color: var(--forest); background: var(--mint); }
.financial-account-form-heading > div { display: grid; gap: .1rem; }
.financial-account-form-heading strong { font-size: .66rem; }
.financial-account-form-heading small { color: var(--muted); font-size: .46rem; }
.accounting-category-map { grid-column: 1 / -1; display: grid; gap: .3rem; padding: .6rem; border: 1px solid var(--row-line); border-radius: 9px; background: var(--surface); }
.accounting-category-map p { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: .45rem; margin: 0; font-size: .42rem; line-height: 1.4; }
.accounting-category-map strong { color: var(--forest); }
.accounting-category-map span { color: var(--muted); }
.financial-account-form label, .financial-account-card form label { display: grid; align-content: start; gap: .25rem; min-width: 0; }
.financial-account-form label > span, .financial-account-card form label > span { color: var(--muted); font-size: .47rem; font-weight: 800; }
.financial-account-form label > span i { font-style: normal; font-weight: 500; }
.financial-account-form label > small { color: var(--muted); font-size: .42rem; }
.financial-account-form input, .financial-account-form select, .financial-account-card form input, .financial-account-card form select { width: 100%; min-width: 0; }
.financial-account-form > button { grid-column: 1 / -1; justify-self: end; }
.financial-account-list { display: grid; gap: .55rem; }
.financial-account-type-group { display: grid; gap: .55rem; }
.financial-account-type-heading { padding: .42rem .55rem; border-radius: 8px; color: var(--forest); background: var(--mint); font-size: .52rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.financial-account-group { display: grid; gap: .55rem; }
.financial-account-group-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .2rem .1rem 0; color: var(--muted); }
.financial-account-group-heading strong { color: var(--ink); font-size: .55rem; }
.financial-account-group-heading span { font-size: .43rem; font-weight: 750; }
.financial-account-card { overflow: hidden; border: 1px solid var(--row-line); border-radius: 12px; background: var(--surface); }
.financial-account-card.inactive { opacity: .72; }
.financial-account-card > summary { display: grid; grid-template-columns: auto minmax(150px, 1.3fr) minmax(145px, .8fr) auto; align-items: center; gap: .7rem; padding: .75rem; cursor: pointer; list-style: none; }
.financial-account-card > summary::-webkit-details-marker { display: none; }
.financial-account-card-icon { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 10px; color: var(--forest); background: var(--mint); }
.financial-account-card > summary > span:not(.financial-account-card-icon) { display: grid; gap: .08rem; min-width: 0; }
.financial-account-card summary small, .financial-account-card summary em { overflow: hidden; color: var(--muted); font-size: .44rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.financial-account-card summary strong { overflow: hidden; font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.financial-account-card summary b { color: var(--forest); font-size: .48rem; }
.financial-account-card > form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; padding: .8rem; border-top: 1px solid var(--row-line); background: var(--surface-soft); }
.financial-account-card form .availability-toggle { grid-column: 1 / -1; }
.financial-account-card form > button { grid-column: 1 / -1; justify-self: end; }
.financial-account-card form > .financial-account-save-button { color: #fff !important; -webkit-text-fill-color: #fff; border-color: #247a64; background: #247a64; box-shadow: 0 8px 18px rgba(36, 122, 100, .22); opacity: 1; visibility: visible; }
.financial-account-card form > .financial-account-save-button:hover { color: #fff !important; border-color: #1c6251; background: #1c6251; box-shadow: 0 11px 22px rgba(28, 98, 81, .28); }
.financial-account-save-button > span { display: inline; color: inherit; -webkit-text-fill-color: inherit; font-weight: 850; }
.accounting-empty { display: grid; justify-items: center; gap: .25rem; padding: 2rem 1rem; color: var(--muted); text-align: center; }
.accounting-empty > span { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; color: var(--forest); background: var(--mint); }
.accounting-empty strong { color: var(--ink); font-size: .65rem; }
.accounting-empty p { max-width: 430px; margin: 0; font-size: .52rem; }
.accounting-filter-form { display: grid; grid-template-columns: minmax(110px, .65fr) minmax(160px, 1fr) minmax(180px, 1.2fr) 145px 145px auto auto; align-items: end; gap: .6rem; padding: .75rem; margin-top: .85rem; border: 1px solid var(--row-line); border-radius: 11px; background: var(--surface-soft); }
.accounting-filter-form label { display: grid; gap: .25rem; min-width: 0; }
.accounting-filter-form label > span { color: var(--muted); font-size: .47rem; font-weight: 800; }
.accounting-filter-form input, .accounting-filter-form select { width: 100%; min-width: 0; }
.accounting-filter-form > a { align-self: center; color: var(--forest); font-size: .5rem; font-weight: 800; }
.accounting-ledger-table-wrap { margin-top: .8rem; overflow-x: auto; border: 1px solid var(--row-line); border-radius: 12px; }
.accounting-ledger-table { width: 100%; min-width: 980px; border-collapse: collapse; }
.accounting-ledger-table th, .accounting-ledger-table td { padding: .7rem .65rem; border-bottom: 1px solid var(--row-line); font-size: .53rem; text-align: left; vertical-align: middle; }
.accounting-ledger-table th { color: var(--muted); background: var(--surface-soft); font-size: .45rem; letter-spacing: .05em; text-transform: uppercase; }
.accounting-ledger-table th:nth-last-child(-n+3), .accounting-ledger-table td:nth-last-child(-n+3) { text-align: right; }
.accounting-ledger-table td:first-child { min-width: 110px; }
.accounting-ledger-table td:nth-child(2) { min-width: 230px; }
.accounting-ledger-table td:nth-child(3) { min-width: 205px; }
.accounting-ledger-table td > strong, .accounting-ledger-table td > small, .accounting-ledger-table td > em, .accounting-ledger-table td > a { display: block; }
.accounting-ledger-table td > a { color: var(--forest); font-weight: 850; }
.accounting-ledger-table td > small, .accounting-ledger-table td > em { margin-top: .1rem; color: var(--muted); font-size: .44rem; font-style: normal; line-height: 1.4; }
.accounting-ledger-table tr.unassigned { background: #fffaf0; }
.ledger-account-assignment { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .3rem; }
.ledger-account-assignment select { width: 100%; min-width: 0; padding: .4rem; font-size: .47rem; }
.ledger-account-assignment button { padding: .35rem .45rem; border: 1px solid var(--forest); border-radius: 7px; color: var(--forest); background: transparent; font-size: .44rem; font-weight: 850; cursor: pointer; }
.ledger-unassigned-link { color: #8b620f!important; }
.ledger-money-in { color: #247255; font-weight: 850; }
.ledger-money-out { color: #a34740; font-weight: 850; }

html[data-color-mode="dark"] .financial-account-required, html[data-color-mode="dark"] .accounting-unassigned-alert, html[data-color-mode="dark"] .accounting-ledger-table tr.unassigned { color: #e8ca81; background: #3c3421; }
@media (max-width: 1100px) {
    .accounting-summary-grid { grid-template-columns: 1fr 1fr; }
    .financial-account-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 740px) {
    .dashboard-main:has(.accounting-page) .dashboard-header { padding-left: 3.5rem; }
    .dashboard-main:has(.accounting-page) .dashboard-header > div:first-child { grid-column: 1 / -1; grid-row: 2; }
    .dashboard-main:has(.accounting-page) .dashboard-header > .header-user-tools { grid-column: 2; grid-row: 1; justify-self: end; }
    .accounting-hero { align-items: stretch; flex-direction: column; }
    .accounting-hero .button { width: 100%; }
    .accounting-unassigned-alert { grid-template-columns: auto minmax(0, 1fr); }
    .accounting-unassigned-alert > a { grid-column: 2; }
    .accounting-section-heading { flex-direction: column; }
    .financial-account-card > summary { grid-template-columns: auto minmax(0, 1fr) auto; }
    .financial-account-card > summary > span:nth-child(3) { grid-column: 2; }
    .financial-account-card > summary > b { grid-column: 3; grid-row: 1 / span 2; }
    .financial-account-card > form { grid-template-columns: 1fr 1fr; }
    .accounting-filter-form { grid-template-columns: 1fr 1fr; }
    .accounting-filter-form label:nth-child(-n+3) { grid-column: 1 / -1; }
    .accounting-filter-form .button { width: 100%; }
    .accounting-ledger-table-wrap { overflow: visible; border: 0; }
    .accounting-ledger-table { display: block; min-width: 0; }
    .accounting-ledger-table thead { display: none; }
    .accounting-ledger-table tbody { display: grid; gap: .65rem; }
    .accounting-ledger-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; padding: .75rem; border: 1px solid var(--row-line); border-radius: 11px; background: var(--surface-soft); }
    .accounting-ledger-table td, .accounting-ledger-table td:first-child, .accounting-ledger-table td:nth-child(2), .accounting-ledger-table td:nth-child(3) { min-width: 0; padding: 0; border: 0; text-align: left; }
    .accounting-ledger-table td:nth-child(2), .accounting-ledger-table td:nth-child(3) { grid-column: 1 / -1; }
    .accounting-ledger-table th:nth-last-child(-n+3), .accounting-ledger-table td:nth-last-child(-n+3) { text-align: left; }
    .accounting-ledger-table td::before { display: block; margin-bottom: .2rem; color: var(--muted); content: attr(data-label); font-size: .4rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
    .accounting-ledger-table td[colspan] { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
    .accounting-summary-grid { grid-template-columns: minmax(0, 1fr); }
    .financial-account-form, .financial-account-card > form, .accounting-filter-form { grid-template-columns: minmax(0, 1fr); }
    .financial-account-form-heading, .accounting-category-map, .financial-account-form > button, .financial-account-card form .availability-toggle, .financial-account-card form > button, .accounting-filter-form label:nth-child(-n+3) { grid-column: auto; }
    .financial-account-form > button, .financial-account-card form > button { width: 100%; }
    .financial-account-card form > .financial-account-save-button { display: inline-flex; min-height: 3.15rem; justify-content: center; font-size: .68rem; letter-spacing: .01em; }
    .financial-account-card > summary { grid-template-columns: auto minmax(0, 1fr); }
    .financial-account-card > summary > span:nth-child(3) { grid-column: 2; }
    .financial-account-card > summary > b { grid-column: 2; grid-row: auto; justify-self: start; }
}

.sales-profit-chart-grid > * { min-width: 0; }

@media (max-width: 740px) {
    .sales-profit-chart-grid { grid-template-columns: minmax(0, 1fr); }
    .monthly-sales-chart { overflow: hidden; }
    .sales-bars { max-width: 100%; }
    .category-sales-bars > button { grid-template-columns: 85px 1fr 72px; }
    .sales-source-bars > button { grid-template-columns: 1.7rem minmax(0, 1fr) 76px; }
    .sales-source-bars > button i { grid-column: 2 / -1; }
    .sales-source-bars > button em { grid-column: 3; grid-row: 1; }
    .sales-drilldown-dialog { width: calc(100% - 1rem); max-height: calc(100vh - 1rem); border-radius: 14px; }
    .sales-drilldown-dialog footer { align-items: stretch; flex-direction: column; }
    .sales-drilldown-dialog footer .button { width: 100%; }
    .sales-drilldown-table-wrap { overflow: visible; border: 0; }
    .sales-drilldown-table { display: block; min-width: 0; }
    .sales-drilldown-table thead { display: none; }
    .sales-drilldown-table tbody { display: grid; gap: .65rem; }
    .sales-drilldown-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; padding: .75rem; border: 1px solid var(--row-line); border-radius: 11px; background: var(--surface-soft); }
    .sales-drilldown-table td,
    .sales-drilldown-table td:first-child,
    .sales-drilldown-table td:nth-child(2),
    .sales-drilldown-table td:nth-child(3) { display: grid; align-content: start; min-width: 0; padding: 0; border: 0; text-align: left; }
    .sales-drilldown-table td:nth-child(3) { grid-column: 1 / -1; }
    .sales-drilldown-table td::before { margin-bottom: .25rem; color: var(--muted); content: attr(data-label); font-size: .42rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
    .sales-drilldown-table td:last-child { text-align: left; }
    .sales-summary-list > article,
    .sales-summary-action-list > article { grid-template-columns: 1fr 1fr; }
    .sales-summary-list > article > div:last-child { justify-items: start; text-align: left; }
    .sales-summary-action-list form { grid-column: 1 / -1; justify-content: flex-start; padding-top: .55rem; border-top: 1px solid var(--row-line); }
}
@media (max-width: 520px) {
    .unit-finance-form { grid-template-columns: minmax(0, 1fr); }
    .unit-finance-form .wide,
    .unit-finance-form > p,
    .unit-finance-form > button { grid-column: auto; }
    .unit-finance-form > button { width: 100%; }
    .sales-summary-list > article,
    .sales-summary-action-list > article { grid-template-columns: minmax(0, 1fr); }
    .sales-summary-action-list form { grid-column: auto; display: grid; grid-template-columns: minmax(0, 1fr) auto; }
    .sales-summary-action-list form label { grid-column: 1 / -1; }
    .sales-summary-section-heading { align-items: flex-start; flex-direction: column; }
    .sales-drilldown-summary { grid-template-columns: 1fr; }
}

@media (max-width: 960px) {
    .admin-application-layout { grid-template-columns: 1fr; }.application-review-panel { position: static; }.application-admin-summary { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 740px) {
    .application-intro-card, .application-status-card, .host-application-prompt { align-items: flex-start; flex-direction: column; }.application-status-card { display: grid; grid-template-columns: auto 1fr; }.application-status-card > .button { grid-column: 1 / -1; width: 100%; }.application-profile-grid, .application-detail-list, .business-fields { grid-template-columns: 1fr; }.application-profile-grid .wide, .application-detail-list .wide, .business-fields .verification-wide { grid-column: auto; }.profile-required-inline { grid-template-columns: 1fr; }.profile-required-inline .button { grid-column: auto; grid-row: auto; }.host-application-prompt .button { width: 100%; }.application-filter-bar { align-items: stretch; flex-direction: column; }.application-filter-bar .button { width: 100%; }
}
/* Administrator booking controls and support reports */
.admin-booking-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:0 0 18px; }
.admin-booking-summary > div { background:var(--surface,#fff); border:1px solid var(--line,#dfe5e2); border-radius:16px; padding:18px 20px; box-shadow:0 8px 24px rgba(23,60,52,.05); }
.admin-booking-summary small { display:block; color:var(--muted,#6f7975); font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.admin-booking-summary strong { display:block; margin-top:5px; color:var(--ink,#17231f); font-family:Manrope,sans-serif; font-size:1.65rem; }
.admin-records-section,.deletion-ledger-section,.admin-reports-section { margin-bottom:20px; }
.admin-booking-filters { display:grid; grid-template-columns:1.35fr repeat(5,minmax(130px,1fr)); gap:12px; margin:18px 0; padding:16px; border:1px solid var(--line,#dfe5e2); border-radius:16px; background:#f8faf8; }
.admin-booking-filters label { display:grid; gap:6px; min-width:0; }
.admin-booking-filters label > span,.admin-booking-actions label > span { color:#53605b; font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.admin-booking-filters input,.admin-booking-filters select { width:100%; min-height:44px; border:1px solid #d7dfdb; border-radius:10px; background:#fff; padding:0 11px; }
.admin-filter-actions { display:flex; align-items:end; gap:12px; grid-column:1/-1; }
.admin-filter-actions a { color:#285e51; font-weight:700; }
.admin-bookings-table { min-width:1120px; }
.admin-booking-actions { display:flex; align-items:flex-start; gap:10px; }
.admin-booking-actions > a,.admin-booking-actions summary { color:#24594c; cursor:pointer; font-weight:800; white-space:nowrap; }
.admin-booking-actions details { position:relative; }
.admin-booking-actions summary { list-style:none; color:#a13b34; }
.admin-booking-actions summary::-webkit-details-marker { display:none; }
.admin-booking-actions details[open] form { display:grid; gap:10px; }
.admin-booking-actions form { position:absolute; z-index:8; right:0; top:28px; display:none; width:300px; padding:14px; border:1px solid #e2c8c5; border-radius:14px; background:#fff; box-shadow:0 18px 48px rgba(57,26,23,.18); }
.admin-booking-actions form label { display:grid; gap:6px; }
.admin-booking-actions textarea { width:100%; resize:vertical; border:1px solid #d9deda; border-radius:10px; padding:10px; font:inherit; }
.button-danger { border-color:#a8453d!important; background:#a8453d!important; color:#fff!important; }
.deletion-ledger-section .accounts-table { min-width:900px; }
.support-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(300px,.75fr); gap:20px; align-items:start; }
.support-compose-card,.support-history-card,.support-report-detail-card,.support-response-card { border:1px solid var(--line,#dfe5e2); border-radius:20px; background:var(--surface,#fff); padding:24px; box-shadow:0 10px 30px rgba(23,60,52,.06); }
.support-report-form { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.support-report-form .field-group { display:grid; gap:7px; }
.support-report-form input,.support-report-form select,.support-report-form textarea,.support-response-card select,.support-response-card textarea { width:100%; border:1px solid #d7dfdb; border-radius:12px; background:#fff; padding:12px 13px; font:inherit; }
.support-message-field,.support-submit-row { grid-column:1/-1; }
.support-report-form textarea,.support-response-card textarea { resize:vertical; }
.support-submit-row { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-top:4px; }
.support-submit-row p,.support-response-card form > p { margin:0; color:#6a746f; font-size:.87rem; }
.support-history-card { position:sticky; top:18px; }
.support-report-list { display:grid; gap:12px; }
.support-report-list > article { padding:16px; border:1px solid #e3e8e5; border-radius:14px; background:#fbfcfb; }
.support-report-list article header { display:flex; justify-content:space-between; gap:10px; align-items:center; }
.support-report-list time,.support-report-list article > small { color:#78817d; font-size:.78rem; }
.support-report-list h3 { margin:12px 0 6px; font-size:1rem; }
.support-report-list article > p { margin:0 0 10px; color:#55615c; white-space:pre-wrap; }
.support-status { display:inline-flex; align-items:center; width:max-content; border-radius:999px; padding:5px 9px; background:#edf2ef; color:#52605a; font-size:.7rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.support-status.status-open { background:#fff1cf; color:#8a6200; }
.support-status.status-in_progress { background:#dfeefc; color:#245f8d; }
.support-status.status-resolved { background:#ddf2e6; color:#226b48; }
.support-status.status-closed { background:#eaedeb; color:#59615d; }
.support-admin-response { margin-top:14px; padding:12px; border-left:3px solid #2c6959; border-radius:0 10px 10px 0; background:#eef6f2; }
.support-admin-response p { margin:5px 0; white-space:pre-wrap; }
.support-summary { margin-top:0; }
.admin-report-review-layout { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(300px,.7fr); gap:20px; align-items:start; }
.support-report-detail-card > header { display:flex; align-items:center; gap:10px; margin-bottom:20px; color:#6c7671; font-size:.85rem; }
.support-report-detail-card .account-identity { padding:16px; border-radius:14px; background:#f4f7f5; }
.support-report-meta { display:grid; grid-template-columns:1fr 1fr; gap:1px; margin:20px 0; overflow:hidden; border:1px solid #e1e6e3; border-radius:14px; background:#e1e6e3; }
.support-report-meta > div { padding:14px; background:#fff; }
.support-report-meta dt { color:#77817c; font-size:.72rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.support-report-meta dd { margin:4px 0 0; font-weight:700; }
.support-report-message { margin:18px 0; padding:18px; border-radius:14px; background:#f8faf8; }
.support-report-message p { margin:9px 0 0; white-space:pre-wrap; }
.support-response-card { position:sticky; top:18px; }
.support-response-card h2 { margin:5px 0 18px; }
.support-response-card form { display:grid; gap:15px; }
.support-response-card .field-group { display:grid; gap:7px; }
.support-reviewed-by { display:block; margin-top:14px; color:#77817c; }

@media (max-width: 1100px) {
    .admin-booking-filters { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .support-layout,.admin-report-review-layout { grid-template-columns:1fr; }
    .support-history-card,.support-response-card { position:static; }
}

@media (max-width: 680px) {
    .admin-booking-summary { grid-template-columns:1fr 1fr; }
    .admin-booking-filters,.support-report-form { grid-template-columns:1fr; }
    .admin-booking-filters label,.support-message-field,.support-submit-row { grid-column:auto; }
    .support-submit-row { align-items:stretch; flex-direction:column; }
    .support-submit-row .button { width:100%; }
    .support-compose-card,.support-history-card,.support-report-detail-card,.support-response-card { padding:18px; border-radius:16px; }
    .support-report-meta { grid-template-columns:1fr; }
}
