:root{--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px}
.dao-date-control{display:block;position:relative;width:100%;min-width:0}.dao-date-control>input[type=date]{position:absolute!important;opacity:0!important;pointer-events:none;width:1px!important;height:1px!important;padding:0!important}.dao-date-open{width:100%;min-height:44px;text-align:left;background:white;color:#173e32;border:1px solid #b8cec6;border-radius:7px;padding:var(--s2) var(--s3);font:inherit;cursor:pointer}.dao-date-open:after{content:'▦';float:right;margin-left:0}.dao-date-dialog{width:min(360px,calc(100vw - 32px));box-sizing:border-box;border:1px solid #9cb8ac;border-radius:12px;padding:var(--s4);color:#123f35}.dao-date-dialog::backdrop{background:#0006}.dao-date-nav{display:flex;gap:var(--s1);margin:0}.dao-date-nav select{min-width:0;flex:1}.dao-date-dialog button{min-height:40px;background:#f2f7f4;color:#123f35;border:1px solid #bfd0c9;border-radius:5px;cursor:pointer}.dao-date-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--s1);margin-bottom:0;text-align:center}.dao-date-grid button[aria-pressed=true]{background:#084638;color:white}.dao-date-grid button:disabled{opacity:.3;cursor:default}

.dao-date-control .staff-calendar-open{display:none!important}
.dao-date-dialog .dao-dialog-actions{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:0}.dao-date-dialog .dao-dialog-actions button{min-height:48px;min-width:96px;padding:var(--s3) var(--s4)}.dao-date-open{min-height:54px}.dao-date-nav{gap:var(--s3)}

.dao-date-dialog{width:min(400px,calc(100vw - 32px));max-height:calc(100dvh - 24px);border:1px solid #c6cdca;border-radius:24px;padding:0;background:white;overflow:auto}.dao-date-header{padding:var(--s5) var(--s5) var(--s5);background:#073f35;color:white}.dao-date-header>small{font-size:10px;letter-spacing:2px;color:#d6b365}.dao-date-nav{align-items:center;gap:var(--s2);margin:0}.dao-date-nav h2{flex:1;font-size:28px;color:white;margin:0}.dao-date-nav button{width:42px;height:42px;border:1px solid #ffffff40;border-radius:50%;background:transparent;color:white;font-size:28px;padding:0}.dao-date-body{padding:var(--s5) var(--s5) var(--s5)}.dao-date-quick{display:flex;gap:var(--s2);margin-bottom:0}.dao-date-quick button{border:1px solid transparent;background:#edf3f0;border-radius:24px;padding:var(--s2) var(--s4);font-size:12px;font-weight:600}.dao-date-quick button:last-child{border-color:#608078;background:white}.dao-date-grid{gap:var(--s1) var(--s1);margin:0}.dao-date-grid>span{font-size:12px;padding:var(--s1) 0 var(--s3)}.dao-date-grid button{width:42px;max-width:100%;height:44px;justify-self:center;border:1px solid transparent;border-radius:50%;background:transparent;padding:0;font-size:16px}.dao-date-grid .is-sunday{color:#c83a28}.dao-date-grid button.is-today{border:2px solid #bd9142}.dao-date-grid button[aria-pressed=true]{background:#073f35;color:white;font-weight:700}.dao-date-dialog button:disabled{color:#a8bab6;opacity:1;cursor:default}.dao-date-selected{position:relative;border-top:1px solid #e5edeb;margin-top:0;padding-top:var(--s4);display:flex;flex-direction:column;gap:var(--s1)}.dao-date-selected small{font-size:11px;color:#75877e}.dao-date-selected strong{font-size:16px;padding-right:var(--s6)}.dao-date-tick{position:absolute;right:0;bottom:2px;background:#073f35;color:white;border-radius:50%;width:26px;height:26px;text-align:center;line-height:26px}.dao-date-dialog .dao-dialog-actions{flex-wrap:nowrap;gap:var(--s2);margin-top:0}.dao-date-dialog .dao-dialog-actions button{min-height:48px;min-width:0;border-radius:12px;padding:var(--s2) var(--s4);font-size:13px;font-weight:600}.dao-date-dialog .dao-date-reset{background:white;border:1px solid #d8e2dd}.dao-date-dialog .dao-date-confirm{flex:1;background:#073f35;color:white;border:1px solid #073f35}.dao-date-note{font-size:11px;line-height:1.6;text-align:center;margin:0;color:#657b72}.dao-date-dialog button:focus-visible{outline:2px solid #bd9142;outline-offset:2px}@media(max-width:420px){.dao-date-body{padding:var(--s4)}.dao-date-header{padding:var(--s5) var(--s4)}.dao-date-grid button{height:40px;width:40px}.dao-date-nav h2{font-size:25px}}
.dao-date-dialog .dao-dialog-actions .dao-date-reset{flex:0 0 auto!important;width:auto!important}.dao-date-dialog .dao-dialog-actions .dao-date-confirm{flex:1 1 auto!important;width:auto!important}

.dao-date-header,.dao-date-body{display:flex;flex-direction:column;gap:var(--s4)}
.dao-date-open{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}

/* Fixed controls prevent shared form styles from collapsing the selected text. */
.dao-date-period{display:flex;flex:1;min-width:228px;gap:var(--s2)}
.dao-date-select{position:relative;display:block;height:44px;flex-shrink:0}
.dao-date-select-year{width:124px;flex-basis:124px}
.dao-date-select-month{width:96px;flex-basis:96px}
.dao-date-period .dao-date-select select{box-sizing:border-box;display:block;appearance:none;-webkit-appearance:none;width:100%;min-width:100%;max-width:none;height:44px;min-height:44px;padding:var(--s2) var(--s5) var(--s2) var(--s3);margin:0;border:1px solid #d6b36599;border-radius:8px;background:#ffffff14;color:#fff;-webkit-text-fill-color:#fff;font:inherit;font-size:16px;font-weight:700;line-height:normal;white-space:nowrap;cursor:pointer}
.dao-date-period .dao-date-select option{background:#073f35;color:#fff}
.dao-date-select-arrow{position:absolute;right:var(--s3);top:50%;transform:translateY(-50%);color:#d6b365;pointer-events:none;line-height:1}
.dao-date-nav button{flex:0 0 42px}
.dao-date-grid{grid-template-rows:auto repeat(6,44px)}
.dao-date-grid .dao-date-empty{padding:0}
@media(max-width:420px){.dao-date-header{padding:var(--s5) var(--s3)}.dao-date-grid{grid-template-rows:auto repeat(6,40px)}}

.dao-date-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.dao-date-top small{color:#d9b977}.dao-date-dialog .date-nav-btn{width:44px;height:44px;flex:0 0 44px;display:flex;align-items:center;justify-content:center;padding:0;line-height:0}.dao-date-dialog .dao-date-close{position:relative;width:44px;height:44px;flex:0 0 44px;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;border:0;color:white;border-radius:50%}.dao-date-close:before{content:"";position:absolute;inset:4px;border:1px solid #ffffff66;border-radius:50%}

.dao-date-grid .is-saturday{color:#2668c7}
.dao-date-grid button.is-viva-excluded{background:#eee;color:#777;border-color:#ddd}.dao-date-special-note{margin:16px 0 0;line-height:1.5;color:#555}

/* v6: preserve calendar styling while keeping it in the visible viewport. */
dialog.dao-date-dialog{position:fixed!important;inset:0!important;margin:auto!important;transform:none!important;max-height:calc(100dvh - 24px)!important}
dialog.dao-date-dialog:not([open]){display:none!important}

/* v9: viewport-anchored booking dialog, independent of page scroll. */
.dao-date-dialog[open]{position:fixed;inset:12px 0 auto;margin:0 auto;max-height:calc(100dvh - 24px);box-sizing:border-box;overscroll-behavior:contain}
.dao-date-dialog .dao-dialog-actions{position:sticky;bottom:0;background:white;padding:10px 0;margin-bottom:0;z-index:2}
.dao-booking-steps{display:flex;gap:6px;margin-bottom:10px}.dao-booking-steps button{flex:1;min-width:0;font:inherit;font-size:12px;padding:8px;border:1px solid #cddbd6;border-radius:8px;background:white;color:#064c40}.dao-booking-steps [aria-pressed=true]{background:#064c40;color:white}
.dao-booking-guests{display:flex;align-items:center;gap:10px;margin:10px 0}.dao-booking-guests label{flex:1;font-size:12px}.dao-booking-guests input,.dao-booking-guests select{display:block;width:100%;min-height:36px;box-sizing:border-box}
@media(max-height:760px){.dao-date-dialog .dao-date-grid button,.dao-date-dialog .dao-date-grid>span{min-height:30px;height:30px}.dao-date-dialog .dao-date-header{padding:12px 18px}.dao-date-dialog .dao-date-body{padding:12px 18px}.dao-date-dialog .dao-date-selected{padding:8px}.dao-date-dialog .dao-date-note{margin:4px 0}}

.dao-date-dialog .dao-date-header,.dao-date-dialog .dao-date-body{gap:8px}.dao-date-dialog .dao-date-grid{grid-template-rows:24px repeat(6,32px)}.dao-date-dialog .dao-date-grid button,.dao-date-dialog .dao-date-grid>span{min-height:24px;height:32px;padding:0}.dao-date-dialog .dao-date-quick button{min-height:32px;padding:6px 12px}.dao-date-dialog .dao-booking-steps{margin-bottom:0}.dao-date-dialog .dao-booking-guests{margin:0}.dao-date-dialog .dao-dialog-actions{padding:4px 0}.dao-date-dialog .dao-date-header{padding:12px 18px}.dao-date-dialog .dao-date-body{padding:12px 18px}

.dao-date-dialog[open]{position:fixed!important;margin:0 auto!important;bottom:auto!important;left:0!important;right:0!important;transform:none!important}
