.pilu-guest {
    margin: 0 0 28px;
    padding: clamp(16px, 3vw, 28px);
    border: 1px solid #dbe6ed;
    border-radius: 12px;
    background: #f4f8fb;
    color: #183650;
}

.pilu-guest [hidden] {
    display: none !important;
}

.pilu-guest h2 {
    margin: 0 0 10px;
    color: inherit;
    font-size: clamp(21px, 2vw, 26px);
}

.pilu-guest label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
}

.pilu-guest-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.pilu-guest input[type="email"] {
    box-sizing: border-box;
    width: min(100%, 300px);
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid #8194a7;
    border-radius: 6px;
    background: #fff;
    color: #183650;
}

.pilu-guest button {
    display: inline-block;
    padding: 10px 14px;
    border: 1px solid #123f6b;
    border-radius: 6px;
    background: #123f6b;
    color: #fff;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.pilu-guest :is(button, a, input):focus-visible {
    outline: 2px solid #123f6b;
    outline-offset: 3px;
}

.pilu-guest-bookings {
    list-style: none;
    margin: 0 0 14px;
    padding: 0;
}

.pilu-guest-bookings li {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    padding: 8px 0;
    border-bottom: 1px solid #dbe6ed;
}
.pilu-account { position: relative; z-index: 6; flex: none; }
.pilu-account:has(.pilu-account-icon[aria-expanded=true]) { z-index: 991; }
.pilu-account-desktop { position: absolute; inset: 10px 14px auto auto; }
.tm-toolbar:has(.pilu-account-desktop) { position: relative; }
.pilu-account-mobile { align-self: center; margin-inline-start: auto; }
.pilu-account-icon {
    display: grid; place-items: center; width: 42px; height: 42px;
    padding: 0; border: 1px solid #cbd9e4; border-radius: 50%;
    background: #fff; color: #153b58; cursor: pointer;
    box-shadow: 0 3px 10px #18365024;
}
.pilu-account-icon:hover, .pilu-account-icon[aria-expanded=true] { background: #eaf3fa; }
.pilu-account-icon.pilu-account-signed-in {
    display: inline-flex; align-items: center; gap: 7px; width: auto; max-width: 154px;
    padding: 4px 9px 4px 5px; border-radius: 999px;
}
.pilu-account [hidden] { display: none !important; }
.pilu-account-avatar, .pilu-account-signed-in svg {
    flex: 0 0 auto; box-sizing: border-box; width: 30px; height: 30px; border-radius: 50%;
    background: #eaf3fa; object-fit: cover;
}
.pilu-account-signed-in svg { padding: 5px; }
.pilu-account-name {
    min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
    font-size: 13px; font-weight: 700;
}
.pilu-account-chevron {
    flex: 0 0 auto; width: 5px; height: 5px; margin: -3px 2px 0 0;
    border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg);
}
.pilu-account-icon[aria-expanded=true] .pilu-account-chevron { transform: rotate(225deg); margin-top: 3px; }
.pilu-account-mobile .pilu-account-icon.pilu-account-signed-in { max-width: min(135px, 36vw); }
.pilu-account :focus-visible, .pilu-account-login :focus-visible { outline: 2px solid #2875a0; outline-offset: 3px; }
.pilu-account-menu {
    position: absolute; inset: calc(100% + 8px) 0 auto auto; min-width: 205px;
    display: grid; gap: 8px; padding: 13px; border: 1px solid #dbe6ed; border-radius: 12px;
    background: #fff; color: #183650; box-shadow: 0 10px 24px #15365028;
}
.pilu-account-menu[hidden] { display: none; }
.pilu-account-menu strong { padding: 4px 10px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.pilu-account-menu a { display: block; padding: 8px 10px; border-radius: 8px; color: #123f6b; font-size: 14px; font-weight: 600; }
.pilu-account-menu a:hover, .pilu-account-menu a:focus-visible { background: #eef5f9; text-decoration: none; }
.pilu-account-login {
    box-sizing: border-box; width: min(440px, calc(100% - 32px)); max-height: calc(100% - 32px);
    padding: clamp(20px, 5vw, 34px); border: 0; border-radius: 18px;
    background: #fff; color: #183650; box-shadow: 0 20px 80px #10273950;
}
.pilu-account-login::backdrop { background: #0e263ab3; }
.pilu-account-login h2 { margin: 4px 0 12px; font-size: 27px; color: #183650; }
.pilu-account-login p { margin: 0 0 16px; }
.pilu-account-close { position: absolute; top: 10px; right: 12px; }
.pilu-account-close button { border: 0; border-radius: 6px; background: #eef5f9; color: #123f6b; width: 34px; height: 34px; cursor: pointer; font-size: 23px; }
.pilu-account-kicker { color: #376079; font-weight: 700; letter-spacing: .1em; font-size: 11px; text-transform: uppercase; }
.pilu-account-login .pilu-account-kicker { margin-bottom: 4px; }
.pilu-account-google {
    display: inline-flex; align-items: center; justify-content: center; gap: 12px;
    box-sizing: border-box; min-height: 44px; padding: 9px 18px;
    color: #17364d; background: #fff; border: 1px solid #8194a7; border-radius: 7px; font-weight: 650;
}
.pilu-account-login .pilu-account-google { width: 100%; }
.pilu-account-divider { margin: 15px 0 10px !important; color: #4c6175; font-size: 13px; }
.pilu-account-login label { display: block; margin-bottom: 6px; font-weight: 600; }
.pilu-account-login input[type=email] {
    box-sizing: border-box; min-width: 0; flex: 1 1 180px; min-height: 42px;
    padding: 8px 10px; border: 1px solid #8194a7; border-radius: 6px; background: #fff; color: #183650;
}
.pilu-account-login .pilu-guest-form button { min-height: 42px; border: 1px solid #123f6b; border-radius: 6px; padding: 8px 12px; color: #fff; background: #123f6b; cursor: pointer; font: inherit; }
.pilu-account-pin { display: block; margin-top: 18px; color: #123f6b; font-size: 14px; }
.pilu-guest { background: linear-gradient(145deg, #f4f8fb, #eaf3f7); border-radius: 18px; }
.pilu-guest .pilu-account-kicker { margin: 0 0 5px; }
.pilu-guest-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 20px; }
.pilu-guest-tabs a { padding: 5px 10px; border: 1px solid #c8d8e6; border-radius: 8px; background: #fff; color: #123f6b; font-size: 13px; font-weight: 650; }
.pilu-guest-tabs a[aria-current] { border-color: #123f6b; background: #123f6b; color: #fff; box-shadow: 0 2px 4px #18365025; }
.pilu-guest-profile { margin-bottom: 18px; padding: 16px; border: 1px solid #dbe6ed; border-radius: 11px; background: #fff; }
.pilu-guest-profile dl { margin: 0 0 12px; overflow-wrap: anywhere; }
.pilu-guest-profile dt { font-weight: 650; }
.pilu-guest-profile dd { margin: 0 0 8px; }
.pilu-guest-subtitle { margin: 0 0 22px; overflow-wrap: anywhere; }
.pilu-guest-bookings { display: grid; gap: 10px; }
.pilu-guest-bookings li {
    justify-content: space-between; align-items: center; padding: 14px 16px;
    background: #fff; border: 1px solid #dbe6ed; border-radius: 11px;
}
.pilu-guest-dates { display: block; color: #506579; font-size: 14px; }
.pilu-guest-card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.pilu-guest-bookings li.pilu-guest-booking { justify-content: flex-start; gap: 8px 12px; }
.pilu-guest-booking > div:first-child { margin-inline-end: auto; }
.pilu-guest-action {
    box-sizing: border-box; display: inline-flex; align-items: center; gap: 5px;
    min-height: 32px; padding: 4px 9px; border: 1px solid #b9cddd; border-radius: 7px;
    background: linear-gradient(#fff, #edf4f9); color: #123f6b; box-shadow: 0 2px 4px #18365024;
    font-size: 13px; font-weight: 650; line-height: 1.25; cursor: pointer;
}
.pilu-guest-action-primary { border-color: #123f6b; background: linear-gradient(#245983, #123f6b); color: #fff; }
.pilu-guest-action:hover { border-color: #2875a0; color: #123f6b; text-decoration: none; }
.pilu-guest-action-primary:hover { background: #164d7b; color: #fff; }
.pilu-guest-details > summary::after { content: '+'; }
.pilu-guest-details[open] > summary::after { content: '−'; }
.pilu-guest-details > summary:focus-visible { outline: 2px solid #123f6b; outline-offset: 3px; }
.pilu-guest-details[open] { flex-basis: 100%; }
.pilu-guest-details dl {
    display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 10px 0 0; padding: 12px;
    border-radius: 8px; background: #eef5f9; overflow-wrap: anywhere;
}
.pilu-guest-details dt { font-weight: 650; }
.pilu-guest-details dd { margin: 0; }
.pilu-guest-status { border-radius: 999px; padding: 3px 9px; font-size: 12px; color: #5b4215; background: #fff2d3; }
.pilu-guest-status[data-status=confirmed] { color: #175239; background: #dff5e8; }
.pilu-guest-status[data-status=cancelled] { color: #793236; background: #fbe5e7; }
.pilu-guest-pin-card { padding: 14px 18px; border: 1px solid #dbe6ed; border-radius: 11px; }
.pilu-guest-pin-card summary { color: #123f6b; font-weight: 650; cursor: pointer; }
