/* User Booking Form V2 Styles - migrated to user_booking_form.css
   Contains palette overrides, Inter typography, and 8px radius.
*/

:root {
    --accent: #64C493; /* Primary Green */
    --accent-hover: #54b07a;
    --text-primary: #0C1930; /* Primary Navy */
    --text-secondary: rgba(12, 25, 48, 0.65);
    --bg-primary: #FFFFFF; /* Secondary White */
    --bg-tertiary: #f7fbf7;
    --border-color: #BCC3C8; /* Accent Gray */
    --radius: 8px;
    --shadow: 0 10px 30px rgba(12, 25, 48, 0.06);
    --icon-size: 1rem;
    --icon-circle-size: 20px;
    --icon-bg: rgba(12,25,48,0.04);
    --input-icon-left: 0.875rem;
    --input-padding-left: 3rem;
    --textarea-icon-size: 24px;
}

.user-booking-container {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background: var(--bg-primary);
    color: var(--text-primary);
    max-width: 800px;
    margin: 0 auto;
    padding: 2rem 1rem;
    border: 1px solid var(--border-color);
    box-shadow: var(--shadow);
    line-height: 1.6;
}

.booking-header {
    text-align: center;
    margin-bottom: 2.25rem;
    padding: 1.75rem 1rem;
    background: var(--bg-primary);
    border-radius: var(--radius);
    color: var(--text-primary);
    position: relative;
    overflow: visible;
    min-height: 110px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid var(--border-color);
}

/* small accent stripe above the header to add visual weight */
.booking-header::before {
    content: '';
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 72px;
    height: 6px;
    background: var(--accent);
    border-radius: 6px;
    z-index: 1;
    box-shadow: 0 4px 10px rgba(100,196,147,0.12);
}

.booking-header .header-content { position: relative; z-index: 2; color: var(--text-primary); display:flex; flex-direction:column; align-items:center; gap:0.35rem; }

.booking-title { font-size: 2.25rem; font-weight: 700; margin: 0 0 0.25rem 0; color: var(--text-primary) !important; text-shadow: none; display:inline-flex; align-items:center; gap:0.6rem; }
.booking-title i { margin: 0; width: var(--icon-circle-size); height: var(--icon-circle-size); font-size: calc(var(--icon-circle-size) * 0.52); color: #ffffff !important; background: var(--accent); border-radius: 999px; display:inline-flex; align-items:center; justify-content:center; box-shadow: 0 6px 18px rgba(100,196,147,0.12); }
.booking-subtitle { font-size: 1.02rem; margin: 0; color: var(--text-secondary); opacity: 1; font-weight: 400; }

.booking-form-wrapper { background: var(--bg-primary); border-radius: var(--radius); box-shadow: var(--shadow); padding: 2.5rem; margin-bottom: 2rem; border-left: 4px solid rgba(100,196,147,0.06); }
.form-section { margin-bottom: 2.5rem; padding-bottom: 2rem; border-bottom: 1px solid var(--border-color); }
.form-section:last-child { border-bottom: none; margin-bottom: 0; }
.section-title { font-size: 1.25rem; font-weight: 600; color: var(--text-primary); margin: 0 0 0.5rem 0; display:flex; align-items:center; }
.section-title i { margin-right: 0.75rem; color: var(--accent); font-size: var(--icon-size); width: calc(var(--icon-circle-size) - 8px); height: calc(var(--icon-circle-size) - 8px); display:inline-flex; align-items:center; justify-content:center; }
.required { color: var(--accent); font-weight: 600; }
.section-description { color: #666; font-size: 0.95rem; margin: 0 0 1.5rem 0; font-weight: 300; }

.form-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width:768px) { .form-grid { grid-template-columns: repeat(2,1fr); } .form-group.full-width { grid-column: 1 / -1; } }

.form-group { margin-bottom: 1.5rem; position: relative; }
.form-group label { display:block; font-weight:500; color:var(--text-primary); margin-bottom:0.5rem; font-size:0.95rem; }

.input-icon { 
    position:absolute; 
    left:var(--input-icon-left); 
    top:50%; 
    transform:translateY(-50%); 
    color:var(--accent); 
    z-index:2; 
    font-size:var(--icon-size); 
    width:var(--icon-circle-size); 
    height:var(--icon-circle-size);
    display:inline-flex; 
    align-items:center; 
    justify-content:center; 
    pointer-events: none;
}

/* Input wrapper: scope icon positioning to the wrapper so icons don't escape */
.input-wrapper { position: relative; width: 100%; }
/* make input-wrapper icons compact to avoid overflow in inputs like tel/date/time */
.input-wrapper .input-icon { 
    left: var(--input-icon-left); 
    top: 50%; 
    transform: translateY(-50%); 
    width: var(--icon-circle-size); 
    height: var(--icon-circle-size); 
    padding: 0; 
    background: transparent; 
    border-radius: 6px; 
    font-size: var(--icon-size); 
    text-align: center;
    pointer-events: none;
}

/* Select wrappers (custom chevron) */
.service-selector, .staff-selector { position: relative; width: 100%; }
.service-selector select, .staff-selector select { 
    -webkit-appearance: none; 
    -moz-appearance: none; 
    appearance: none; 
    padding-right: 3rem; 
    padding-left: var(--input-padding-left);
    width: 100%;
    box-sizing: border-box;
}
.select-icon { 
    position: absolute; 
    right: 0.875rem; 
    top: 50%; 
    transform: translateY(-50%); 
    pointer-events: none; 
    width: var(--icon-circle-size); 
    height: var(--icon-circle-size); 
    display:inline-flex; 
    align-items:center; 
    justify-content:center; 
    color:var(--text-secondary); 
    font-size:var(--icon-size); 
}

/* Ensure textarea icon aligns near top-left and textarea has left padding */
.textarea-wrapper { position: relative; width: 100%; }
.textarea-wrapper .input-icon {
    left: var(--input-icon-left);
    top: 1rem;
    transform: none;
    width: var(--textarea-icon-size);
    height: var(--textarea-icon-size);
    font-size: 0.75rem;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background: var(--accent);
    color: #ffffff;
    border-radius: 50%;
    box-shadow: 0 6px 16px rgba(100,196,147,0.12);
    pointer-events: none;
}
.textarea-wrapper textarea { 
    padding-left: calc(var(--textarea-icon-size) + 1.5rem); 
    padding-top: 1.25rem; 
    width: 100%;
    box-sizing: border-box;
}

/* Date/time inputs: keep consistent left padding similar to text inputs */
input[type="date"], input[type="time"] { padding-left: var(--input-padding-left); }

/* Ensure date/time pickers and selects render consistently across browsers */
input[type="date"], input[type="time"], select { height: calc(2 * 0.875rem + 1rem); line-height: 1.4; }

.form-group input, .form-group textarea, .form-group select { 
    width:100%; 
    padding:0.875rem 1rem 0.875rem var(--input-padding-left); 
    border:2px solid var(--border-color); 
    border-radius: var(--radius); 
    font-size:0.95rem; 
    font-family:'Inter', sans-serif; 
    transition: all 0.3s ease; 
    background:var(--bg-primary); 
    color:var(--text-primary); 
    box-sizing: border-box;
}
.form-group input:focus, .form-group textarea:focus, .form-group select:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 4px rgba(100,196,147,0.12); transform: translateY(-1px); }

.selected-service-info { margin-top:1rem; padding:1rem; background:var(--bg-tertiary); border:1px solid var(--border-color); border-radius:var(--radius); }
.selected-service-info h4 { margin:0 0 0.5rem 0; color:var(--text-primary); font-weight:600; }
.selected-service-info p { margin:0.25rem 0; color:#666; font-size:0.9rem; }
.service-price { font-weight:600; color:var(--accent); }

.payment-methods { display:flex; flex-direction:row; gap:0.75rem; flex-wrap:nowrap; overflow-x:auto; padding-bottom:0.25rem; }
.payment-option { position:relative; }
.payment-option input[type="radio"] { position:absolute; opacity:0; width:0; height:0; }
.payment-label { display:flex; align-items:center; padding:0.6rem 0.9rem; border:1px solid var(--border-color); border-radius:6px; cursor:pointer; transition: all 0.18s ease; background:var(--bg-primary); min-width:220px; white-space:nowrap; }
.payment-label:hover { border-color:var(--accent); transform: translateY(-1px); box-shadow:0 6px 18px rgba(100,196,147,0.06); }
.payment-option input[type="radio"]:checked + .payment-label { border-color:var(--accent); background: rgba(100,196,147,0.03); }
.payment-icon { margin-right:0.6rem; color:var(--accent); font-size:var(--icon-size); width:1.8rem; height:1.8rem; display:inline-flex; align-items:center; justify-content:center; }
.payment-details h4 { margin:0 0 0.15rem 0; font-size:0.98rem; font-weight:700; color:var(--text-primary); }
.payment-details p { margin:0; font-size:0.85rem; color:#666; font-weight:400; }

.ubf-payment-breakdown { margin-top: 0.75rem; border: 1px solid var(--border-color); background: #fff; padding: 0.75rem; border-radius: 8px; max-width:420px; }
.ubf-payment-breakdown .breakdown-row { display:flex; justify-content:space-between; padding:0.35rem 0; color:var(--text-secondary); }
.ubf-payment-breakdown .breakdown-total { display:flex; justify-content:space-between; padding-top:0.6rem; border-top:1px dashed var(--border-color); margin-top:0.5rem; font-weight:700; color:var(--text-primary); }
.ubf-payment-breakdown .label { font-size:0.95rem; }
.ubf-payment-breakdown .value { font-size:0.95rem; color:var(--accent); }

.booking-notice { display:flex; align-items:flex-start; padding:1.25rem; background:var(--bg-tertiary); border:1px solid var(--border-color); border-radius:var(--radius); margin:2rem 0; }
.notice-icon { margin-right:1rem; color:var(--bg-primary); font-size:var(--icon-size); width:var(--icon-circle-size); height:var(--icon-circle-size); display:inline-flex; align-items:center; justify-content:center; background:var(--accent); border-radius:999px; margin-top:0; }
.notice-content h4 { margin:0 0 0.5rem 0; color:var(--text-primary); font-weight:600; }
.notice-content p { margin:0; color:#666; font-size:0.9rem; line-height:1.5; }

.form-actions { display:flex; gap:1rem; justify-content:flex-end; margin-top:2rem; padding-top:2rem; border-top:1px solid var(--border-color); }
.btn { padding:0.875rem 2rem; border:none; border-radius:var(--radius); font-family:'Inter', sans-serif; font-size:0.95rem; font-weight:600; cursor:pointer; transition: all 0.3s ease; text-transform:uppercase; letter-spacing:0.5px; display:inline-flex; align-items:center; position:relative; overflow:hidden; }
.btn i { margin-right:0.5rem; display:inline-flex; align-items:center; justify-content:center; font-size:var(--icon-size); }
.btn-primary { background:var(--accent); color:var(--bg-primary); border:2px solid var(--accent); }
.btn-primary:hover { background:transparent; color:var(--accent); transform: translateY(-2px); box-shadow:0 8px 20px rgba(100,196,147,0.14); }
.btn-secondary { background:transparent; color:var(--text-secondary); border:2px solid var(--border-color); }
.btn-secondary:hover { background:var(--bg-tertiary); border-color:var(--accent); color:var(--accent); transform: translateY(-1px); }

.booking-success { text-align:center; padding:3rem 2rem; background:var(--bg-primary); border-radius:var(--radius); box-shadow:var(--shadow); }
.success-icon { font-size:4rem; color:var(--accent); margin-bottom:1rem; }
.booking-success h3 { font-size:1.75rem; color:var(--text-primary); font-weight:600; margin:0 0 1rem 0; }
.booking-success p { color:#666; font-size:1.1rem; margin:0 0 2rem 0; line-height:1.6; }

@keyframes fadeIn { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
.form-section { animation: fadeIn 0.6s ease-out; }

@media (max-width:767px) { .user-booking-container { padding:1rem 0.5rem; } .booking-form-wrapper { padding:1.5rem; } .booking-title { font-size:2rem; } .form-actions { flex-direction:column; } .btn { width:100%; justify-content:center; } .payment-methods { grid-template-columns:1fr; } .booking-notice { flex-direction:column; } .notice-icon { margin-bottom:0.5rem; margin-right:0; } }

@media (max-width:480px) { 
    .booking-title { font-size:1.75rem; } 
    .booking-subtitle { font-size:1rem; } 
    .section-title { font-size:1.25rem; } 
    .form-group input, .form-group textarea, .form-group select { 
        padding:0.75rem 1rem 0.75rem 2.75rem; 
        font-size:0.9rem; 
    } 
    .input-icon {
        left: 0.75rem;
        font-size: 0.9rem;
        width: 18px;
        height: 18px;
    }
    .select-icon {
        right: 0.75rem;
        font-size: 0.8rem;
        width: 18px;
        height: 18px;
    }
    .textarea-wrapper .input-icon {
        left: 0.75rem;
        width: 20px;
        height: 20px;
        font-size: 0.7rem;
    }
    .textarea-wrapper textarea {
        padding-left: 2.5rem;
    }
}

/* Payment step two-column layout */
/* Payment step: two-column layout (options left, breakdown right) */
.ubf-payment-grid { display:grid; grid-template-columns: 1fr 320px; gap: 1.25rem; align-items:start; }
@media (max-width:767px) { 
    .ubf-payment-grid { grid-template-columns: 1fr; gap: 1rem; } 
    .payment-methods { gap:0.6rem; } 
}
@media (max-width:600px) { 
    .ubf-payment-grid { gap: 0.75rem; } 
    .payment-methods { gap:0.5rem; } 
}

/* Make breakdown container full-width below payment options */
.ubf-payment-breakdown { width:100%; }

.ubf-breakdown-heading {
    font-weight:600;
    margin-bottom:0.5rem;
    color:var(--text-dark, #1f2d3d);
    font-size:1rem;
}

/* Header row above the payment grid: left heading and right breakdown heading aligned */
.ubf-payment-headers { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:0.75rem; }
.ubf-payment-headers .section-title { margin:0; }
.ubf-breakdown-heading-header { text-align:left; font-weight:600; font-size:1.25rem; color: var(--text-primary); }

@media (max-width:767px) {
    .ubf-payment-headers { flex-direction:column; align-items:flex-start; }
    .ubf-breakdown-heading-header { text-align:left; }
}

/* Visual overlapping stack for payment methods (desktop) */
/* Ensure payment methods-stack shows as a normal single-column list when inside the two-column grid */
.ubf-payment-grid .payment-methods-stack {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.ubf-payment-grid .payment-methods-stack .payment-option { position: relative; width: 100%; transform: none !important; z-index: auto !important; }
.ubf-payment-grid .payment-methods-stack .payment-label { box-shadow: none; white-space: normal; }

/* Keep mobile fallback for other contexts */
@media (max-width:767px) {
    .payment-methods-stack { padding-top: 0; }
}

/* Ensure payment options in the left column stack vertically when inside the two-column payment grid */
.ubf-payment-grid .payment-methods {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.ubf-payment-grid .payment-option { width: 100%; }
.ubf-payment-grid .payment-label { min-width: auto; white-space: normal; }
.ubf-payment-breakdown { background: var(--bg-tertiary); border:1px solid var(--border-color); padding:1rem; border-radius:var(--radius); }
.ubf-payment-breakdown .breakdown-services { margin-bottom:0.75rem; max-height:240px; overflow:auto; }
.breakdown-service { display:flex; justify-content:space-between; padding:0.45rem 0; border-bottom:1px dashed rgba(0,0,0,0.04); font-size:0.95rem; }
.breakdown-service .svc-name { color:var(--text-primary); }
.breakdown-service .svc-price { color:var(--accent); font-weight:600; }
.breakdown-service-placeholder { color:#666; font-style:italic; }
.breakdown-row { display:flex; justify-content:space-between; padding:0.5rem 0; }
.breakdown-total { display:flex; justify-content:space-between; padding-top:0.75rem; border-top:1px solid var(--border-color); font-weight:700; font-size:1.05rem; }

/* Mobile payment breakdown improvements */
@media (max-width:600px){
    .ubf-payment-breakdown{padding:0.75rem;font-size:0.9rem}
    .ubf-payment-breakdown .breakdown-services{max-height:180px}
    .breakdown-service{font-size:0.85rem;padding:0.4rem 0}
    .breakdown-row{font-size:0.85rem;padding:0.4rem 0}
    .breakdown-total{font-size:0.95rem;padding-top:0.6rem}
}

/* Scrollbar */
::-webkit-scrollbar { width:8px; }
::-webkit-scrollbar-track { background:#f1f1f1; border-radius:4px; }
::-webkit-scrollbar-thumb { background:var(--accent); border-radius:4px; }
::-webkit-scrollbar-thumb:hover { background:var(--accent-hover); }

/* Print adjustments */
@media print { .user-booking-container { box-shadow:none; background:white; } .booking-header { background:var(--accent) !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; } .form-actions, .btn { display:none; } }

/* ============================
   V3 Wizard/Stepper Styles
   ============================ */

/* V3 theme variables */
:root{
    --ubf-primary-green:#64C493;
    --ubf-primary-navy:#0C1930;
    --ubf-white:#FFFFFF;
    --ubf-accent-gray:#F1F3F5;
    --ubf-radius:8px;
    --ubf-font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
}

.ubf-v3-container{font-family:var(--ubf-font-family);color:var(--ubf-primary-navy);background:var(--ubf-white);padding:24px;border-radius:12px;max-width:820px;margin:0 auto}
.ubf-v3-header{margin-bottom:16px}
.ubf-v3-title{font-weight:700;font-size:1.6rem;margin:0;color:var(--ubf-primary-navy)}
.ubf-v3-sub{color:#51647a;margin-top:6px}

.ubf-v3-form-wrapper{background:var(--ubf-white);padding:20px;border-radius:12px;box-shadow:0 8px 24px rgba(12,25,48,0.06)}
.ubf-v3-stepper{margin-bottom:18px}
.ubf-steps{display:flex;gap:12px;align-items:center}
.ubf-step{display:flex;flex-direction:column;align-items:center;width:calc(25% - 9px)}
.ubf-step .num{background:var(--ubf-accent-gray);color:var(--ubf-primary-navy);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600}
.ubf-step.active .num{background:var(--ubf-primary-green);color:var(--ubf-white)}
.ubf-step .label{font-size:0.85rem;margin-top:6px;text-align:center;color:#445566}

.ubf-progress{height:6px;background:var(--ubf-accent-gray);border-radius:6px;margin-top:12px;overflow:hidden}
.ubf-progress-fill{height:100%;background:linear-gradient(90deg,var(--ubf-primary-green),#4fb88a);width:0%;transition:width 300ms ease}

.ubf-v3-form input[type="text"],.ubf-v3-form input[type="email"],.ubf-v3-form input[type="tel"],.ubf-v3-form input[type="date"],.ubf-v3-form input[type="time"],.ubf-v3-form select,.ubf-v3-form textarea{width:100%;padding:12px;border:1px solid #e6eaef;border-radius:var(--ubf-radius);margin-bottom:12px;font-size:0.95rem;box-sizing:border-box}
.ubf-v3-form textarea{min-height:100px}

/* Mobile form improvements */
@media (max-width:600px){
    .ubf-v3-form input[type="text"],.ubf-v3-form input[type="email"],.ubf-v3-form input[type="tel"],.ubf-v3-form input[type="date"],.ubf-v3-form input[type="time"],.ubf-v3-form select,.ubf-v3-form textarea{
        padding:10px;
        font-size:16px; /* Prevents iOS zoom on focus */
        margin-bottom:10px
    }
    .ubf-v3-form textarea{min-height:80px}
}

.ubf-form-step{display:none}
.ubf-form-step[data-step="1"]{display:block}

.ubf-field-error{font-size:0.95rem}

.ubf-step-nav{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}
.ubf-prev{
    background:var(--ubf-primary-navy);
    border:1px solid rgba(255,255,255,0.06);
    color:var(--ubf-white);
    padding:9px 14px;
    border-radius:var(--ubf-radius);
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    gap:8px;
    box-shadow: 0 2px 6px rgba(12,25,48,0.12);
    transition:all 160ms ease;
}
.ubf-prev:hover{background:#0a1726;transform:translateY(-1px);box-shadow:0 8px 22px rgba(12,25,48,0.14)}
.ubf-prev i{font-size:0.95rem;color:var(--ubf-white)}
.ubf-next,.ubf-submit{background:var(--ubf-primary-green);color:var(--ubf-white);border:none;padding:10px 18px;border-radius:var(--ubf-radius);cursor:pointer;font-weight:600;transition:all 160ms ease}

/* Mobile button improvements */
@media (max-width:600px){
    .ubf-step-nav{flex-direction:column;gap:8px;margin-top:12px}
    .ubf-prev,.ubf-next,.ubf-submit{width:100%;justify-content:center;padding:12px 16px;font-size:0.95rem}
}

.ubf-next:hover,.ubf-submit:hover{background:var(--ubf-primary-green);color:var(--ubf-primary-navy);box-shadow:inset 0 -2px 0 rgba(12,25,48,0.04),0 8px 20px rgba(100,196,147,0.08);transform:translateY(-1px)}

.ubf-payment{display:block;padding:10px;border:1px solid #eef3f6;border-radius:8px;margin-bottom:8px}

@media (max-width:600px){
    .ubf-v3-container{padding:12px 8px}
    .ubf-v3-form-wrapper{padding:12px;box-shadow:0 4px 12px rgba(12,25,48,0.04)}
    .ubf-v3-header{margin-bottom:12px}
    .ubf-v3-title{font-size:1.3rem}
    .ubf-v3-sub{font-size:0.85rem}
    .ubf-steps{flex-wrap:wrap;gap:8px}
    .ubf-step{width:calc(50% - 4px);margin-bottom:8px}
    .ubf-step .num{width:36px;height:36px;font-size:0.9rem}
    .ubf-step .label{font-size:0.75rem;margin-top:4px}
    .ubf-progress{margin-top:8px;height:4px}
}

/* Success panel */
.ubf-v3-success{padding:20px;border-radius:12px;max-width:820px;margin:18px auto;background:linear-gradient(180deg, rgba(100,196,147,0.06), rgba(12,25,48,0.02));}
.ubf-success-box{display:flex;flex-direction:column;align-items:center;padding:22px;background:var(--ubf-white);border-radius:12px;box-shadow:0 10px 30px rgba(12,25,48,0.06)}
.ubf-success-icon{background:var(--ubf-primary-green);color:var(--ubf-white);width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:12px}
.ubf-success-title{color:var(--ubf-primary-navy);margin:0 0 8px 0}
.ubf-success-message{color:#445566;text-align:center;margin:0 0 16px 0}
.ubf-success-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.ubf-btn-primary{background:var(--ubf-primary-green);color:var(--ubf-white);padding:10px 14px;border-radius:8px;border:none;cursor:pointer}
.ubf-btn-secondary{background:var(--ubf-primary-navy);color:var(--ubf-white);padding:10px 14px;border-radius:8px;border:none;cursor:pointer}

/* Mobile success panel improvements */
@media (max-width:600px){
    .ubf-v3-success{padding:12px;margin:12px auto}
    .ubf-success-box{padding:16px}
    .ubf-success-icon{width:50px;height:50px;font-size:1.2rem;margin-bottom:10px}
    .ubf-success-title{font-size:1.1rem}
    .ubf-success-message{font-size:0.9rem;margin:0 0 12px 0}
    .ubf-success-actions{flex-direction:column;width:100%;gap:8px}
    .ubf-btn-primary,.ubf-btn-secondary{width:100%;padding:12px 16px}
}

/* Prevent blue hover fallout from global styles: enforce brand hover colors for v3 buttons */
.ubf-v3-container .ubf-btn-primary:hover,
.ubf-v3-container .ubf-btn-secondary:hover,
.ubf-v3-container .ubf-prev:hover,
.ubf-v3-container .ubf-next:hover,
.ubf-v3-container .ubf-submit:hover,
.ubf-v3-container .ubf-btn-primary:focus,
.ubf-v3-container .ubf-btn-secondary:focus{outline:none}

.ubf-v3-container .ubf-btn-primary:hover{background:var(--ubf-primary-green);color:var(--ubf-white)}
.ubf-v3-container .ubf-btn-secondary:hover{background:var(--ubf-primary-navy);color:var(--ubf-white)}
.ubf-v3-container .ubf-prev:hover{background:#0a1726;color:var(--ubf-white)}
.ubf-v3-container .ubf-next:hover,.ubf-v3-container .ubf-submit:hover{background:var(--ubf-primary-green);color:var(--ubf-primary-navy)}

/* Payment methods styling for v3 (copied and adapted from original form) */
.ubf-v3-container .payment-methods{display:block;grid-template-columns:1fr;gap:12px}
@media(min-width:768px){.ubf-v3-container .payment-methods{grid-template-columns:repeat(2,1fr)}}
.ubf-v3-container .payment-option{position:relative}
.ubf-v3-container .payment-option input[type="radio"]{position:absolute;opacity:0;width:0;height:0}
.ubf-v3-container .payment-label{display:flex;align-items:center;padding:14px;border:2px solid rgba(0,0,0,0.04);border-radius:12px;cursor:pointer;transition:all 0.25s ease;background:var(--ubf-white)}
.ubf-v3-container .payment-option input[type="radio"]:checked + .payment-label{border-color:var(--ubf-primary-green);background:linear-gradient(90deg, rgba(100,196,147,0.06), rgba(100,196,147,0.03))}
.ubf-v3-container .payment-icon{width:48px;height:48px;background:rgba(100,196,147,0.06);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:12px;flex-shrink:0}
.ubf-v3-container .payment-icon i{font-size:18px;color:var(--ubf-primary-green)}
.ubf-v3-container .payment-option input[type="radio"]:checked + .payment-label .payment-icon{background:var(--ubf-primary-green)}
.ubf-v3-container .payment-option input[type="radio"]:checked + .payment-label .payment-icon i{color:#fff}
.ubf-v3-container .payment-details h4{margin:0 0 4px 0;font-size:1rem;color:var(--ubf-primary-navy)}
.ubf-v3-container .payment-details p{margin:0;color:#667585;font-size:0.9rem}

/* Mobile payment improvements */
@media (max-width:600px){
    .ubf-v3-container .payment-label{padding:10px;flex-direction:row;align-items:center}
    .ubf-v3-container .payment-icon{width:40px;height:40px;margin-right:10px}
    .ubf-v3-container .payment-icon i{font-size:16px}
    .ubf-v3-container .payment-details h4{font-size:0.9rem}
    .ubf-v3-container .payment-details p{font-size:0.8rem}
    .ubf-payment-headers{margin-bottom:12px}
    .ubf-breakdown-heading-header{font-size:1.1rem}
}

/* ============================
    Staff Grid (Legacy + V3)
    ============================ */
.staff-grid, .ubf-staff-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:10px}
@media(min-width:640px){.staff-grid, .ubf-staff-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:900px){.staff-grid, .ubf-staff-grid{grid-template-columns:repeat(4,1fr)}}
.staff-grid-empty{padding:10px 12px;border:1px dashed #e3e8ee;border-radius:8px;color:#667585;background:#fafbfc}
.staff-card{border:1px solid #e6eaef;border-radius:10px;padding:10px;background:#fff;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:box-shadow .2s ease,border-color .2s ease,transform .1s ease}
.staff-card:hover{border-color:var(--accent);box-shadow:0 6px 18px rgba(100,196,147,0.08);transform:translateY(-1px)}
.staff-card.selected{border-color:var(--accent);box-shadow:inset 0 0 0 2px rgba(100,196,147,0.4)}
.staff-avatar{width:72px;height:72px;border-radius:50%;overflow:hidden;background:#f1f3f5;display:flex;align-items:center;justify-content:center}
.staff-avatar img{width:100%;height:100%;object-fit:cover}
.staff-initials{width:72px;height:72px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.staff-name{font-weight:600;color:#0C1930;text-align:center;font-size:0.95rem}

/* Mobile staff grid improvements */
@media (max-width:600px){
    .staff-grid, .ubf-staff-grid{grid-template-columns:repeat(2,1fr);gap:8px}
    .staff-card{padding:8px;gap:6px}
    .staff-avatar{width:56px;height:56px}
    .staff-initials{width:56px;height:56px;font-size:0.9rem}
    .staff-name{font-size:0.85rem}
}

/* Add/Remove service buttons (v3 service blocks) */
.ubf-service-block{
    background: #fff;
    border: 1px solid rgba(12,25,48,0.04);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 12px;
    position: relative; /* for absolute remove button */
    box-shadow: 0 6px 18px rgba(12,25,48,0.04);
}

/* Mobile service block improvements */
@media (max-width:600px){
    .ubf-service-block{padding:10px;margin-bottom:10px;box-shadow:0 4px 12px rgba(12,25,48,0.04)}
    .ubf-service-block label{font-size:0.9rem;margin-bottom:6px}
    .ubf-service-blocks{margin-bottom:10px}
}

.ubf-add-service{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:10px 16px;
    border-radius:10px;
    background:var(--accent);
    color:#ffffff;
    border:2px solid var(--accent);
    cursor:pointer;
    font-weight:600;
    box-shadow:0 8px 22px rgba(100,196,147,0.12);
    transition: all 180ms ease;
    margin: 8px auto 0; /* center by default */
    display: inline-block;
}
.ubf-add-service:hover{
    background:transparent;
    color:var(--accent);
    transform:translateY(-2px);
    box-shadow:0 10px 26px rgba(100,196,147,0.14);
}
.ubf-add-service:focus{outline:3px solid rgba(100,196,147,0.18)}

.ubf-service-block .ubf-remove-service{
    position: absolute;
    top: 10px;
    right: 10px;
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 10px;
    border-radius:8px;
    background:transparent;
    color:#b33838;
    border:1px solid rgba(179,56,56,0.08);
    cursor:pointer;
    font-weight:600;
    transition: all 160ms ease;
}
.ubf-service-block .ubf-remove-service:hover{
    background:rgba(179,56,56,0.06);
    transform:translateY(-1px);
    border-color:rgba(179,56,56,0.22);
}
.ubf-service-block .ubf-remove-service:focus{outline:3px solid rgba(179,56,56,0.12)}

@media (max-width:800px){
    .ubf-add-service{width:100%;display:flex;justify-content:center}
    .ubf-service-block .ubf-remove-service{top:8px;right:8px}
}

/* Additional mobile improvements for selects and section titles */
@media (max-width:600px){
    .section-title,.ubf-v3-form .section-title{font-size:1.05rem;margin-bottom:10px}
    .ubf-service-select,.ubf-staff-input,.ubf-v3-form select{font-size:16px;padding:10px;-webkit-appearance:menulist;-moz-appearance:menulist;appearance:auto}
    small{font-size:0.8rem;line-height:1.4}
    /* Improve touch targets on mobile */
    button,input[type="radio"]+label,.staff-card{min-height:44px}
    .ubf-add-service{padding:12px 18px;font-size:0.95rem}
    .ubf-service-block .ubf-remove-service{padding:8px 12px;font-size:0.85rem}
}

/* Hide remove button when only one block remains to avoid accidental removal */
.ubf-service-block:only-child .ubf-remove-service{display:none}

/* Per-service schedule improvements for mobile */
@media (max-width:600px){
    #ubf-per-service-schedule{font-size:0.9rem}
    .ubf-schedule-row{padding:10px;margin-bottom:10px}
    .ubf-schedule-placeholder{font-size:0.85rem;padding:12px}
}
