.cth-calendar{margin:22px 0;color:var(--cth-ink)}
.cth-calendar-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;font-weight:650}
.cth-calendar-legend span{display:flex;align-items:center;gap:7px}.cth-calendar-legend i{display:inline-grid;place-items:center;width:23px;height:23px;border-radius:7px;font-style:normal}
.cth-calendar .is-available{background:#e0f3e6;color:#225c38;border-color:#b4d7bf}.cth-calendar .is-blocked{background:#fde4df;color:#963e34;border-color:#ecbbb2}
.cth-site .cth-calendar-help{font-size:13px;line-height:1.65;margin:14px 0}
.cth-calendar-controls{display:flex;align-items:center;gap:8px;margin:18px 0 10px}
.cth-calendar-controls button{flex:0 0 36px;height:36px;border:1px solid #c6d7d0;border-radius:30px;background:#fff;color:var(--cth-ink);font:inherit;cursor:pointer}
.cth-calendar-controls button:disabled{opacity:1;color:var(--cth-muted);background:#e4e9df;cursor:default}.cth-calendar-controls select{min-width:0;width:100%;text-align:center;border:0;background:transparent;color:var(--cth-ink);font:inherit;font-weight:700;padding:8px 0}
.cth-calendar-grid{width:100%;border:0!important;border-collapse:separate;border-spacing:3px;table-layout:fixed;margin:0!important}
.cth-calendar-grid th{border:0!important;background:none!important;color:var(--cth-muted);font-size:11px;font-weight:650;padding:3px 0 8px!important;text-align:center}
.cth-calendar-grid td{border:0!important;padding:0!important;background:none!important;text-align:center}
.cth-site .cth-calendar-day{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:44px;padding:4px 0;border:1px solid;border-radius:30px;font-size:14px;font-weight:650;line-height:1.15;cursor:pointer;position:relative}
.cth-site .cth-calendar-day.is-past{border-color:transparent;background:#f1eee8;color:#59655e;cursor:default}
.cth-site .cth-calendar-day.is-selected{box-shadow:inset 0 0 0 2px var(--cth-teal)}
.cth-site .cth-calendar:not(.cth-calendar--owner) .cth-calendar-day.is-selected,.cth-site .cth-calendar-day.is-endpoint{background:var(--cth-teal);border-color:var(--cth-teal);color:white}
.cth-calendar-day:focus-visible{outline:3px solid var(--cth-ink);outline-offset:2px;z-index:1}
.cth-calendar-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 10px}
.cth-calendar-dates label{display:block;font-size:13px;font-weight:650;min-width:0}
.cth-site .cth-calendar-dates input{display:block;width:100%;min-width:0;margin-top:6px;padding:10px 8px;border:1px solid #b8cec5;border-radius:14px;background:#fff;font:inherit;color:var(--cth-ink)}
.cth-calendar-feedback{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;font-size:12px;line-height:1.6;min-height:40px}
.cth-calendar-feedback p{margin:0}.cth-calendar-feedback button{border:0;background:none;text-decoration:underline;text-underline-offset:3px;padding:0;color:var(--cth-teal);font:inherit;white-space:nowrap}
.cth-calendar [data-calendar-status].is-error{color:#963e34;font-weight:650}
.cth-calendar-periods{font-size:12px;margin-top:8px}.cth-calendar-periods summary{cursor:pointer}.cth-calendar-periods ul{padding-left:20px}
.cth-availability-owner-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr);gap:24px;margin:24px 0 40px;align-items:start}
.cth-availability-owner-layout .cth-calendar{margin-top:0}.cth-availability-owner-layout .cth-calendar-day{min-height:64px;font-size:18px}
.cth-availability-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}
.cth-availability-list form{border-top:1px solid #d2dfd6;margin-top:18px;padding-top:18px}.cth-availability-list strong{display:block;font-size:14px}
.cth-availability-list button{border:0;background:none;padding:8px 0;font:inherit;color:var(--cth-teal);cursor:pointer}
.cth-site .cth-request fieldset{min-width:0}
@media(max-width:850px){.cth-availability-owner-layout{grid-template-columns:1fr}.cth-availability-owner-layout .cth-calendar-day{min-height:54px}}
@media(max-width:380px){.cth-calendar-grid{border-spacing:2px}.cth-site .cth-calendar-day{font-size:12px;min-height:40px}.cth-calendar-dates{grid-template-columns:1fr}}

.cth-calendar-date-check{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.cth-calendar--owner .cth-calendar-day:is(.is-selected,:has(input:checked)){box-shadow:inset 0 0 0 3px var(--cth-ink);border-color:var(--cth-ink)}
.cth-calendar-day:has(input:focus-visible){outline:3px solid var(--cth-ink);outline-offset:2px}
.cth-availability-actions .cth-button:disabled{background:#e4e9df;color:var(--cth-muted);border-color:#c6d7d0;cursor:default;transform:none}
