@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;700;900&display=swap');

/* Phase 1 design tokens and rules are intentionally scoped to Reserve's account surface. */
.hub-reserve-account{
  --color-bg:#f7f6f2;--color-surface:#efede7;--color-text:#1c2a23;
  --color-divider:color-mix(in srgb,#1c2a23 14%,transparent);
  --color-accent:#009a4e;--color-accent-100:#e4f3ea;--color-accent-200:#c4e5d1;--color-accent-300:#8fcfab;
  --color-accent-400:#45b27a;--color-accent-500:#009a4e;--color-accent-600:#00853f;--color-accent-700:#006d34;--color-accent-800:#0a5a2e;--color-accent-900:#0c3b2a;
  --color-accent-2:#d85e3f;--color-accent-2-100:#fbe9e2;--color-accent-2-200:#f5ccbe;--color-accent-2-300:#eba28b;
  --color-accent-2-400:#e17d60;--color-accent-2-500:#d85e3f;--color-accent-2-600:#c24f32;--color-accent-2-700:#a3412a;--color-accent-2-800:#823423;--color-accent-2-900:#5c2519;
  --color-highlight:#f5d130;--space-1:4.6px;--space-2:9.2px;--space-3:13.8px;--space-4:18.4px;--space-6:27.6px;--space-8:36.8px;
  --radius-sm:2px;--radius-md:4px;--radius-lg:7px;
  --shadow-sm:0 1px 2px color-mix(in srgb,#2d2b2b 14%,transparent);--shadow-md:0 3px 10px color-mix(in srgb,#2d2b2b 16%,transparent);--shadow-lg:0 12px 32px color-mix(in srgb,#2d2b2b 22%,transparent);
  --font-heading:Lato,"Helvetica Neue",Arial,sans-serif;--font-body:Lato,"Helvetica Neue",Arial,sans-serif;
  display:block!important;margin:0 0 var(--space-4)!important;color:var(--color-text);font-family:var(--font-body);
}
.hub-reserve-account *{box-sizing:border-box}.hub-reserve-account button,.hub-reserve-account a{font:inherit}.hub-reserve-account :focus-visible{outline:2px solid var(--color-accent)!important;outline-offset:2px!important}
.hub-member-lookup:has(.hub-reserve-account){max-width:1200px;padding:0}
.hub-member-lookup:has(.hub-reserve-account)>.hub-member-lookup-title,.hub-member-lookup:has(.hub-reserve-account)>.hub-member-lookup-control,.hub-member-lookup:has(.hub-reserve-account)>.hub-member-lookup-results,.hub-member-lookup:has(.hub-reserve-account)>.hub-member-lookup-hint{display:none!important}
.hub-booking-bar{width:100%;max-width:1200px;min-height:64px;margin:auto;display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--color-divider);background:var(--color-bg)}
.hub-booking-name{all:unset;cursor:pointer;display:flex;align-items:center;gap:12px;flex:1 1 200px;min-width:0}.hub-booking-avatar{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border:1.5px solid var(--color-accent);border-radius:50%;color:var(--color-accent-700);font-size:12px;font-weight:900}.hub-booking-copy{min-width:0;display:flex;flex-direction:column}.hub-booking-copy strong{overflow:hidden;font-size:15px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.hub-booking-dogs{min-width:0;overflow:hidden;color:color-mix(in srgb,var(--color-text) 62%,transparent);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.hub-booking-divider{width:1px;height:24px;flex:0 0 1px;background:var(--color-divider)}.hub-booking-passport{color:var(--color-text);font-size:13px;font-weight:700;white-space:nowrap}.hub-booking-passport::before{content:"";display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:var(--color-accent-2)}
.hub-account-kicker{display:block;color:color-mix(in srgb,var(--color-text) 58%,transparent);font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.hub-account-kicker.coral{color:var(--color-accent-2-700)}
.hub-account-open,.hub-account-close,.hub-account-row,.hub-change-member,.hub-account-balance-action{border:0;background:transparent;color:inherit;cursor:pointer}.hub-account-open{min-height:40px;border:1px solid var(--color-divider);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:14px;font-weight:700;white-space:nowrap}.hub-account-overlay[hidden]{display:none}.hub-account-overlay{position:fixed;inset:0;z-index:1999}.hub-account-scrim{position:absolute;inset:0;width:100%;border:0;background:color-mix(in srgb,var(--color-accent-900) 40%,transparent)}.hub-account-drawer{position:absolute;inset:0 0 0 auto;width:min(440px,92vw);display:flex;flex-direction:column;overflow-y:auto;border-left:1px solid var(--color-divider);background:var(--color-bg);box-shadow:var(--shadow-lg)}body.hub-account-opened{overflow:hidden}
.hub-account-head{display:flex;align-items:flex-start;gap:12px;padding:24px 24px 16px;border-bottom:1px solid var(--color-divider)}.hub-account-head>div{flex:1}.hub-account-head h2{margin:2px 0;font-family:var(--font-heading)!important;font-size:22px!important;line-height:1.15;font-weight:900!important}.hub-account-head p{margin:0;color:color-mix(in srgb,var(--color-text) 60%,transparent);font-size:12px}.hub-change-member{min-height:44px;padding:0;color:var(--color-accent-700);font-weight:700;text-decoration:underline}.hub-account-close{width:44px;height:44px;flex:0 0 44px;font-size:30px;line-height:1}
.hub-reserve-account .hub-passport-preview{margin:var(--space-4) 24px;padding:16px;border:1.5px solid var(--color-accent);border-radius:var(--radius-md);background:transparent;min-height:0}.hub-reserve-account .hub-passport-preview-title{margin-top:var(--space-1);font-family:var(--font-heading)!important;font-size:20px!important;font-weight:900!important}.hub-reserve-account .hub-member-sub{color:color-mix(in srgb,var(--color-text) 65%,transparent);font-weight:400;line-height:1.45}.hub-reserve-account .hub-passport-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hub-reserve-account .hub-member-button{min-height:42px!important;border:1px solid var(--color-divider)!important;border-radius:var(--radius-md)!important;background:transparent!important;color:var(--color-text)!important}.hub-reserve-account .hub-passport-actions .hub-member-button:first-child{border:1.5px solid var(--color-accent)!important;color:var(--color-accent-700)!important}.hub-reserve-account .hub-passport-thumbnails{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.hub-reserve-account .hub-passport-thumb{width:auto;height:auto;aspect-ratio:1;overflow:hidden;border:1px solid var(--color-divider);border-radius:var(--radius-sm);outline:0;background:var(--color-surface)}.hub-passport-placeholder{height:100%;display:grid;place-items:center;background:repeating-linear-gradient(135deg,var(--color-surface) 0 6px,var(--color-bg) 6px 12px);font-size:11px;font-weight:700}.hub-passport-new{top:5px;right:5px;background:var(--color-accent-2);font-size:10px}
.hub-account-section{margin:0 24px;border-top:1px solid var(--color-text)}.hub-account-section+.hub-account-section{border-top-color:var(--color-divider)}.hub-account-row{width:100%;min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;text-align:left}.hub-account-row strong,.hub-account-row small{display:block}.hub-account-row strong{margin-top:2px;font-size:15px;font-weight:700}.hub-account-row small{margin-top:2px;color:var(--color-accent-2-700);font-size:12px}.hub-account-chevron{font-size:25px;transition:transform .15s}.hub-account-row[aria-expanded=true] .hub-account-chevron{transform:rotate(90deg)}.hub-account-panel{padding:0 0 16px}.hub-account-panel[hidden]{display:none}.hub-account-detail{margin-bottom:10px;color:color-mix(in srgb,var(--color-text) 65%,transparent);font-size:13px;line-height:1.5}.hub-account-balance-action{padding:0;color:var(--color-accent-700);font-weight:700;text-decoration:underline}.hub-reserve-account .hub-household-bar{display:grid;padding:0;border:0;background:transparent}.hub-reserve-account .hub-household-dogs{display:grid}.hub-reserve-account .hub-dog-chip{border-radius:var(--radius-md);background:transparent}.hub-account-footer{margin-top:auto;padding:22px;color:color-mix(in srgb,var(--color-text) 62%,transparent);font-size:13px}.hub-account-footer a{color:var(--color-accent-700)}
@media(max-width:640px){.hub-booking-bar{padding:8px 10px}.hub-booking-dogs,.hub-booking-divider,.hub-booking-passport{display:none}.hub-account-drawer{width:92vw}.hub-account-head{padding:64px 16px 12px}.hub-reserve-account .hub-passport-preview,.hub-account-section{margin-left:16px;margin-right:16px}.hub-reserve-account .hub-passport-actions{grid-template-columns:1fr 1fr}.hub-reserve-account .hub-member-button,.hub-account-row,.hub-account-open,.hub-account-close,.hub-change-member{min-height:44px}.hub-reserve-account .hub-passport-preview-title{font-size:20px!important}}
@media(prefers-reduced-motion:reduce){.hub-account-chevron{transition:none}}

/* Reserve handoff invariants: native hidden state wins and previews retain the supplied mounted plate. */
.hub-reserve-account [hidden]{display:none!important}
.hub-reserve-account .hub-passport-thumb{box-sizing:border-box;border:6px solid var(--color-surface);outline:1px solid var(--color-divider)}
.hub-reserve-account .hub-passport-preview{position:relative}
.hub-reserve-account .hub-passport-count{position:absolute;top:var(--space-3);right:var(--space-3);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);background:var(--color-accent-2-100);color:var(--color-accent-2-700);font-size:11px;font-weight:700}
.hub-reserve-account .hub-passport-preview .hub-member-label{color:var(--color-accent-700);font-weight:700}
.hub-reserve-account .hub-account-close{border:1px solid var(--color-divider);border-radius:var(--radius-md);font-size:24px}
.hub-reserve-account .hub-account-ack-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-divider);font-size:13px}
.hub-reserve-account .hub-ack-compact{display:block}
.hub-reserve-account .hub-account-drawer>*{flex-shrink:0}
body.hub-account-opened chat-widget{visibility:hidden}
.hub-reserve-account .hub-account-ack-row .hub-member-button{width:auto;min-width:64px;min-height:44px}
.hub-reserve-account .hub-passport-thumbnails{order:1}
.hub-reserve-account [data-passport-preview-status]{order:2}
.hub-reserve-account .hub-passport-actions{order:3}
.hub-reserve-account .hub-account-row small{color:color-mix(in srgb,var(--color-text) 65%,transparent)}
.hub-reserve-account .hub-account-row [data-account-dogs-note]{color:var(--color-accent-2-700)}
