/* FrontOffice consultation calendar — optional add-on styles.
 * Theme via CSS custom properties (set them on :root in the site's own CSS):
 *   --cal-ink      selected/active color        (default #1E1D1B)
 *   --cal-paper    text color on selected       (default #fff)
 *   --cal-muted    hints, labels, day-of-week   (default #8a857d)
 *   --cal-line     hairlines, rings, borders    (default #d8d3cb)
 *   --cal-serif    display face for labels      (default Georgia stack)
 *
 * Layout notes: the JS emits EXPLICIT week rows (.cal-week) of seven fixed
 * 32px cells, laid out with flex. Do not switch this to css-grid
 * auto-placement: mixed enabled/disabled/blank cells have misrendered there
 * across engines (rows splitting, cells escaping rows).
 */
.slot-picker{margin:20px 0 4px;padding-top:16px;
  border-top:1px solid var(--cal-line,#d8d3cb)}
.slot-picker h2{font-family:var(--cal-serif,Georgia,serif);font-size:12px;
  font-weight:400;letter-spacing:.26em;text-transform:uppercase;
  margin:0 0 4px;text-align:center;color:var(--cal-ink,#1E1D1B)}
.slot-hint{color:var(--cal-muted,#8a857d);font-size:12.5px;text-align:center;
  margin:0 0 10px}
.cal{width:min(100%,246px);margin:0 auto}
.cal-head{display:flex;align-items:center;justify-content:space-between;
  margin-bottom:6px}
.cal-title{font-family:var(--cal-serif,Georgia,serif);font-size:11px;
  letter-spacing:.2em;text-transform:uppercase;color:var(--cal-ink,#1E1D1B)}
.cal-nav{font-family:var(--cal-serif,Georgia,serif);font-size:16px;border:0;
  background:none;color:var(--cal-ink,#1E1D1B);cursor:pointer;padding:0 8px}
.cal-nav:disabled{color:var(--cal-line,#d8d3cb);cursor:default}
.cal-week{display:flex;justify-content:center;gap:3px;margin-bottom:3px}
.cal-dow{font-family:var(--cal-serif,Georgia,serif);font-size:9px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--cal-muted,#8a857d);
  text-align:center;flex:0 0 32px;width:32px;height:16px;line-height:16px;
  display:block}
.cal-day{font-family:var(--cal-serif,Georgia,serif);font-size:11.5px;border:0;
  flex:0 0 32px;width:32px;height:32px;line-height:32px;box-sizing:border-box;
  display:block;background:none;color:var(--cal-line,#d8d3cb);
  text-align:center;border-radius:50%;padding:0;margin:0;cursor:default;
  transition:background .2s,color .2s,box-shadow .2s}
.cal-day.cal-avail{color:var(--cal-ink,#1E1D1B);cursor:pointer;
  box-shadow:inset 0 0 0 1px var(--cal-line,#d8d3cb)}
.cal-day.cal-avail:hover{box-shadow:inset 0 0 0 1px var(--cal-ink,#1E1D1B)}
.cal-day.cal-selected{background:var(--cal-ink,#1E1D1B);
  color:var(--cal-paper,#fff);box-shadow:inset 0 0 0 1px var(--cal-ink,#1E1D1B)}
.times-label{font-family:var(--cal-serif,Georgia,serif);font-size:10px;
  letter-spacing:.2em;text-transform:uppercase;color:var(--cal-muted,#8a857d);
  text-align:center;margin:12px 0 8px}
.times-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;
  max-width:280px;margin:0 auto}
.slot{font-family:var(--cal-serif,Georgia,serif);font-size:10.5px;
  letter-spacing:.08em;text-transform:uppercase;
  border:1px solid var(--cal-line,#d8d3cb);background:#fff;
  color:var(--cal-ink,#1E1D1B);padding:8px 6px;cursor:pointer;
  transition:background .2s,color .2s,border-color .2s}
.slot:hover{border-color:var(--cal-ink,#1E1D1B)}
.slot.slot-selected{background:var(--cal-ink,#1E1D1B);color:var(--cal-paper,#fff);
  border-color:var(--cal-ink,#1E1D1B)}
