
:root { color-scheme: light; --ink:#17352c; --muted:#60716b; --leaf:#1d6547; --dark:#123b2c; --paper:#fff; --cream:#f6f3e9; --line:#d9e3dd; --danger:#9d2929; --focus:#086acb; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
html,body { width:100%; margin:0; min-height:100%; }
body { min-width:0; overflow-x:hidden; background:var(--cream); color:var(--ink); font-size:16px; line-height:1.5; }
button,input,select,textarea { font:inherit; }
button,a.button-link { min-height:2.8rem; border:0; border-radius:.7rem; padding:.65rem 1rem; background:var(--leaf); color:#fff; font-weight:750; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
button:hover,a.button-link:hover { background:var(--dark); }
button.secondary { background:#fff; color:var(--leaf); border:1px solid #8eb3a0; }
button.secondary:hover { background:#edf6f0; }
button.danger { background:#fff; color:var(--danger); border:1px solid #d7a9a9; }
button.danger:hover { background:#fff1f1; }
button:disabled { cursor:wait; opacity:.6; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }
.eyebrow { margin:0; color:var(--leaf); font-size:.75rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
h1 { margin:.15rem 0; font-size:clamp(1.75rem,6vw,2.5rem); line-height:1.1; }
.login-shell { min-height:100svh; display:grid; place-items:center; padding:calc(1rem + env(safe-area-inset-top,0px)) calc(1rem + env(safe-area-inset-right,0px)) calc(1rem + env(safe-area-inset-bottom,0px)) calc(1rem + env(safe-area-inset-left,0px)); }
.login-card { width:min(100%,30rem); padding:clamp(1.25rem,5vw,2.25rem); border:1px solid var(--line); border-radius:1.2rem; background:var(--paper); box-shadow:0 1rem 3rem rgb(23 53 44 / 10%); }
.login-link { display:inline-flex; min-height:2.75rem; align-items:center; color:var(--leaf); font-weight:800; }
.login-actions,.portal-actions { display:flex; flex-wrap:wrap; gap:.8rem; }
.portal-actions { margin:1.2rem 0 .4rem; }
.portal-actions .button-link { flex:1 1 10rem; }
.secondary-link { border:1px solid #8eb3a0; background:#fff!important; color:var(--leaf)!important; }
.onboarding-card { width:min(100%,42rem); }
.onboarding-step { display:grid; gap:.8rem; }
.onboarding-step h2 { margin:0; }
.signup-units { display:grid; gap:.8rem; }
.signup-units fieldset { grid-template-columns:repeat(2,minmax(0,1fr)); }
form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.login-card form { grid-template-columns:1fr; }
label { display:grid; gap:.35rem; min-width:0; font-weight:700; color:var(--dark); }
input,select,textarea { width:100%; min-height:2.8rem; border:1px solid #aebdb5; border-radius:.6rem; padding:.55rem .7rem; background:#fff; color:var(--ink); }
textarea { min-height:5.5rem; resize:vertical; }
.wide { grid-column:1/-1; }
.check { display:flex; align-items:center; gap:.55rem; }
.check input { width:1.25rem; min-height:1.25rem; }
.feedback { min-height:1.5rem; margin:.3rem 0; color:var(--leaf); font-weight:750; }
.feedback[data-error="true"] { color:var(--danger); }
.fine-print,.notice { color:var(--muted); font-size:.9rem; }
.admin-shell { width:100%; max-width:none; min-height:100vh; }
.admin-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:calc(.8rem + env(safe-area-inset-top,0px)) calc(1rem + env(safe-area-inset-right,0px)) .8rem calc(1rem + env(safe-area-inset-left,0px)); background:var(--paper); border-bottom:1px solid var(--line); }
.property-switcher label { display:flex; align-items:center; gap:.5rem; font-size:.78rem; }
.property-switcher select { min-height:2.6rem; max-width:18rem; font-weight:800; }
.session-actions { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:.7rem; }
.session-actions a { min-height:2.6rem; display:inline-flex; align-items:center; color:var(--dark); font-weight:800; text-decoration:none; }
.session-actions button { min-height:2.6rem; padding:.45rem .7rem; }
.notification-count { display:grid; place-items:center; min-width:1.35rem; height:1.35rem; margin-left:.3rem; border-radius:999px; background:#fff0d9; color:#784b00; font-size:.72rem; }
.role-badge { border-radius:999px; background:#e5f2e9; padding:.35rem .65rem; font-size:.82rem; font-weight:800; text-transform:uppercase; }
.admin-nav { display:flex; align-items:stretch; gap:.4rem; overflow-x:auto; padding:.65rem max(1rem,env(safe-area-inset-left,0px)); background:#edf3ef; scrollbar-width:thin; }
.nav-group { flex:0 0 auto; display:flex; align-items:center; gap:.25rem; padding-right:.35rem; border-right:1px solid #ccdad2; }
.nav-group:last-child { border-right:0; }
.nav-label { padding:.55rem .2rem; color:var(--muted); font-size:.7rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.admin-nav a { flex:0 0 auto; border-radius:.55rem; padding:.55rem .65rem; color:var(--dark); font-weight:750; text-decoration:none; }
.admin-nav a[aria-current="page"] { background:var(--leaf); color:#fff; }
.admin-main { width:100%; max-width:96rem; min-width:0; margin:0 auto; padding:1rem max(clamp(1rem,3vw,2.5rem),env(safe-area-inset-right,0px)) calc(3rem + env(safe-area-inset-bottom,0px)) max(clamp(1rem,3vw,2.5rem),env(safe-area-inset-left,0px)); }
.page-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.page-intro { max-width:48rem; margin:.45rem 0 0; color:var(--muted); }
.tool-panel,.data-region { margin:1rem 0; border:1px solid var(--line); border-radius:1rem; padding:1rem; background:var(--paper); box-shadow:0 .5rem 1.5rem rgb(23 53 44 / 5%); }
.inline-form { display:flex; align-items:end; flex-wrap:wrap; }
.inline-form label { flex:1 1 15rem; }
.code-tools,.form-actions { display:flex; align-items:end; flex-wrap:wrap; gap:.65rem; }
.guest-code-input { font-size:1.45rem; font-weight:850; letter-spacing:.16em; font-variant-numeric:tabular-nums; }
.guest-code-display { margin:.2rem 0 .8rem; font-size:clamp(2.35rem,12vw,4.5rem); line-height:1; letter-spacing:.16em; font-weight:900; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.guest-message { white-space:pre-wrap; padding:1rem; border-radius:.8rem; background:#f5f8f6; color:var(--ink); }
details + details { margin-top:1rem; }
summary { min-height:2.8rem; display:flex; align-items:center; font-weight:800; cursor:pointer; }
fieldset { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; min-width:0; margin:0; padding:1rem; border:1px solid var(--line); border-radius:.8rem; }
legend { padding:0 .4rem; color:var(--leaf); font-weight:850; }
.security-note { grid-column:1/-1; padding:1rem; border-radius:.8rem; background:#edf6f0; }
.security-note p { margin:.35rem 0 0; }
.setup-welcome { margin:1rem 0; padding:clamp(1rem,4vw,1.5rem); border:1px solid var(--line); border-radius:1rem; background:#fff; }
.setup-welcome h2 { margin:.2rem 0; font-size:clamp(1.7rem,5vw,2.35rem); }
.setup-steps { display:grid; gap:.7rem; margin:1.2rem 0; padding:0; list-style:none; }
.setup-steps li { display:flex; gap:.8rem; align-items:flex-start; padding:.85rem; border:1px solid var(--line); border-radius:.8rem; }
.setup-steps li>span { display:grid; flex:0 0 2rem; height:2rem; place-items:center; border-radius:999px; background:#fff0d9; font-weight:900; }
.setup-steps li.is-complete>span { background:#ddefe3; }
.setup-steps strong,.setup-steps small,.setup-steps a { display:block; }
.setup-steps small { margin:.2rem 0; color:var(--muted); }
.setup-steps a { color:var(--leaf); font-weight:800; }
.quick-start-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.7rem; }
.quick-start-options article { display:grid; gap:.25rem; padding:.8rem; border-radius:.75rem; background:#f5f8f6; }
.quick-start-options span,.quick-start-options small { color:var(--muted); font-size:.8rem; }
.operator-console { width:min(100%,60rem); min-height:100svh; margin:0 auto; padding:calc(1.5rem + env(safe-area-inset-top,0px)) calc(1rem + env(safe-area-inset-right,0px)) calc(2rem + env(safe-area-inset-bottom,0px)) calc(1rem + env(safe-area-inset-left,0px)); }
.operator-console>header { display:flex; align-items:start; justify-content:space-between; gap:1rem; }
.operator-boundary { margin:1rem 0; padding:1rem; border:1px solid var(--line); border-radius:1rem; background:#fff; }
.data-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(16rem,1fr)); gap:.8rem; }
.data-card { min-width:0; border:1px solid var(--line); border-radius:.8rem; padding:.85rem; background:#fbfdfb; }
.data-card h2 { margin:0 0 .6rem; overflow-wrap:anywhere; font-size:1rem; }
.data-card dl { display:grid; grid-template-columns:minmax(6rem,.8fr) minmax(0,1.2fr); gap:.35rem .65rem; margin:0; }
.data-card dt { color:var(--muted); font-size:.82rem; }
.data-card dd { min-width:0; margin:0; overflow-wrap:anywhere; font-weight:650; }
.card-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.55rem; margin-top:.8rem; padding-top:.8rem; border-top:1px solid var(--line); }
.card-actions button,.card-actions a { min-height:2.75rem; padding:.5rem .75rem; font-size:.9rem; }
.status-pill { display:inline-flex; align-items:center; width:max-content; max-width:100%; border-radius:999px; padding:.22rem .55rem; background:#e5f2e9; color:var(--dark); font-size:.78rem; font-weight:800; }
.status-pill.attention { background:#fff0d9; color:#784b00; }
.section-heading { margin:1.4rem 0 .65rem; font-size:1.05rem; }
.section-heading:first-child { margin-top:0; }
.empty-state { padding:1rem; border:1px dashed #afc3b8; border-radius:.8rem; background:#fbfdfb; }
.empty-state h2 { margin:0; font-size:1rem; }
.empty-state p { margin:.35rem 0 0; color:var(--muted); }
.task-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(12rem,1fr)); gap:.75rem; }
.task-card { border:1px solid var(--line); border-radius:.8rem; padding:1rem; background:#fffaf0; }
.task-card strong { display:block; font-size:1.6rem; }
.task-card a { color:var(--dark); font-weight:800; }
.activity-list { display:grid; gap:.6rem; margin:0; padding:0; list-style:none; }
.activity-list li { padding:.75rem; border-left:.25rem solid #a8c8b7; background:#f6faf7; }
.metric-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(9rem,1fr)); gap:.75rem; }
.metric { border-radius:.8rem; padding:1rem; background:#edf6f0; }
.metric strong { display:block; font-size:1.7rem; }
.metric span { color:var(--muted); }
.module-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.module-card,.module-link-card { min-width:0; padding:clamp(1rem,3vw,1.5rem); border:1px solid var(--line); border-radius:1rem; background:#fbfdfb; }
.module-card h2,.module-link-card h2 { margin:.25rem 0; font-size:clamp(1.35rem,4vw,1.85rem); }
.module-card > p,.module-link-card p { margin:.35rem 0 1rem; color:var(--muted); }
.module-card .metric-grid { margin:1rem 0; grid-template-columns:repeat(2,minmax(0,1fr)); }
.module-card .metric { padding:.8rem; }
.module-card .attention-metric { background:#fff0d9; }
.module-actions { display:flex; flex-wrap:wrap; gap:.65rem; }
.configured-home-inventory { display:grid; gap:.55rem; margin:1rem 0; }
.home-inventory-row { display:grid; grid-template-columns:minmax(9rem,.8fr) auto minmax(12rem,1.2fr); gap:.65rem; align-items:center; padding:.7rem; border:1px solid var(--line); border-radius:.7rem; background:#fff; }
.home-inventory-row strong,.home-inventory-row small { display:block; }
.home-inventory-row small { color:var(--muted); overflow-wrap:anywhere; }
.demo-banner { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin-bottom:1rem; padding:.75rem 1rem; border-radius:.8rem; background:#fff0d9; color:#6d4500; }
.demo-banner span { font-size:.9rem; }
.view-tabs { display:flex; gap:.5rem; overflow-x:auto; margin-bottom:1rem; padding:.25rem; border:1px solid var(--line); border-radius:.85rem; background:#edf3ef; }
.view-tabs button { flex:1 0 auto; min-height:2.75rem; padding:.55rem .75rem; border:1px solid transparent; border-radius:.65rem; background:transparent; color:var(--dark); font-weight:850; }
.view-tabs button:hover { background:#fff; }
.view-tabs button[aria-selected="true"] { border-color:#afc3b8; background:#fff; color:var(--leaf); box-shadow:0 .2rem .7rem rgb(23 53 44 / 8%); }
.tab-count { display:inline-grid; place-items:center; min-width:1.3rem; min-height:1.3rem; margin-left:.2rem; border-radius:999px; background:#fff0d9; color:#784b00; font-size:.72rem; }
.calendar-hub-tabs button { flex:1 0 8.5rem; }
.calendar-hub-panel:focus { outline:none; }
.master-calendar-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin:1rem 0; }
.master-calendar-heading h2,.platform-heading h2 { margin:.15rem 0; }
.master-calendar-heading p,.platform-heading p { margin:.25rem 0 0; color:var(--muted); }
.month-navigation { display:flex; align-items:center; gap:.65rem; padding:.35rem; border:1px solid var(--line); border-radius:.75rem; background:#fff; }
.month-navigation a,.month-navigation button { display:grid; width:2.55rem; min-height:2.55rem; margin:0; padding:0; place-items:center; border:0; border-radius:.55rem; background:transparent; color:var(--leaf); font-size:1.2rem; font-weight:900; text-decoration:none; }
.month-navigation a:hover,.month-navigation button:hover { background:#edf6f0; }
.month-navigation strong { min-width:8.5rem; text-align:center; white-space:nowrap; }
.month-navigation .month-today { width:auto; padding:0 .65rem; font-size:.82rem; }
.calendar-metrics a.metric { color:var(--ink); text-decoration:none; }
.master-state-legend .state-available { background:#edf6f0; color:#24583f; }
.master-state-legend .state-blocked { background:#e4e7e5; color:#545e59; }
.master-state-legend .state-sync { border:1px dashed #cc8b27; background:#fff8e8; color:#784b00; }
.master-state-legend .state-manual { border:1px dashed #9aa69f; background:#f5f6f5; color:#59635e; }
.calendar-table.calendar-month-table { min-width:148rem; }
.today-summary { margin-top:1rem; }
.platform-settings-link { display:inline-flex; min-height:2.75rem; align-items:center; padding:.45rem .7rem; border:1px solid #8eb3a0; border-radius:.65rem; color:var(--leaf); font-weight:850; text-decoration:none; white-space:nowrap; }
.platform-settings-link:hover { background:#edf6f0; }
.platform-workspace { display:grid; grid-template-columns:minmax(10rem,13rem) minmax(0,1fr); gap:1rem; margin-top:1rem; }
.platform-listing-selector { min-width:0; padding:.85rem; border:1px solid var(--line); border-radius:.8rem; background:#f5f8f6; }
.platform-listing-selector>strong { display:block; margin-bottom:.55rem; }
.platform-listing-selector [role="tablist"] { display:grid; gap:.4rem; }
.platform-listing-selector button { width:100%; justify-content:flex-start; min-height:2.65rem; padding:.5rem .65rem; border:1px solid transparent; background:transparent; color:var(--dark); text-align:left; }
.platform-listing-selector button:hover { background:#fff; }
.platform-listing-selector button[aria-selected="true"] { border-color:#afc3b8; background:#fff; color:var(--leaf); }
.platform-listing-content { min-width:0; }
.platform-listing-detail { min-height:100%; padding:1rem; border:1px solid var(--line); border-radius:.8rem; background:#fff; }
.platform-listing-detail h3 { margin:.15rem 0; font-size:1.35rem; }
.platform-operational-details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; margin:1rem 0; }
.platform-operational-details div { min-width:0; padding:.7rem; border-radius:.65rem; background:#f5f8f6; }
.platform-operational-details dt { color:var(--muted); font-size:.76rem; }
.platform-operational-details dd { margin:.2rem 0 0; overflow-wrap:anywhere; font-weight:800; }
.platform-calendar-empty { padding:1rem; border:1px dashed #afc3b8; border-radius:.75rem; background:#fbfdfb; }
.platform-calendar-empty strong,.platform-calendar-empty small { display:block; }
.platform-calendar-empty p { margin:.35rem 0; color:var(--muted); }
.platform-calendar-empty small { color:var(--muted); }
.calendar-section { margin-top:1rem; padding:1rem; border:1px solid var(--line); border-radius:1rem; background:#fff; }
.calendar-section:first-of-type { margin-top:0; }
.calendar-section h2 { margin:.15rem 0 .8rem; }
.calendar-view-panel:focus { outline:none; }
.section-title-row { display:flex; align-items:start; justify-content:space-between; gap:1rem; }
.section-title-row a { color:var(--leaf); font-weight:800; }
.swipe-hint { color:var(--muted); font-size:.82rem; font-weight:800; white-space:nowrap; }
.calendar-metrics { grid-template-columns:repeat(5,minmax(0,1fr)); }
.attention-metric { background:#fff0d9; }
.calendar-metrics button.metric { min-height:0; border:0; color:var(--ink); text-align:left; }
.calendar-metrics button.metric:hover { background:#ffe5b9; }
.unit-list { display:grid; gap:.45rem; margin:1rem 0 0; padding:0; list-style:none; }
.unit-list li { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem; border-left:.3rem solid #a8c8b7; border-radius:.65rem; background:#f5f8f6; }
.unit-list li div,.unit-list li strong,.unit-list li span { display:block; }
.unit-list span,.unit-list small { color:var(--muted); }
.unit-list small { max-width:45%; text-align:right; }
.unit-list .unit-status-arrival { border-left-color:#d99f3d; background:#fffaf0; }
.unit-list .unit-status-available { border-left-color:#71a982; }
.unit-list .unit-status-blocked { border-left-color:#929b96; background:#f0f0ed; }
.calendar-legend { display:flex; flex-wrap:wrap; gap:.45rem; margin:.8rem 0; }
.calendar-legend span { padding:.25rem .55rem; border-radius:999px; font-size:.75rem; font-weight:850; }
.calendar-scroll { max-width:100%; overflow:auto; border:1px solid var(--line); border-radius:.75rem; overscroll-behavior-inline:contain; scrollbar-width:thin; }
.calendar-table { width:100%; min-width:51rem; border-collapse:separate; border-spacing:0; table-layout:fixed; font-size:.78rem; }
.calendar-table th,.calendar-table td { border-right:1px solid var(--line); border-bottom:1px solid var(--line); text-align:center; }
.calendar-table thead th { height:2.75rem; background:#edf3ef; color:var(--dark); font-size:.72rem; }
.calendar-table th:first-child { position:sticky; left:0; z-index:3; width:8rem; padding:.55rem; background:#fff; text-align:left; box-shadow:.3rem 0 .6rem rgb(23 53 44 / 7%); }
.calendar-table thead th:first-child { z-index:4; background:#edf3ef; }
.calendar-table tbody th strong,.calendar-table tbody th small { display:block; }
.calendar-table tbody th small { color:var(--muted); font-size:.66rem; font-weight:650; }
.calendar-day { height:4.9rem; padding:.28rem; background:#fff; vertical-align:middle; }
.calendar-day.is-available { background:repeating-linear-gradient(135deg,#fff,#fff .5rem,#fafcfb .5rem,#fafcfb 1rem); }
.reservation-lanes { display:grid; gap:.18rem; align-content:center; min-height:4.25rem; }
.reservation-slot,.reservation-segment { display:flex; min-height:1.85rem; align-items:center; justify-content:center; }
.reservation-segment { margin-inline:-.29rem; padding:.2rem .3rem; overflow:hidden; border-block:1px solid transparent; color:#16352c; font-size:.7rem; font-weight:900; line-height:1.05; white-space:nowrap; }
.reservation-segment.is-start { margin-left:.08rem; border-left:1px solid rgb(23 53 44 / 22%); border-radius:.45rem 0 0 .45rem; }
.reservation-segment.is-end { margin-right:.08rem; border-right:1px solid rgb(23 53 44 / 22%); border-radius:0 .45rem .45rem 0; }
.reservation-segment.is-start.is-end { border-radius:.45rem; }
.reservation-segment strong { margin-left:.2rem; color:#8f2222; }
.channel-airbnb { background:#ddefe3; }
.channel-vrbo { background:#e4ecff; }
.channel-booking { background:#ffebc8; }
.channel-trip { background:#eee3ff; }
.channel-manual,.channel-other { background:#e9ecea; }
.reservation-segment.is-conflict { position:relative; z-index:1; outline:2px solid #b4382f; outline-offset:-1px; background:#ffe1dc; color:#761f19; }
.blocked-segment { display:grid; min-height:3.8rem; place-items:center; align-content:center; color:#6c756f; font-size:1.1rem; font-weight:900; }
.blocked-segment small { display:block; font-size:.62rem; }
.available-marker { color:#9ca8a1; font-size:.65rem; }
.legend-conflict { border:1px solid #d89991; background:#ffe1dc; color:#761f19; }
.attention-panel { border-color:#e4c486; background:#fffaf0; }
.source-comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.source-comparison div { padding:.8rem; border-radius:.75rem; background:#fff; }
.source-comparison span,.source-comparison strong,.source-comparison small { display:block; }
.source-comparison span { color:var(--muted); }
.calendar-review-dialog { width:min(calc(100% - 2rem),40rem); max-height:calc(100dvh - 2rem); padding:1.2rem; border:1px solid var(--line); border-radius:1rem; color:var(--ink); box-shadow:0 1.5rem 5rem rgb(0 0 0 / 28%); }
.calendar-review-dialog::backdrop { background:rgb(12 32 25 / 55%); }
.review-dialog-heading { display:flex; align-items:start; justify-content:space-between; gap:1rem; }
.review-dialog-heading h2 { margin:.15rem 0 .8rem; }
.dialog-close { min-height:2.6rem; padding:.45rem .7rem; }
.review-explanation,.recommended-action { margin:1rem 0; padding:.85rem; border-radius:.75rem; background:#f5f8f6; }
.review-explanation p,.recommended-action p { margin:.25rem 0; }
.recommended-action { border-left:.3rem solid #d99f3d; background:#fffaf0; }
.forwarding-address { display:block; max-width:100%; padding:.85rem; border-radius:.7rem; background:#f5f8f6; overflow-wrap:anywhere; }
.calendar-hub>.notice { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.calendar-hub>.notice span { color:var(--muted); }
.inventory-grid { margin-top:1rem; }
.inventory-config-card { position:relative; }
.inventory-config-card h3 { margin:.15rem 0 .35rem; }
.inventory-card-heading { display:flex; align-items:start; justify-content:space-between; gap:.75rem; }
.inventory-state-pills { display:flex; flex-wrap:wrap; gap:.4rem; margin:.45rem 0; }
.inventory-platform-summary { margin:.55rem 0 0; color:var(--dark); font-size:.88rem; font-weight:750; }
.inventory-action-menu { position:relative; margin:0; }
.inventory-action-trigger { display:grid; width:2.8rem; min-height:2.8rem; place-items:center; border:1px solid #aebdb5; border-radius:.65rem; background:#fff; color:var(--dark); font-size:1.35rem; line-height:1; list-style:none; }
.inventory-action-trigger::-webkit-details-marker { display:none; }
.inventory-action-popover { position:absolute; z-index:10; top:calc(100% + .35rem); right:0; display:grid; width:13rem; gap:.35rem; padding:.55rem; border:1px solid var(--line); border-radius:.75rem; background:#fff; box-shadow:0 .8rem 2rem rgb(23 53 44 / 18%); }
.inventory-action-popover button { width:100%; justify-content:flex-start; min-height:2.65rem; }
.inventory-edit-dialog { width:min(calc(100% - 2rem),40rem); max-height:calc(100dvh - 2rem); padding:1.2rem; border:1px solid var(--line); border-radius:1rem; color:var(--ink); }
.inventory-edit-dialog::backdrop { background:rgb(12 32 25 / 55%); }
.inventory-edit-form { margin:0; }
.inventory-state-form { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:.8rem; }
.inventory-state-form button { grid-column:1/-1; }
.mapping-options { display:grid; gap:.65rem; }
.airbnb-trust-readiness { padding:1rem; border:1px solid #a8c8b7; border-radius:.8rem; background:#f5faf7; }
.airbnb-trust-readiness h3 { margin:.15rem 0; }
.trust-readiness-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.55rem; margin:.8rem 0; }
.trust-readiness-grid div { min-width:0; padding:.65rem; border-radius:.6rem; background:#fff; }
.trust-readiness-grid small,.trust-readiness-grid strong { display:block; overflow-wrap:anywhere; }
.trust-readiness-grid small { color:var(--muted); }
[data-composite-inventory-form] { grid-template-columns:1fr; }
.mapping-option { min-height:2.75rem; padding:.65rem; border:1px solid var(--line); border-radius:.65rem; background:#fff; }
.listing-mapping-row { display:grid; grid-template-columns:minmax(10rem,1fr) minmax(10rem,1fr) minmax(12rem,1.2fr); gap:.75rem; align-items:end; padding:.8rem; border:1px solid var(--line); border-radius:.75rem; background:#fff; }
.listing-calendar-controls { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.65rem; align-items:end; }
.listing-calendar-controls .fine-print { grid-column:1/-1; margin:.1rem 0; }
.calendar-feed-state { align-self:center; margin:0; color:var(--dark); font-size:.86rem; font-weight:800; }
.calendar-event-list { display:grid; gap:.4rem; margin:.7rem 0 0; padding:0; list-style:none; }
.calendar-event-list li { padding:.55rem .65rem; border-radius:.55rem; background:#f5f8f6; font-variant-numeric:tabular-nums; }
.live-master-calendar { margin-top:.75rem; }
.master-live-calendar { width:max-content; min-width:100%; table-layout:fixed; }
.master-live-calendar th:first-child { width:11rem; }
.master-live-calendar thead th:not(:first-child) { width:2.65rem; min-width:2.65rem; }
.month-calendar-day { width:2.65rem; min-width:2.65rem; height:3.2rem; padding:.18rem; }
.month-calendar-day.is-available { background:repeating-linear-gradient(135deg,#fff,#fff .45rem,#fafcfb .45rem,#fafcfb .9rem); }
.month-calendar-day.is-occupied { background:#f2f6f3; }
.month-calendar-day.history-unknown { background:repeating-linear-gradient(135deg,#f5f5f3,#f5f5f3 .35rem,#e7e9e7 .35rem,#e7e9e7 .7rem); }
.month-block { display:grid; width:100%; min-height:2.35rem; place-items:center; border-radius:.35rem; color:#17352c; font-size:.72rem; font-weight:900; }
.month-block[type="button"] { min-width:0; margin:0; padding:.15rem; border:1px solid rgb(23 53 44 / 12%); cursor:pointer; }
.month-block[type="button"]:focus-visible { outline:.18rem solid var(--leaf); outline-offset:.1rem; }
.availability-direct_reservation { border:1px solid #40785a; background:#cfe8d7; color:#173f2c; }
.availability-composite_impact { border:1px dashed #6b7f75; background:repeating-linear-gradient(135deg,#edf2ef,#edf2ef .3rem,#dfe8e2 .3rem,#dfe8e2 .6rem); color:#344a3f; }
.availability-host_block { border:1px solid #7d7469; background:#e8e3dc; color:#4e463d; }
.availability-external_calendar_block { border:1px dashed #997123; background:#fff1cd; color:#6d4b09; }
.availability-unknown_block { border:1px dotted #737b77; background:#eceeed; color:#4d5551; }
.calendar-history-unavailable { margin:.6rem 0; }
.calendar-mobile-hint { display:none; margin:.5rem 0; color:var(--muted); font-size:.85rem; }
.calendar-operations-toolbar { display:grid; grid-template-columns:minmax(16rem,1fr) minmax(12rem,.45fr); gap:.75rem; align-items:end; margin:1rem 0; padding:.8rem; border:1px solid var(--line); border-radius:.8rem; background:#f8fbf9; }
.calendar-search-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.55rem; align-items:end; margin:0; }
.phone-calendar-modes { display:none; }
.property-calendar-group { margin-top:.75rem; border:1px solid var(--line); border-radius:.8rem; background:#fff; overflow:hidden; }
.property-calendar-group>summary { padding:.75rem 1rem; background:#edf3ef; }
.property-calendar-group>.calendar-scroll,.property-calendar-group>.calendar-mobile-hint,.property-calendar-group>.empty-state { margin:.75rem; }
.calendar-agenda-list { display:grid; gap:.55rem; padding:.75rem; }
.calendar-agenda-item { display:grid; grid-template-columns:minmax(9rem,1fr) repeat(auto-fit,minmax(8rem,max-content)); gap:.55rem; align-items:center; padding:.7rem; border:1px solid var(--line); border-radius:.7rem; }
.calendar-agenda-item strong,.calendar-agenda-item small { display:block; }
.calendar-agenda-item small { color:var(--muted); }
.agenda-state,.agenda-event { min-height:2.6rem; border-radius:.55rem; padding:.45rem .65rem; font-size:.82rem; font-weight:850; }
.agenda-event { color:var(--ink); }
.agenda-state.state-available { display:grid; place-items:center; background:#edf6f0; color:#24583f; }
.agenda-state.history-unknown { display:grid; place-items:center; background:#eceeed; color:#4d5551; }
.calendar-event-dialog { inset:0 0 0 auto; width:min(100%,30rem); height:100dvh; max-height:100dvh; margin:0 0 0 auto; padding:1.25rem; border:0; border-left:1px solid var(--line); border-radius:0; color:var(--ink); }
.calendar-event-dialog::backdrop { background:rgb(12 32 25 / 55%); }
.calendar-event-dialog-heading { display:flex; align-items:start; justify-content:space-between; gap:1rem; padding-bottom:.75rem; border-bottom:1px solid var(--line); }
.calendar-event-dialog-heading h2 { margin:.15rem 0; }
.calendar-event-detail { margin-top:1rem; padding:1rem; border:1px solid var(--line); border-radius:.75rem; background:#fafcfb; }
.calendar-event-detail dl { display:grid; grid-template-columns:minmax(8rem,.8fr) minmax(0,1.2fr); gap:.45rem .75rem; margin:0; }
.calendar-event-detail dt { color:var(--muted); font-size:.8rem; }
.calendar-event-detail dd { margin:0; overflow-wrap:anywhere; font-weight:800; }
.platform-sync-summary { margin-bottom:1rem; grid-template-columns:repeat(5,minmax(0,1fr)); }
.airbnb-sync-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:0 0 1rem; padding:.9rem 1rem; border:1px solid var(--line); border-radius:.8rem; background:#f8fbf9; }
.airbnb-sync-actions strong,.airbnb-sync-actions small { display:block; }
.airbnb-sync-actions small { margin-top:.2rem; color:var(--muted); }
.airbnb-sync-results { display:grid; gap:.45rem; margin:.5rem 0 1rem; padding:0; list-style:none; }
.airbnb-sync-results li { display:flex; justify-content:space-between; gap:1rem; padding:.65rem .75rem; border-left:.25rem solid var(--leaf); border-radius:.4rem; background:#edf6f0; }
.airbnb-sync-results li.attention { border-left-color:var(--danger); background:#fff3f1; }
.airbnb-sync-results span { color:var(--muted); text-align:right; }
.gmail-connection-card,.airbnb-inbound-email-card { margin:0 0 1rem; padding:1rem; border:1px solid var(--line); border-radius:.8rem; background:#f8fbf9; }
.gmail-connection-card h3,.airbnb-inbound-email-card h3 { margin:.15rem 0 .45rem; }
.gmail-import-summary { display:grid; grid-template-columns:minmax(11rem,1fr) minmax(0,1fr); gap:.35rem .75rem; margin:.8rem 0; padding:.75rem; border-radius:.65rem; background:#fff; }
.gmail-import-summary dt { color:var(--muted); font-size:.82rem; }
.gmail-import-summary dd { margin:0; overflow-wrap:anywhere; font-weight:800; }
.gmail-evidence-section { margin:0 0 1rem; padding:1rem; border:1px solid var(--line); border-radius:.8rem; background:#fff; }
.gmail-evidence-section h3 { margin:.15rem 0 .45rem; }
.gmail-evidence-filters { display:grid; grid-template-columns:repeat(3,minmax(10rem,1fr)); gap:.65rem; margin:.9rem 0; padding:.8rem; border-radius:.7rem; background:#f8fbf9; }
.gmail-evidence-filter-actions { display:flex; align-items:end; gap:.45rem; }
.gmail-evidence-summary { margin-bottom:.75rem; }
.gmail-evidence-count { color:var(--muted); font-size:.85rem; font-weight:750; }
.gmail-evidence-table-wrap { max-width:100%; overflow:auto; border:1px solid var(--line); border-radius:.7rem; -webkit-overflow-scrolling:touch; }
.gmail-evidence-table { width:100%; min-width:92rem; border-collapse:collapse; font-size:.8rem; }
.gmail-evidence-table th,.gmail-evidence-table td { padding:.55rem .6rem; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; overflow-wrap:anywhere; }
.gmail-evidence-table th { position:sticky; top:0; z-index:1; background:#edf3ef; color:var(--dark); white-space:nowrap; }
.gmail-evidence-table tr.needs-review { background:#fff9ec; }
.timeline-list { display:grid; gap:.65rem; margin-top:1rem; }
.timeline-list h3 { margin:.2rem 0; }
.timeline-event { display:grid; gap:.45rem; padding:.75rem; border:1px solid var(--line); border-radius:.7rem; background:#f8fbf9; }
.timeline-event .status-pill { justify-self:start; }
.detail-list.compact { margin:0; }
.airbnb-reservations-table { min-width:78rem; }
.platform-source-calendar { margin-bottom:1rem; }
.platform-listing-status-details { margin-top:1rem; padding:.75rem; border:1px solid var(--line); border-radius:.8rem; }
.platform-listing-status-details>summary { cursor:pointer; font-weight:800; }
.platform-listing-status-details>.data-grid { margin-top:.75rem; }
.listing-mapping-row small { color:var(--muted); }
.platform-config-links { display:flex; flex-wrap:wrap; gap:.45rem; margin:1rem 0; }
.mapping-boundary { padding:.75rem; border-left:.3rem solid #71a982; border-radius:.45rem; background:#edf6f0; color:var(--dark); }
@media (min-width:44rem) {
  .admin-main,.calendar-hub,.data-region { width:100%; max-width:none; }
  .inventory-edit-dialog { width:min(calc(100% - 3rem),56rem); }
  .calendar-configuration { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; align-items:start; }
  .calendar-configuration>.calendar-section { min-width:0; margin-top:0; }
  .calendar-configuration>.platform-mapping-section { grid-column:1/-1; }
  .inventory-grid { grid-template-columns:repeat(auto-fill,minmax(18rem,1fr)); }
  .mapping-options { grid-template-columns:1fr; }
  .platform-mapping-section .mapping-options { grid-template-columns:1fr; }
}
@media (min-width:64rem) {
  .calendar-section { padding:1.25rem; }
  [data-composite-component-options] { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .listing-mapping-row { grid-template-columns:minmax(14rem,1fr) minmax(12rem,.8fr) minmax(16rem,1.2fr); }
}
@media (max-width:40rem) {
  .admin-header { align-items:stretch; flex-direction:column; }
  .property-switcher select { max-width:none; }
  .session-actions { justify-content:flex-start; }
  .page-heading { align-items:flex-start; flex-direction:column; }
  form { grid-template-columns:1fr; }
  fieldset { grid-template-columns:1fr; }
  .signup-units fieldset,.quick-start-options { grid-template-columns:1fr; }
  .operator-console>header { flex-direction:column; }
  .wide { grid-column:auto; }
  .inline-form { display:grid; }
  .data-grid { grid-template-columns:1fr; }
  .data-card dl { grid-template-columns:1fr; gap:.1rem; }
  .data-card dd { margin-bottom:.5rem; }
  .listing-calendar-controls { grid-template-columns:1fr; }
  .trust-readiness-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nav-label { display:none; }
  .nav-group { gap:.15rem; padding-right:.35rem; }
  .admin-nav a { padding:.55rem .65rem; }
  .card-actions { display:grid; }
  .card-actions button,.card-actions a { width:100%; }
  .code-tools,.form-actions { display:grid; grid-template-columns:1fr; }
  .code-tools button,.form-actions button { width:100%; }
  .module-grid { grid-template-columns:1fr; }
  .home-inventory-row { grid-template-columns:1fr; }
  .module-card .metric-grid,.calendar-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .platform-sync-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gmail-evidence-filters { grid-template-columns:1fr; }
  .gmail-evidence-filter-actions { display:grid; grid-template-columns:1fr 1fr; }
  .gmail-evidence-table-wrap { overflow:visible; border:0; }
  .gmail-evidence-table { display:block; min-width:0; }
  .gmail-evidence-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
  .gmail-evidence-table tbody,.gmail-evidence-table tr,.gmail-evidence-table td { display:block; }
  .gmail-evidence-table tr { margin-bottom:.7rem; padding:.65rem; border:1px solid var(--line); border-radius:.7rem; background:#fff; }
  .gmail-evidence-table tr.needs-review { background:#fff9ec; }
  .gmail-evidence-table td { display:grid; grid-template-columns:minmax(7.5rem,.8fr) minmax(0,1.2fr); gap:.5rem; padding:.35rem 0; border:0; }
  .gmail-evidence-table td::before { content:attr(data-label); color:var(--muted); font-size:.76rem; font-weight:750; }
  .airbnb-sync-actions,.airbnb-sync-results li { align-items:stretch; flex-direction:column; }
  .airbnb-sync-actions button { width:100%; }
  .airbnb-sync-results span { text-align:left; }
  .demo-banner { align-items:flex-start; flex-direction:column; }
  .source-comparison { grid-template-columns:1fr; }
  .admin-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.15rem; overflow:visible; }
  .nav-group { min-width:0; justify-content:center; padding:0; }
  .admin-nav a { width:100%; padding:.55rem .25rem; font-size:.82rem; text-align:center; justify-content:center; }
  .view-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:visible; }
  .view-tabs button { display:grid; grid-auto-flow:column; place-items:center; place-content:center; min-width:0; padding:.5rem .2rem; font-size:.75rem; text-align:center; }
  .calendar-hub-tabs { display:flex; overflow-x:auto; }
  .calendar-hub-tabs button { display:flex; flex:0 0 auto; min-width:7.5rem; padding:.55rem .65rem; }
  .master-calendar-heading,.platform-heading,.calendar-hub-panel .section-title-row { align-items:stretch; flex-direction:column; }
  .month-navigation { justify-content:space-between; width:100%; gap:.25rem; }
  .month-navigation button { flex:0 0 2.55rem; }
  .month-navigation strong { min-width:5.5rem; }
  .month-navigation .month-today { flex:0 0 auto; }
  .calendar-mobile-hint { display:block; }
  .calendar-operations-toolbar { grid-template-columns:1fr; }
  .calendar-search-form { grid-template-columns:minmax(0,1fr) auto; }
  .phone-calendar-modes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.35rem; }
  .phone-calendar-modes button { min-width:0; padding:.45rem .3rem; font-size:.76rem; }
  .phone-calendar-modes button[aria-selected="true"] { border-color:var(--leaf); background:#edf6f0; }
  .calendar-agenda-item { grid-template-columns:1fr; }
  .week-calendar-table { min-width:29.5rem; }
  .live-master-calendar { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; }
  .master-live-calendar th:first-child { position:sticky; left:0; z-index:3; width:8.5rem; min-width:8.5rem; background:#fff; box-shadow:.3rem 0 .5rem rgb(23 53 44 / 8%); }
  .master-live-calendar thead th:first-child { z-index:4; }
  .master-live-calendar thead th:not(:first-child),.month-calendar-day { width:3rem; min-width:3rem; scroll-snap-align:start; }
  .calendar-event-dialog { inset:auto 0 0; width:100%; height:auto; max-height:78dvh; margin:auto 0 0; padding:1rem max(1rem,env(safe-area-inset-right,0px)) calc(1rem + env(safe-area-inset-bottom,0px)) max(1rem,env(safe-area-inset-left,0px)); border-top:1px solid var(--line); border-left:0; border-radius:1rem 1rem 0 0; }
  .calendar-event-detail dl { grid-template-columns:1fr; gap:.15rem; }
  .calendar-event-detail dd { margin-bottom:.45rem; }
  .platform-workspace { grid-template-columns:1fr; }
  .platform-listing-selector [role="tablist"] { display:flex; gap:.4rem; overflow-x:auto; }
  .platform-listing-selector button { flex:0 0 auto; width:auto; white-space:nowrap; }
  .platform-operational-details { grid-template-columns:1fr; }
  .unit-list li { align-items:flex-start; }
  .unit-list small { max-width:48%; }
  .calendar-review-dialog { width:calc(100% - 1rem); max-height:calc(100dvh - 1rem); padding:1rem; }
  .review-dialog-heading { align-items:stretch; flex-direction:column; }
  .dialog-close { align-self:flex-end; }
  .calendar-hub>.notice { align-items:flex-start; flex-direction:column; }
  .calendar-configuration .section-title-row { flex-direction:column; }
  .inventory-state-form,.listing-mapping-row { grid-template-columns:1fr; }
  .platform-config-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .inventory-action-popover { position:fixed; inset:auto .75rem calc(.75rem + env(safe-area-inset-bottom,0px)); width:auto; }
  .inventory-edit-dialog { width:calc(100% - 1rem); max-height:calc(100dvh - 1rem); padding:1rem; }
}
