.form-control:focus,
    .form-select:focus {
        border-color: #667eea;
        box-shadow: 0 0 0 0.2rem rgba(102, 126, 234, 0.25);
    }

    .input-group-text {
        background-color: #f8f9fa;
        border-right: none;
    }

    .input-group .form-control,
    .input-group .form-select {
        border-left: none;
    }

    /* Section cards */
    .section-card {
        background: #fafbff;
        border: 1px solid #e8ecff;
        border-radius: 1.25rem;
        padding: 1.5rem;
    }

    .section-title {
        display: flex;
        align-items: center;
        gap: 0.6rem;
        color: #667eea;
        font-weight: 700;
        margin-bottom: 1.25rem;
        font-size: 1rem;
    }

    .section-badge {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        border-radius: 50%;
        background: linear-gradient(135deg, #667eea, #764ba2);
        color: #fff;
        font-size: 0.8rem;
        font-weight: 700;
        flex-shrink: 0;
    }

    /* Vertical divider via border on left column */
    @media (min-width: 992px) {
        .left-col {
            border-right: 1px solid transparent;
            border-image: linear-gradient(to bottom, transparent 0%, #cbd5e1 10%, #667eea 50%, #cbd5e1 90%, transparent 100%) 1;
        }
    }

    /* Steps indicator */
    .steps-indicator {
        align-items: center;
    }

    .step-dot {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 4px;
        cursor: default;
    }

    .step-num {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        background: #e2e8f0;
        color: #94a3b8;
        font-weight: 700;
        font-size: 0.85rem;
        transition: all 0.3s;
    }

    .step-dot.active .step-num {
        background: linear-gradient(135deg, #667eea, #764ba2);
        color: #fff;
        box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
    }

    .step-label {
        font-size: 0.7rem;
        color: #94a3b8;
        font-weight: 500;
    }

    .step-dot.active .step-label {
        color: #667eea;
        font-weight: 600;
    }

    .step-line {
        flex: 1;
        height: 2px;
        background: #e2e8f0;
        border-radius: 2px;
        min-width: 30px;
        margin-bottom: 18px;
    }

    @media (max-width: 991.98px) {
        .card { border-radius: 1rem !important; }
        .vertical-divider { display: none; }
    }

    @media (max-width: 576px) {
        .steps-indicator { gap: 0.5rem; }
        .step-line { min-width: 15px; }
        .step-label { display: none; }
    }
