/*
Theme Name: BookFlow Calendly Final
Theme URI: https://fixoraphotos.com
Author: BookFlow
Description: Clean Calendly-style booking theme for BookFlow Stable backend plugin. Phoenix Arizona timezone, no Google connect buttons, no frontend AJAX. Booked and Google-busy slots are removed from customer view.
Version: 4.3.0
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
Text Domain: bookflow-calendly-final
*/

:root{
  --bf-bg:#f4f7fb;
  --bf-card:#ffffff;
  --bf-dark:#050b1f;
  --bf-muted:#5f718f;
  --bf-soft:#eff6ff;
  --bf-blue:#2563eb;
  --bf-blue-dark:#1d4ed8;
  --bf-border:#dfe7f1;
  --bf-line:#e5edf6;
  --bf-green-bg:#dcfce7;
  --bf-green:#15803d;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:
    radial-gradient(circle at 12% 8%, rgba(37,99,235,.08), transparent 34rem),
    radial-gradient(circle at 88% 0%, rgba(15,23,42,.07), transparent 34rem),
    var(--bf-bg);
  color:var(--bf-dark);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
.bf-site{min-height:100vh}
.bf-main{max-width:1280px;margin:0 auto;padding:56px 18px 72px}
.bf-notice{max-width:1160px;margin:0 auto 18px;border-radius:18px;padding:14px 18px;font-weight:850}
.bf-notice.ok{background:#dcfce7;color:#166534}.bf-notice.err{background:#fee2e2;color:#991b1b}
.bf-cal-card{max-width:1160px;margin:0 auto;background:var(--bf-card);border:1px solid var(--bf-border);border-radius:32px;overflow:hidden;box-shadow:0 26px 80px rgba(15,23,42,.10)}
.bf-cal-grid{display:grid;grid-template-columns:330px minmax(430px,1fr) 330px;min-height:760px}
.bf-left,.bf-center,.bf-right{padding:38px 34px}.bf-left,.bf-center{border-right:1px solid var(--bf-line)}.bf-right{background:#fbfdff}
.bf-avatar{width:82px;height:82px;border-radius:999px;background:linear-gradient(135deg,#dbeafe,#f8fafc);display:grid;place-items:center;color:var(--bf-blue-dark);font-size:31px;font-weight:950;margin-bottom:34px}
.bf-kicker{color:#9ba9bd;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.28em;margin-bottom:16px}
.bf-title{margin:0 0 20px;color:var(--bf-dark);font-size:40px;line-height:.98;letter-spacing:-.07em;font-weight:950}
.bf-copy{color:var(--bf-muted);font-size:17px;line-height:1.7;margin:0 0 30px}
.bf-meta{display:grid;gap:14px;font-size:16px;color:#26354d;font-weight:850}.bf-meta strong{color:var(--bf-dark);font-weight:950}
.bf-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 11px;background:var(--bf-green-bg);color:var(--bf-green);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.03em}
.bf-center-top{margin-bottom:24px}.bf-center-top h2{margin:0 0 22px;color:var(--bf-dark);font-size:31px;line-height:1;letter-spacing:-.06em;font-weight:950}
.bf-month{color:var(--bf-dark);font-size:21px;font-weight:950;margin-bottom:24px}
.bf-days,.bf-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:9px;text-align:center}
.bf-days{margin-bottom:12px;color:#667792;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.12em}
.bf-day-empty{aspect-ratio:1}
.bf-day{aspect-ratio:1;min-width:0;border-radius:999px;display:grid;place-items:center;color:#b8c5d6;text-decoration:none;font-size:18px;font-weight:950;border:1px solid transparent;transition:.16s ease}
.bf-day.open{background:var(--bf-soft);color:var(--bf-blue-dark)}.bf-day.open:hover{background:#dbeafe;transform:translateY(-1px)}
.bf-day.closed{color:#c9d3df;pointer-events:none;background:transparent}.bf-day.active{background:var(--bf-blue);color:#fff;box-shadow:0 12px 26px rgba(37,99,235,.30)}
.bf-timezone{margin-top:38px;color:#1f2a44;font-size:15px;font-weight:950}.bf-timezone span{color:#475569;font-weight:850}
.bf-right h3{margin:0 0 18px;color:var(--bf-dark);font-size:24px;line-height:1.05;letter-spacing:-.055em;font-weight:950}
.bf-slots{display:grid;gap:10px;max-height:430px;overflow:auto;padding-right:4px;margin-bottom:18px}
.bf-slot input{display:none}.bf-slot span{display:block;width:100%;text-align:center;border:1px solid #bfdbfe;background:#fff;color:var(--bf-blue-dark);border-radius:15px;padding:15px 12px;font-size:16px;font-weight:950;cursor:pointer;transition:.16s ease}
.bf-slot span:hover{border-color:var(--bf-blue);background:#f8fbff}.bf-slot input:checked+span{background:var(--bf-blue);color:#fff;border-color:var(--bf-blue);box-shadow:0 12px 24px rgba(37,99,235,.20)}
.bf-slot.disabled span{background:#e5ebf3;color:#92a1b6;border-color:#e5ebf3;cursor:not-allowed}
.bf-no-slots{border:1px dashed var(--bf-border);background:#f8fafc;color:#64748b;border-radius:16px;padding:18px;text-align:center;font-weight:850;line-height:1.45}
.bf-details{padding-top:20px;border-top:1px solid var(--bf-line)}
.bf-field{margin-bottom:13px}.bf-field label{display:block;margin-bottom:7px;color:#26354d;font-size:13px;font-weight:950}
.bf-field input,.bf-field textarea{width:100%;border:1px solid var(--bf-border);border-radius:14px;background:#fff;padding:13px 14px;outline:none;font:inherit;color:var(--bf-dark)}
.bf-field input:focus,.bf-field textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(37,99,235,.10)}
.bf-field textarea{min-height:80px;resize:vertical}
.bf-submit{width:100%;border:0;border-radius:16px;background:var(--bf-dark);color:#fff;padding:16px 20px;cursor:pointer;font-size:15px;font-weight:950;box-shadow:0 14px 28px rgba(2,6,23,.16)}
.bf-submit:disabled{opacity:.5;cursor:not-allowed}
.bf-plugin-missing{max-width:850px;margin:0 auto;background:#fff;border:1px solid var(--bf-border);border-radius:28px;padding:34px;box-shadow:0 20px 50px rgba(15,23,42,.08)}
.bf-plugin-missing h1{margin:0 0 10px;color:var(--bf-dark);font-size:clamp(32px,5vw,54px);line-height:1.02;letter-spacing:-.06em}
.bf-plugin-missing p{color:var(--bf-muted);font-size:17px;line-height:1.65}
@media(max-width:1100px){.bf-cal-grid{grid-template-columns:1fr}.bf-left,.bf-center{border-right:0;border-bottom:1px solid var(--bf-line)}.bf-right{background:#fff}.bf-slots{max-height:none}}
@media(max-width:640px){.bf-main{padding:18px 10px 50px}.bf-left,.bf-center,.bf-right{padding:24px 20px}.bf-title{font-size:34px}.bf-center-top h2{font-size:27px}.bf-day{font-size:15px}}
