/**
 * Yacht Charter — Availability Calendar
 *
 * Extracted verbatim from the LIVE inline <style> block of snippet 3547
 * (booking_calendar.php v2.2.1). Selectors, values, and media queries are
 * byte-faithful to the production calendar so frontend parity is exact.
 */
.cy-calendar-wrapper{--cy-bg:#031D3B;--cy-day:#103964;--cy-day-muted:#081d36;--cy-accent:#C9A96A;--cy-text:#E1E8EB;--cy-text-soft:rgba(225,232,235,.76);--cy-line:rgba(225,232,235,.10);--cy-shadow:0 22px 48px rgba(0,0,0,.18);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--cy-text);width:100%;max-width:100%}
.cy-calendar-shell,.cy-times-inline{width:100%;max-width:100%;background:var(--cy-bg);border-radius:18px;border:1px solid rgba(255,255,255,.08);box-shadow:var(--cy-shadow);padding:18px;overflow:hidden}
.cy-times-inline{margin-top:18px}
.cy-calendar-top{margin-bottom:12px}
.cy-calendar-nav{display:grid;grid-template-columns:24px 1fr 24px;align-items:center;gap:12px}
.cy-range-label{text-align:center;font-size:22px;font-weight:800;line-height:1.1;color:#fff;white-space:nowrap}
.cy-nav-btn{width:24px;height:24px;border:0;background:transparent;color:#fff;font-size:28px;line-height:1;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:opacity .16s ease, transform .16s ease}
.cy-nav-btn:hover{transform:translateY(-1px);opacity:.85}
.cy-nav-btn:disabled{opacity:.35;cursor:not-allowed;transform:none}
.cy-calendar-instructions{margin-bottom:12px;color:var(--cy-text-soft);font-size:13px;line-height:1.5}
.cy-calendar-grid-wrap{width:100%;overflow:hidden}
.cy-weekdays,.cy-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;width:100%}
.cy-weekdays{margin-bottom:8px}
.cy-weekdays span{display:flex;justify-content:center;align-items:center;min-height:24px;color:var(--cy-text-soft);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.cy-day{min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 4px;border-radius:14px;background:#0c2d55;border:1px solid rgba(255,255,255,.05);color:var(--cy-text);cursor:pointer;user-select:none;text-align:center;transition:transform .16s ease, border-color .16s ease, background .16s ease, opacity .16s ease}
.cy-day:hover{transform:translateY(-1px);border-color:rgba(201, 169, 106,.45)}
.cy-day .num{font-size:20px;font-weight:800;line-height:1;color:#fff}
.cy-day .month-tag{font-size:10px;font-weight:700;line-height:1;letter-spacing:.05em;text-transform:uppercase;color:var(--cy-accent)}
.cy-day.available{background:#103964}
.cy-day.limited{background:linear-gradient(135deg, rgba(201, 169, 106,.22) 0 12px, transparent 12px), #103964;border-color:rgba(201, 169, 106,.30)}
.cy-day.unavailable{background:#081d36;color:rgba(225,232,235,.44)}
.cy-day.unavailable .num{color:rgba(225,232,235,.44)}
.cy-day.past{background:#071a31;color:rgba(225,232,235,.35);border-color:rgba(255,255,255,.03);cursor:not-allowed;opacity:.72}
.cy-day.past .num{color:rgba(225,232,235,.38)}
.cy-day.disabled{opacity:.34;pointer-events:none}
.cy-day.today{outline:2px solid rgba(201, 169, 106,.65);outline-offset:1px}
.cy-day.selected{background:#1a4f86;border-color:rgba(201, 169, 106,.8);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.cy-legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:14px;color:var(--cy-text-soft);font-size:12px}
.cy-dot{width:10px;height:10px;display:inline-block;margin-right:6px;border-radius:999px;vertical-align:middle}
.cy-dot.available{background:#103964}.cy-dot.limited{background:#8c6a4f}.cy-dot.unavailable{background:#081d36}
.cy-calendar-note,.cy-note{padding:12px 14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:12px;color:var(--cy-text-soft);font-size:13px;line-height:1.55}
.cy-calendar-note{margin-top:14px}
.cy-times-inline-head h4{margin:0 0 6px;font-size:22px;line-height:1.15;color:#fff}
.cy-times-inline-date{margin:0 0 8px;color:#fff;font-size:14px;font-weight:700}
.cy-timezone-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 10px}
.cy-timezone-caption{color:var(--cy-text-soft);font-size:12px;line-height:1.45}
.cy-timezone-caption strong{color:#fff}
.cy-edit-timezone{border:0;background:transparent;color:var(--cy-accent);font-size:12px;font-weight:700;text-decoration:underline;cursor:pointer;padding:0}
.cy-timezone-select{width:100%;height:42px;padding:0 12px;border-radius:10px;border:1px solid var(--cy-line);background:#0b2747;color:var(--cy-text);outline:none;margin:0 0 14px}
.cy-timeslots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cy-slot{min-height:44px;display:flex;align-items:center;justify-content:center;padding:8px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:#103964;color:#fff;font-size:13px;font-weight:700;cursor:pointer;transition:transform .16s ease, opacity .16s ease, background .16s ease}
.cy-slot:hover{transform:translateY(-1px);background:#164a84}
.cy-note{margin-top:0;grid-column:1 / -1}
.cy-timeslot-footnote{margin-top:14px;color:var(--cy-text-soft);font-size:12px;line-height:1.5}
/* --- Two-view toggle: show ONLY the calendar OR the times, never both stacked --- */
.cy-calendar-wrapper.cy-state-calendar .cy-times-inline{display:none}
.cy-calendar-wrapper.cy-state-times .cy-calendar-shell{display:none}
.cy-calendar-wrapper.cy-state-times .cy-times-inline{margin-top:0}
/* "Change date" / back control, shown in the times view */
.cy-change-date{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--cy-accent);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:13px;font-weight:800;letter-spacing:.01em;cursor:pointer;padding:0;margin:0 0 14px;line-height:1}
.cy-change-date:hover{opacity:.82;transform:translateX(-1px)}
/* Request CTAs live in their OWN full-width row, separate from the time pills */
.cy-slot-actions{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.cy-slot-actions:empty{display:none;margin:0}
.cy-slot-action{width:100%;min-height:46px;display:flex;align-items:center;justify-content:center;text-align:center;padding:10px 16px;border-radius:12px;border:1px solid rgba(201, 169, 106,.55);background:rgba(201, 169, 106,.12);color:var(--cy-accent);font-size:13px;font-weight:800;letter-spacing:.02em;cursor:pointer;transition:background .16s ease, transform .16s ease}
.cy-slot-action:hover{background:rgba(201, 169, 106,.22);transform:translateY(-1px)}
@media (max-width:760px){.cy-calendar-shell,.cy-times-inline{padding:14px}.cy-range-label{font-size:18px}.cy-calendar-nav{grid-template-columns:20px 1fr 20px;gap:10px}.cy-nav-btn{width:20px;height:20px;font-size:24px}.cy-weekdays,.cy-days{gap:6px}.cy-day{min-height:46px;border-radius:12px}.cy-day .num{font-size:18px}.cy-day .month-tag{font-size:9px}.cy-times-inline-head h4{font-size:20px}.cy-timeslots{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}
@media (max-width:420px){.cy-range-label{font-size:16px}.cy-weekdays span{font-size:11px}.cy-day{min-height:44px}.cy-day .num{font-size:17px}.cy-times-inline-head h4{font-size:18px}.cy-times-inline-date{font-size:13px}.cy-slot{min-height:42px;font-size:12px}}
