/* Full-day booking list (3A screen 02). A layer over the calendar: every
   opening for one day, grouped by morning/afternoon. */
html body .booking-day-view {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99990 !important;
    display: flex !important;
    flex-direction: column !important;
    background: #ffffff !important;
    overflow: hidden !important;
}

html body.booking-day-view-open #bottom-nav {
    z-index: 99995 !important;
}

/* Header: day stepper with the month above the weekday. */
html body .booking-day-view-head {
    flex: 0 0 auto !important;
    position: relative !important;
    display: grid !important;
    grid-template-columns: 38px minmax(0, 1fr) 38px !important;
    align-items: center !important;
    gap: 12px !important;
    padding: calc(env(safe-area-inset-top, 0px) + 58px) 20px 12px !important;
}

html body .booking-day-view-nav {
    width: 38px !important;
    height: 38px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    box-shadow: 0 1px 2px rgba(5, 5, 5, 0.1) !important;
    color: #050505 !important;
    -webkit-text-fill-color: #050505 !important;
    font-size: 18px !important;
    line-height: 1 !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

html body .booking-day-view-title {
    text-align: center !important;
    min-width: 0 !important;
}

html body .booking-day-view-title span {
    display: block !important;
    color: rgba(5, 5, 5, 0.5) !important;
    -webkit-text-fill-color: rgba(5, 5, 5, 0.5) !important;
    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
}

html body .booking-day-view-title strong {
    display: block !important;
    margin-top: 3px !important;
    color: #050505 !important;
    -webkit-text-fill-color: #050505 !important;
    font-size: 17px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    letter-spacing: -0.015em !important;
}

html body .booking-day-view-close {
    position: absolute !important;
    top: calc(env(safe-area-inset-top, 0px) + 14px) !important;
    right: 20px !important;
    width: 34px !important;
    height: 34px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #f7f7f8 !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

html body .booking-day-view-close::before {
    content: "" !important;
    width: 12px !important;
    height: 12px !important;
    background:
        linear-gradient(#050505, #050505) center/12px 2px no-repeat,
        linear-gradient(#050505, #050505) center/2px 12px no-repeat !important;
    rotate: 45deg !important;
}

/* Five-day rail. */
html body .booking-day-view-week {
    flex: 0 0 auto !important;
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 6px !important;
    padding: 0 20px 4px !important;
}

html body .booking-day-view-week-day {
    min-height: 58px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 2px !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: #ffffff !important;
    box-shadow: inset 0 0 0 1px rgba(5, 5, 5, 0.1) !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

html body .booking-day-view-week-day span {
    color: rgba(5, 5, 5, 0.5) !important;
    -webkit-text-fill-color: rgba(5, 5, 5, 0.5) !important;
    font-size: 9px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
}

html body .booking-day-view-week-day strong {
    color: #050505 !important;
    -webkit-text-fill-color: #050505 !important;
    font-size: 16px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
}

html body .booking-day-view-week-day.is-selected {
    background: #050505 !important;
    box-shadow: none !important;
}

html body .booking-day-view-week-day.is-selected span {
    color: rgba(255, 255, 255, 0.62) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.62) !important;
}

html body .booking-day-view-week-day.is-selected strong {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Filters. */
html body .booking-day-view-filters {
    flex: 0 0 auto !important;
    display: flex !important;
    gap: 8px !important;
    padding: 16px 20px 8px !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
}

html body .booking-day-view-filters::-webkit-scrollbar {
    display: none !important;
}

html body .booking-day-view-pill {
    flex: 0 0 auto !important;
    min-height: 30px !important;
    padding: 0 14px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    box-shadow: inset 0 0 0 1px rgba(5, 5, 5, 0.12) !important;
    color: rgba(5, 5, 5, 0.66) !important;
    -webkit-text-fill-color: rgba(5, 5, 5, 0.66) !important;
    font-size: 11px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    letter-spacing: 0.08em !important;
    white-space: nowrap !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

html body .booking-day-view-pill.is-selected {
    background: #050505 !important;
    box-shadow: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* The list. */
html body .booking-day-view-body {
    flex: 1 !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    padding: 8px 20px calc(env(safe-area-inset-bottom, 0px) + 190px) !important;
}

html body .booking-day-view-group-label {
    margin: 14px 2px 10px !important;
    color: rgba(5, 5, 5, 0.5) !important;
    -webkit-text-fill-color: rgba(5, 5, 5, 0.5) !important;
    font-size: 11px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
}

html body .booking-day-view-group {
    display: grid !important;
    gap: 8px !important;
}

html body .booking-day-view-row {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 62px 3px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 15px 16px !important;
    border: 0 !important;
    border-radius: 18px !important;
    background: #ffffff !important;
    box-shadow: 0 1px 3px rgba(5, 5, 5, 0.07) !important;
    text-align: left !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

html body .booking-day-view-time {
    min-width: 0 !important;
}

html body .booking-day-view-time strong {
    display: block !important;
    color: #050505 !important;
    -webkit-text-fill-color: #050505 !important;
    font-size: 16px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    letter-spacing: -0.01em !important;
}

html body .booking-day-view-time small {
    display: block !important;
    margin-top: 2px !important;
    color: rgba(5, 5, 5, 0.5) !important;
    -webkit-text-fill-color: rgba(5, 5, 5, 0.5) !important;
    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
}

/* Green rail marks an open slot; grey marks a taken one. */
html body .booking-day-view-rail {
    align-self: stretch !important;
    border-radius: 2px !important;
    background: #16a34a !important;
}

html body .booking-day-view-copy {
    min-width: 0 !important;
}

html body .booking-day-view-copy strong {
    display: block !important;
    color: #050505 !important;
    -webkit-text-fill-color: #050505 !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

html body .booking-day-view-copy small {
    display: block !important;
    margin-top: 2px !important;
    color: rgba(5, 5, 5, 0.5) !important;
    -webkit-text-fill-color: rgba(5, 5, 5, 0.5) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}

html body .booking-day-view-go {
    color: #050505 !important;
    -webkit-text-fill-color: #050505 !important;
    font-size: 16px !important;
    line-height: 1 !important;
}

/* Booked rows read as unavailable: outlined, dimmed, no arrow. */
html body .booking-day-view-row.is-booked {
    background: transparent !important;
    box-shadow: inset 0 0 0 1.5px rgba(5, 5, 5, 0.1) !important;
    grid-template-columns: 62px 3px minmax(0, 1fr) !important;
}

html body .booking-day-view-row.is-booked .booking-day-view-rail {
    background: rgba(5, 5, 5, 0.12) !important;
}

html body .booking-day-view-row.is-booked .booking-day-view-time strong,
html body .booking-day-view-row.is-booked .booking-day-view-time small,
html body .booking-day-view-row.is-booked .booking-day-view-copy strong {
    color: rgba(5, 5, 5, 0.38) !important;
    -webkit-text-fill-color: rgba(5, 5, 5, 0.38) !important;
}

html body .booking-day-view-row.is-booked .booking-day-view-copy small {
    color: rgba(5, 5, 5, 0.32) !important;
    -webkit-text-fill-color: rgba(5, 5, 5, 0.32) !important;
}

html body .booking-day-view-empty {
    padding: 34px 4px !important;
    color: rgba(5, 5, 5, 0.45) !important;
    -webkit-text-fill-color: rgba(5, 5, 5, 0.45) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

/* Footer nudge toward the next open day. */
html body .booking-day-view-nudge {
    margin-top: 18px !important;
    padding: 16px !important;
    border-radius: 18px !important;
    box-shadow: inset 0 0 0 1.5px rgba(5, 5, 5, 0.1) !important;
    text-align: center !important;
}

html body .booking-day-view-nudge strong {
    display: block !important;
    color: #050505 !important;
    -webkit-text-fill-color: #050505 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

html body .booking-day-view-nudge span {
    display: block !important;
    margin-top: 4px !important;
    color: rgba(5, 5, 5, 0.5) !important;
    -webkit-text-fill-color: rgba(5, 5, 5, 0.5) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}

/* "See all" replaces the count in the day panel head — it's the way into the
   full-day list. */
#mobile-builtin-calendar .mobile-calendar-day-all {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--primary-color, #ef4e2f) !important;
    -webkit-text-fill-color: var(--primary-color, #ef4e2f) !important;
    font-size: 11px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    letter-spacing: 0.08em !important;
    white-space: nowrap !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

/* The add/edit service form is a full-screen surface. The floating nav is
   translucent and sits above it, so the form's own fields showed through the
   bar — hide the nav, and take the booking page underneath out of the paint. */
html body.booking-v2-service-form-open #bottom-nav,
html body.booking-v2-service-form-open #mobile-bottom-nav-underlay {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

html body.booking-v2-service-form-open #booking-main-area,
html body.booking-v2-service-form-open #mobile-builtin-calendar {
    visibility: hidden !important;
}

html body.booking-v2-service-form-open #mobileAddBookingModal {
    visibility: visible !important;
    background: #ffffff !important;
}

/* Same for the owner dashboard drawer — it opens over the booking page. */
html body.booking-drawer-open #bottom-nav,
html body.booking-drawer-open #mobile-bottom-nav-underlay {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* The dashboard drawer has no body class, so key off its own open state:
   when it's showing, the translucent nav must not float over it. */
html body:has(#booking-drawer:not(.booking-drawer-hidden)) #bottom-nav,
html body:has(#booking-drawer:not(.booking-drawer-hidden)) #mobile-bottom-nav-underlay {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

html body #booking-drawer:not(.booking-drawer-hidden) {
    z-index: 100010 !important;
    background: #ffffff !important;
}

/* The receipt and manage-service sheets are bottom-anchored, and the floating
   nav sits over their last rows — the action buttons were unreachable. Hide the
   nav while either is open, and pad the sheets past the home indicator. */
html body:has(#mobile-booking-owner-detail) #bottom-nav,
html body:has(#mobile-booking-owner-detail) #mobile-bottom-nav-underlay,
html body:has(#mobile-booking-service-manager) #bottom-nav,
html body:has(#mobile-booking-service-manager) #mobile-bottom-nav-underlay {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

html body .mobile-booking-owner-detail-sheet,
html body .mobile-booking-service-manager-sheet {
    max-height: 90dvh !important;
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 34px) !important;
    overscroll-behavior-y: contain !important;
    -webkit-overflow-scrolling: touch !important;
}

/* The customer profile sheet has its own id, so it was missing from the
   nav-hide rule and the bar sat over its history rows. */
html body:has(#mobile-booking-customer-profile) #bottom-nav,
html body:has(#mobile-booking-customer-profile) #mobile-bottom-nav-underlay {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

html body #mobile-booking-customer-profile .mobile-booking-owner-detail-sheet {
    max-height: 88dvh !important;
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 40px) !important;
}
