/* Ronya Car Configurator Booking Component styles */

/* ── Telerik Stepper overrides ── */
.custom-stepper .k-step-done .k-step-indicator,
.custom-stepper .k-step-current .k-step-indicator {
    background-color: #00897B !important;
    border-color: #00897B !important;
    color: white !important;
}

.custom-stepper .k-progressbar .k-selected,
.custom-stepper .k-step-done ~ .k-step-link::before,
.custom-stepper .k-stepper-progress .k-selected {
    background-color: #00897B !important;
}

.custom-stepper .k-step-list-horizontal .k-step::after,
.custom-stepper .k-step-list-horizontal .k-step::before,
.custom-stepper .k-step-done + .k-step .k-step-indicator::before {
    background-color: #00897B !important;
}

/* connector lines between steps */
.custom-stepper .k-stepper-progress-wrap .k-progressbar-chunks .k-chunk,
.custom-stepper .k-stepper-progress-wrap .k-progressbar .k-selected {
    background-color: #00897B !important;
}

/* unselected connector line */
.custom-stepper .k-stepper-progress-wrap .k-progressbar {
    background-color: #D4D4D4 !important;
}

/* ── Section Loader ── */
.section-loading {
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    width: 100%;
}

/* ── Wizard progress bar ── */
.wizard-progress-bar {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    background: #F4F4F4;
    padding: 20px 40px 16px;
    border-bottom: 1px solid #E8E8E8;
    gap: 0;
}

.wizard-step-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    max-width: 200px;
    position: relative;
}

.wizard-step-item:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 18px;
    left: calc(50% + 22px);
    right: calc(-50% + 22px);
    height: 1px;
    border-top: 2px dashed #C8C8C8;
}

.wizard-step-icon {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    border: 2px solid #D4D4D4;
    background: white;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 8px;
    position: relative;
    z-index: 1;
}

.wizard-step-icon.active {
    background: #E8F5F2;
    border-color: #D0EDE8;
}

.wizard-step-icon.done {
    background: #E8F5F2;
    border-color: #D0EDE8;
}

.wizard-step-label {
    font-size: 13px;
    font-weight: 500;
    color: #74817C;
    text-align: center;
    white-space: nowrap;
}

.wizard-step-label.active {
    color: #2C2C2C;
    font-weight: 600;
}

/* ── Wizard page header ── */
.wizard-page-header {
    padding: 20px 32px 0;
    border-bottom: 1px solid #ECECEC;
    background: white;
    margin-bottom: 0;
}

.wizard-page-header h4 {
    font-size: 18px;
    font-weight: 700;
    color: #2C2C2C;
    padding-bottom: 16px;
    margin: 0;
}

/* ── Wizard content wrapper ── */
.wizard-content {
    background: #F4F4F4;
    min-height: calc(100vh - 160px);
    padding: 24px 32px 80px;
}

.wizard-card {
    background: white;
    border: 1px solid #E8E8E8;
    border-radius: 12px;
    overflow: hidden;
    max-width: 900px;
    margin: 0 auto;
}

.wizard-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
    border-bottom: 1px solid #ECECEC;
    font-size: 15px;
    font-weight: 600;
    color: #2C2C2C;
}

.wizard-card-body {
    padding: 20px;
}

/* ── Brand grid ── */
.brand-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 12px;
    padding: 16px 0;
}

.brand-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16px 12px 12px;
    border: 1.5px solid #E8E8E8;
    border-radius: 10px;
    cursor: pointer;
    background: white;
    transition: border-color 0.15s, background 0.15s;
    position: relative;
}

.brand-card:hover {
    border-color: #C8E8E0;
    background: #F8FDFB;
}

.brand-card.selected {
    border-color: #00897B;
    background: white;
}

.brand-card .brand-logo-wrap {
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 8px;
}

.brand-card .brand-name {
    font-size: 12px;
    font-weight: 500;
    color: #2C2C2C;
    text-align: center;
}

.brand-card.selected .brand-name {
    color: #00897B;
}

/* ── Model grid ── */
.model-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 10px;
    padding: 16px 0;
}

.model-card {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 12px;
    border: 1.5px solid #E8E8E8;
    border-radius: 10px;
    cursor: pointer;
    background: white;
    font-size: 13px;
    font-weight: 500;
    color: #2C2C2C;
    text-align: center;
    transition: border-color 0.15s, background 0.15s;
}

.model-card:hover {
    border-color: #C8E8E0;
    background: #F8FDFB;
}

.model-card.selected {
    border-color: #00897B;
    background: #E8F5F2;
    color: #00897B;
    font-weight: 600;
}

/* ── Search box ── */
.wizard-search {
    display: flex;
    align-items: center;
    border: 1.5px solid #E8E8E8;
    border-radius: 8px;
    background: white;
    padding: 0 12px;
    height: 44px;
    margin-bottom: 4px;
}

.wizard-search .material-symbols-outlined {
    color: #74817C;
    font-size: 20px;
    margin-right: 8px;
    flex-shrink: 0;
}

.wizard-search .k-textbox,
.wizard-search .k-input {
    border: 0 !important;
    box-shadow: none !important;
    flex: 1;
}

/* ── Configure step ── */
.configure-vehicle-row {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px;
    border-bottom: 1px solid #ECECEC;
}

.configure-vehicle-logo {
    width: 80px;
    height: 80px;
    border-radius: 10px;
    background: #E8F5F2;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
}

.configure-vehicle-logo img {
    max-width: 64px;
    max-height: 64px;
    object-fit: contain;
}

.configure-vehicle-info .selected-label {
    font-size: 11px;
    color: #74817C;
    margin-bottom: 2px;
}

.configure-vehicle-info .vehicle-title {
    font-size: 20px;
    font-weight: 700;
    color: #2C2C2C;
    margin-bottom: 6px;
}

.configure-model-badge {
    display: inline-flex;
    padding: 3px 10px;
    border-radius: 6px;
    background: #F2F2F2;
    border: 1px solid #E0E0E0;
    font-size: 12px;
    font-weight: 500;
    color: #2C2C2C;
}

.what-happens-next {
    padding: 20px;
}

.what-happens-next-title {
    font-size: 13px;
    font-weight: 600;
    color: #74817C;
    margin-bottom: 16px;
}

.next-step-row {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
}

.next-step-icon {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: #F2F2F2;
    border: 1px solid #E8E8E8;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 16px;
}

.next-step-text {
    font-size: 13px;
    color: #2C2C2C;
}

/* ── Active session ── */
.session-active-wrap {
    padding: 32px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border-bottom: 1px solid #ECECEC;
}

.session-brand-logo {
    width: 100px;
    height: 100px;
    border-radius: 12px;
    background: #E8F5F2;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin-bottom: 20px;
}

.session-brand-logo img {
    max-width: 80px;
    max-height: 80px;
    object-fit: contain;
}

.session-title {
    font-size: 20px;
    font-weight: 700;
    color: #2C2C2C;
    margin-bottom: 6px;
}

.session-timer {
    font-size: 13px;
    color: #74817C;
    margin-bottom: 12px;
}

.session-running-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 14px;
    border-radius: 20px;
    background: #F2F2F2;
    border: 1px solid #E0E0E0;
    font-size: 12px;
    font-weight: 500;
    color: #2C2C2C;
}

.session-hint-wrap {
    padding: 20px;
    text-align: center;
}

.session-hint {
    font-size: 13px;
    color: #2C2C2C;
    margin-bottom: 16px;
}

/* ── Review step ── */
.review-section {
    padding: 20px;
    border-bottom: 1px solid #ECECEC;
}

.review-section-title {
    font-size: 12px;
    font-weight: 600;
    color: #74817C;
    margin-bottom: 14px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.review-section-hint {
    font-size: 13px;
    color: #74817C;
    margin-bottom: 16px;
}

.config-input-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 14px;
}

.config-input-icon {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: #F2F2F2;
    border: 1px solid #E8E8E8;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 14px;
    font-weight: 600;
    color: #74817C;
    margin-top: 2px;
}

.config-input-label-wrap {
    min-width: 110px;
    flex-shrink: 0;
}

.config-input-label {
    font-size: 13px;
    font-weight: 600;
    color: #2C2C2C;
    display: block;
}

.config-input-desc {
    font-size: 11px;
    color: #74817C;
}

.config-input-field {
    flex: 1;
}

.config-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.config-summary-cell {
    border: 1.5px solid #E8E8E8;
    border-radius: 8px;
    padding: 12px 14px;
}

.config-summary-label {
    font-size: 10px;
    font-weight: 600;
    color: #74817C;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 4px;
}

.config-summary-value {
    font-size: 14px;
    font-weight: 600;
    color: #2C2C2C;
}

.framework-toggle {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 14px;
}

.framework-btn {
    padding: 12px;
    border: 1.5px solid #E8E8E8;
    border-radius: 8px;
    background: white;
    font-size: 13px;
    font-weight: 500;
    color: #2C2C2C;
    cursor: pointer;
    text-align: center;
    transition: border-color 0.15s, background 0.15s;
}

.framework-btn:hover {
    border-color: #C8E8E0;
    background: #F8FDFB;
}

.framework-btn.selected {
    border-color: #00897B;
    background: white;
    font-weight: 600;
}

/* ── PDF upload button ── */
.pdf-upload-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    height: 40px;
    border: 1.5px solid #E0E0E0;
    border-radius: 8px;
    background: #FAFAFA;
    cursor: pointer;
    font-size: 13px;
    color: #74817C;
    transition: border-color 0.15s, background 0.15s;
}

.pdf-upload-btn:hover {
    border-color: #C8E8E0;
    background: #F8FDFB;
}

.pdf-upload-btn.has-file {
    border-color: #00897B;
    color: #00897B;
    background: #F0FAF8;
}

/* ── Phone input ── */
.login-phone-dropdown .k-dropdownlist {
    border: 0;
    position: relative;
    background: transparent !important;
    height: 100%;
}

.login-phone-dropdown .k-dropdownlist:focus,
.login-phone-dropdown .k-dropdownlist:focus-within {
    box-shadow: none !important;
    background: transparent !important;
}

.login-phone-dropdown .k-animation-container {
    top: 46px !important;
    bottom: auto !important;
    left: 0 !important;
}

/* ── Your Details step ── */
.details-form {
    padding: 20px;
}

.details-field-group {
    margin-bottom: 16px;
}

.details-label {
    font-size: 13px;
    font-weight: 600;
    color: #2C2C2C;
    margin-bottom: 6px;
    display: block;
}

.details-label .required-star {
    color: #E31212;
    margin-left: 2px;
}

/* ── Footer nav ── */
.wizard-footer {
    position: sticky;
    bottom: 0;
    background: white;
    border-top: 1px solid #ECECEC;
    padding: 12px 32px;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    z-index: 10;
}

.wizard-btn-primary {
    background: #00897B !important;
    border: 1px solid #00897B !important;
    color: white !important;
    padding: 8px 24px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 6px;
    min-width: 120px;
}

.wizard-btn-primary:hover,
.wizard-btn-primary.k-state-hover,
.wizard-btn-primary:focus {
    background: #007068 !important;
    border-color: #007068 !important;
}

.wizard-btn-secondary {
    background: white !important;
    border: 1.5px solid #D4D4D4 !important;
    color: #2C2C2C !important;
    padding: 8px 20px;
    font-size: 13px;
    font-weight: 500;
    border-radius: 6px;
    margin-right: 12px;
}

/* ── Form fields (step 1 dropdowns) ── */
.wizard-form-field {
    margin-bottom: 20px;
}

.wizard-form-label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #2C2C2C;
    margin-bottom: 6px;
}

.wizard-form-field .k-dropdownlist {
    width: 100%;
    border-radius: 8px;
    border: 1px solid #D4D4D4;
    background: #fff;
    height: 42px;
    font-size: 14px;
}

.wizard-form-field .k-dropdownlist:focus,
.wizard-form-field .k-dropdownlist:focus-within {
    border-color: #00897B;
    box-shadow: 0 0 0 2px rgba(0,137,123,.15);
}

.wizard-footer--full {
    padding: 12px 16px;
}

.wizard-btn-full,
.wizard-btn-full .k-button {
    width: 100% !important;
    border-radius: 8px !important;
    padding: 12px 24px !important;
    font-size: 15px !important;
    justify-content: center;
}

/* ── Validation message ── */
.validation-message {
    color: #E31212;
    font-style: italic;
    font-size: 12px;
    margin-top: 4px;
    display: block;
}

/* ── nd-page-wrap (reused from existing pages) ── */
.nd-page-wrap {
    padding: 0;
}

.nd-section-title {
    font-size: 18px;
    font-weight: 700;
    color: #2C2C2C;
}
