[data-calendar-date]{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.member-unavailable-label{display:block;width:max-content;max-width:100%;margin:5px 0 2px;padding:3px 7px;border:1px solid #8a8176;border-radius:999px;background:#eee9e1;color:#4f4a44;font-size:.66rem;font-weight:700;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.availability-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:flex-end;justify-content:center;padding:20px;background:rgba(30,30,28,.42)}
.availability-sheet{width:min(520px,100%);max-height:min(78vh,680px);overflow:auto;border:1px solid #d8d2c8;border-radius:22px 22px 15px 15px;background:#fdfcf9;padding:10px 22px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -12px 38px rgba(35,32,28,.2);animation:availability-rise .24s cubic-bezier(.22,1,.36,1)}
.availability-handle{width:42px;height:4px;margin:0 auto 16px;border-radius:10px;background:#c7c0b5}
.availability-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.availability-heading h2{margin:2px 0 0;font-size:1.25rem;font-weight:650;color:#2d2d2b}.availability-close{width:36px;height:36px;border:1px solid #d8d2c8;border-radius:50%;background:transparent;color:#4b4945;font-size:1.4rem;line-height:1}
.availability-note{margin:14px 0 12px;color:#77736c;font-size:.86rem}.availability-choices{display:grid;gap:9px}.availability-choice{width:100%;min-height:46px;border:1px solid #cfc9bf;border-radius:11px;background:#fdfcf9;color:#3f3d39;text-align:left;padding:11px 14px;font:inherit}.availability-choice[aria-pressed="true"]{border-color:#3f3d39;background:#3f3d39;color:#f8f6f1}.availability-choice:first-child{font-weight:700}
.availability-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.availability-actions button{min-height:44px}
@keyframes availability-rise{from{transform:translateY(35px);opacity:.5}to{transform:translateY(0);opacity:1}}
@media(max-width:650px){.availability-overlay{padding:0}.availability-sheet{border-width:1px 0 0;border-radius:20px 20px 0 0;padding-inline:18px}.member-unavailable-label{font-size:.61rem;padding:2px 5px}}
@media(prefers-reduced-motion:reduce){.availability-sheet{animation:none}}
