/**
 * MFM Configurateur Bâche de façade et joues de terrasse
 *
 * Styles propres au configurateur `facade`, chargés après configurator.css (styles communs aux configurateurs).
 *
 * @package Baches_MFM
 */

/* Cote en cours de saisie (hauteurs des côtés, fenêtre, porte) */
#mfm-configurator-svg[data-active-dim="height_high"] [data-dim="height_high"],
#mfm-configurator-svg[data-active-dim="height_low"] [data-dim="height_low"],
#mfm-configurator-svg[data-active-dim="window-width"] [data-dim="window-width"],
#mfm-configurator-svg[data-active-dim="window-height"] [data-dim="window-height"],
#mfm-configurator-svg[data-active-dim="window-left"] [data-dim="window-left"],
#mfm-configurator-svg[data-active-dim="window-bottom"] [data-dim="window-bottom"],
#mfm-configurator-svg[data-active-dim="window_2-width"] [data-dim="window_2-width"],
#mfm-configurator-svg[data-active-dim="window_2-height"] [data-dim="window_2-height"],
#mfm-configurator-svg[data-active-dim="window_2-left"] [data-dim="window_2-left"],
#mfm-configurator-svg[data-active-dim="window_2-bottom"] [data-dim="window_2-bottom"],
#mfm-configurator-svg[data-active-dim="window_3-width"] [data-dim="window_3-width"],
#mfm-configurator-svg[data-active-dim="window_3-height"] [data-dim="window_3-height"],
#mfm-configurator-svg[data-active-dim="window_3-left"] [data-dim="window_3-left"],
#mfm-configurator-svg[data-active-dim="window_3-bottom"] [data-dim="window_3-bottom"],
#mfm-configurator-svg[data-active-dim="door_window-height"] [data-dim="door_window-height"],
#mfm-configurator-svg[data-active-dim="door_window-bottom"] [data-dim="door_window-bottom"],
#mfm-configurator-svg[data-active-dim="door-width"] [data-dim="door-width"],
#mfm-configurator-svg[data-active-dim="door-height"] [data-dim="door-height"],
#mfm-configurator-svg[data-active-dim="door-left"] [data-dim="door-left"] {
    opacity: 1;
    animation: mfm-cote-pulse 0.45s ease-in-out 2;
}

/* Étape 2 : rappel du forfait jusqu'à 10 m² */
.mfm-configurator-facade .mfm-facade-flat-note {
    margin: 10px 0 0;
}

/* Étape 3 : en-tête des finitions + bouton photo */
.mfm-configurator-facade .mfm-facade-sides-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.mfm-configurator-facade .mfm-facade-sides-head .mfm-field-label {
    margin: 0;
}

/* Étape 3 : finitions par côté, lignes compactes */
.mfm-configurator-facade .mfm-facade-sides {
    margin: 0 0 10px;
}

.mfm-configurator-facade .mfm-facade-finish-desc {
    margin: 0 0 20px;
}

.mfm-configurator-facade .mfm-facade-sides .mfm-side-finish-row {
    padding: 10px 12px;
    margin-bottom: 8px;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.mfm-configurator-facade .mfm-facade-sides .mfm-side-finish-row.is-highlighted {
    border-color: #0F4C81;
    background-color: #F0F6FC;
}

/* En-tête de côté + vignettes visuelles cliquables empilées (unifié avec le configurateur standard) */
#mfm-configurator-wrapper.mfm-configurator-facade .mfm-facade-sides .mfm-side-finish-row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
}

/* Grille uniforme à 5 colonnes sur ordinateur/tablette : les cartes communes (Ourlet simple, Œillets ronds,
   Œillets ovales…) conservent strictement la même taille et s'alignent verticalement d'une ligne à l'autre */
@media (min-width: 561px) {
    #mfm-configurator-wrapper.mfm-configurator-facade .mfm-facade-sides .mfm-side-finish-cards,
    #mfm-configurator-wrapper.mfm-configurator-facade .mfm-facade-sides .mfm-side-finish-cards[data-count="5"],
    #mfm-configurator-wrapper.mfm-configurator-facade .mfm-facade-sides .mfm-side-finish-cards[data-count="4"],
    #mfm-configurator-wrapper.mfm-configurator-facade .mfm-facade-sides .mfm-side-finish-cards[data-count="3"] {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

.mfm-configurator-facade .mfm-side-len-val {
    font-size: 11.5px;
    font-weight: 600;
    color: #64748b;
}

/* Étape 3 : cotes de la fenêtre et de la porte, sous leur interrupteur */
.mfm-opening-panel {
    padding: 12px 0 14px;
    border-bottom: 1px solid #f1f5f9;
}

.mfm-opening-panel[hidden] {
    display: none;
}

.mfm-opening-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 14px;
}

.mfm-opening-field label {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 6px;
    font-size: 12.5px;
    font-weight: 600;
    color: #334155;
}

.mfm-opening-range {
    font-size: 11px;
    font-weight: 500;
    color: #64748b;
    white-space: nowrap;
}

/* Capsule épurée [ − | 125 cm | + ] pour ajuster et déplacer fenêtre / porte par pas de 10 cm */
#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-stepper {
    display: flex;
    align-items: stretch;
    height: 42px;
    background: #ffffff;
    border: 1.5px solid #cbd5e1;
    border-radius: 10px;
    overflow: hidden;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-stepper:focus-within {
    border-color: #0F4C81;
    box-shadow: 0 0 0 3px rgba(15, 76, 129, 0.12);
}

#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-stepper.is-invalid,
#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-stepper.is-invalid:focus-within {
    border-color: #dc2626;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12);
}

#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-step-btn {
    flex: 0 0 35px;
    width: 35px;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: #fcfdfe;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
    touch-action: manipulation;
    transition: background-color 0.14s ease, color 0.14s ease, opacity 0.14s ease;
}

#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-step-btn[data-step-dir="-1"] {
    border-right: 1px solid #eef2f6;
}

#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-step-btn[data-step-dir="1"] {
    border-left: 1px solid #eef2f6;
}

#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-step-btn:hover:not(:disabled) {
    background-color: #F0F6FC;
    color: #0F4C81;
}

#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-step-btn:active:not(:disabled) {
    background-color: #E0EFFA;
    color: #101828;
}

#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-step-btn:disabled {
    opacity: 0.28;
    cursor: default;
}

#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-input-zone {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    padding: 0 4px;
    cursor: text;
}

#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-stepper .mfm-opening-input {
    width: 44px;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    outline: none;
    background: transparent;
    text-align: right;
    font: inherit;
    font-size: 15.5px;
    font-weight: 700;
    color: #0f172a;
    -moz-appearance: textfield;
    appearance: textfield;
}

#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-stepper .mfm-opening-input::-webkit-inner-spin-button,
#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-stepper .mfm-opening-input::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

#mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-stepper .mfm-dim-unit {
    position: static;
    margin: 0;
    font-size: 12.5px;
    font-weight: 600;
    color: #64748b;
    pointer-events: none;
}

@media (max-width: 480px) {
    #mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-step-btn {
        flex: 0 0 32px;
        width: 32px;
    }

    #mfm-configurator-wrapper.mfm-configurator-facade .mfm-opening-stepper .mfm-opening-input {
        width: 40px;
        font-size: 16px;
    }
}

.mfm-opening-field--wide {
    margin-top: 12px;
}

.mfm-opening-field--wide .mfm-finish-select-side {
    width: 100%;
    max-width: 100%;
    height: 42px;
    font-size: 14px;
}

.mfm-opening-overlap {
    margin: 8px 0 0;
}

.mfm-opening-overlap[hidden],
.mfm-opening-field .mfm-dim-error[hidden] {
    display: none;
}

@media (max-width: 360px) {
    .mfm-opening-grid {
        gap: 10px;
    }

    .mfm-opening-field label {
        font-size: 12px;
    }
}

/* Multi-fenêtres (Fenêtre 2, Fenêtre 3) et Fenêtre intégrée dans la porte */
.mfm-extra-window-block {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed #cbd5e1;
}

.mfm-extra-window-block[hidden],
.mfm-door-window-panel[hidden],
.mfm-subopening-head[hidden] {
    display: none;
}

.mfm-subopening-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.mfm-subopening-title {
    font-size: 13px;
    font-weight: 700;
    color: #0f172a;
}

.mfm-subopening-price {
    font-weight: 600;
    color: #0F4C81;
    margin-left: 6px;
}

.mfm-btn-remove-window {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 600;
    color: #475569;
    cursor: pointer;
    transition: all 0.15s ease;
}

.mfm-add-window-bar[hidden] {
    display: none;
}

.mfm-btn-remove-window:hover {
    border-color: #dc2626;
    color: #dc2626;
    background: #fef2f2;
}

.mfm-add-window-bar {
    margin-top: 12px;
}

.mfm-btn-add-window {
    width: 100%;
    padding: 9px 14px;
    background: #f8fafc;
    border: 1.5px dashed #94a3b8;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    color: #101828;
    cursor: pointer;
    transition: all 0.15s ease;
}

.mfm-btn-add-window:hover {
    background: #F0F6FC;
    border-color: #0F4C81;
    color: #0F4C81;
}

.mfm-btn-add-window[hidden] {
    display: none;
}

.mfm-door-window-box {
    margin-top: 14px;
    padding: 10px 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}

.mfm-switch-row--nested {
    padding: 2px 0;
    border-bottom: 0;
}

.mfm-door-window-panel {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #e2e8f0;
}

.mfm-door-window-hint {
    margin: 0 0 10px !important;
    font-size: 12px;
}
