/* Surcharges DSFR */
div.fr-modal__footer {
    padding: 1.25rem 1rem;
}

.facet .fr-checkbox-group input + .fr-label {
    display: flex !important;
}

.fr-checkbox-group input + .fr-label {
    display: unset !important;
}

.fr-table .fr-checkbox-group input + .fr-label {
    display: flex !important
}

textarea, input[type="textarea"] {
    resize: vertical;
}

/* Affichage des containers alignés en mode wide */
.wide .fr-container {
    max-width: 98rem;
}

fieldset {
    border: none;
    padding: 0;
    margin: 0;
}

dialog {
    text-align: initial;
}

.fr-alert:empty {
    display: none;
}

/* Ajoute des importants pour les fr-btn--close dans les modales (pollué par le fr-btn-group) */
.fr-modal__header .fr-btn--close {
    display: flex;
    font-size: .875rem !important;
    line-height: 1.5rem !important;
    margin-left: auto;
    max-height: none;
    max-width: 100%;
    min-height: 2rem !important;
    overflow: initial;
    padding: .25rem .75rem !important;
}

.fr-badge--no-icon {
    font-weight: 500;
}

.fr-sr-only {
    margin: -1px !important;
    position: absolute !important;
}

.fr-tooltip {
    font-weight: normal;
}

.fr-menu li {
    line-height: unset;
}

.fr-breadcrumb li .fr-collapse.fr-menu {
    visibility: unset;
}

.fr-breadcrumb li .fr-collapse:not(.fr-collapse--expanded).fr-menu {
    overflow: hidden;
    max-height: var(--collapse-max-height);
    visibility: hidden
}

.fr-menu li::before {
    content: none !important;
}

.fr-alert dialog .fr-btn--close::before {
    --icon-size: 0;
    mask-image: unset;
    margin: 0;
}

.fr-alert dialog .fr-btn--close {
    position: inherit;
}

.icon-only.fr-btn::before {
    margin: unset !important;
}

/**/

/* Général */
html, body {
    min-height: 100%;
}

.full-page {
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;
}

.within-iframe .fr-select-group .fr-menu, .within-iframe .fr-menu__wrapper .fr-menu {
    position: sticky;
}

main {
    flex: 1;
}

/**/

/* BG Accueil */
.home {
    background-color: var(--background-alt-beige-gris-galet);
}

/* MASONRY */

.tbd--masonry {
    display: grid;
    grid-template-columns: 2fr 1fr;
    justify-content: center;
    grid-gap: 1.25rem;
}

.grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(100px, 1fr));
    grid-gap: 1.25rem;
}

.grid.grid--4 {
    grid-template-columns: repeat(4, minmax(100px, 1fr));
}

.grid.grid--3 {
    grid-template-columns: repeat(3, minmax(100px, 1fr));
}

.grid.grid--1 {
    grid-template-columns: repeat(1, minmax(100px, 1fr));
}

.grid .grid--full-row {
    grid-column: 1 / -1;
}

.grid.grid--dense {
    column-gap: 0.8rem;
    row-gap: 0.6rem !important;
}

.grid.grid--form {
    row-gap: 0;
    column-gap: 1.2rem
}

.grid.grid--padded {
    /*margin-bottom: 1rem;*/
}

.grid.grid--dense.grid--padded {
}

@media screen and (max-width: 1024px) {
    .tbd--masonry {
        grid-template-columns: 1fr;
    }

    .grid {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 599px) {
    .grid {
        grid-template-columns: 1fr !important;
    }
}

.tbd--full-row {
    grid-column: 1/-1;
}

.tbd--masonry > div {
    align-self: start;
    position: relative;
}

.pointer {
    cursor: pointer;
}

/**/

/* Lists */
.list-none {
    --ul-type: none;
    --ol-type: none;
    --ul-start: 0;
    --ol-start: 0;
    --xl-block: 0;
    --li-bottom: 0;
    --ol-content: none;
}

.list-style-type-none {
    list-style-type: none;
}

.padding-inline-start-unset {
    padding-inline-start: unset;
}

/**/

/* Tables */
.fr-table.caption-normal caption {
    font-size: 1rem;
    font-weight: 500
}

/**/

/* Menu */
.fr-btn.fr-menu__btn.fr-menu__right + div.fr-menu {
    right: 0;
}

/* Stepper nova */
.nova-stepper {
    background: var(--background-alt-brown-caramel);
    padding: 1rem;
    margin-right: 1rem;
}

/**/

/* Bold labels */
.font-bold-legend legend {
    font-weight: bold !important;
}

.font-bold-label > label {
    font-weight: bold !important;
}

.fr-hint-text {
    font-weight: normal;
}

.fr-checkbox-group .font-bold-label + .fr-label {
    font-weight: bold;
}

/**/

/* dsfr-label en lecture seule */

p.readonly > .fr-label {
    display: inline;
}

p.readonly > .fr-label::after {
    content: ' : '
}

/**/


/* Correction de la taille des images logotypes */
img.logo-min {
    height: 9rem;
    padding: 1rem;
}

/* Truncate Text */
.overflow-ellipsis::after {
    content: "…";
}

/* nova tableau de bord custom tile */
.nova-tdb-tile {
    background-color: var(--background-alt-grey);
    padding: 1rem;
    margin-top: .75rem;
    margin-bottom: .75rem;
}

.nova-tdb-tile:hover {
    background-color: var(--background-alt-grey-hover);
}

.nova-tdb-tile:active {
    background-color: var(--background-alt-grey-active);
}

/* display */
.fr-breadcrumb__item--menu > div {
    display: inline-flex;
}

.fr-breadcrumb__item--menu > div, .fr-breadcrumb__item--menu > span {
    vertical-align: .25rem;
}

/* Capitalize text */
.text-capitalize::first-letter {
    text-transform: capitalize;
}

/* fill color */
.fill-error path {
    fill: var(--background-flat-error);
}

.fill-warning path {
    fill: var(--background-flat-warning);
}

.fill-success path {
    fill: var(--background-flat-success);
}

/* fill ligne */
.tr-info td {
    background-color: var(--background-alt-grey) !important;
}

.tr-primary td {
    background-color: var(--blue-france-950-100) !important;
}

td.text-center {
    text-align: center !important;
}

/* Modal actions (footered) in iframed dialog */
.modal-actions {
    position: fixed;
    bottom: 1rem;
    right: 0;
    left: 0;
}

/* Messagerie */
.messagerie__content {
    overflow: auto;
    max-height: 70vh;
}

.nova-message-width {
    max-width: 75%;
}

.nova-message-recu {
    background: var(--grey-950-100);
}

.nova-message-envoye {
    background: var(--info-950-100);
}

.nova-message-recu, .nova-message-envoye {
    max-width: 75%;
    min-width: 140px;
    padding: 0.25rem .5rem 1.65rem .75rem;
    margin-bottom: .75rem;
    position: relative;
    border-radius: 4px 4px 0 0;
}

.nova-message-timestamp {
    margin: 0;
    font-size: small;
    position: absolute;
    right: 8px;
    bottom: 2px;
    color: var(--text-mention-grey);
}

.nova-message-date {
    align-items: flex-start;
    color: var(--text-mention-grey);
    display: flex;
    flex-direction: row;
    line-height: 0.25rem;
    font-size: 0.85rem;
}

.fr-separator {
    height: .5px;
    width: 98%;
    border: 1px solid var(--border-default-grey);
}

.width-fit-content {
    width: fit-content;
}

.messagerie-modale .fr-modal__body {
    overflow-y: initial;
}

.messagerie-modale .v-modal__dsfr-content {
    min-height: 65vh;
}

.messagerie-modale iframe {
    width: 100%;
    min-height: 65vh;
}

.within-iframe .messagerie__header {
    background-color: var(--background-default-grey);
    position: sticky;
    top: 0;
    right: 0;
    left: 0;
    z-index: 100;
}

.within-iframe .messagerie__footer {
    background-color: var(--background-default-grey);
    position: fixed;
    bottom: 0;
    right: 0;
    left: 0;
    z-index: 100;
}

.within-iframe .messagerie__content {
    margin-bottom: 8rem;
    max-height: unset;
    overflow: unset;
}

/* Utils */
.min-h-full {
    min-height: 100%;
}

.no-value {
    font-style: italic;
    color: var(--text-mention-grey);
}

.gap--lg {
    gap: 1.25rem;
}

/* Nova Footer */
a.nova-version {
    cursor: unset;
    color: var(--text-mention-grey);
}

/* light dim */
.light-dim::after {
    background: hsla(0, 0%, 100%, 0.6) !important;
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
.loader {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    left: 0;
    justify-content: center;
    align-items: center;
    display: flex;
}

/* Download loader */
.loader-downloading span    {
    position: relative;
    color: transparent !important;
}

.loader-downloading span::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 20px;
    height: 20px;
    border: 2px solid rgba(0, 0, 0, 0.1);
    border-radius: 50%;
    border-top-color: #000091;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

/* icons-color */
.color-error {
    color: var(--text-default-error);
}
.color-info {
    color: var(--text-default-info);
}

/* logo size */
.logo-annuaire {
    width: 35%;
    height: auto;
}

/* annuaire */
.map-card {
    background: white;
    padding: 1rem 1rem 0.75rem 1rem;
}

.annuaire-search .fr-input-group {
    margin-bottom: 0;
}
/**/

/* Override Quasar Notify system */
#q-notify {
    display: none !important;
}

/* Activate AJAX loader for clarity */
.q-loading-bar {
    position: fixed;
    z-index: 9998;
    transition: transform .5s cubic-bezier(0,0,.2,1), opacity .5s;
    background: var(--background-flat-blue-france);
    height: 4px;
}

.q-loading-bar--top {
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
}
/* Corrige l’affichage des images dans les cartes horizontales */
.fr-card--horizontal .fr-card__img img {
    height: auto;
    align-self: center;
}

.fr-card--horizontal .fr-card__img {
    display: flex;
}

/* Underline text */

.underline {
    text-decoration: underline;
}
a .underline {
    text-decoration: none;
}

.icon-error {
    color: var(--text-default-error);
}

.icon-success {
    color: var(--text-default-success);
}
/**/

/* iframe utils */

.within-iframe .fr-hidden.show-in-iframe {
    display: inherit !important;
}

.within-iframe .hide-in-iframe {
    display: none;
}

/**/

/* dsfr navtab top */
.dsfr-navtab {
    padding-top: 0;
}
/**/