.calendar-panel{border:1px solid #aabcc7;border-radius:8px;padding:12px;margin:0 0 20px;background:#f9fbfc;color:#0a1921}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.calendar-heading button,#calendar-retry{background:#e0ebf2;color:#163d55;border:1px solid #aabcc7;border-radius:4px;padding:8px 12px;min-height:44px;cursor:pointer}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:12px 0}
.calendar-grid .weekday{text-align:center;font-size:12px}
.calendar-grid button{min-width:0;min-height:44px;border:1px solid #b8cbd7;background:white;border-radius:4px;color:#132e3e;font:inherit;cursor:pointer;padding:4px}
.calendar-grid button[aria-pressed="true"]{background:#173e57;color:white;outline:2px solid #79b5d6}
.calendar-grid button:disabled{color:#7c858b;background:#e9edef;cursor:not-allowed}
.calendar-grid .unavailable{text-decoration:line-through;text-decoration-thickness:2px;background:#d7dfe5}
#availability-status{font-size:14px;line-height:1.6}
.admin-shell{max-width:850px;padding-block:40px 80px}
.admin-shell h1{font-family:var(--serif);font-style:italic;font-size:48px}
.admin-shell label{display:block;margin-bottom:8px}
.admin-shell input,.admin-shell select,.admin-shell button{font:inherit;padding:12px;min-height:48px;border-radius:5px}
.admin-shell input,.admin-shell select{width:100%;margin-bottom:20px}
.admin-shell button{cursor:pointer;background:#99c9e3;color:#0a1921;border:0}
#blocked-list{list-style:none;padding:0}#blocked-list li{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);padding:18px 0}
#admin-feedback{min-height:48px;color:#bcd9e9}
@media(max-width:600px){#blocked-list li{align-items:stretch;flex-direction:column}.calendar-panel{padding:8px}.calendar-grid{gap:2px}}

.calendar-panel[hidden]{display:none} #date[readonly]{cursor:pointer} #date[aria-expanded="true"]{border-color:#326a8b;box-shadow:0 0 0 2px rgba(121,181,214,.25)}

/* One anchored date popover, removed from layout when closed. */
.date-trigger{position:relative;min-width:0}
.date-trigger #date{width:100%;padding-right:52px;margin-bottom:0}
#calendar-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:6px;background:transparent;color:#326a8b;cursor:pointer}
#calendar-toggle:hover{background:#e0ebf2}
#calendar-toggle:focus-visible,.calendar-panel button:focus-visible{outline:2px solid #326a8b;outline-offset:2px}
#date-feedback{display:block;font-size:14px;line-height:1.5;color:#85422c;margin-top:6px}
#date-feedback:empty{display:none}
#date-calendar-panel{width:100%;min-width:0;box-sizing:border-box;border-radius:10px;border-color:#b8cbd7;background:linear-gradient(145deg,#fff,#edf4f8);box-shadow:0 12px 28px rgba(7,18,27,.1);padding:16px}
#date-calendar-panel .calendar-heading{min-width:0}
#date-calendar-panel .calendar-heading strong{font-size:16px;text-align:center}
#date-calendar-panel button{touch-action:manipulation}
#date-calendar-panel .calendar-grid button:not(:disabled):hover{background:#d6e8f3;border-color:#326a8b}
#date-calendar-panel .calendar-grid button.unavailable{color:#536571;background:#d7dfe5}
#date-calendar-panel #availability-status{overflow-wrap:anywhere;margin:12px 0}
@media(max-width:380px){#date-calendar-panel{padding:8px}.calendar-heading{gap:4px}.calendar-grid{gap:2px}.calendar-grid button{font-size:14px}}

#date-calendar-panel{position:absolute;z-index:30;top:calc(100% + 8px);left:0;width:min(360px,calc(100vw - 80px));max-height:min(540px,70dvh);overflow-y:auto;overscroll-behavior:contain;margin:0;box-shadow:0 16px 40px rgba(7,18,27,.22)}
#date-calendar-panel[hidden]{display:none!important}
