/* ============================================================
   Ovacars — Flexible Rental Period Pricing
   Custom date/time range picker (replaces bootstrap-datetimepicker
   dropdown on the car booking form's pickup/dropoff fields).
   Loaded by inc/add_js_css.php; built/controlled by
   assets/js/ovacars-date-picker.js.
   ============================================================ */

:root{
  --ov-ink:#18121e;
  --ov-ink-soft:#716b7a;
  --ov-ink-faint:#a8a1b0;
  --ov-border:#ece7ef;
  --ov-border-strong:#e2dbe8;
  --ov-purple-700:#6d1fb0;
  --ov-purple-600:#8a2ec8;
  --ov-magenta:#c026d3;
  --ov-range-bg:#f5ecfb;
  --ov-disabled-ink:#c7c1cf;
  --ov-disabled-bg:#f7f5f8;
  --ov-radius-lg:20px;
  --ov-radius-md:14px;
  --ov-radius-sm:10px;
  --ov-shadow-md:0 20px 48px rgba(60,10,90,.20), 0 4px 12px rgba(60,10,90,.10);
}

/* Backdrop + panel ------------------------------------------------- */
.ovacars-picker-backdrop{
  position:fixed; inset:0; background:rgba(24,18,30,.45);
  z-index:99998; display:none;
  animation:ovpFadeIn .15s ease-out;
}
.ovacars-picker-backdrop.is-open{ display:block; }

.ovacars-picker-panel{
  position:fixed; left:50%; bottom:0; transform:translateX(-50%);
  width:100%; max-width:430px; max-height:88vh;
  background:#fff; border-radius:22px 22px 0 0;
  box-shadow:var(--ov-shadow-md);
  z-index:99999; display:none; flex-direction:column;
  font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
  color:var(--ov-ink);
  overflow:hidden;
}
.ovacars-picker-panel.is-open{ display:flex; animation:ovpSlideUp .2s ease-out; }

@media (min-width:520px){
  .ovacars-picker-panel{
    left:50%; top:50%; bottom:auto; transform:translate(-50%,-50%);
    border-radius:var(--ov-radius-lg); max-height:86vh;
  }
  .ovacars-picker-panel.is-open{ animation:ovpFadeIn .15s ease-out; }
}

@keyframes ovpFadeIn{ from{opacity:0;} to{opacity:1;} }
@keyframes ovpSlideUp{ from{transform:translateX(-50%) translateY(24px); opacity:0;} to{transform:translateX(-50%) translateY(0); opacity:1;} }

/* Header ------------------------------------------------------------ */
.ovp-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 18px 4px;
}
.ovp-title{ font-size:16.5px; font-weight:800; letter-spacing:-0.01em; margin:0; }
.ovp-close{
  width:30px; height:30px; border-radius:50%; border:1px solid var(--ov-border-strong);
  background:#fff; display:flex; align-items:center; justify-content:center;
  color:var(--ov-ink-soft); cursor:pointer; flex-shrink:0;
}
.ovp-close svg{ width:13px; height:13px; }

.ovp-body{ flex:1; overflow-y:auto; padding:8px 18px 4px; }
.ovp-body::-webkit-scrollbar{ width:0; }

/* Leg cards ----------------------------------------------------------- */
.ovp-legs{ display:flex; flex-direction:column; gap:9px; margin:10px 0 18px; }
.ovp-leg{
  border:1px solid var(--ov-border); border-radius:var(--ov-radius-md);
  padding:11px 13px; display:flex; align-items:center; gap:11px; cursor:pointer;
  transition:border-color .12s, box-shadow .12s;
}
.ovp-leg.active{ border-color:var(--ov-purple-600); box-shadow:0 0 0 3px var(--ov-range-bg); }
.ovp-leg-dot{ width:9px; height:9px; border-radius:50%; background:var(--ov-purple-600); flex-shrink:0; }
.ovp-leg-dot.hollow{ background:#fff; border:2px solid var(--ov-magenta); }
.ovp-leg-body{ flex:1; min-width:0; }
.ovp-leg-label{
  font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  color:var(--ov-ink-faint); margin-bottom:2px;
}
.ovp-leg-value{ font-size:15px; font-weight:700; letter-spacing:-0.01em; }
.ovp-leg-time{
  font-size:12.5px; font-weight:600; color:var(--ov-purple-700);
  background:var(--ov-range-bg); padding:1px 7px 2px; border-radius:6px; margin-left:8px;
}

/* Calendar ------------------------------------------------------------ */
.ovp-cal-nav{ display:flex; align-items:center; justify-content:space-between; padding:0 2px 12px; }
.ovp-cal-nav-btn{
  width:30px; height:30px; border-radius:9px; border:1px solid var(--ov-border-strong);
  background:#fff; display:flex; align-items:center; justify-content:center;
  color:var(--ov-ink); cursor:pointer;
}
.ovp-cal-nav-btn:disabled{ opacity:.35; cursor:default; }
.ovp-cal-nav-btn svg{ width:14px; height:14px; }
.ovp-cal-month{ font-size:14.5px; font-weight:800; letter-spacing:-0.01em; }

.ovp-weekdays{ display:grid; grid-template-columns:repeat(7,1fr); padding:0 0 6px; }
.ovp-weekdays span{
  font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  color:var(--ov-ink-faint); text-align:center;
}

.ovp-grid{ display:grid; grid-template-columns:repeat(7,1fr); row-gap:2px; margin-bottom:14px; }
.ovp-cell{ position:relative; height:39px; display:flex; align-items:center; justify-content:center; }
.ovp-cell.in-range::before{ content:''; position:absolute; inset:3px 0; background:var(--ov-range-bg); z-index:0; }
.ovp-cell.range-start.in-range::before, .ovp-cell.week-start.in-range::before{ border-radius:999px 0 0 999px; }
.ovp-cell.range-end.in-range::before, .ovp-cell.week-end.in-range::before{ border-radius:0 999px 999px 0; }
.ovp-cell.range-single.in-range::before{ border-radius:999px; }

.ovp-day{
  position:relative; z-index:1; width:33px; height:33px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:600; color:var(--ov-ink);
  cursor:pointer; border:none; background:transparent; font-family:inherit;
}
.ovp-day.other-month{ visibility:hidden; pointer-events:none; }
.ovp-day.disabled{
  color:var(--ov-disabled-ink); cursor:not-allowed; text-decoration:line-through;
  text-decoration-color:var(--ov-disabled-ink); text-decoration-thickness:1.2px;
}
.ovp-day.today:not(.selected){ box-shadow:inset 0 0 0 1.3px var(--ov-purple-600); color:var(--ov-purple-700); }
.ovp-day.selected{
  background:linear-gradient(135deg, var(--ov-purple-600), var(--ov-magenta));
  color:#fff; font-weight:700; box-shadow:0 4px 10px rgba(138,46,200,.32);
}

.ovp-legend{ display:flex; align-items:center; gap:14px; padding:12px 2px 0; border-top:1px solid var(--ov-border); margin-bottom:16px; }
.ovp-legend-item{ display:flex; align-items:center; gap:6px; font-size:11px; color:var(--ov-ink-soft); font-weight:600; }
.ovp-legend-swatch{ width:9px; height:9px; border-radius:50%; }
.ovp-legend-swatch.avail{ background:var(--ov-range-bg); border:1px solid var(--ov-purple-600); }
.ovp-legend-swatch.unavail{ background:var(--ov-disabled-bg); border:1px solid var(--ov-disabled-ink); }

/* Time grid ------------------------------------------------------------ */
.ovp-time-heading{ font-size:13.5px; font-weight:800; letter-spacing:-0.01em; margin:0 0 10px; }
.ovp-time-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:7px; margin-bottom:6px; }
.ovp-time-btn{
  border:1px solid var(--ov-border-strong); background:#fff; border-radius:var(--ov-radius-sm);
  padding:9px 3px; font-family:inherit; font-size:12px; font-weight:700;
  color:var(--ov-ink); cursor:pointer; text-align:center;
}
.ovp-time-btn.selected{
  background:linear-gradient(135deg, var(--ov-purple-600), var(--ov-magenta));
  border-color:transparent; color:#fff; box-shadow:0 4px 10px rgba(138,46,200,.28);
}

/* Footer / summary ------------------------------------------------------ */
.ovp-footer{ border-top:1px solid var(--ov-border); padding:14px 18px calc(16px + env(safe-area-inset-bottom)); background:#fff; }
.ovp-summary{ display:flex; align-items:stretch; border:1px solid var(--ov-border); border-radius:var(--ov-radius-md); overflow:hidden; margin-bottom:12px; }
.ovp-summary-col{ flex:1; padding:10px 12px; }
.ovp-summary-col + .ovp-summary-col{ border-left:1px dashed var(--ov-border-strong); }
.ovp-summary-label{ font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--ov-ink-faint); margin-bottom:2px; }
.ovp-summary-value{ font-size:13px; font-weight:700; letter-spacing:-0.01em; }
.ovp-summary-sub{ font-size:11px; color:var(--ov-ink-soft); font-weight:600; margin-top:1px; }
.ovp-summary-days{ flex:0 0 auto; padding:10px 14px; display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--ov-range-bg); border-left:1px dashed var(--ov-border-strong); }
.ovp-summary-days .num{ font-size:17px; font-weight:800; color:var(--ov-purple-700); line-height:1; }
.ovp-summary-days .lbl{ font-size:9px; font-weight:700; color:var(--ov-purple-700); text-transform:uppercase; letter-spacing:.04em; margin-top:2px; }

.ovp-actions{ display:flex; align-items:center; gap:12px; }
.ovp-btn-clear{
  background:none; border:none; font-family:inherit; font-size:13.5px; font-weight:700;
  color:var(--ov-ink-soft); cursor:pointer; padding:13px 4px; flex-shrink:0;
}
.ovp-btn-apply{
  flex:1; border:none; border-radius:var(--ov-radius-md);
  background:linear-gradient(135deg, var(--ov-purple-600), var(--ov-magenta));
  color:#fff; font-family:inherit; font-size:14.5px; font-weight:800; letter-spacing:-0.01em;
  padding:14px 0; cursor:pointer; box-shadow:0 10px 20px rgba(138,46,200,.26);
}
.ovp-btn-apply:disabled{ opacity:.5; cursor:not-allowed; box-shadow:none; }

.ovp-error{
  font-size:12px; font-weight:600; color:#b3261e; background:#fdecea;
  border:1px solid #f5c6c2; border-radius:9px; padding:8px 11px; margin-bottom:12px; display:none;
}
.ovp-error.show{ display:block; }
