/* EPT owner calendar. Public-facing booking views remain unchanged. */
.eptOwnerCalendarLaunch{display:none;align-items:center;justify-content:center;min-height:32px;border:1px solid #cda849;border-radius:999px;background:#fffaf0;color:#0a2f76;font-weight:900;font-size:.7rem;padding:6px 12px;cursor:pointer}
.eptOwnerCalendarLaunch{display:inline-flex}
.eptOwnerCalendarLaunch:focus-visible{outline:3px solid #dfb956;outline-offset:3px}
html.ept-calendar-open{overflow:hidden}
.eptCalendarOverlay{position:fixed;inset:0;z-index:3100;display:none;align-items:center;justify-content:center;padding:clamp(9px,2vw,22px);background:rgba(4,17,42,.83);backdrop-filter:blur(15px)}
.eptCalendarOverlay.open{display:flex}
.eptCalendarSheet{width:min(1180px,100%);max-height:96dvh;overflow:auto;overscroll-behavior:contain;background:#f4f7fc;border:1px solid #d8c48b;border-radius:25px;box-shadow:0 30px 90px rgba(0,0,0,.45);color:#162847}
.eptCalendarHeader{position:sticky;top:0;z-index:5;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;background:radial-gradient(circle at 90% 0,rgba(220,184,72,.11),transparent 36%),linear-gradient(115deg,#061733,#092d63);padding:20px clamp(16px,2.6vw,30px);border-bottom:3px solid #d4ab43;color:white}
.eptCalendarHeader small{display:block;color:#e6c76d;font-size:.67rem;letter-spacing:.15em;font-weight:850}
.eptCalendarHeader h2{font-family:Georgia,serif;font-weight:500;letter-spacing:-.03em;font-size:clamp(1.8rem,4vw,2.7rem);line-height:1.07;margin:5px 0 3px;color:white}
.eptCalendarHeader p{font-size:.83rem;line-height:1.45;margin:4px 0 0;color:#d7e1ef}
#eptCalendarClose{flex:0 0 42px;width:42px;height:42px;border-radius:50%;color:white;border:1px solid #8197b6;background:rgba(255,255,255,.09);cursor:pointer}
.eptCalendarToolbar{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;padding:14px 18px 6px}
.eptCalendarToolbar strong{color:#0a2f76;font:600 clamp(.9rem,2vw,1.2rem)/1.2 Georgia,serif;text-align:center;min-width:200px}
.eptCalendarToolbar button{background:white;border:1px solid #ccd8e7;color:#123e7b;border-radius:12px;padding:8px 12px;min-height:39px;font-weight:850;cursor:pointer}
.eptCalendarToolbar #eptCalendarPrev,.eptCalendarToolbar #eptCalendarNext{font-size:1.45rem;line-height:1;padding:4px 15px}
.eptCalendarToolbar button:hover{border-color:#b58a24;background:#fff9e8}
.eptCalendarFeedback{margin:9px 18px;padding:10px 12px;border-radius:12px;background:#e9f2fe;border:1px solid #b9d2ef;color:#154174;font-size:.82rem;line-height:1.4}
.eptCalendarFeedback[data-error=true]{background:#fff1ef;border-color:#e4b5b2;color:#8b2c2c}
.eptCalendarLegend{display:flex;align-items:center;justify-content:center;gap:15px;flex-wrap:wrap;font-size:.74rem;color:#526781;font-weight:750;padding:6px 10px 15px}
.eptCalendarLegend span{display:flex;align-items:center;gap:6px}
.eptCalendarLegend i{display:inline-block;width:11px;height:11px;border-radius:4px}
.eptCalendarLegend i[data-status=booked]{background:#1f4c92}.eptCalendarLegend i[data-status=available]{background:#3f9771}.eptCalendarLegend i[data-status=blocked]{background:#8f9aab}
.eptCalendarGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 clamp(9px,2vw,22px);padding:0 0 12px}
.eptCalendarDay{min-width:0;padding:6px;background:#fff;border:1px solid #dae3ef;border-radius:18px;box-shadow:0 7px 24px rgba(11,44,94,.045)}
.eptCalendarDay h3{display:flex;flex-direction:column;gap:3px;margin:2px 2px 11px;padding:11px 4px 10px;border-radius:12px;background:#0c326e;color:#fff;text-align:center;text-transform:uppercase;letter-spacing:.1em;font-weight:900;font-size:.75rem}
.eptCalendarDay h3 span{font-weight:500;text-transform:none;letter-spacing:0;font-size:.7rem;color:#e7cc79}
.eptCalendarDaySlots{display:grid;gap:7px}
.eptCalendarCell{width:100%;min-height:66px;display:flex;flex-direction:column;justify-content:center;gap:6px;cursor:pointer;text-align:left;padding:10px;border:1px solid #d0d9e7;border-radius:12px;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.eptCalendarCell span{font-size:.67rem;font-weight:850;line-height:1.2;white-space:normal}
.eptCalendarCell strong{font-size:clamp(.7rem,1.2vw,.89rem);line-height:1.15;overflow-wrap:anywhere}
.eptCalendarCell[data-status=booked]{background:linear-gradient(140deg,#e4edfb,#d7e5fa);border-color:#a8c1e5;color:#102f67}
.eptCalendarCell[data-status=available]{background:#edf8f3;border-color:#b6ddcd;color:#216347}
.eptCalendarCell[data-status=blocked]{background:#edf0f4;border-color:#c8d2df;color:#65758b}
.eptCalendarCell[data-status=booked]:hover,.eptCalendarCell[data-status=booked].chosen{border-color:#c59b38;box-shadow:0 0 0 2px rgba(208,164,48,.28);transform:translateY(-2px)}
.eptCalendarCell[data-status=available]:hover{box-shadow:0 0 0 2px rgba(58,151,111,.2)}
.eptCalendarCell:focus-visible{outline:3px solid #bc922c;outline-offset:2px}
.eptCalendarEmpty{font-size:.69rem;color:#8190a5;text-align:center;padding:15px 4px}
.eptCalendarInstruction{font-size:.76rem;line-height:1.5;color:#61738c;text-align:center;max-width:740px;margin:9px auto 22px;padding:0 14px}
.eptCalendarSelection{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:0 clamp(10px,2vw,22px) 13px;padding:13px 16px;background:white;border:1px solid #c8d6e8;border-left:4px solid #cba43c;border-radius:13px}
.eptCalendarSelection>div{display:flex;flex-direction:column;gap:3px}
.eptCalendarSelection strong{color:#0a2f76;font-size:.9rem}
.eptCalendarSelection span{color:#65768c;font-size:.7rem}
.eptCalendarSelection nav{display:flex;gap:7px;flex-wrap:wrap}
.eptCalendarSelection button{min-height:40px;border-radius:11px;background:#0a2f76;color:white;border:1px solid #0a2f76;padding:7px 12px;cursor:pointer;font-size:.76rem;font-weight:850}
.eptCalendarSelection button[data-action=cancel]{background:#fff2ef;border-color:#e2aaa3;color:#9b3434}
.eptCalendarSelection button[data-action=clear]{background:white;color:#425979;border-color:#ccd8e8}
.eptCalendarConfirm{position:fixed;inset:0;z-index:3300;display:flex;align-items:center;justify-content:center;padding:14px;background:rgba(2,16,43,.72)}
.eptCalendarConfirm form{background:#fff;border:1px solid #dfc17c;border-radius:21px;width:min(480px,100%);max-height:90dvh;overflow:auto;padding:23px;box-shadow:0 25px 75px #0006}
.eptCalendarConfirm h3,.eptCalendarLogin h3{font:500 1.65rem/1.1 Georgia,serif;color:#0a2f76;margin:0 0 10px;text-transform:capitalize}
.eptCalendarConfirm p,.eptCalendarLogin p{font-size:.85rem;line-height:1.5;color:#5f7189}
.eptCalendarConfirm label,.eptCalendarLogin label{display:block;font-size:.76rem;font-weight:850;color:#244575;margin:13px 0 5px}
.eptCalendarConfirm input,.eptCalendarConfirm select,.eptCalendarLogin input{box-sizing:border-box;width:100%;min-height:44px;border-radius:11px;border:1px solid #bfcede;background:white;color:#182c4b;padding:10px;font:inherit}
.eptCalendarConfirmButtons{display:flex;gap:9px;margin-top:19px}
.eptCalendarConfirmButtons button,.eptCalendarLogin button{flex:1;min-height:44px;padding:9px 12px;border-radius:12px;background:#0a2f76;border:1px solid #0a2f76;color:#fff;font-size:.82rem;font-weight:850;cursor:pointer}
.eptCalendarConfirmButtons #eptCalendarAbort{background:#fff;color:#0a2f76;border-color:#becde0}
.eptCalendarConfirmButtons button:disabled{opacity:.6;cursor:wait}
.eptCalendarLogin,.eptCalendarUnavailable{grid-column:1/-1;max-width:480px;margin:24px auto;padding:24px;border:1px solid #d8e3f0;border-radius:19px;background:#fff;box-shadow:0 12px 38px #132d5210}
.eptCalendarLogin button{width:100%;margin-top:15px}
.eptCalendarUnavailable{font-size:.9rem;line-height:1.5;color:#6c3d3c}
@media(max-width:900px){.eptCalendarGrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){
 .eptCalendarOverlay{padding:0}
 .eptCalendarSheet{height:100dvh;max-height:100dvh;border-radius:0;border:0}
 .eptCalendarHeader{padding:16px 15px}
 .eptCalendarHeader h2{font-size:1.85rem}
 .eptCalendarHeader p{font-size:.75rem}
 .eptCalendarToolbar{gap:6px;padding:10px 8px 5px}
 .eptCalendarToolbar strong{min-width:130px;font-size:.86rem}
 .eptCalendarToolbar button{min-height:37px;padding:7px 10px;font-size:.73rem}
 .eptCalendarGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 8px}
 .eptCalendarDay{border-radius:13px;padding:5px}
 .eptCalendarDay h3{margin:0 0 7px;font-size:.7rem;padding:9px 2px}
 .eptCalendarCell{min-height:62px;padding:8px}
 .eptCalendarCell strong{font-size:.82rem}
 .eptCalendarSelection{position:sticky;bottom:0;z-index:7;margin:0 8px 8px;border-radius:12px;box-shadow:0 -8px 25px #17385b23}
 .eptCalendarSelection nav{width:100%}
 .eptCalendarSelection button{flex:1 1 auto}
 .eptCalendarInstruction{font-size:.71rem}
}
@media(max-width:340px){.eptCalendarGrid{grid-template-columns:1fr}.eptCalendarDaySlots{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.eptCalendarCell{transition:none}.eptCalendarCell:hover{transform:none}}

/* Accessible calendar sign-in: reveal is a quiet secondary action, not a second submit button. */
.eptCalendarPasswordHelp{font-size:.72rem!important;line-height:1.42!important;margin:7px 0 0!important;color:#60748d!important}
.eptCalendarLogin button.eptCalendarReveal{display:block;width:auto;min-height:34px;max-width:100%;margin:4px 0 10px auto;padding:5px 9px;background:transparent;border:0;color:#1a4a87;text-decoration:underline;font-size:.77rem;font-weight:750;cursor:pointer}
.eptCalendarLogin button.eptCalendarReveal:focus-visible{outline:3px solid #d7a73f;outline-offset:2px;border-radius:7px}
.eptCalendarLogin #eptCalendarUnlock:disabled{opacity:.6;cursor:wait}
