  /* Public quote wizards (SME, MyMaxicare, Shop Link): soft drifting
     background circles behind the white card, purely decorative, respects
     reduced-motion. Originally SME-only; applied to all three public quote
     pages for a consistent look. */
  #smePublicView, #mmqPublicView, #shopLinkPublicView, #hiringPublicView, #prospectsPublicView, #applicationStatusPublicView, #bookingPublicView, #eventRegPublicView, #mymaxicareAppPublicView, #ticketPublicView, #ticketStatusPublicView, #companyInfoPublicView{ overflow-x:hidden; background-image:radial-gradient(1100px 560px at 12% -8%, #EAF2FF 0%, #fff 45%), radial-gradient(900px 500px at 100% 30%, #EAFBF6 0%, #fff 55%); background-size:cover,cover; background-position:center,center; }
  #smePublicView .quote-bg-circle, #mmqPublicView .quote-bg-circle, #shopLinkPublicView .quote-bg-circle, #hiringPublicView .quote-bg-circle, #prospectsPublicView .quote-bg-circle, #applicationStatusPublicView .quote-bg-circle, #mymaxicareAppPublicView .quote-bg-circle, #bookingPublicView .quote-bg-circle, #eventRegPublicView .quote-bg-circle, #ticketPublicView .quote-bg-circle, #ticketStatusPublicView .quote-bg-circle, #companyInfoPublicView .quote-bg-circle{ position:absolute; border-radius:50%; background:radial-gradient(circle at 30% 30%, rgba(72,180,201,.16), rgba(72,180,201,0) 70%); pointer-events:none; z-index:0; }
  .quote-bg-circle-1{ width:520px; height:520px; top:-160px; right:-140px; animation:smeDrift1 26s ease-in-out infinite; }
  .quote-bg-circle-2{ width:340px; height:340px; bottom:-120px; left:-100px; animation:smeDrift2 22s ease-in-out infinite; }
  .quote-bg-circle-3{ width:220px; height:220px; bottom:20%; right:8%; animation:smeDrift3 18s ease-in-out infinite; }
  @keyframes smeDrift1{ 0%,100%{ transform:translate(0,0) scale(1);} 50%{ transform:translate(-30px,30px) scale(1.08);} }
  @keyframes smeDrift2{ 0%,100%{ transform:translate(0,0) scale(1);} 50%{ transform:translate(20px,-20px) scale(1.05);} }
  @keyframes smeDrift3{ 0%,100%{ transform:translate(0,0);} 50%{ transform:translate(-16px,-16px);} }
  @media (prefers-reduced-motion: reduce){ .quote-bg-circle{ animation:none; } }
  /* Discovery Call booking page theme (Aug 2026) — purple/blue gradient,
     scoped to #bookingPublicView only. Source order matters: this comes
     AFTER the shared navy-gradient rule above, so it wins for this one view
     via normal cascade (same #id specificity, later wins) without touching
     Shop Link/MyMaxicare/SME/Hiring, which keep the original navy theme. */
  #bookingPublicView{ background-image:linear-gradient(135deg,#bcd4fb 0%,#c7c3f7 45%,#b79df0 100%); background-size:cover; background-position:center; animation:none; }
  #bookingPublicView .quote-bg-circle{ display:none; }
  #bookingPublicView .auth-card{ max-width:660px; padding:38px 40px 34px; }
  #bookingPublicView .auth-logo{ display:none; }
  .bk-hero{ position:relative; background:#fff; border-radius:16px; box-shadow:0 12px 30px rgba(80,60,160,.16); border:1px solid #f0eefc; padding:16px 20px; margin:0 auto 26px; max-width:320px; text-align:left; }
  .bk-hero-accent{ position:absolute; left:0; top:12px; bottom:12px; width:4px; background:linear-gradient(180deg,#6f8bfb,#a78bfa); border-radius:0 4px 4px 0; }
  .bk-hero h2{ margin:0 0 2px; font-size:17px; color:#1f2540; }
  .bk-hero-sub{ margin:0 0 8px; font-size:13px; color:#8b8fa3; }
  .bk-hero-meta{ font-size:12.5px; color:#6b7086; margin:0; }
  .bk-picker{ display:grid; grid-template-columns:1fr 190px; gap:24px; margin-bottom:6px; }
  .bk-section-label{ font-size:13px; font-weight:700; color:#1f2540; margin:0 0 10px; display:block; }
  .bk-cal-nav{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
  .bk-cal-nav button{ border:none; background:#f1f0fb; color:#6f5fd6; width:26px; height:26px; border-radius:50%; cursor:pointer; font-size:13px; }
  .bk-cal-month{ font-size:13.5px; font-weight:700; color:#1f2540; }
  #bk_calGrid{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px; text-align:center; }
  .bk-cal-dow{ font-size:10px; color:#a3a7ba; font-weight:600; padding-bottom:4px; }
  .bk-cal-day{ font-size:12.5px; color:#d5d7e2; padding:7px 0; border-radius:50%; }
  .bk-cal-day.avail{ color:#2c3050; cursor:pointer; position:relative; }
  .bk-cal-day.avail:hover{ background:#f1f0fb; }
  .bk-cal-day.avail::after{ content:""; position:absolute; bottom:1px; left:50%; transform:translateX(-50%); width:4px; height:4px; border-radius:50%; background:#6f5fd6; }
  .bk-cal-day.selected{ background:linear-gradient(135deg,#6f8bfb,#a78bfa); color:#fff; font-weight:700; }
  .bk-cal-day.selected::after{ display:none; }
  .bk-time-list{ display:flex; flex-direction:column; gap:8px; }
  .bk-time-slot{ border:1px solid #e3e1f5; background:#fff; color:#2c3050; border-radius:10px; padding:9px 4px; font-size:12.5px; font-weight:600; cursor:pointer; text-align:center; }
  .bk-time-slot:hover{ border-color:#b7aef2; }
  .bk-time-slot.selected{ background:linear-gradient(135deg,#6f8bfb,#a78bfa); color:#fff; border-color:transparent; }
  .bk-time-slot[disabled]{ background:#f5f5f5; color:#b0b7c3; cursor:not-allowed; text-decoration:line-through; }
  #bk_dateChips{ display:none; }
  .bk-date-chip{ flex:1 1 0; min-width:0; text-align:center; padding:9px 0; border-radius:14px; border:1px solid #e3e1f5; color:#2c3050; cursor:pointer; }
  .bk-chip-wd{ font-size:10px; color:#8b8fa3; }
  .bk-chip-num{ font-size:14px; font-weight:700; margin-top:2px; }
  .bk-date-chip.selected{ background:linear-gradient(135deg,#6f8bfb,#a78bfa); border-color:transparent; color:#fff; }
  .bk-date-chip.selected .bk-chip-wd{ color:rgba(255,255,255,.85); }
  @media (max-width:700px){
    #bookingPublicView .auth-card{ max-width:440px; padding:26px 20px; }
    .bk-hero{ max-width:100%; }
    .bk-picker{ grid-template-columns:1fr; }
    #bk_calWrap{ display:none; }
    #bk_dateChips{ display:flex; gap:6px; margin:0 0 4px; }
    .bk-time-list{ display:grid; grid-template-columns:repeat(3,1fr); }
  }
  /* Hiring application wizard — pill-style checkbox toggles for Skills and
     Availability. The real <input type=checkbox> stays functionally intact
     (visually hidden but still toggled by clicking the label, standard
     label-wraps-input behavior), so hf-skill/hf-avail-day querySelectorAll
     logic in initPublicHiringView() needs no changes. */
  .hf-pill{ position:relative; display:inline-flex; align-items:center; padding:7px 14px; border-radius:20px; background:#F1F4F8; color:#4A5568; font-size:12.5px; font-weight:400; cursor:pointer; transition:background-color .12s ease,color .12s ease; }
  .hf-pill input{ position:absolute; opacity:0; width:0; height:0; }
  .hf-pill.hf-pill-active{ background:var(--navy); color:#fff; font-weight:600; }
  .hf-pill-day{ padding:6px 10px; }
  .mmq-sticky-total{ margin:16px -36px -36px; padding:12px 36px; }
  .sme-step-pill{ font-size:11.5px; font-weight:600; color:rgba(255,255,255,.55); padding:5px 11px; border-radius:20px; border:1px solid rgba(255,255,255,.25); white-space:nowrap; }
  .sme-step-pill.active{ color:#0C419B; background:#fff; border-color:#fff; }
  .sme-step-pill.done{ color:#fff; background:rgba(255,255,255,.18); border-color:rgba(255,255,255,.4); }
  .sme-addon-card{ border:1px solid var(--border); border-radius:10px; margin-bottom:8px; overflow:hidden; background:#fff; }
  .sme-addon-header{ width:100%; display:flex; justify-content:space-between; align-items:center; padding:12px 14px; background:var(--grey); border:none; cursor:pointer; font-weight:600; color:var(--navy); font-size:13px; }
  .sme-addon-body{ display:none; padding:10px 14px 12px; }
  .sme-addon-card.open .sme-addon-body{ display:block; }
  .sme-addon-card.open .sme-addon-chevron{ transform:rotate(90deg); }
  .sme-addon-chevron{ display:inline-block; transition:transform .15s; margin-left:8px; }
  .sme-addon-title{ display:flex; align-items:center; gap:6px; }
  .sme-addon-info-btn{ width:18px; height:18px; border-radius:50%; border:1px solid #A0AEC0; background:#fff; color:#4A5568; font-size:11px; line-height:16px; text-align:center; font-weight:700; flex-shrink:0; cursor:pointer; position:relative; }
  .sme-addon-info-popover{ display:none; position:absolute; z-index:20; top:24px; left:0; width:260px; background:#fff; border:1px solid var(--border); border-radius:8px; box-shadow:0 8px 24px rgba(0,0,0,.18); padding:10px 12px; font-size:11.5px; font-weight:normal; color:#4A5568; text-align:left; line-height:1.5; }
  .sme-addon-info-popover.open{ display:block; }
  .sme-addon-info-popover ul{ margin:0; padding-left:16px; }
  .sme-addon-info-popover li{ margin-bottom:5px; }
  .sme-plan-struct-card{ border:2px solid var(--border); border-radius:10px; padding:14px; cursor:pointer; background:#fff; }
  .sme-plan-struct-card.selected{ border-color:var(--navy); background:var(--light); }
