
/*=============================================
=    Global transversal Medical Cloud CSS     =
==============================================*/

p {
    text-align: justify;
}

.max-height-vh-15 {
    max-height: 15vh !important;
}

@media (max-width: 991.98px) {
    /* Mobile fonts */
    :root {
        --mobile-font-bigger: 1.1rem;
        --mobile-font-base: 1rem;
        --mobile-font-small: .9rem;
    }

    .mobile-button-enforced {
        width: 100% !important;
    }

    /* Lateral main paddings */
    .container:has(.card){
        padding-left: 1.2rem;   /* ~ 24px */
        padding-right: 1.2rem;  /* ~ 24px */
    }

    /* Lateral card width */
    .card{
        width: 100%;     /* default 84% */
        max-width: 90vw; /* vw = viewport width, means "Never exceed 95% of the screen width" */
    }

    /* Lateral card (reduced) paddings (Except card-success-fail) */
    .card:not(.card-success-fail) .card-header,
    .card:not(.card-success-fail) .card-body {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    /* Main text – Mobile reading comfort */
    span,
    small,
    .form-control,
    .form-select,
    .btn,
    .iti__selected-dial-code,
    .iti__country-name,
    .iti__dial-code {
        font-size: var(--mobile-font-base);
    }

    label,
    .form-label,
    .form-check-label {
        font-size: var(--mobile-font-small);
    }

    p {
        /* None at this step */
    }

    .form-check:not(.form-switch) .form-check-input[type=checkbox],
    .form-check:not(.form-switch) .form-check-input[type=radio] {
        border: 2px solid #cbd3da;
    }
}

/*=============================================
=     Legal Notice, Terms and Privacy CSS     =
==============================================*/

#legal-notice-text p, #legal-notice-text li {
    font-size: 0.8rem;
    text-align: justify;
}

#privacy-text p, #privacy-text li {
    font-size: 0.8rem;
    text-align: justify;
}

#legal-terms-text p, #legal-terms-text li {
    font-size: 0.7rem;
    text-align: justify;
}

/*=============================================
=    Form Validation : Specific CSS Rules     =
==============================================*/

/*
Prevent optional empty fields from appearing as "valid" (green) in Bootstrap validation.
This resets the valid styling for inputs that are technically valid but still empty
(e.g., optional fields with placeholders or optional file inputs with no file selected).
Normal focus styling is preserved for better UX.
*/

/* Neutralise l'état "valide" quand un champ avec placeholder est vide et optionnel */
.form-control.is-valid:placeholder-shown {
    border-color: #d2d6da !important;
    padding-right: 0.75rem !important;
    background-image: none !important;
}

/* Garde le style normal au focus du champ avec placeholder vide et optionnel */
.form-control.is-valid:placeholder-shown:focus {
    border-color: #86b7fe !important;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25) !important;
}

/* Neutralise l'état valide des champs file optionnels vides */
.form-control[type="file"].is-valid.is-optional-empty {
    border-color: #d2d6da !important;
    padding-right: 0.75rem !important;
    background-image: none !important;
}

/* Garde le style normal au focus des champs file optionnels vides */
.form-control[type="file"].is-valid.is-optional-empty:focus {
    border-color: #86b7fe !important;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25) !important;
}

/*=============================================
=     Generic Choice Cards and Score Ranges   =
==============================================*/

.choice-card {
    border: 1px solid #dee2e6;
    background: #fff;
    transition: border-color .15s, background .15s, color .15s;
    height: 40.1806px !important;
    border-radius: .5rem !important;
}

.choice-card:has(input:checked) {
    background: rgba(var(--bs-primary-rgb), 0.10);
    border-color: rgba(var(--bs-primary-rgb), 0.7);
}

.choice-card input[type="radio"] {
    appearance: none;
    width: 1.1em;
    height: 1.1em;
    border: 1px solid #adb5bd;
    border-radius: .2rem;
    background: #fff;
    flex-shrink: 0;
}

.choice-card:has(input:checked) input[type="radio"] {
    border-color: #fff;
    background-color: #fff;
    box-shadow: inset 0 0 0 1.5px var(--bs-primary);
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 8l3 3 7-7' fill='none' stroke='%23000000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: .9em .9em;
    background-position: center;
    background-repeat: no-repeat;
}

.choice-card.choice-card--optional:has(input:checked) {
    background: var(--bs-secondary);
    border-color: var(--bs-secondary);
    color: #fff;
}

.choice-card.choice-card--mode:has(input:checked) {
    background: var(--bs-info);
    border-color: var(--bs-info);
    color: #fff;
}

.choice-card:has(input:checked) .choice-card__points {
    opacity: .6 !important;
}

.score-range {
    transition: background .2s, color .2s, opacity .2s;
}

.score-range[data-active="true"][data-color="success"] {
    background: rgba(var(--bs-success-rgb), .1);
    color: var(--bs-success);
}

.score-range[data-active="true"][data-color="warning"] {
    background: rgba(var(--bs-warning-rgb), .1);
    color: var(--bs-warning);
}

.score-range[data-active="true"][data-color="orange"] {
    background: rgba(253, 126, 20, .1);
    color: #fd7e14;
}

.score-range[data-active="true"][data-color="danger"] {
    background: rgba(var(--bs-danger-rgb), .1);
    color: var(--bs-danger);
}

.score-range[data-active="false"] {
    background: rgba(0, 0, 0, .03);
    color: #ced4da;
}

/*=============================================
=        Customers Additional Colors          =
==============================================*/

/* Class used in forms : .text-gradient.text- bg-gradient- bg- */

/**** BLUE *******/

.text-blue {
    color:#0b3467 !important;
}

.text-gradient.text-blue {
    background-image: linear-gradient(310deg, #0b3467, #3C7BCA);
}
.bg-gradient-blue {
    background-image: linear-gradient(310deg, #0b3467 0%, #3C7BCA 100%);
}
.bg-blue {
    background-color: #3C7BCA !important;
}

/**** PURPLE *******/

.text-purple {
    color:#2d2a49 !important;
}

.text-gradient.text-purple {
    background-image: linear-gradient(310deg, #2d2a49, #756FB3);
}
.bg-gradient-purple {
    background-image: linear-gradient(310deg, #2d2a49 0%, #756FB3 100%);
}
.bg-purple {
    background-color: #756FB3 !important;
}


/**** LIGHT PURPLE *******/

.text-light-purple {
    color:#452c45 !important;
}

.text-gradient.text-light-purple {
    background-image: linear-gradient(310deg, #452c45, #CEB2CD);
}
.bg-gradient-light-purple {
    background-image: linear-gradient(310deg, #452c45 0%, #CEB2CD 100%);
}
.bg-light-purple {
    background-color: #CEB2CD !important;
}

/**** LIGHT YELLOW *******/

.text-light-yellow {
    color:#FFFE91 !important;
}

.text-gradient.text-light-yellow {
    background-image: linear-gradient(310deg, #FFFE91, #FFFFED);
}
.bg-gradient-light-yellow {
    background-image: linear-gradient(310deg, #FFFE91 0%, #FFFFED 100%);
}
.bg-light-yellow {
    background-color: #FFFFED !important;
}

/**** BLACK *******/

.text-black {
    color:#000000 !important;
}

.text-gradient.text-black {
    background-image: linear-gradient(310deg, #000000, #00000080);
}
.bg-gradient-black {
    background-image: linear-gradient(310deg, #000000 0%, #00000080 100%);
}
.bg-black {
    background-color: #00000080 !important;
}
