/* ══ CoActive AI Solutions – Booking Form (cbf-) ══════════════════════════ */
.cbf-wrap { font-family:'Segoe UI',system-ui,-apple-system,sans-serif; font-size:14px; color:#1f2937; line-height:1.5; max-width:980px; margin:0 auto; }

/* Success */
.cbf-success { background:#fff; border-radius:20px; padding:48px 36px; text-align:center; box-shadow:0 12px 48px rgba(67,56,202,.12); max-width:480px; margin:0 auto; }
.cbf-success-logo { max-width:190px; height:auto; margin-bottom:16px; }
.cbf-success-tick { font-size:54px; color:#4338ca; line-height:1; }
.cbf-success h2  { margin:8px 0 6px; font-size:24px; color:#1e1b4b; }
.cbf-success p   { margin:6px 0; color:#6b7280; }
.cbf-success-slot { background:#e0e7ff; border-radius:12px; display:inline-block; padding:10px 26px; font-weight:700; font-size:17px; color:#4338ca; margin:12px 0 14px; }
.cbf-success-note { font-size:13px !important; }
.cbf-success-items { background:#f5f3ff; border-radius:12px; padding:16px 20px; text-align:left; margin-top:14px; }
.cbf-success-items div { font-size:13px; color:#374151; padding:3px 0; }

/* Shell */
.cbf-shell { background:#fff; border-radius:18px; box-shadow:0 8px 40px rgba(67,56,202,.1); overflow:hidden; }

/* Progress steps */
.cbf-steps { display:flex; align-items:center; padding:16px 28px; background:linear-gradient(135deg,#4338ca,#1e1b4b); border-radius:0; }
.cbf-step  { display:flex; align-items:center; gap:8px; }
.cbf-sn    { width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.2); color:rgba(255,255,255,.6); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; flex-shrink:0; transition:all .2s; }
.cbf-sl    { font-size:13px; color:rgba(255,255,255,.6); transition:all .2s; }
.cbf-step-on .cbf-sn   { background:#fff; color:#4338ca; }
.cbf-step-on .cbf-sl   { color:#fff; font-weight:600; }
.cbf-step-done .cbf-sn { background:#818cf8; color:#fff; }
.cbf-step-done .cbf-sl { color:rgba(255,255,255,.7); }
.cbf-step-line { flex:1; height:1px; background:rgba(255,255,255,.18); margin:0 10px; }

/* Body layout */
.cbf-body    { display:flex; min-height:500px; }

/* Sidebar */
.cbf-side       { width:240px; flex-shrink:0; background:#f5f3ff; border-right:1px solid #e0e7ff; padding:26px 20px; }
.cbf-side-logo  { max-width:180px; width:100%; height:auto; display:block; margin-bottom:18px; }
.cbf-side-title { font-size:15px; font-weight:700; color:#1e1b4b; margin:0 0 10px; line-height:1.4; }
.cbf-side-meta  { display:flex; align-items:center; gap:6px; font-size:13px; color:#6b7280; margin-bottom:6px; }
.cbf-slot-date, .cbf-slot-time { color:#4338ca; font-weight:600; }
.cbf-hr         { border:none; border-top:1px solid #c7d2fe; margin:16px 0; }
.cbf-side-about { font-size:12px; color:#6b7280; line-height:1.6; margin:0 0 14px; }
.cbf-tz-row     { display:flex; align-items:flex-start; gap:5px; }
.cbf-tz-txt     { font-size:11px; color:#9ca3af; line-height:1.4; word-break:break-all; }

/* Panels */
.cbf-panels  { flex:1; padding:26px 28px; min-width:0; }
.cbf-ptitle  { font-size:17px; font-weight:700; color:#1e1b4b; margin:0 0 18px; }

/* Calendar */
.cbf-p1-layout   { display:flex; gap:24px; flex-wrap:wrap; }
.cbf-cal-wrap    { background:#fff; border:1px solid #e0e7ff; border-radius:12px; padding:18px; min-width:270px; }
.cbf-cal-nav     { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.cbf-cal-prev, .cbf-cal-next { width:30px; height:30px; border:1px solid #e0e7ff; background:#fff; border-radius:7px; cursor:pointer; font-size:18px; color:#374151; display:flex; align-items:center; justify-content:center; padding:0; }
.cbf-cal-prev:hover, .cbf-cal-next:hover { background:#e0e7ff; border-color:#a5b4fc; }
.cbf-cal-heading { font-weight:700; font-size:14px; color:#4338ca; }
.cbf-cal-days-hd { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:6px; }
.cbf-cal-days-hd span { text-align:center; font-size:11px; font-weight:700; color:#9ca3af; padding:2px 0; }
.cbf-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.cbf-day     { aspect-ratio:1; display:flex; align-items:center; justify-content:center; border-radius:7px; font-size:13px; cursor:pointer; border:none; background:transparent; color:#374151; padding:0; transition:all .12s; }
.cbf-day:hover:not(.cbf-day-dis):not(.cbf-day-sel) { background:#e0e7ff; color:#4338ca; }
.cbf-day-today { background:#ede9fe; color:#7c3aed; font-weight:600; }
.cbf-day-sel   { background:#4338ca; color:#fff; font-weight:700; }
.cbf-day-dis   { color:#d1d5db; cursor:not-allowed; }

/* Slots */
.cbf-slots-wrap  { flex:1; min-width:150px; }
.cbf-slots-title { font-weight:700; font-size:14px; color:#4338ca; margin-bottom:10px; }
.cbf-slots-list  { max-height:320px; overflow-y:auto; padding-right:4px; }
.cbf-slots-list::-webkit-scrollbar       { width:3px; }
.cbf-slots-list::-webkit-scrollbar-thumb { background:#a5b4fc; border-radius:4px; }
.cbf-slot { display:block; width:100%; padding:9px 14px; margin-bottom:6px; border:1px solid #e0e7ff; border-radius:8px; background:#fff; color:#374151; font-size:13px; cursor:pointer; text-align:center; transition:all .12s; font-family:inherit; }
.cbf-slot:hover { border-color:#a5b4fc; background:#e0e7ff; color:#4338ca; }
.cbf-slot-on     { border-color:#4338ca; background:#4338ca; color:#fff; font-weight:600; }
.cbf-slot-taken  { border-color:#f0f0f0; background:#f9fafb; color:#c4c4c4; cursor:not-allowed; display:flex; align-items:center; justify-content:space-between; padding:9px 12px 9px 14px; }
.cbf-slot-taken-tag { font-size:10px; font-weight:700; text-transform:uppercase; background:#fee2e2; color:#dc2626; border-radius:4px; padding:2px 6px; }
.cbf-slots-loading { text-align:center; color:#9ca3af; font-size:13px; padding:24px 0; }
.cbf-no-slots { text-align:center; color:#6b7280; font-size:13px; padding:20px; background:#f5f3ff; border:1px dashed #c4b5fd; border-radius:8px; }

/* Form fields */
.cbf-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.cbf-fld   { display:flex; flex-direction:column; gap:5px; }
.cbf-fld label { font-size:12px; font-weight:700; color:#374151; }
.cbf-req   { color:#ef4444; }
.cbf-fld input, .cbf-fld select, .cbf-fld textarea {
    padding:9px 12px; border:1px solid #e0e7ff; border-radius:8px;
    font-size:13px !important; color:#1f2937; font-family:inherit; outline:none;
    transition:border .12s, box-shadow .12s; background:#fff;
    width:100%; box-sizing:border-box;
}
.cbf-fld input:focus, .cbf-fld select:focus, .cbf-fld textarea:focus {
    border-color:#a5b4fc; box-shadow:0 0 0 3px rgba(99,102,241,.12);
}
.cbf-fld textarea { resize:vertical; }

/* Phone */
.cbf-fld-phone { grid-column:span 2; }
.cbf-phone-row { display:flex; align-items:center; border:1px solid #e0e7ff; border-radius:8px; background:#fff; position:relative; overflow:visible; transition:border-color .12s,box-shadow .12s; }
.cbf-phone-row:focus-within { border-color:#a5b4fc; box-shadow:0 0 0 3px rgba(99,102,241,.12); }
.cbf-cc { position:relative; flex-shrink:0; border-right:1px solid #e0e7ff; border-radius:8px 0 0 8px; background:#f5f3ff; cursor:pointer; user-select:none; z-index:10; }
.cbf-cc-sel { display:flex; align-items:center; gap:5px; padding:9px 10px; min-width:84px; box-sizing:border-box; }
.cbf-cc:hover .cbf-cc-sel { background:#ede9fe; }
.cbf-flag  { font-size:18px; flex-shrink:0; }
.cbf-dc    { font-size:13px; font-weight:700; color:#4338ca; }
.cbf-chev  { font-size:9px; color:#9ca3af; }
.cbf-cc-drop { position:absolute; top:calc(100% + 4px); left:0; z-index:99999; background:#fff; border:1px solid #e0e7ff; border-radius:10px; box-shadow:0 8px 32px rgba(67,56,202,.15); width:280px; overflow:hidden; }
.cbf-cc-search { display:block !important; width:100% !important; padding:10px 12px !important; border:none !important; border-bottom:1px solid #f0f0f0 !important; border-radius:0 !important; font-size:13px !important; box-shadow:none !important; outline:none !important; box-sizing:border-box !important; font-family:inherit !important; }
.cbf-cc-list { max-height:220px; overflow-y:auto; }
.cbf-cc-list::-webkit-scrollbar { width:4px; }
.cbf-cc-list::-webkit-scrollbar-thumb { background:#a5b4fc; border-radius:4px; }
.cbf-cc-opt { display:flex; align-items:center; gap:8px; padding:9px 12px; cursor:pointer; font-size:13px; color:#374151; }
.cbf-cc-opt:hover { background:#f5f3ff; }
.cbf-co-flag { font-size:18px; flex-shrink:0; }
.cbf-co-name { flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cbf-co-dc   { font-size:12px; color:#6b7280; font-weight:600; flex-shrink:0; }
.cbf-phone-num { flex:1; min-width:0; border:none !important; border-radius:0 8px 8px 0 !important; box-shadow:none !important; padding:9px 12px !important; font-size:13px !important; outline:none !important; background:transparent !important; font-family:inherit !important; color:#1f2937 !important; }

/* Review grid */
.cbf-review { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:16px; }
.cbf-rv     { background:#f5f3ff; border-radius:9px; padding:10px 14px; }
.cbf-rv-full { grid-column:span 2; }
.cbf-rv-lbl { font-size:10px; font-weight:700; color:#9ca3af; text-transform:uppercase; letter-spacing:.05em; margin-bottom:3px; }
.cbf-rv-val { font-size:13px; color:#1f2937; font-weight:500; }
.cbf-notice { background:#fef9c3; border:1px solid #fde047; border-radius:9px; padding:11px 14px; font-size:12px; color:#713f12; margin-bottom:0; }

/* Buttons */
.cbf-nav-row { display:flex; align-items:center; justify-content:space-between; margin-top:24px; padding-top:18px; border-top:1px solid #f0f0f0; }
.cbf-btn-pri { background:linear-gradient(135deg,#4338ca,#1e1b4b) !important; color:#fff !important; border:none !important; border-radius:10px !important; padding:11px 26px !important; font-size:14px !important; font-weight:700 !important; cursor:pointer !important; transition:opacity .15s !important; font-family:inherit !important; }
.cbf-btn-pri:disabled { opacity:.4 !important; cursor:not-allowed !important; }
.cbf-btn-pri:hover:not(:disabled) { opacity:.85 !important; }
.cbf-btn-sec { background:#fff !important; color:#374151 !important; border:1px solid #e0e7ff !important; border-radius:10px !important; padding:10px 20px !important; font-size:14px !important; cursor:pointer !important; font-family:inherit !important; }
.cbf-btn-sec:hover { background:#f5f3ff !important; }
.cbf-err { background:#fee2e2; border:1px solid #fca5a5; border-radius:8px; padding:10px 14px; color:#991b1b; font-size:13px; margin-top:12px; }

/* Responsive */
@media (max-width:700px) {
    .cbf-body { flex-direction:column; }
    .cbf-side { width:auto; border-right:none; border-bottom:1px solid #e0e7ff; padding:18px 16px; }
    .cbf-panels { padding:18px 16px; }
    .cbf-grid2 { grid-template-columns:1fr; }
    .cbf-fld-phone { grid-column:span 1; }
    .cbf-p1-layout { flex-direction:column; }
    .cbf-review { grid-template-columns:1fr; }
    .cbf-rv-full { grid-column:span 1; }
    .cbf-steps { flex-wrap:wrap; gap:6px; padding:12px 16px; }
    .cbf-step-line { display:none; }
    .cbf-cc-drop { width:240px; }
}
