/* ── WordPress footer clearance ───────────────── */
/* Prevent WP "Thank you for creating with WordPress" overlapping content */
.vibereserve_page_vibereserve,
.vibereserve_page_vibereserve-bookings,
.vibereserve_page_vibereserve-calendar,
.vibereserve_page_vibereserve-blocked-dates,
.vibereserve_page_vibereserve-services,
.vibereserve_page_vibereserve-categories,
.vibereserve_page_vibereserve-staff,
.vibereserve_page_vibereserve-locations,
.vibereserve_page_vibereserve-reports,
.vibereserve_page_vibereserve-settings {
    padding-bottom: 0 !important;
}
.vibereserve_page_vibereserve .wrap,
.vibereserve_page_vibereserve-bookings .wrap,
[class*="vibereserve_page_vibereserve"] .wrap {
    margin-bottom: 0 !important;
}
/* All VibeReserve admin pages — add bottom padding to main content */
[class*="vibereserve_page_vibereserve"] #wpcontent {
    padding-bottom: 60px;
}

/* VibeReserve Admin — Minimal overrides only. UI built with Tailwind tw- prefix. */
@keyframes vrSpin    { to   { transform: rotate(360deg); } }
@keyframes vrFadeUp  { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes vrPop     { from { opacity:0; transform:scale(.94); } to { opacity:1; transform:scale(1); } }
@keyframes vrSlideIn { from { opacity:0; transform:translateX(-8px); } to { opacity:1; transform:translateX(0); } }

.vr-spinner { display:inline-block; width:20px; height:20px; border:2.5px solid #dbeafe; border-top-color:#1d4ed8; border-radius:50%; animation:vrSpin .65s linear infinite; }
.vr-modal-overlay { position:fixed; inset:0; background:rgba(15,23,42,.55); backdrop-filter:blur(4px); z-index:999999; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .2s; padding:16px; box-sizing:border-box; }
.vr-modal-box { display:flex; flex-direction:column; max-height:calc(100vh - 32px); overflow:hidden; }
/* Ensure all direct children that are flex containers can shrink */
.vr-modal-box > div { min-height:0; }
/* Scrollable form body */
.vr-modal-box form { scrollbar-width:thin; scrollbar-color:#e2e8f0 transparent; }
.vr-modal-box form::-webkit-scrollbar { width:5px; }
.vr-modal-box form::-webkit-scrollbar-track { background:transparent; }
.vr-modal-box form::-webkit-scrollbar-thumb { background:#e2e8f0; border-radius:3px; }
/* Scrollable div bodies (non-form modals) */
.vr-modal-box > div > div[style*="overflow-y:auto"],
.vr-modal-box > div[style*="overflow-y:auto"] { scrollbar-width:thin; scrollbar-color:#e2e8f0 transparent; }
.vr-modal-box > div > div[style*="overflow-y:auto"]::-webkit-scrollbar,
.vr-modal-box > div[style*="overflow-y:auto"]::-webkit-scrollbar { width:5px; }
.vr-modal-box > div > div[style*="overflow-y:auto"]::-webkit-scrollbar-thumb,
.vr-modal-box > div[style*="overflow-y:auto"]::-webkit-scrollbar-thumb { background:#e2e8f0; border-radius:3px; }
.vr-modal-overlay.active { opacity:1; pointer-events:all; }
.vr-modal-overlay.active .vr-modal-box { animation:vrPop .28s cubic-bezier(.34,1.56,.64,1); }
#vr-toast-container { position:fixed; bottom:24px; right:24px; z-index:9999999; display:flex; flex-direction:column; gap:8px; }
.vr-toast { animation:vrFadeUp .22s ease; }

/* ── Admin responsive ─────────────────────────── */
@media (max-width: 782px) {
  .vr-modal-overlay { top:0 !important; padding:10px !important; }
  .vr-modal-box { max-height:calc(100vh - 20px) !important; border-radius:14px !important; width:100% !important; max-width:100% !important; }
  .vr-modal-box > div { min-height:0; }

  /* Admin tables — horizontal scroll */
  .tw-overflow-x-auto { overflow-x:auto !important; -webkit-overflow-scrolling:touch; }

  /* Dashboard grid — single column */
  .tw-grid[style*="grid-template-columns"]:not([style*="1fr"]) { grid-template-columns:1fr !important; }

  /* Cards stack */
  [class*="tw-grid"][class*="tw-gap"] { gap:12px !important; }
}

@media (max-width:600px) {
  /* Service/Staff card grid in form — 2 col */
  .tw-grid[style*="repeat(auto-fill,minmax(280px"] { grid-template-columns:1fr !important; }

  /* Form 2-col → 1-col */
  [style*="grid-template-columns:1fr 1fr"] { grid-template-columns:1fr !important; }
  [style*="grid-template-columns: 1fr 1fr"] { grid-template-columns:1fr !important; }

  /* Reduce inner form padding */
  [style*="padding:16px 20px"] { padding:12px 14px !important; }
}

#vr-search-wrap input[type="text"]:focus {
    outline: none !important;
    box-shadow: none !important;
    border: 0 !important;
}

/* Staff/Service/Booking modal injected content — ensure flex stretch */
#vr-staff-form > div,
#vr-sched-form > div,
#vr-bk-form > div {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

/* ─── Admin form styling (moved from inline to avoid raw <style> tags) ─── */
.vr-admin .wrap input[type=text],
.vr-admin .wrap input[type=email],
.vr-admin .wrap input[type=tel],
.vr-admin .wrap input[type=url],
.vr-admin .wrap input[type=number],
.vr-admin .wrap select,
.vr-admin .wrap textarea {
    width: 100% !important;
    padding: 9px 13px !important;
    border-radius: 9px !important;
    border: 1.5px solid #e2e8f0 !important;
    background: #fff !important;
    font-size: 13px !important;
    color: #1e293b !important;
    font-family: inherit !important;
    outline: none !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
    line-height: 1.4 !important;
    height: auto !important;
    min-height: unset !important;
    max-width: 100% !important;
}
.vr-admin .wrap select { height: 38px !important; cursor: pointer !important; }
.vr-admin .wrap textarea { resize: vertical !important; }
.vr-admin .wrap input:focus,
.vr-admin .wrap select:focus,
.vr-admin .wrap textarea:focus {
    border-color: #1d4ed8 !important;
    box-shadow: 0 0 0 3px rgba(29,78,216,.12) !important;
}
.vr-default-status-card {
    cursor: pointer !important;
    transition: border-color .18s, box-shadow .18s, transform .12s !important;
    user-select: none;
}
.vr-default-status-card:hover {
    border-color: #1d4ed8 !important;
    box-shadow: 0 0 0 3px rgba(29,78,216,.12) !important;
    transform: translateY(-1px);
}
.vr-admin #wpcontent { background: #f1f5f9 !important; }
.vr-admin #wpbody-content .wrap { margin: 0; padding: 0; max-width: none; }
.vr-admin h1.wp-heading-inline { display: none; }
.vr-admin .notice,
.vr-admin #screen-meta,
.vr-admin .updated { display: none !important; }
.vr-scroll::-webkit-scrollbar { width: 5px; height: 5px; }
.vr-scroll::-webkit-scrollbar-thumb { background: #93c5fd; border-radius: 3px; }

/* FullCalendar theme overrides */
#vr-cal { font-family: system-ui, -apple-system, "Segoe UI", sans-serif !important; }
.fc-theme-standard .fc-scrollgrid,
.fc-theme-standard td,
.fc-theme-standard th { border-color: #e2e8f0 !important; }
.fc .fc-col-header-cell-cushion {
    color: #64748b !important;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .6px;
}
.fc .fc-daygrid-day.fc-day-today { background: #eff6ff !important; }
.fc .fc-toolbar-title {
    color: #0f172a !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}
.fc .fc-button {
    background: #fff !important;
    border: 1.5px solid #e2e8f0 !important;
    color: #1d4ed8 !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    border-radius: 7px !important;
    box-shadow: none !important;
    padding: 5px 12px !important;
}
.fc .fc-button:hover {
    background: #eff6ff !important;
    border-color: #93c5fd !important;
}
.fc .fc-event {
    border: none !important;
    border-radius: 5px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
}
