.com-booking-module { max-width: 720px; margin: 0 auto; padding: 24px 20px; font-family: 'Poppins','Open Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif; color: #2B2B2B; background: #FFFFFF; border-radius: 8px; box-sizing: border-box; position: relative; }
.com-booking-module *, .com-booking-module *::before, .com-booking-module *::after { box-sizing: border-box; }
.cbm-title { font-size: 1.6em; font-weight: 700; color: #5B3FBF; margin: 0 0 20px; letter-spacing: 0.2px; }
.cbm-field { margin-bottom: 16px; }
.cbm-field label { display: block; font-weight: 600; font-size: 0.95em; margin-bottom: 6px; color: #2B2B2B; }
.cbm-field input[type=text], .cbm-field input[type=email], .cbm-field input[type=tel], .cbm-field input[type=number], .cbm-field select, .cbm-field textarea {
    width: 100%; padding: 10px 14px; border: 1.5px solid #D9D6E8; border-radius: 6px; font-size: 1em; font-family: inherit; color: #2B2B2B; background: #FFFFFF; transition: border-color 0.15s, box-shadow 0.15s; box-sizing: border-box;
}
.cbm-field input:focus, .cbm-field select:focus, .cbm-field textarea:focus { outline: none; border-color: #7367E8; box-shadow: 0 0 0 3px rgba(115, 103, 232, 0.15); }
.cbm-field input[readonly] { background: #F7F6FB; cursor: pointer; }
.cbm-row { display: flex; gap: 12px; flex-wrap: wrap; }
.cbm-col { flex: 1 1 200px; }
.cbm-service-info { margin-top: 12px; padding: 16px 18px; border-radius: 8px; background: #F7F6FB; border-left: 5px solid #7367E8; animation: cbm-si-fade 0.25s ease; }
@keyframes cbm-si-fade { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
.cbm-si-header { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 8px; }
.cbm-si-title { font-weight: 700; font-size: 1.05em; color: #5B3FBF; }
.cbm-si-price { font-weight: 700; font-size: 1.05em; color: #3E9EB5; white-space: nowrap; }
.cbm-si-desc { color: #4A4A4A; line-height: 1.55; font-size: 0.95em; margin-bottom: 10px; white-space: pre-line; }
.cbm-si-meta { display: flex; gap: 16px; font-size: 0.9em; color: #3E9EB5; font-weight: 600; }
.cbm-si-meta span::before { content: '\23F1  '; }
.cbm-calendar-wrap, [id$="_calendar"] { display: block !important; visibility: visible !important; opacity: 1 !important; min-height: 300px !important; margin-top: 10px !important; background: #FFFFFF !important; border: 1.5px solid #D9D6E8 !important; border-radius: 8px !important; padding: 12px !important; max-width: 380px !important; position: relative !important; z-index: 1 !important; }
.cbm-cal-header { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 10px !important; font-weight: 700 !important; color: #5B3FBF !important; font-size: 1.02em !important; }
.cbm-cal-header button { background: #7367E8 !important; color: #fff !important; border: 0 !important; border-radius: 6px !important; width: 34px !important; height: 34px !important; cursor: pointer !important; font-size: 1.1em !important; line-height: 1 !important; padding: 0 !important; }
.cbm-cal-header button:hover { background: #5B3FBF !important; }
.cbm-cal-table { width: 100% !important; border-collapse: collapse !important; table-layout: fixed !important; display: table !important; }
.cbm-cal-table thead { display: table-header-group !important; }
.cbm-cal-table tbody { display: table-row-group !important; }
.cbm-cal-table tr { display: table-row !important; }
.cbm-cal-table th { display: table-cell !important; text-align: center !important; padding: 8px 2px !important; font-size: 0.8em !important; font-weight: 700 !important; color: #7367E8 !important; text-transform: uppercase !important; letter-spacing: 0.5px !important; border-bottom: 2px solid #EDEAF7 !important; }
.cbm-cal-table td { display: table-cell !important; text-align: center !important; padding: 2px !important; vertical-align: middle !important; }
.cbm-day { width: 36px !important; height: 36px !important; border-radius: 6px !important; border: 0 !important; background: transparent !important; cursor: pointer !important; font-size: 0.92em !important; font-weight: 500 !important; color: #2B2B2B !important; padding: 0 !important; display: inline-block !important; }
.cbm-day:hover:not(:disabled) { background: #EDEAF7 !important; color: #5B3FBF !important; }
.cbm-day-sel { background: #7367E8 !important; color: #fff !important; font-weight: 700 !important; }
.cbm-day-dis { color: #C9C5D8 !important; text-decoration: line-through !important; cursor: not-allowed !important; }
.cbm-checkbox { display: flex; align-items: flex-start; gap: 10px; margin: 18px 0; font-size: 0.92em; line-height: 1.5; }
.cbm-checkbox input[type=checkbox] { margin-top: 3px; width: 18px; height: 18px; accent-color: #7367E8; flex-shrink: 0; }
.cbm-submit { background: #7367E8; color: #fff; border: 0; padding: 14px 32px; border-radius: 6px; font-size: 1.02em; font-weight: 700; font-family: inherit; cursor: pointer; transition: background 0.15s, transform 0.1s; letter-spacing: 0.3px; }
.cbm-submit:hover:not(:disabled) { background: #5B3FBF; }
.cbm-submit:active:not(:disabled) { transform: translateY(1px); }
.cbm-submit:disabled { opacity: 0.6; cursor: not-allowed; }
.cbm-messages { padding: 14px 18px; border-radius: 8px; margin-bottom: 18px; font-weight: 600; font-size: 0.95em; }
.cbm-msg-success { background: #E6F7EE; color: #1F6E43; border-left: 5px solid #4CAF7D; }
.cbm-msg-error   { background: #FDEBEE; color: #8E1E30; border-left: 5px solid #E24B65; }
.cbm-msg-info    { background: #E9F4F8; color: #1F5A69; border-left: 5px solid #3E9EB5; }
.cbm-success-overlay { position: fixed; inset: 0; background: rgba(43,43,43,0.55); display: none; align-items: center; justify-content: center; z-index: 99999; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; padding: 20px; }
.cbm-success-overlay.cbm-success-visible { display: flex; opacity: 1; pointer-events: auto; }
.cbm-success-box { background: #FFFFFF; border-radius: 16px; padding: 36px 40px; max-width: 420px; width: 100%; text-align: center; box-shadow: 0 20px 60px rgba(91,63,191,0.25); transform: translateY(20px) scale(0.95); opacity: 0; transition: transform 0.4s cubic-bezier(0.34,1.56,0.64,1), opacity 0.3s ease; }
.cbm-success-overlay.cbm-success-visible .cbm-success-box { transform: translateY(0) scale(1); opacity: 1; }
.cbm-success-check { width: 96px; height: 96px; margin: 0 auto 20px; }
.cbm-success-check svg { width: 100%; height: 100%; display: block; }
.cbm-check-circle { stroke: #4CAF7D; stroke-width: 3; stroke-dasharray: 166; stroke-dashoffset: 166; animation: cbm-check-stroke 0.6s cubic-bezier(0.65,0,0.45,1) forwards; }
.cbm-check-mark { stroke: #4CAF7D; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 48; stroke-dashoffset: 48; animation: cbm-check-stroke 0.4s cubic-bezier(0.65,0,0.45,1) 0.5s forwards; }
@keyframes cbm-check-stroke { to { stroke-dashoffset: 0; } }
.cbm-success-title { font-size: 1.5em; font-weight: 700; color: #4CAF7D; margin: 0 0 8px; opacity: 0; animation: cbm-fade-up 0.4s ease 0.9s forwards; }
.cbm-success-text { color: #4A4A4A; font-size: 0.98em; line-height: 1.5; margin: 0 0 20px; opacity: 0; animation: cbm-fade-up 0.4s ease 1.05s forwards; }
.cbm-success-close { background: #7367E8; color: #fff; border: 0; border-radius: 6px; padding: 11px 28px; font-size: 0.95em; font-weight: 700; cursor: pointer; font-family: inherit; opacity: 0; animation: cbm-fade-up 0.4s ease 1.2s forwards; transition: background 0.15s; }
.cbm-success-close:hover { background: #5B3FBF; }
@keyframes cbm-fade-up { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 600px) {
    .com-booking-module { padding: 18px 14px; }
    .cbm-title { font-size: 1.35em; }
    .cbm-si-header { flex-direction: column; align-items: flex-start; gap: 4px; }
    .cbm-cal-header button { width: 30px; height: 30px; }
    .cbm-day { width: 32px; height: 32px; font-size: 0.85em; }
    .cbm-submit { width: 100%; }
    .cbm-success-box { padding: 28px 22px; }
}