/* GoWithHer signature pattern: spark + heart + connected route. Decorative only. */
:root{--gwh-pattern:url('/brand-pattern.svg')}
body{background-color:var(--purple,#9b83e8);background-image:var(--gwh-pattern);background-size:112px 112px;background-attachment:fixed}
body.neo-bg{background-image:var(--gwh-pattern)!important;background-size:112px 112px!important}
.app-shell{background-color:var(--purple,#9b83e8);background-image:var(--gwh-pattern);background-size:112px 112px}
.app-shell>.page,.site.page,.auth-wrap,.admin-layout,.legal-shell{position:relative}
.top,.bottom-nav,dialog,.card,.table-card,.review-card,.booking-card,.legal-section,.legal-hero,.legal-nav{background-clip:padding-box}
/* Give empty purple space personality while keeping content readable. */
.app-shell .page>section,.site.page>section,.auth-wrap>form,.admin-layout>section,.legal-shell>*{position:relative;z-index:1}
/* Keep profile edges clean; the route signature strip belongs to bookings only. */
.profile-card,.booking-card,.room-card,.event-card{position:relative}
.booking-card::after{content:"";position:absolute;left:16px;right:16px;bottom:-1px;height:3px;border-radius:var(--gwh-radius-pill);background:repeating-linear-gradient(90deg,var(--ink,#171719) 0 7px,transparent 7px 13px);opacity:.2;pointer-events:none}
/* Member decoration belongs here. Theme/layout owners use background-color so
   they preserve the registration pattern, including after a theme switch. */
body.member-mobile .app-shell{background-image:var(--gwh-pattern);background-size:112px 112px}
body.member-mobile .people-switch{position:relative;overflow:visible}
body.member-mobile .people-switch::after{content:"";position:absolute;right:8px;top:-9px;width:28px;height:28px;background:url('/brand-sparkles.svg') center/contain no-repeat;pointer-events:none}
body.member-mobile .app-shell :is(.empty.card,.global-thread-empty)::before{content:"";display:block;width:100px;height:64px;margin:0 auto 12px;background:url('/brand-connection.svg') center/contain no-repeat;pointer-events:none}
body.member-mobile :is(#clientView[data-route="bookings"],#companionView[data-route="requests"])>.empty.card{padding:24px 20px!important;text-align:center;text-wrap:balance}
body.member-mobile :is(#clientView[data-route="bookings"],#companionView[data-route="requests"])>.empty.card::before{width:144px;height:104px;margin-bottom:16px;background-image:url('/brand-invitation.svg')}
body.member-mobile .booking-history-group>summary{gap:12px;background-color:var(--gwh-surface-warm)}
body.member-mobile .booking-history-group>summary::before{content:"";flex:0 0 48px;height:40px;background:url('/brand-connection.svg') center/contain no-repeat;pointer-events:none}
body.member-mobile .booking-history-group>summary>div{flex:1;min-width:0}
body.member-mobile .account-menu-group h3{display:flex;align-items:center;justify-content:space-between;gap:12px}
body.member-mobile .account-menu-group h3::after{content:"";flex:0 0 28px;height:28px;background:url('/brand-sparkles.svg') center/contain no-repeat;pointer-events:none}
body.member-mobile .account-menu-group:nth-of-type(even) h3::after{background-image:url('/brand-connection.svg');flex-basis:44px}
/* Login session preference */
.remember-session{display:flex;align-items:center;gap:11px;padding:var(--gwh-space-12) 13px;border:var(--gwh-line) solid var(--ink,#171719);border-radius:var(--gwh-radius-md);background:var(--blue,#8bd2e8);cursor:pointer;box-shadow:var(--gwh-depth-sm) var(--gwh-depth-sm) 0 var(--ink,#171719)}
.remember-session input{appearance:none;width:25px;height:25px;min-width:25px;margin:0;border:var(--gwh-line) solid var(--ink,#171719);border-radius:7px;background:var(--cream,#fff8ea);display:grid;place-items:center;cursor:pointer}
.remember-session input:checked{background:var(--lime,#c7ef66)}.remember-session input:checked::after{content:'✓';font-size:var(--gwh-type-body);font-weight:1000;line-height:1}
.remember-session-copy{display:grid;gap:var(--gwh-space-2)}.remember-session-copy b{font-size:var(--gwh-type-small)}.remember-session-copy small{font-size:var(--gwh-type-caption);line-height:1.3;font-weight:800;color:var(--muted,#5f5756)}
@media(max-width:700px){body{background-size:92px 92px}.app-shell{background-size:92px 92px}.booking-card::after{left:12px;right:12px}.remember-session{padding:11px;box-shadow:var(--gwh-depth-sm) var(--gwh-depth-sm) 0 var(--ink,#171719)}}
@media(prefers-reduced-motion:reduce){body{background-attachment:scroll}}
