/* ── Henare Custom Calendar ─────────────────────────────────────────────── */
.hcal-wrap { position: relative; }
.hcal-val {
  font-size: 0.875rem; color: var(--ink, #1a1a1a);
  cursor: pointer; user-select: none; white-space: nowrap;
  padding: 0; background: none; border: none; text-align: left; width: 100%;
}
.hcal-val.placeholder { color: var(--ink-faint, #aaa); }
.hcal-val.placeholder-white { color: rgba(255,255,255,0.52); }
.hcal-val.placeholder-white.filled { color: rgba(255,255,255,0.92); }
.hcal-dropdown {
  display: none;
  position: fixed;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 12px 48px rgba(0,0,0,0.22);
  padding: 18px 16px 14px;
  z-index: 99999;
  width: 296px;
  color: #1a1a1a;
  animation: hcalFadeIn 0.15s ease;
}
@keyframes hcalFadeIn {
  from { opacity:0; transform:translateY(-6px); }
  to   { opacity:1; transform:translateY(0); }
}
.hcal-dropdown.open { display: block; }
.hcal-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 10px;
}
.hcal-header span { font-size: 0.875rem; font-weight: 600; color: #1a1a1a; }
.hcal-nav {
  background: none; border: none; cursor: pointer;
  padding: 4px 9px; font-size: 1.1rem; color: #666;
  border-radius: 6px; line-height: 1;
}
.hcal-nav:hover { background: #f2ede4; }
.hcal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.hcal-dow {
  text-align: center; font-size: 0.62rem; font-weight: 600;
  color: #aaa; letter-spacing: 0.06em; text-transform: uppercase; padding: 4px 0;
}
.hcal-day {
  text-align: center; font-size: 0.8rem;
  padding: 7px 2px; border-radius: 7px;
  cursor: pointer; color: #1a1a1a;
  transition: background 0.12s; position: relative;
}
.hcal-day:hover:not(.disabled):not(.empty):not(.all-booked) { background: #f2ede4; }
.hcal-day.today { font-weight: 700; }
.hcal-day.selected { background: #1a3a3a; color: #fff; }
.hcal-day.range-start { background: #1a3a3a; color: #fff; border-radius: 7px 0 0 7px; }
.hcal-day.range-end   { background: #1a3a3a; color: #fff; border-radius: 0 7px 7px 0; }
.hcal-day.in-range    { background: #e8f0ee; border-radius: 0; color: #1a3a3a; }
.hcal-day.disabled    { color: #ccc; cursor: default; text-decoration: line-through; }
/* Fully unavailable date — muted premium red, aligned with design system */
/* Colour: desaturated rose (#9e5a5a on #f9f0f0) — WCAG AA contrast ~4.6:1 */
.hcal-day.all-booked {
  color: #9e5a5a;
  cursor: not-allowed;
  background: #f9f0f0;
  text-decoration: line-through;
  text-decoration-color: #c48a8a;
}
.hcal-day.all-booked:hover { background: #f5e8e8; }
.hcal-day.empty { cursor: default; }
/* Tooltip — desktop hover + mobile tap (toggled via .tip-visible class) */
/* Tooltip background #3a2020 on #f5e8e8 foreground — WCAG AA contrast ~8:1 */
.hcal-day.all-booked::after {
  content: "Not available";
  position: absolute; bottom: calc(100% + 6px);
  left: 50%; transform: translateX(-50%);
  background: #3a2020; color: #f5e8e8;
  font-size: 0.65rem; white-space: nowrap; padding: 4px 8px;
  border-radius: 5px; pointer-events: none;
  opacity: 0; transition: opacity 0.15s; z-index: 10;
}
.hcal-day.all-booked:hover::after,
.hcal-day.all-booked.tip-visible::after { opacity: 1; }
.hcal-loading { text-align: center; font-size: 0.75rem; color: #aaa; padding: 8px 0 4px; }
