/* ══ GCVA Frontend Forms & Booking CSS ══ */
.gcva-form-wrap{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;max-width:560px;margin:0 auto;border-radius:12px;box-shadow:0 4px 28px rgba(0,0,0,.1);overflow:hidden;background:#fff;}
.gcva-form-header{padding:24px 26px 20px;color:#fff;position:relative;}
.gcva-form-icon{font-size:2rem;display:block;margin-bottom:8px;}
.gcva-form-title{margin:0 0 4px;font-size:1.3rem;font-weight:700;}
.gcva-form-sub{margin:0;font-size:.82rem;opacity:.85;}
.gcva-form-body{padding:22px 26px;display:flex;flex-direction:column;gap:14px;}
.gcva-ff{display:flex;flex-direction:column;gap:5px;}
.gcva-fl{font-size:.78rem;font-weight:600;color:#444;letter-spacing:.02em;}
.gcva-freq{color:#e53e3e;margin-left:2px;}
.gcva-fi{border:1.5px solid #e2e8f0;border-radius:7px;padding:9px 12px;font-size:.88rem;width:100%;box-sizing:border-box;transition:.15s;background:#fafafa;color:#222;}
.gcva-fi:focus{outline:none;border-color:currentColor;background:#fff;box-shadow:0 0 0 3px rgba(79,70,229,.1);}
.gcva-fi-ta{resize:vertical;min-height:80px;}
.gcva-radio-group{display:flex;flex-wrap:wrap;gap:8px;}
.gcva-radio-lbl{display:flex;align-items:center;gap:5px;font-size:.82rem;color:#444;cursor:pointer;background:#f7f7f7;border:1.5px solid #e0e0e0;border-radius:6px;padding:6px 10px;transition:.15s;}
.gcva-radio-lbl:hover{border-color:#6366f1;background:#f0f0ff;}
.gcva-radio-lbl input{accent-color:#6366f1;}
.gcva-check-lbl{display:flex;align-items:center;gap:8px;font-size:.82rem;color:#444;cursor:pointer;}
.gcva-check-lbl input{accent-color:#6366f1;width:16px;height:16px;}
.gcva-form-footer{padding-top:4px;}
.gcva-form-submit{width:100%;padding:12px 20px;border:none;border-radius:8px;font-size:.95rem;font-weight:700;color:#fff;cursor:pointer;letter-spacing:.02em;transition:.15s;position:relative;overflow:hidden;}
.gcva-form-submit::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transition:.5s;}
.gcva-form-submit:hover::before{left:100%;}
.gcva-form-submit:hover{opacity:.9;transform:translateY(-1px);}
.gcva-form-submit:active{transform:none;}
.gcva-form-result{padding:12px 16px;border-radius:7px;font-size:.88rem;text-align:center;}
.gcva-form-result.ok{background:#f0fff4;border:1px solid #9ae6b4;color:#22543d;}
.gcva-form-result.err{background:#fff5f5;border:1px solid #fed7d7;color:#742a2a;}

/* ══ Forms Demo Grid (admin) ══ */
.gcva-forms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:16px;}
.gcva-form-card{background:rgba(255,255,255,.03);border:1px solid rgba(0,255,65,.15);border-radius:8px;padding:16px;cursor:pointer;transition:.15s;position:relative;}
.gcva-form-card:hover{border-color:rgba(0,255,65,.4);background:rgba(0,255,65,.04);}
.gcva-form-card-icon{font-size:1.8rem;margin-bottom:8px;}
.gcva-form-card-name{font-size:.82rem;font-weight:700;color:#e0ffe8;margin-bottom:4px;}
.gcva-form-card-sub{font-size:.68rem;color:rgba(0,255,65,.5);line-height:1.4;}
.gcva-form-card-sc{font-size:.6rem;color:rgba(0,255,65,.4);margin-top:8px;font-family:monospace;}
.gcva-form-preview-btn{position:absolute;top:10px;right:10px;font-size:.6rem;padding:3px 7px;background:rgba(0,255,65,.12);border:1px solid rgba(0,255,65,.3);color:var(--g);border-radius:4px;cursor:pointer;}
.gcva-form-preview-btn:hover{background:rgba(0,255,65,.22);}

/* ═══════════════════════════════════════════════════════
   TEAM CALENDAR
═══════════════════════════════════════════════════════ */
.gcva-team-cal-wrap { font-family: inherit; }
.gcva-team-legend { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.gcva-team-legend-item { display:flex; align-items:center; gap:8px; padding:6px 12px; border-radius:999px; background:#f8fafc; border:1px solid #e2e8f0; cursor:pointer; transition:.2s; font-size:13px; }
.gcva-team-legend-item:hover { background:#f1f5f9; }
.gcva-team-avatar-sm { width:24px; height:24px; border-radius:50%; object-fit:cover; }
.gcva-team-avatar-initial { width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:11px; }
.gcva-team-legend-name { font-weight:600; color:#1e293b; }
.gcva-team-legend-role { color:#64748b; font-size:11px; }
.gcva-team-legend-dot { width:8px; height:8px; border-radius:50%; }

/* Team Booking Widget */
.gcva-team-book-wrap { background:#fff; border:1px solid #e2e8f0; border-radius:16px; padding:28px; max-width:640px; }
.gcva-book-title { font-size:20px; font-weight:700; color:#1e293b; margin:0 0 20px; }
.gcva-book-step { margin-bottom:20px; }
.gcva-book-lbl { display:block; font-size:13px; font-weight:600; color:#374151; margin-bottom:8px; text-transform:uppercase; letter-spacing:.04em; }
.gcva-book-date { width:100%; padding:10px 14px; border:1.5px solid #e2e8f0; border-radius:8px; font-size:15px; }
.gcva-book-date:focus { outline:none; border-color:var(--pf-color,#4f46e5); box-shadow:0 0 0 3px rgba(79,70,229,.1); }
.gcva-book-field { display:block; width:100%; padding:10px 14px; border:1.5px solid #e2e8f0; border-radius:8px; font-size:15px; margin-bottom:10px; box-sizing:border-box; }
.gcva-book-field:focus { outline:none; border-color:#4f46e5; }
.gcva-book-notes { resize:vertical; }

/* Member grid */
.gcva-member-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:10px; }
.gcva-member-card { border:2px solid #e2e8f0; border-radius:12px; padding:16px 10px; text-align:center; cursor:pointer; transition:.2s; display:flex; flex-direction:column; align-items:center; gap:6px; }
.gcva-member-card:hover { border-color:var(--mc,#4f46e5); background:#fafafe; }
.gcva-member-selected { border-color:var(--mc,#4f46e5) !important; background:#f0f0ff; }
.gcva-member-avatar { width:48px; height:48px; border-radius:50%; object-fit:cover; }
.gcva-member-initial { width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:20px; font-weight:700; }
.gcva-member-name { font-weight:600; font-size:13px; color:#1e293b; }
.gcva-member-role { font-size:11px; color:#64748b; }
.gcva-member-any { background:#f8fafc; }
.gcva-member-any-icon { font-size:32px; }

/* Slot grid */
.gcva-slots-grid { display:flex; flex-wrap:wrap; gap:8px; }
.gcva-slots-member-hdr { width:100%; display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; padding:4px 0; border-bottom:2px solid; }
.gcva-slot-dot { width:10px; height:10px; border-radius:50%; display:inline-block; }
.gcva-slot-btn { padding:8px 14px; border:1.5px solid #e2e8f0; border-radius:8px; background:#fff; cursor:pointer; font-size:13px; font-weight:500; color:#374151; transition:.15s; }
.gcva-slot-btn:hover { border-color:#4f46e5; color:#4f46e5; background:#f0f0ff; }
.gcva-slot-active { border-color:#4f46e5 !important; background:#4f46e5 !important; color:#fff !important; }
.gcva-slots-loading { padding:16px; color:#64748b; font-size:14px; }
.gcva-slots-empty { padding:16px; color:#94a3b8; font-size:14px; }
.gcva-book-submit-btn { display:block; width:100%; padding:14px; border:none; border-radius:10px; background:#4f46e5; color:#fff; font-size:16px; font-weight:600; cursor:pointer; transition:.2s; margin-top:8px; }
.gcva-book-submit-btn:hover { background:#4338ca; }
.gcva-book-submit-btn:disabled { opacity:.6; cursor:not-allowed; }
.gcva-book-msg { padding:12px 16px; border-radius:8px; font-size:14px; margin-top:12px; }
.gcva-book-success { background:#dcfce7; color:#15803d; }
.gcva-book-error   { background:#fee2e2; color:#b91c1c; }

/* User recognition */
.gcva-user-greeting { display:flex; align-items:center; gap:10px; padding:12px 16px; background:#f0f0ff; border-radius:10px; margin-bottom:16px; font-size:14px; border-left:3px solid #4f46e5; }
.gcva-user-avatar { width:36px; height:36px; border-radius:50%; object-fit:cover; }
.gcva-recognized-badge { display:flex; align-items:center; gap:8px; font-size:12px; color:#059669; padding:4px 8px; background:#dcfce7; border-radius:6px; margin-top:4px; }
.gcva-badge-avatar { width:20px; height:20px; border-radius:50%; }

/* ═══════════════════════════════════════════════════════
   SERVICES CATALOGUE
═══════════════════════════════════════════════════════ */
.gcva-services-wrap { display:grid; gap:24px; }
.gcva-services-grid { grid-template-columns:repeat(var(--cols,3),1fr); }
.gcva-services-list { grid-template-columns:1fr; }
@media(max-width:900px){ .gcva-services-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:580px){ .gcva-services-grid{ grid-template-columns:1fr; } }
.gcva-services-empty { color:#64748b; padding:32px; text-align:center; }

.gcva-service-card { border:1px solid #e2e8f0; border-radius:16px; overflow:hidden; transition:.2s; position:relative; background:#fff; }
.gcva-service-card:hover { box-shadow:0 8px 32px rgba(0,0,0,.1); transform:translateY(-2px); }
.gcva-service-featured { border-color:var(--svc-color,#4f46e5); box-shadow:0 0 0 2px var(--svc-color,#4f46e5); }
.gcva-service-badge { position:absolute; top:12px; right:12px; background:#fbbf24; color:#78350f; font-size:11px; font-weight:700; padding:3px 8px; border-radius:999px; }
.gcva-service-img { height:180px; background-size:cover; background-position:center; }
.gcva-service-icon-bg { display:flex; align-items:center; justify-content:center; }
.gcva-service-icon-lg { font-size:56px; }
.gcva-service-body { padding:20px; }
.gcva-service-cat { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--svc-color,#4f46e5); margin-bottom:4px; }
.gcva-service-name { font-size:18px; font-weight:700; color:#1e293b; margin:0 0 8px; }
.gcva-service-desc { font-size:14px; color:#64748b; margin:0 0 12px; line-height:1.5; }
.gcva-service-meta { display:flex; flex-wrap:wrap; gap:8px; font-size:12px; color:#64748b; margin-bottom:14px; }
.gcva-service-duration,.gcva-service-online,.gcva-service-loc { background:#f8fafc; padding:3px 8px; border-radius:6px; }
.gcva-service-footer { display:flex; align-items:center; justify-content:space-between; }
.gcva-price-fixed,.gcva-price-from { font-size:20px; font-weight:700; color:#1e293b; }
.gcva-price-free { font-size:18px; font-weight:700; color:#16a34a; }
.gcva-price-custom { font-size:14px; color:#64748b; }
.gcva-service-book-btn { display:inline-block; padding:10px 20px; border-radius:10px; color:#fff; font-weight:600; font-size:14px; text-decoration:none; cursor:pointer; border:none; transition:.2s; }
.gcva-service-book-btn:hover { filter:brightness(1.1); }
.gcva-service-addons { margin-top:12px; font-size:12px; color:#64748b; display:flex; flex-wrap:wrap; gap:6px; }
.gcva-service-addon { background:#f1f5f9; padding:2px 8px; border-radius:6px; }

/* Service modal */
.gcva-service-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:9999; display:flex; align-items:center; justify-content:center; padding:20px; backdrop-filter:blur(3px); }
.gcva-service-modal-inner { background:#fff; border-radius:20px; width:100%; max-width:640px; max-height:92vh; overflow-y:auto; position:relative; padding:36px 36px 32px; box-shadow:0 16px 64px rgba(0,0,0,.22); }
.gcva-service-modal-close { position:absolute; top:16px; right:16px; width:36px; height:36px; border:1.5px solid #e2e8f0; background:#f8fafc; border-radius:10px; cursor:pointer; font-size:17px; font-weight:700; display:flex; align-items:center; justify-content:center; transition:.15s; color:#64748b; }
.gcva-service-modal-close:hover { background:#fee2e2; border-color:#fca5a5; color:#dc2626; transform:scale(1.08); }

/* ═══════════════════════════════════════════════════════
   PAYMENT FORM
═══════════════════════════════════════════════════════ */
.gcva-payment-form-wrap { border:1px solid #e2e8f0; border-radius:16px; overflow:hidden; max-width:600px; background:#fff; }
.gcva-pf-header { padding:20px 24px; color:#fff; }
.gcva-pf-title { margin:0; font-size:20px; font-weight:700; }
.gcva-pf-body { padding:24px; display:flex; flex-direction:column; gap:24px; }
.gcva-pf-section-title { font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#374151; margin:0 0 12px; }

/* Items */
.gcva-pf-items { display:flex; flex-direction:column; gap:10px; }
.gcva-pf-item { display:flex; align-items:center; gap:12px; padding:12px; background:#f8fafc; border-radius:10px; }
.gcva-pf-item-img { width:48px; height:48px; border-radius:8px; object-fit:cover; }
.gcva-pf-item-info { flex:1; }
.gcva-pf-item-name { display:block; font-weight:600; font-size:14px; color:#1e293b; }
.gcva-pf-item-sku { font-size:11px; color:#94a3b8; }
.gcva-pf-item-price { font-weight:700; font-size:16px; color:#1e293b; }

/* Add-ons */
.gcva-pf-addons { display:flex; flex-direction:column; gap:8px; }
.gcva-pf-addon-row { display:flex; align-items:center; gap:10px; padding:10px 12px; border:1.5px solid #e2e8f0; border-radius:8px; cursor:pointer; transition:.15s; }
.gcva-pf-addon-row:hover { border-color:#4f46e5; background:#fafafe; }
.gcva-pf-addon-row input { margin:0; }
.gcva-pf-addon-name { flex:1; font-size:14px; color:#374151; }
.gcva-pf-addon-price { font-weight:600; font-size:14px; color:#4f46e5; }

/* Coupon */
.gcva-pf-coupon-row { display:flex; gap:8px; }
.gcva-pf-coupon-input { flex:1; padding:10px 14px; border:1.5px solid #e2e8f0; border-radius:8px; font-size:14px; }
.gcva-pf-coupon-btn { padding:10px 18px; border:none; border-radius:8px; color:#fff; font-weight:600; cursor:pointer; font-size:14px; }
.gcva-pf-coupon-btn:disabled { opacity:.6; }
.gcva-pf-coupon-msg { margin-top:8px; padding:8px 12px; border-radius:8px; font-size:13px; }
.gcva-pf-coupon-ok  { background:#dcfce7; color:#15803d; }
.gcva-pf-coupon-err { background:#fee2e2; color:#b91c1c; }

/* Payment type */
.gcva-pf-payment-types { display:flex; flex-direction:column; gap:10px; }
.gcva-pf-pt-option { display:flex; align-items:flex-start; gap:12px; padding:14px 16px; border:2px solid #e2e8f0; border-radius:12px; cursor:pointer; transition:.15s; }
.gcva-pf-pt-option input { margin-top:3px; }
.gcva-pf-pt-selected { border-color:var(--pf-color,#4f46e5); background:#f8f7ff; }
.gcva-pf-pt-icon { font-size:22px; }
.gcva-pf-pt-label { display:block; font-weight:600; font-size:15px; color:#1e293b; }
.gcva-pf-pt-desc { display:block; font-size:13px; color:#64748b; margin-top:2px; }

/* Summary */
.gcva-pf-summary { background:#f8fafc; border-radius:12px; padding:16px; }
.gcva-pf-summary-row { display:flex; justify-content:space-between; font-size:15px; padding:4px 0; color:#374151; }
.gcva-pf-summary-total { border-top:1px solid #e2e8f0; margin-top:8px; padding-top:12px; font-size:17px; }

/* Submit */
.gcva-pf-submit-btn { display:block; width:100%; padding:16px; border:none; border-radius:12px; color:#fff; font-size:16px; font-weight:700; cursor:pointer; transition:.2s; }
.gcva-pf-submit-btn:hover { filter:brightness(1.1); }
.gcva-pf-submit-btn:disabled { opacity:.6; cursor:not-allowed; }
.gcva-pf-error { padding:12px 16px; background:#fee2e2; color:#b91c1c; border-radius:8px; font-size:14px; }
.gcva-pf-secure-note { text-align:center; font-size:12px; color:#94a3b8; }
.gcva-pf-success { text-align:center; padding:40px 20px; }
.gcva-pf-success-icon { font-size:56px; margin-bottom:16px; }
.gcva-pf-success h3 { font-size:22px; font-weight:700; color:#1e293b; margin:0 0 8px; }
.gcva-pf-success p { color:#64748b; margin:4px 0; }

/* ══════════════════════════════════════════════════════════
   v7.1 FIXES — text color clashing on forms
   ══════════════════════════════════════════════════════════ */

/* Ensure form inputs are always dark text on light background */
.gcva-fi, .gcva-fi:focus {
  color: #1a1a2e !important;
  background: #fafafa !important;
}
.gcva-fi::placeholder { color: #9ca3af !important; }
select.gcva-fi { color: #1a1a2e !important; }

/* Form body background — always white */
.gcva-form-body { background: #ffffff !important; }
.gcva-form-wrap { background: #ffffff !important; }

/* Labels always dark */
.gcva-fl { color: #374151 !important; }
.gcva-freq { color: #dc2626 !important; }

/* Radio/checkbox labels */
.gcva-radio-lbl { color: #374151 !important; background: #f8fafc !important; }
.gcva-radio-lbl:hover { color: #111827 !important; }
.gcva-check-lbl { color: #374151 !important; }

/* Result messages */
.gcva-form-result { padding: 12px 16px; border-radius: 8px; margin-top: 12px; font-weight: 600; font-size: .88rem; display: none; }
.gcva-form-result.ok  { background: #f0fdf4 !important; border: 1px solid #86efac; color: #14532d !important; }
.gcva-form-result.err { background: #fef2f2 !important; border: 1px solid #fecaca; color: #7f1d1d !important; }

/* Submit button — keep colored, ensure white text */
.gcva-form-submit { color: #ffffff !important; }
.gcva-form-submit:hover { opacity: .9; }

/* Select dropdown arrow visible on all themes */
select.gcva-fi {
  appearance: auto;
  -webkit-appearance: auto;
}

/* Booking form always uses white text on colored backgrounds */
.gcva-book-success { background: #dcfce7 !important; color: #14532d !important; }
.gcva-book-error   { background: #fef2f2 !important; color: #7f1d1d  !important; }

/* Fix user greeting on dark themes */
.gcva-user-greeting { color: #374151 !important; }

