/* One scroll owner per surface, at every viewport size and in either theme. */
body>.notice.toast{z-index:10100}
.agenda-switcher-slot{display:none}
.agenda-property-loading{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:194;max-width:calc(100vw - 32px);padding:12px 18px;border-radius:999px;background:var(--hv-primary,#111);color:#fff;box-shadow:0 6px 24px #14245926;font-size:14px}
.agenda-property-loading[hidden]{display:none}
#agendaShell{transition:opacity .2s ease}
#agendaShell.is-property-loading{opacity:1}
.agenda-scroll-calendar.property-skeleton-active{position:relative}
.property-skeleton-active> :not(.property-calendar-skeleton){visibility:hidden}
.property-calendar-skeleton{position:absolute;inset:0;z-index:2;overflow:hidden;background:#fff;border-radius:inherit}
.property-skeleton-month{position:absolute;left:14px;right:14px;box-sizing:border-box;padding:22px 0;display:flex;flex-direction:column;gap:24px}
.property-skeleton-title{width:42%;max-width:240px;height:30px;flex:none;border-radius:10px}
.property-skeleton-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:6px;flex:1;min-height:0}
.property-skeleton-grid>.skeleton-block{border-radius:12px;min-height:0}
@media(prefers-reduced-motion:reduce){.property-calendar-skeleton .skeleton-block{animation:none}}
@keyframes agenda-property-arrive{from{opacity:.5}to{opacity:1}}
#agendaShell.property-arrive{animation:agenda-property-arrive .3s ease-out}
@media(max-width:760px){
 .agenda-property-switcher .agenda-property-option{flex:0 0 auto;min-height:52px;border-radius:999px;padding:7px 12px;gap:8px}
 .agenda-property-switcher .agenda-property-image{width:36px;height:36px;flex-basis:36px;border-radius:50%}
 .agenda-property-switcher .agenda-property-copy small{display:none}
 .agenda-property-switcher .agenda-property-all .agenda-property-image{display:none}
 .agenda-property-switcher .agenda-property-all strong{font-size:0}
 .agenda-property-switcher .agenda-property-all strong::after{content:'Todos';font-size:13px}
 .agenda-switcher-slot{display:block}
 body>.agenda-property-switcher.mobile-floating-switcher{position:fixed;left:14px;right:14px;z-index:189;display:flex;flex-direction:row;gap:6px;margin:0;padding:6px;overflow-x:auto;background:#fff;border:1px solid #e3e7f1;border-radius:18px;box-shadow:0 8px 24px #14245920;animation:compact-switcher-in .25s ease-out}
 .mobile-floating-switcher .agenda-property-option{flex:0 0 auto;min-height:42px;padding:5px 10px;gap:6px;border-radius:999px;box-shadow:none}
 .mobile-floating-switcher .agenda-property-image{flex:0 0 26px;width:26px;height:26px;border-radius:50%;transition:width .25s,height .25s}
 .mobile-floating-switcher .agenda-property-image .ui-icon{width:18px;height:18px}
 .mobile-floating-switcher .agenda-property-copy strong{font-size:12px;white-space:nowrap}
 .mobile-floating-switcher .agenda-property-copy small{display:none}
 .mobile-floating-switcher .agenda-property-all strong{font-size:0}
 .mobile-floating-switcher .agenda-property-all strong::after{content:'Todos';font-size:12px}
}
@keyframes compact-switcher-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#agendaShell{transition:none}#agendaShell.property-arrive{animation:none}}
@media(prefers-reduced-motion:reduce){body>.agenda-property-switcher.mobile-floating-switcher{animation:none}.mobile-floating-switcher .agenda-property-image{transition:none}}
.page-head.reservation-detail-head{flex-wrap:wrap}
.reservation-detail-head>.reservation-back-row{flex:0 0 100%;width:100%;text-align:left}
.reservation-back-row>.back-link{margin:0;align-self:flex-start}
.agenda-mobile-view-tabs{display:none}
.overview-search-controls{position:relative;display:flex;align-items:center;gap:8px;width:100%;max-width:100%;margin-bottom:16px;min-width:0;box-sizing:border-box}
.overview-search-toggle{position:relative;order:2;flex:0 0 36px;display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid #e3e7f1;border-radius:50%;background:#fff;color:var(--hv-primary,#111);cursor:pointer;z-index:3}
.overview-search-toggle .ui-icon{width:18px;height:18px}
.reservas-overview .overview-search-controls .reservation-tabs{order:1;flex:1 1 0;width:0;margin:0;gap:2px;padding:3px;min-width:0;box-sizing:border-box}
.overview-search-controls .reservation-tab{flex:1 1 0;min-width:0;padding:8px 4px;font-size:11px;line-height:20px;text-align:center}
.overview-search-controls.search-open{width:100%}
.overview-search-controls .overview-search{position:absolute;inset:0;z-index:4;display:flex;align-items:center;gap:4px;margin:0;padding:0 6px 0 14px;width:100%;height:44px;max-width:none;box-sizing:border-box;background:#fff;animation:overview-search-in .32s cubic-bezier(.22,1,.36,1) both}
.overview-search-controls{min-height:44px}
.overview-search-controls.search-open .overview-search-toggle{visibility:hidden;pointer-events:none}
.overview-search[hidden]{display:none!important}
.overview-search-controls.search-open .reservation-tabs{visibility:hidden}
body .reservas-overview .overview-search input[type="search"]{flex:1 1 0;min-width:0;width:0;max-width:none;height:100%;min-height:0;margin:0;padding:0;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;outline:none;box-sizing:border-box;font-size:16px;line-height:normal;-webkit-appearance:none;appearance:none}
body .reservas-overview .overview-search button{position:static;flex:0 0 34px;width:34px;height:34px;min-width:34px;margin:0;padding:0;transform:none;color:var(--hv-primary,#111)}
.overview-search-controls .overview-search:focus-within{border-color:var(--hv-primary,#555);box-shadow:0 0 0 2px #2d47b218}
.overview-search input::-webkit-search-cancel-button{-webkit-appearance:none}
@keyframes overview-search-in{from{opacity:.25;clip-path:inset(-4px -4px -4px calc(100% - 40px) round 24px)}to{opacity:1;clip-path:inset(-4px -4px -4px -4px round 24px)}}
@media(prefers-reduced-motion:reduce){.overview-search-controls .overview-search{animation:none}.agenda-mobile-view-tabs::before{transition:none!important}}
@media(max-width:760px){
 .agenda-mobile-tabs-slot{display:flow-root}
 .agenda-mobile-view-tabs:not([hidden]){position:relative;z-index:90;isolation:isolate;box-shadow:0 6px 20px #14245914}
 body .agenda-mobile-view-tabs.is-floating:not([hidden]){position:fixed;top:calc(8px + env(safe-area-inset-top,0px));margin:0;box-sizing:border-box;z-index:190;box-shadow:0 8px 28px #14245926}
 .agenda-mobile-view-tabs::before{content:'';position:absolute;top:5px;bottom:5px;left:5px;width:calc((100% - 14px)/2);border-radius:999px;background:var(--hv-primary,#111);transition:transform .28s cubic-bezier(.22,1,.36,1);z-index:-1}
 .agenda-mobile-view-tabs:has([data-agenda-view="stays"][aria-selected="true"])::before{transform:translateX(calc(100% + 4px))}
 .agenda-mobile-view-tabs:not([hidden]){display:flex;gap:4px;padding:5px;margin:12px 14px 4px;background:#fff;border:1px solid var(--line,#e3e7f1);border-radius:999px}
 .agenda-mobile-view-tabs button{flex:1;min-height:44px;border:0;border-radius:999px;background:transparent;color:var(--ink,#333);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
 .agenda-mobile-view-tabs button[aria-selected="true"]{background:transparent;color:#fff}
 .agenda-mobile-view-tabs button{transition:color .28s ease}
 .agenda-mobile-view-tabs button:focus-visible{outline:2px solid var(--hv-primary,#111);outline-offset:2px}
 #agendaShell.mobile-show-calendar>.reservas-overview-rail,#agendaShell.mobile-show-stays>.agenda-calendar-column{display:none!important}
 #agendaShell.mobile-show-stays>.reservas-overview-rail{display:block!important;width:100%;min-width:0}
 #agendaShell.mobile-show-stays .reservas-overview{position:static;max-height:none;margin:12px 14px 80px}
 #agendaShell.mobile-show-stays .reservas-overview-list{max-height:none;overflow:visible}
}
/* The reservation form is a layout wrapper, not another themed card. */
body .panel.reservation-form { background:transparent; border:0; border-radius:0; box-shadow:none!important; }
body .reservation-form > .form-intro { box-sizing:border-box; padding:24px; margin:0; min-width:0; }
body .reservation-form > .form-intro h2 { margin:8px 0; line-height:1.3; overflow-wrap:break-word; }
body .reservation-form > .form-intro p { margin:0; }
body:not(.embedded-view) .container:has(> .reservation-form) > .page-head { width:100%; max-width:900px; box-sizing:border-box; margin-left:auto; margin-right:auto; }
@media(max-width:760px) {
  body .reservation-form > .form-intro { padding:18px 15px; }
}
.btn.reservas-floating-add {
  position:fixed; top:auto; right:calc(24px + env(safe-area-inset-right, 0px));
  bottom:calc(24px + env(safe-area-inset-bottom, 0px));
  display:inline-flex; align-items:center; justify-content:center;
  width:56px; height:56px; min-width:56px; min-height:56px;
  padding:0; border-radius:50%; box-sizing:border-box;
}
.btn.reservas-floating-add[hidden] { display:none; }
.btn.reservas-floating-add svg { width:24px; height:24px; flex:none; }
.btn.reservas-floating-add:focus-visible { outline:3px solid currentColor; outline-offset:4px; }
.modal-backdrop { box-sizing:border-box; overflow:hidden!important; align-items:center!important; }
.modal-backdrop > .modal-card { box-sizing:border-box; min-height:0; max-height:calc(100dvh - 32px); overflow-y:auto; overscroll-behavior:contain; }
.modal-backdrop[hidden],.finance-reservation-drawer[hidden],.finance-expense-drawer[hidden] { display:none!important; }
body .hv-surface-top,
body .topbar-drawer.open.hv-surface-top { z-index:10020!important; }
.hv-surface-covered { pointer-events:none!important; }
.hv-surface-covered:is(.modal-backdrop,.document-modal,.attachment-viewer,.enterprise-illustration-modal,.service-lightbox),
.hv-surface-covered > :is(.finance-reservation-drawer-backdrop,.finance-expense-backdrop,.expense-receipt-viewer-backdrop) { background:transparent!important; backdrop-filter:none!important; -webkit-backdrop-filter:none!important; }
.ds-shade { z-index:10010; }
/* No focus rings on touch/click or programmatically focused dialog titles.
   Keyboard focus remains identifiable without an enclosing border. */
html body :focus { outline:none!important; }
html body :is(a,button,input,select,textarea,summary,[tabindex]):focus { box-shadow:none!important; }
html body :is(a,button,summary,[role="button"]):focus-visible {
  text-decoration:underline!important;
  text-underline-offset:4px;
  filter:brightness(.85);
}
html body :is(input,select,textarea):focus-visible { background-color:#eef2ff!important; }
html body :is(h1,h2,h3,h4,h5,h6,[role="dialog"])[tabindex="-1"]:focus {
  outline:none!important; box-shadow:none!important;
}
.cabanas-date-picker { z-index:10040!important; }
.topbar-drawer.cleaning-drawer { overflow:hidden!important; }
.cleaning-drawer-scroll { overscroll-behavior:contain; }
.finance-expense-panel,.finance-expense-form { min-height:0; overflow:hidden; }
.finance-expense-form > .form-grid { overscroll-behavior:contain; }
.finance-reservation-drawer-panel { min-height:0; overflow:hidden; }
.finance-reservation-drawer-frame { display:block; min-width:0; min-height:0; flex:1 1 0; }

/* The iframe's viewport is already the available panel height. Never grow it
   to its document scrollHeight: the content below the header owns scrolling. */
html:has(body.embedded-view > .container:is(.reservation-embed-shell,.reservation-embed-edit)) { height:100%; overflow:hidden; }
body.embedded-view:has(> .container:is(.reservation-embed-shell,.reservation-embed-edit)) { height:100%; min-height:0; margin:0; overflow:hidden; }
body.embedded-view > .container:is(.reservation-embed-shell,.reservation-embed-edit) {
  display:flex; flex-direction:column; box-sizing:border-box; width:100%; height:100dvh;
  min-height:0; max-width:none; padding:0!important; overflow:hidden;
}
body.embedded-view .reservation-embed-shell > .page-head,
body.embedded-view .reservation-embed-edit > .page-head {
  flex:0 0 auto; margin:0; padding:18px 64px 16px 20px; background:var(--paper,#fff); border-bottom:1px solid var(--line,#e3e7f1);
  max-height:45%; overflow-y:auto; overscroll-behavior:contain;
}
body.embedded-view .reservation-embed-shell.has-parent-close > .page-head { padding-right:20px; }
body.embedded-view .reservation-embed-shell > .embedded-scroll,
body.embedded-view .reservation-embed-edit > .reservation-form {
  flex:1 1 0; min-height:0; width:100%; box-sizing:border-box; overflow-y:auto; overflow-x:hidden;
  overscroll-behavior:contain; padding:20px 20px 32px; scrollbar-gutter:stable;
}
.agenda-airbnb-shell.has-side-panel .agenda-side-panel.is-full-mode { overflow:hidden!important; }
.agenda-side-panel.is-full-mode .agenda-side-sticky {
  display:flex; flex-direction:column; height:100%!important; min-height:0!important; max-width:none;
  padding:0!important; overflow:hidden;
}
.agenda-side-panel.is-full-mode .agenda-side-head { position:relative; flex:none; margin:0; padding:12px 16px 0; }
.agenda-side-panel.is-full-mode .agenda-side-head .agenda-sidebar-close { position:static!important; margin-left:auto; }
.agenda-side-panel.is-full-mode .agenda-side-full-panel { display:flex; flex:1 1 0; min-height:0; margin:0; padding:0; overflow:hidden; }
.agenda-side-panel.is-full-mode .agenda-full-frame { display:block; width:100%; height:100%!important; flex:1 1 0; min-height:0; border:0; }
.dashboard-reservation-edit-frame { height:calc(100dvh - 120px); min-height:320px; }
.hv-frame-status { position:absolute; left:20px; right:64px; top:64px; z-index:3; padding:16px; border-radius:16px; background:var(--paper,#fff); color:var(--ink,#222); box-shadow:0 4px 20px #0001; }
.hv-frame-status a { display:block; margin-top:8px; color:var(--hv-primary,#2d47b2); }
.hv-frame-status[hidden] { display:none!important; }

/* The sidebar menu scrolls; the brand and exit action remain reachable. */
.ui-sidebar > .ui-sidebar-brand,.ui-sidebar > .ui-sidebar-bottom { flex-shrink:0; }
.platform-hub-sidebar > .ui-sidebar-nav { flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; }
.insights-columns,.insights-columns > *, .chart-panel,.performance-panel { min-width:0; max-width:100%; }
.chart-panel svg { max-width:100%; }
@media(max-height:480px) {
  body.embedded-view > .container:is(.reservation-embed-shell,.reservation-embed-edit) { overflow-y:auto; }
  body.embedded-view .reservation-embed-shell > .page-head,body.embedded-view .reservation-embed-edit > .page-head { max-height:none; overflow:visible; }
  body.embedded-view .reservation-embed-shell > .embedded-scroll,body.embedded-view .reservation-embed-edit > .reservation-form { flex:none; overflow:visible; }
}
@media(max-width:760px) {
  .modal-backdrop { padding:12px!important; }
  .modal-backdrop > .modal-card { max-height:calc(100dvh - 24px); }
  body.embedded-view .reservation-embed-shell > .embedded-scroll,
  body.embedded-view .reservation-embed-edit > .reservation-form { padding:16px 14px 24px; }
  .insights-columns { grid-template-columns:minmax(0,1fr)!important; }
}
