/* =========================================================
   VISUALISEUR / COMPOSEUR - INTERFACE COMMUNE DESKTOP
   Charge apres les feuilles propres aux deux interfaces.
   ========================================================= */

/* Typographie et bouton d'ajout de mur identiques. */
.av-visualiseur-v0134g .av-panel,
.av-wall-composer-v0130 .avc-panel {
    font-family: inherit !important;
    color: var(--av-text, #151515);
}

.av-visualiseur-v0134g .av-panel-header h2,
.av-wall-composer-v0130 .avc-panel-header h2 {
    margin: 0 !important;
    font-family: "Playfair Display", Georgia, serif !important;
    font-size: clamp(24px, 2vw, 31px) !important;
    font-weight: 500 !important;
    line-height: 1.15 !important;
    letter-spacing: .02em !important;
    text-transform: uppercase !important;
}

.av-visualiseur-v0134g .av-panel-header p,
.av-wall-composer-v0130 .avc-panel-header p {
    margin: 6px 0 0 !important;
    color: var(--av-muted, rgba(20,20,20,.62)) !important;
    font-family: inherit !important;
    font-size: 15px !important;
    line-height: 1.35 !important;
}

.av-visualiseur-v0134g .av-step > label,
.av-wall-composer-v0130 .avc-step > label {
    display: flex !important;
    align-items: baseline !important;
    gap: .25em !important;
    margin: 0 0 9px !important;
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    line-height: 1.3 !important;
}

.av-wall-composer-v0130 .avc-step-title > span:first-child {
    min-width: 0 !important;
    width: auto !important;
}

.av-visualiseur-v0134g .av-wall-actions,
.av-wall-composer-v0130 .av-wall-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
    margin: 10px 0 0 !important;
}

.av-visualiseur-v0134g .av-scale-box,
.av-wall-composer-v0130 .av-scale-box {
    margin: 14px 0 0 !important;
    padding: 12px !important;
    border: 1px solid var(--av-border, rgba(20,20,20,.12)) !important;
    border-radius: 10px !important;
    background: rgba(255,255,255,.56) !important;
}

.av-visualiseur-v0134g .av-scale-title,
.av-wall-composer-v0130 .av-scale-title {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 0 9px !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 650 !important;
    line-height: 1.3 !important;
}

.av-visualiseur-v0134g .av-scale-toggle,
.av-wall-composer-v0130 .av-scale-toggle {
    margin: 0 !important;
}

.av-visualiseur-v0134g .av-step small,
.av-wall-composer-v0130 .avc-step small {
    font-family: inherit !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
}

.av-visualiseur-v0134g .av-panel select,
.av-visualiseur-v0134g .av-panel input[type="number"],
.av-wall-composer-v0130 .avc-panel select,
.av-wall-composer-v0130 .avc-panel input[type="number"] {
    font-family: inherit !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
}

.av-visualiseur-v0134g .av-wall-upload-button,
.av-wall-composer-v0130 .av-wall-upload-button {
    min-height: 54px !important;
    padding: 12px !important;
    gap: 10px !important;
    border: 1px dashed rgba(20,20,20,0.24) !important;
    border-radius: 8px !important;
    background: rgba(255,255,255,0.72) !important;
    color: var(--av-text, #151515) !important;
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    text-align: center !important;
    white-space: nowrap !important;
}

/* Barre d'actions et boutons strictement communs. */
.av-visualiseur-v0134g .av-compose-simulation,
.av-visualiseur-v0134g .av-project-discuss-desktop,
.av-visualiseur-v0134g .av-fullscreen-toggle,
.av-wall-composer-v0130 .avc-toolbar-button,
.av-wall-composer-v0130 .avc-close {
    position: static !important;
    inset: auto !important;
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 38px !important;
    min-height: 38px !important;
    margin: 0 !important;
    padding: 8px 12px !important;
    gap: 8px !important;
    border: 1px solid var(--av-border, rgba(20,20,20,0.12)) !important;
    border-radius: 8px !important;
    background: rgba(255,255,255,0.86) !important;
    color: #111 !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    box-shadow: 0 4px 14px rgba(0,0,0,0.05) !important;
    backdrop-filter: blur(8px);
    box-sizing: border-box !important;
}

@media (min-width: 901px) {
    .av-visualiseur-v0134g .av-fullscreen-toggle {
        width: 38px !important;
        min-width: 38px !important;
        padding: 0 !important;
        font-size: 22px !important;
        font-weight: 300 !important;
    }

    .av-visualiseur-v0134g .av-fullscreen-toggle .av-fullscreen-label {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        overflow: hidden !important;
        clip: rect(0 0 0 0) !important;
        white-space: nowrap !important;
    }
}

.av-wall-composer-v0130 .avc-close {
    width: 38px !important;
    min-width: 38px !important;
    padding: 0 !important;
    font-size: 22px !important;
    font-weight: 300 !important;
}

.av-visualiseur-v0134g .av-preview-toolbar,
.av-wall-composer-v0130 .avc-toolbar {
    position: absolute !important;
    z-index: 30 !important;
    top: 14px !important;
    left: 14px !important;
    right: 14px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-wrap: nowrap !important;
}

/* L'etat de calibrage est une information, pas un bouton. */
.av-visualiseur-v0134g .av-calibration-status,
.av-wall-composer-v0130 .av-calibration-status {
    position: absolute;
    z-index: 20;
    top: 62px;
    right: 16px;
    max-width: calc(100% - 32px);
    color: rgba(255,255,255,0.88);
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1.25;
    text-align: right;
    text-shadow: 0 1px 3px rgba(0,0,0,0.72);
    pointer-events: none;
}

/* Le conteneur complet reste la reference des boutons et du canvas. */
.av-wall-composer-v0130 .avc-canvas-wrap {
    align-items: center !important;
    justify-content: center !important;
}

.av-wall-composer-v0130 .avc-hidden-select {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Selection de mode commune dans le panneau lateral. */
.av-visualiseur-v0134g .av-mode-switch,
.av-wall-composer-v0130 .av-mode-switch {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    margin-top: 14px;
    padding: 4px;
    border: 1px solid var(--av-border, rgba(20,20,20,.12));
    border-radius: 8px;
    background: rgba(243,243,240,.84);
}

.av-visualiseur-v0134g .av-mode-switch-button,
.av-wall-composer-v0130 .av-mode-switch-button {
    min-width: 0;
    min-height: 34px;
    padding: 7px 8px;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: rgba(20,20,20,.68);
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.15;
    cursor: pointer;
}

.av-visualiseur-v0134g .av-mode-switch-button.is-active,
.av-wall-composer-v0130 .av-mode-switch-button.is-active {
    background: #fff;
    color: #151515;
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
}

.av-visualiseur-v0134g .av-mode-label-mobile {
    display: none;
}

@media (max-width: 767px) {
    .av-visualiseur-v0134g .av-mode-switch-button[data-av-open-composition] .av-mode-label-desktop {
        display: none;
    }

    .av-visualiseur-v0134g .av-mode-switch-button[data-av-open-composition] .av-mode-label-mobile {
        display: inline;
    }
}

/* Le composeur devient un mode integre du visualiseur ouvert. */
.av-visualiseur-v0134g.is-composition-mode > .av-wall-composer-v0130.avc-integrated {
    position: absolute !important;
    inset: 0 !important;
    z-index: 100;
    width: 100%;
    height: 100%;
}

.av-wall-composer-v0130.avc-integrated[hidden] {
    display: none !important;
}

/* Bande d'information contextuelle commune, superposee a l'image. */
.av-visualiseur-v0134g .av-info-banner,
.av-wall-composer-v0130 .av-info-banner {
    position: absolute !important;
    z-index: 25;
    left: 50% !important;
    right: auto !important;
    bottom: 14px !important;
    top: auto !important;
    transform: translateX(-50%);
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: auto !important;
    max-width: calc(100% - 28px);
    min-height: 48px;
    margin: 0 !important;
    padding: 9px 12px !important;
    gap: 0 !important;
    overflow: hidden;
    border: 1px solid rgba(20,20,20,.12);
    border-radius: 8px;
    background: rgba(255,255,255,.84);
    color: #151515;
    box-shadow: 0 5px 18px rgba(0,0,0,.08);
    backdrop-filter: blur(10px);
    pointer-events: auto;
}

.av-visualiseur-v0134g .av-info-banner-item,
.av-wall-composer-v0130 .av-info-banner-item {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    min-width: 0;
    padding: 0 14px;
    border-right: 1px solid rgba(20,20,20,.10);
    white-space: nowrap;
}

.av-visualiseur-v0134g .av-info-banner-item:last-child,
.av-wall-composer-v0130 .av-info-banner-item:last-child {
    border-right: 0;
}

.av-visualiseur-v0134g .av-info-banner-item > span,
.av-wall-composer-v0130 .av-info-banner-item > span {
    color: var(--av-muted, rgba(20,20,20,.62));
    font-size: 12px;
}

.av-visualiseur-v0134g .av-info-banner-item > strong,
.av-wall-composer-v0130 .av-info-banner-item > strong {
    min-width: 0;
    margin: 0 !important;
    font-size: 14px !important;
    font-weight: 650;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap !important;
}

.av-wall-composer-v0130 .av-info-banner-formats > strong {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
}

.av-wall-composer-v0130 .av-info-banner {
    flex-wrap: wrap !important;
    width: fit-content !important;
    max-width: min(560px, calc(100% - 28px)) !important;
    min-height: 0;
    padding: 6px 7px !important;
    row-gap: 3px !important;
}

.av-wall-composer-v0130 .av-info-banner-item {
    gap: 4px;
    padding: 0 7px;
}

.av-wall-composer-v0130 .av-info-banner-composition {
    border-right: 0;
}

.av-wall-composer-v0130 .av-info-banner-formats {
    flex: 1 1 100%;
    justify-content: center;
    border-right: 0;
    padding-top: 0;
}

.av-wall-composer-v0130 .av-info-banner-formats > strong {
    flex-wrap: wrap;
    justify-content: center;
    white-space: normal !important;
    overflow: visible;
    text-overflow: clip;
}

.av-wall-composer-v0130 .avc-format-summary-value {
    display: inline-block;
    white-space: nowrap;
}

.av-wall-composer-v0130 .avc-format-summary-custom {
    color: #b46b1f;
}

.av-wall-composer-v0130 .avc-format-summary-separator {
    color: rgba(20,20,20,.32);
    font-weight: 500;
}

.av-visualiseur-v0134g .av-info-banner-formats {
    max-width: min(390px, 35vw);
}

.av-wall-composer-v0130 .av-info-banner-formats {
    max-width: 100%;
}

/* La suppression des cartes restitue toute la hauteur au canvas. */
.av-visualiseur-v0134g.is-fullscreen-preview .av-canvas,
.av-wall-composer-v0130 .avc-canvas {
    width: min(100%, calc((100vh - 36px) * 1200 / 760)) !important;
    max-height: calc(100vh - 36px) !important;
}

.av-visualiseur-v0134g .av-canvas-wrap > .av-toolbar-hint.av-move-artwork {
    bottom: 72px !important;
}

@media (max-width: 1100px) {
    .av-visualiseur-v0134g .av-info-banner-formats {
        display: none;
    }
}

/* Presentation commune, identique dans les deux modes. */
.av-visualiseur-v0134g .av-finition-grid,
.av-wall-composer-v0130 .av-finition-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.av-visualiseur-v0134g .av-finition-card,
.av-wall-composer-v0130 .av-finition-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
    min-height: 88px;
    padding: 9px 7px 8px;
    border: 1px solid rgba(20,20,20,.10);
    border-radius: 9px;
    background: rgba(255,255,255,.72);
    color: var(--av-text, #151515);
    font: inherit;
    font-size: 12px;
    line-height: 1.15;
    cursor: pointer;
    box-shadow: 0 5px 14px rgba(0,0,0,.035);
}

.av-visualiseur-v0134g .av-finition-card:hover,
.av-visualiseur-v0134g .av-finition-card.is-active,
.av-wall-composer-v0130 .av-finition-card:hover,
.av-wall-composer-v0130 .av-finition-card.is-active {
    transform: translateY(-1px);
    border-color: rgba(110,75,42,.58);
    background: rgba(255,255,255,.94);
    box-shadow: 0 8px 22px rgba(0,0,0,.075);
}

.av-visualiseur-v0134g .av-finition-swatch,
.av-wall-composer-v0130 .av-finition-swatch {
    display: block;
    width: 48px;
    height: 36px;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 5px;
    box-shadow: inset 0 0 0 5px rgba(255,255,255,.16), 0 4px 10px rgba(0,0,0,.10);
}

.av-visualiseur-v0134g .av-swatch-simple,
.av-wall-composer-v0130 .av-swatch-simple { background: #f5f2ec; }
.av-visualiseur-v0134g .av-swatch-black,
.av-wall-composer-v0130 .av-swatch-black { background: linear-gradient(135deg,#050505,#272727); }
.av-visualiseur-v0134g .av-swatch-white,
.av-wall-composer-v0130 .av-swatch-white { background: linear-gradient(135deg,#fffdf7,#d8d5cc); }
.av-visualiseur-v0134g .av-swatch-oak,
.av-wall-composer-v0130 .av-swatch-oak { background: linear-gradient(135deg,#dfc190,#a77b45); }
.av-visualiseur-v0134g .av-swatch-walnut-light,
.av-wall-composer-v0130 .av-swatch-walnut-light { background: linear-gradient(135deg,#b47d4f,#704321); }
.av-visualiseur-v0134g .av-swatch-walnut-dark,
.av-wall-composer-v0130 .av-swatch-walnut-dark { background: linear-gradient(135deg,#5a3622,#20110a); }

/* Le choix du mur suit definitivement le modele du composeur. */
.av-visualiseur-v0134g .av-wall-choice-grid,
.av-wall-composer-v0130 .av-wall-choice-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    max-height: 118px !important;
    padding: 6px !important;
}

.av-visualiseur-v0134g .av-wall-choice-item,
.av-wall-composer-v0130 .av-wall-choice-item {
    grid-template-rows: 58px auto !important;
    min-height: 84px !important;
    padding: 5px !important;
}

@media (max-width: 900px) {
    .av-visualiseur-v0134g .av-calibration-status {
        display: none;
    }
}

/* V0.31 - Premier socle d'unification : les composants communs doivent
   gagner sur les anciennes variantes du composeur sans reutiliser la classe
   racine du visualiseur. */
.av-wall-composer-v0130 .av-panel {
    font-family: inherit !important;
    color: var(--av-text, #151515) !important;
}

.av-wall-composer-v0130 .av-step-title {
    display: block !important;
    margin: 0 0 9px !important;
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    line-height: 1.3 !important;
    white-space: normal !important;
    word-spacing: normal !important;
}

.av-visualiseur-v0134g .av-scale-input-row,
.av-wall-composer-v0130 .av-scale-input-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    align-items: stretch !important;
    gap: 8px !important;
}

.av-visualiseur-v0134g .av-scale-input-row input,
.av-wall-composer-v0130 .av-scale-input-row input,
.av-visualiseur-v0134g .av-scale-validate,
.av-wall-composer-v0130 .av-scale-validate {
    min-height: 40px !important;
    height: 40px !important;
    box-sizing: border-box !important;
}

.av-visualiseur-v0134g .av-scale-input-row span,
.av-wall-composer-v0130 .av-scale-input-row span {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 40px !important;
}

.av-wall-composer-v0130 .avc-size-mode {
    cursor: pointer;
}

/* V0.34 - Integration structurelle de la zone de visualisation.
   Le composeur porte maintenant les classes du visualiseur sur la scene,
   donc les dimensions et marges communes sont posees ici. */
.av-visualiseur-v0134g.is-fullscreen-preview,
.av-wall-composer-v0130 .avc-shell {
    grid-template-columns: minmax(320px, 380px) minmax(0, 1fr) !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 18px !important;
    background: var(--av-bg, #f3f3f0) !important;
}

.av-visualiseur-v0134g.is-fullscreen-preview > .av-panel,
.av-wall-composer-v0130 .av-panel {
    width: auto !important;
    min-width: 0 !important;
    height: calc(100vh - 36px) !important;
    min-height: 0 !important;
    padding: 24px !important;
    overflow-y: auto !important;
    border: 1px solid var(--av-border, rgba(20,20,20,.12)) !important;
    border-radius: var(--av-radius, 14px) !important;
    background: linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,255,255,.64)) !important;
    box-shadow: 0 18px 45px rgba(0,0,0,.06) !important;
}

.av-visualiseur-v0134g.is-fullscreen-preview > .av-preview,
.av-wall-composer-v0130 .av-preview {
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: calc(100vh - 36px) !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.av-visualiseur-v0134g.is-fullscreen-preview .av-canvas-wrap,
.av-wall-composer-v0130 .av-canvas-wrap {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.av-visualiseur-v0134g.is-fullscreen-preview .av-preview-toolbar,
.av-wall-composer-v0130 .av-preview-toolbar {
    position: absolute !important;
    z-index: 30 !important;
    top: 14px !important;
    left: 14px !important;
    right: 14px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-wrap: nowrap !important;
    pointer-events: none !important;
}

.av-visualiseur-v0134g.is-fullscreen-preview .av-toolbar-right,
.av-wall-composer-v0130 .av-preview-toolbar > button {
    pointer-events: auto !important;
}

.av-visualiseur-v0134g.is-fullscreen-preview .av-canvas,
.av-wall-composer-v0130 .av-canvas {
    width: min(100%, calc((100vh - 36px) * 1200 / 760)) !important;
    height: auto !important;
    max-width: none !important;
    max-height: calc(100vh - 36px) !important;
    margin: 0 !important;
    border: 1px solid var(--av-border, rgba(20,20,20,.12)) !important;
    border-radius: 8px !important;
    background: var(--av-bg, #f3f3f0) !important;
    box-shadow: 0 18px 45px rgba(0,0,0,.08) !important;
}

/* V0.35 - Boutons, toggle et bloc mur strictement alignes. */
.av-wall-composer-v0130 .av-mode-label-mobile {
    display: none !important;
}

.av-visualiseur-v0134g .av-mode-switch,
.av-wall-composer-v0130 .av-mode-switch {
    margin-top: 14px !important;
    padding: 4px !important;
    gap: 4px !important;
    border: 1px solid var(--av-border, rgba(20,20,20,.12)) !important;
    border-radius: 8px !important;
    background: rgba(243,243,240,.84) !important;
}

.av-visualiseur-v0134g .av-mode-switch-button,
.av-wall-composer-v0130 .av-mode-switch-button {
    min-height: 34px !important;
    padding: 7px 8px !important;
    border-radius: 5px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.15 !important;
}

.av-visualiseur-v0134g.is-fullscreen-preview .av-project-discuss-desktop,
.av-wall-composer-v0130 .av-project-discuss-desktop {
    height: 38px !important;
    min-height: 38px !important;
    padding: 8px 12px !important;
    gap: 8px !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
}

.av-visualiseur-v0134g.is-fullscreen-preview .av-fullscreen-toggle,
.av-wall-composer-v0130 .av-fullscreen-toggle,
.av-wall-composer-v0130 .avc-close {
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 !important;
    border-radius: 8px !important;
    font-size: 22px !important;
    font-weight: 300 !important;
    line-height: 1 !important;
}

.av-visualiseur-v0134g .av-wall-upload-button,
.av-wall-composer-v0130 .av-wall-upload-button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 54px !important;
    padding: 12px !important;
    gap: 10px !important;
    border-radius: 9px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
}

.av-visualiseur-v0134g .av-scale-toggle,
.av-wall-composer-v0130 .av-scale-toggle {
    min-height: 43px !important;
    padding: 9px 12px !important;
    gap: 8px !important;
    border-radius: 8px !important;
    font-weight: 650 !important;
}

.av-visualiseur-v0134g .av-scale-height-label,
.av-wall-composer-v0130 .av-scale-height-label {
    margin: 10px 0 6px !important;
    font-size: 12px !important;
    color: var(--av-muted, rgba(20,20,20,.62)) !important;
    font-weight: 500 !important;
}

/* V0.39 - Derniers ecarts visibles : icones, centrage cm/Valider,
   taille du toggle, grille mur commune et rendu dans la piece. */
.av-visualiseur-v0134g .av-ui-icon,
.av-wall-composer-v0130 .av-ui-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 18px !important;
    width: 18px !important;
    height: 18px !important;
}

.av-visualiseur-v0134g .av-ui-icon img,
.av-wall-composer-v0130 .av-ui-icon img {
    display: block !important;
    width: 18px !important;
    height: 18px !important;
    max-width: none !important;
    object-fit: contain !important;
}

.av-visualiseur-v0134g .av-project-discuss-desktop,
.av-wall-composer-v0130 .av-project-discuss-desktop {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 8px 12px !important;
    height: 38px !important;
    min-height: 38px !important;
    box-sizing: border-box !important;
}

.av-visualiseur-v0134g .av-mode-switch,
.av-wall-composer-v0130 .av-mode-switch {
    width: 100% !important;
    box-sizing: border-box !important;
}

.av-visualiseur-v0134g .av-mode-switch-button,
.av-wall-composer-v0130 .av-mode-switch-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 34px !important;
    min-height: 34px !important;
    box-sizing: border-box !important;
}

.av-visualiseur-v0134g .av-scale-input-row,
.av-wall-composer-v0130 .av-scale-input-row {
    align-items: center !important;
}

.av-visualiseur-v0134g .av-scale-input-row > span,
.av-wall-composer-v0130 .av-scale-input-row > span {
    align-self: center !important;
    justify-content: center !important;
    height: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    line-height: 40px !important;
}

.av-visualiseur-v0134g .av-scale-input-row input,
.av-wall-composer-v0130 .av-scale-input-row input,
.av-visualiseur-v0134g .av-scale-validate,
.av-wall-composer-v0130 .av-scale-validate {
    align-self: center !important;
    height: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    line-height: 1 !important;
}

.av-wall-composer-v0130 .av-ambiance-step {
    padding-top: 4px !important;
}

.av-wall-composer-v0130 .av-ambiance-title {
    align-items: center !important;
    gap: 7px !important;
}

.av-wall-composer-v0130 .av-toggle-line {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 10px 12px !important;
    border: 1px solid var(--av-border, rgba(20,20,20,.14)) !important;
    border-radius: 8px !important;
    background: rgba(255,255,255,0.66) !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
}

.av-wall-composer-v0130 .av-toggle-line input {
    width: 17px !important;
    height: 17px !important;
    margin: 0 !important;
    accent-color: #4f3b2a !important;
    flex: 0 0 auto !important;
}

/* V0.42 - Le switch de mode doit avoir la meme respiration dans les deux panneaux.
   La visionneuse reste rendue en PHP, mais le composant visible partage ces cotes. */
.av-visualiseur-v0134g .av-panel-header,
.av-wall-composer-v0130 .avc-panel-header,
.av-wall-composer-v0130 .av-panel-header {
    margin-bottom: 24px !important;
    padding-right: 0 !important;
}

.av-visualiseur-v0134g .av-mode-switch,
.av-wall-composer-v0130 .av-mode-switch {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    margin: 14px 0 0 !important;
    padding: 4px !important;
    gap: 4px !important;
    border: 1px solid var(--av-border, rgba(20,20,20,.12)) !important;
    border-radius: 8px !important;
    background: rgba(243,243,240,.84) !important;
    box-sizing: border-box !important;
}

.av-visualiseur-v0134g .av-mode-switch-button,
.av-wall-composer-v0130 .av-mode-switch-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 34px !important;
    min-height: 34px !important;
    margin: 0 !important;
    padding: 7px 8px !important;
    border: 0 !important;
    border-radius: 5px !important;
    background: transparent !important;
    color: rgba(20,20,20,.68) !important;
    font: inherit !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.15 !important;
    text-align: center !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

.av-visualiseur-v0134g .av-mode-switch-button.is-active,
.av-wall-composer-v0130 .av-mode-switch-button.is-active {
    background: #fff !important;
    color: #151515 !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.08) !important;
}

.av-visualiseur-v0134g .av-mode-label-desktop,
.av-wall-composer-v0130 .av-mode-label-desktop {
    display: inline !important;
}

.av-visualiseur-v0134g .av-mode-label-mobile,
.av-wall-composer-v0130 .av-mode-label-mobile {
    display: none !important;
}

@media (max-width: 767px) {
    .av-visualiseur-v0134g .av-mode-switch-button[data-av-open-composition] .av-mode-label-desktop {
        display: none !important;
    }

    .av-visualiseur-v0134g .av-mode-switch-button[data-av-open-composition] .av-mode-label-mobile {
        display: inline !important;
    }
}

/* V0.43 - Aide commune sous forme de petit bouton deroulant. */
.av-visualiseur-v0134g .av-canvas-help,
.av-wall-composer-v0130 .av-canvas-help {
    position: absolute !important;
    z-index: 28 !important;
    left: 16px !important;
    bottom: 14px !important;
    margin: 0 !important;
    font-family: inherit !important;
}

.av-visualiseur-v0134g .av-canvas-help-toggle,
.av-wall-composer-v0130 .av-canvas-help-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 34px !important;
    padding: 8px 13px !important;
    border: 1px solid rgba(20,20,20,.12) !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.9) !important;
    color: rgba(20,20,20,.86) !important;
    box-shadow: 0 6px 18px rgba(0,0,0,.07) !important;
    backdrop-filter: blur(10px) !important;
    cursor: pointer !important;
    font-size: 12px !important;
    font-weight: 650 !important;
    line-height: 1 !important;
    list-style: none !important;
}

.av-visualiseur-v0134g .av-canvas-help-toggle::-webkit-details-marker,
.av-wall-composer-v0130 .av-canvas-help-toggle::-webkit-details-marker {
    display: none !important;
}

.av-visualiseur-v0134g .av-canvas-help-toggle::after,
.av-wall-composer-v0130 .av-canvas-help-toggle::after {
    content: "";
    width: 6px;
    height: 6px;
    margin-left: 8px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(45deg) translateY(-1px);
    opacity: .7;
}

.av-visualiseur-v0134g .av-canvas-help[open] .av-canvas-help-toggle::after,
.av-wall-composer-v0130 .av-canvas-help[open] .av-canvas-help-toggle::after {
    transform: rotate(225deg) translateY(-1px);
}

.av-visualiseur-v0134g .av-canvas-help-panel,
.av-wall-composer-v0130 .av-canvas-help-panel {
    position: absolute !important;
    left: 0 !important;
    bottom: calc(100% + 8px) !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0 !important;
    min-height: 38px !important;
    padding: 8px 10px !important;
    border: 1px solid rgba(20,20,20,.12) !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.92) !important;
    color: rgba(20,20,20,.86) !important;
    box-shadow: 0 8px 22px rgba(0,0,0,.09) !important;
    backdrop-filter: blur(10px) !important;
    white-space: nowrap !important;
}

.av-visualiseur-v0134g .av-hint-item,
.av-wall-composer-v0130 .av-hint-item {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
}

.av-visualiseur-v0134g .av-hint-item + .av-hint-item,
.av-wall-composer-v0130 .av-hint-item + .av-hint-item {
    border-left: 1px solid rgba(20,20,20,.12) !important;
}

.av-visualiseur-v0134g .av-hint-icon,
.av-wall-composer-v0130 .av-hint-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 18px !important;
    height: 18px !important;
    flex: 0 0 auto !important;
}

.av-visualiseur-v0134g .av-hint-icon img,
.av-wall-composer-v0130 .av-hint-icon img {
    display: block !important;
    width: 18px !important;
    height: 18px !important;
}

.av-visualiseur-v0134g .av-hint-mobile-only,
.av-wall-composer-v0130 .av-hint-mobile-only {
    display: none !important;
}

/* V0.43 - La liste des murs suit le meme modele que le composeur. */
.av-visualiseur-v0134g .av-wall-example-picker.av-wall-choice-grid,
.av-wall-composer-v0130 .av-wall-example-picker.av-wall-choice-grid,
.av-visualiseur-v0134g .av-wall-choice-grid,
.av-wall-composer-v0130 .av-wall-choice-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    max-height: 118px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 6px !important;
    border: 1px solid var(--av-border, rgba(20,20,20,.12)) !important;
    border-radius: 9px !important;
    background: rgba(255,255,255,.62) !important;
}

.av-visualiseur-v0134g .av-wall-example-item.av-wall-choice-item,
.av-wall-composer-v0130 .av-wall-example-item.av-wall-choice-item,
.av-visualiseur-v0134g .av-wall-choice-item,
.av-wall-composer-v0130 .av-wall-choice-item {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: 58px auto !important;
    gap: 5px !important;
    align-items: start !important;
    min-height: 84px !important;
    padding: 5px !important;
}

.av-visualiseur-v0134g .av-wall-example-item.av-wall-choice-item img,
.av-wall-composer-v0130 .av-wall-example-item.av-wall-choice-item img,
.av-visualiseur-v0134g .av-wall-choice-item img,
.av-wall-composer-v0130 .av-wall-choice-item img,
.av-visualiseur-v0134g .av-wall-choice-swatch,
.av-wall-composer-v0130 .av-wall-choice-swatch {
    width: 100% !important;
    height: 58px !important;
    object-fit: cover !important;
}

@media (max-width: 900px) {
    .av-visualiseur-v0134g.is-mobile-open .av-canvas-help {
        left: 12px !important;
        bottom: calc(env(safe-area-inset-bottom,0px) + 86px) !important;
    }

    .av-visualiseur-v0134g.is-mobile-open.is-mobile-settings-open .av-canvas-help {
        display: none !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-hint-desktop-only {
        display: none !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-hint-mobile-only {
        display: inline-flex !important;
    }
}

/* V109 - Polissage visuel leger : densite, lisibilite, cohesion. */
.av-visualiseur-v0134g .av-info-banner,
.av-wall-composer-v0130 .av-info-banner {
    min-height: 42px !important;
    padding: 7px 10px !important;
    border-color: rgba(35,32,26,.11) !important;
    background: rgba(250,250,247,.88) !important;
    box-shadow: 0 10px 28px rgba(35,32,26,.10) !important;
}

.av-visualiseur-v0134g .av-info-banner-item,
.av-wall-composer-v0130 .av-info-banner-item {
    padding: 0 10px !important;
}

.av-visualiseur-v0134g .av-info-banner-item > span,
.av-wall-composer-v0130 .av-info-banner-item > span {
    font-size: 11.5px !important;
    letter-spacing: .01em !important;
}

.av-visualiseur-v0134g .av-info-banner-item > strong,
.av-wall-composer-v0130 .av-info-banner-item > strong {
    font-size: 13px !important;
}

.av-wall-composer-v0130 .av-info-banner {
    max-width: min(600px, calc(100% - 28px)) !important;
    row-gap: 2px !important;
}

.av-wall-composer-v0130 .avc-format-summary-separator {
    margin: 0 1px !important;
}

.av-visualiseur-v0134g .av-finition-card,
.av-wall-composer-v0130 .av-finition-card {
    min-height: 82px !important;
    padding: 8px 7px !important;
    box-shadow: 0 4px 12px rgba(0,0,0,.028) !important;
}

.av-visualiseur-v0134g .av-finition-card:hover,
.av-visualiseur-v0134g .av-finition-card.is-active,
.av-wall-composer-v0130 .av-finition-card:hover,
.av-wall-composer-v0130 .av-finition-card.is-active {
    box-shadow: 0 7px 18px rgba(0,0,0,.065) !important;
}

.av-visualiseur-v0134g .av-finition-swatch,
.av-wall-composer-v0130 .av-finition-swatch {
    height: 32px !important;
}

.av-wall-composer-v0130 .avc-panel {
    padding: 21px 22px !important;
}

.av-wall-composer-v0130 .avc-panel-header {
    margin-bottom: 20px !important;
}

.av-wall-composer-v0130 .avc-step {
    margin-top: 16px !important;
}

.av-wall-composer-v0130 .avc-preview {
    background: #efede7 !important;
}

.av-wall-composer-v0130 .avc-canvas,
.av-visualiseur-v0134g .av-canvas {
    box-shadow: 0 16px 38px rgba(30,28,24,.07) !important;
}

/* V0.117 - Plein ecran cover sans deformation.
   Le canvas garde son ratio natif et deborde si necessaire ; le conteneur rogne. */
.av-visualiseur-v0134g.is-fullscreen-preview .av-canvas-wrap,
.av-wall-composer-v0130 .av-canvas-wrap {
    overflow: hidden !important;
}

.av-visualiseur-v0134g.is-fullscreen-preview .av-canvas,
.av-wall-composer-v0130 .av-canvas {
    width: max(100%, calc((100vh - 36px) * 1200 / 760)) !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
    aspect-ratio: 1200 / 760 !important;
    flex: 0 0 auto !important;
    margin: auto !important;
}

/* V0.126 - Regles finales telephone chargees en dernier.
   Objectif : tous les controles doivent etre visibles a l'arrivee.
   Ne modifie pas le canvas ni le zoom. */
@media (max-width: 900px) {
    .av-visualiseur-v0134g.is-mobile-open > .av-panel {
        transform: translateY(calc(100% - 104px)) !important;
        overflow: hidden !important;
    }

    .av-visualiseur-v0134g.is-mobile-open.is-mobile-settings-open > .av-panel {
        transform: translateY(0) !important;
        overflow-y: auto !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-mobile-panel-handle {
        height: 104px !important;
        min-height: 104px !important;
        padding: 12px 16px 14px !important;
        margin: 0 -16px 16px !important;
    }

    .av-visualiseur-v0134g.is-mobile-open:not(.is-mobile-settings-open) > .av-panel > *:not(.av-mobile-panel-handle) {
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-preview-toolbar {
        position: fixed !important;
        top: calc(env(safe-area-inset-top,0px) + 12px) !important;
        left: 12px !important;
        right: 12px !important;
        bottom: auto !important;
        z-index: 1000006 !important;
        display: flex !important;
        justify-content: flex-end !important;
        align-items: center !important;
        pointer-events: none !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-toolbar-right,
    .av-visualiseur-v0134g.is-mobile-open .av-toolbar-actions {
        display: grid !important;
        grid-template-columns: minmax(0, auto) 44px !important;
        align-items: center !important;
        justify-content: end !important;
        gap: 8px !important;
        width: auto !important;
        max-width: calc(100vw - 24px) !important;
        pointer-events: none !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-project-discuss-desktop {
        grid-column: 1 !important;
        width: auto !important;
        max-width: calc(100vw - 82px) !important;
        height: 44px !important;
        min-height: 44px !important;
        padding: 0 14px !important;
        border: 1px solid rgba(35,35,30,.12) !important;
        border-radius: 8px !important;
        background: rgba(246,246,242,.96) !important;
        color: #161613 !important;
        box-shadow: 0 10px 28px rgba(30,30,25,.14) !important;
        pointer-events: auto !important;
        white-space: nowrap !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-project-discuss-desktop span:not(.av-ui-icon) {
        max-width: calc(100vw - 136px) !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-project-discuss-desktop .av-ui-icon img {
        filter: none !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-fullscreen-toggle {
        grid-column: 2 !important;
        position: static !important;
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
        padding: 0 !important;
        border-radius: 8px !important;
        background: rgba(246,246,242,.96) !important;
        color: #161613 !important;
        pointer-events: auto !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-fullscreen-toggle .av-fullscreen-label,
    .av-visualiseur-v0134g.is-mobile-open .av-fullscreen-toggle img {
        display: none !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-fullscreen-toggle .av-ui-icon {
        font-size: 0 !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-fullscreen-toggle .av-ui-icon::before {
        content: "\00d7" !important;
        display: block !important;
        font-size: 24px !important;
        line-height: 1 !important;
        font-weight: 400 !important;
        color: currentColor !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-canvas-help {
        position: fixed !important;
        left: 12px !important;
        right: auto !important;
        bottom: calc(env(safe-area-inset-bottom,0px) + 118px) !important;
        z-index: 1000006 !important;
        display: block !important;
    }

    .av-visualiseur-v0134g.is-mobile-open.is-mobile-settings-open .av-canvas-help {
        display: none !important;
    }
}

/* V0.127 - Telephone paysage : on bloque l'interface et on demande le portrait. */
@media (max-width: 900px) and (max-height: 520px) and (orientation: landscape) {
    .av-visualiseur-v0134g.is-mobile-open > .av-preview,
    .av-visualiseur-v0134g.is-mobile-open > .av-panel,
    .av-visualiseur-v0134g.is-mobile-open .av-preview-toolbar,
    .av-visualiseur-v0134g.is-mobile-open .av-canvas-help {
        display: none !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-orientation-warning {
        position: fixed !important;
        inset: 0 !important;
        z-index: 1000010 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-direction: column !important;
        gap: 10px !important;
        padding: 28px !important;
        text-align: center !important;
        background: #f3f3f0 !important;
        color: #161613 !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-orientation-warning span {
        display: block !important;
        font-size: 38px !important;
        line-height: 1 !important;
        opacity: .52 !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-orientation-warning strong {
        display: block !important;
        font-size: 18px !important;
        line-height: 1.2 !important;
    }

    .av-visualiseur-v0134g.is-mobile-open .av-orientation-warning small {
        display: block !important;
        max-width: 280px !important;
        font-size: 13px !important;
        line-height: 1.35 !important;
        color: rgba(22,22,19,.68) !important;
    }
}

/* V0.128 - Essai visuel : interface plus nette, plus actuelle.
   Couche experimentale CSS uniquement. */
.av-visualiseur-v0134g,
.av-wall-composer-v0130 {
    --av-ui-ink: #171511;
    --av-ui-muted: rgba(23,21,17,.58);
    --av-ui-line: rgba(42,37,29,.12);
    --av-ui-paper: rgba(250,249,245,.86);
    --av-ui-paper-strong: rgba(255,255,252,.94);
    --av-ui-accent: #8f744d;
}

.av-visualiseur-v0134g .av-panel,
.av-wall-composer-v0130 .av-panel {
    background:
        linear-gradient(180deg, rgba(255,255,252,.96), rgba(246,245,240,.90)) !important;
    border-color: rgba(38,34,28,.10) !important;
    box-shadow: 0 18px 50px rgba(36,32,26,.10) !important;
}

.av-visualiseur-v0134g .av-panel-header,
.av-wall-composer-v0130 .av-panel-header {
    border-bottom: 1px solid rgba(38,34,28,.08) !important;
    padding-bottom: 14px !important;
}

.av-visualiseur-v0134g .av-panel-header h2,
.av-wall-composer-v0130 .av-panel-header h2 {
    color: var(--av-ui-ink) !important;
    letter-spacing: -.01em !important;
}

.av-visualiseur-v0134g .av-panel-header p,
.av-wall-composer-v0130 .av-panel-header p {
    color: var(--av-ui-muted) !important;
}

.av-visualiseur-v0134g .av-step,
.av-wall-composer-v0130 .avc-step,
.av-wall-composer-v0130 .av-step {
    border-top-color: rgba(38,34,28,.075) !important;
}

.av-visualiseur-v0134g .av-step > label,
.av-wall-composer-v0130 .avc-step > label,
.av-wall-composer-v0130 .av-step > label {
    color: var(--av-ui-ink) !important;
    letter-spacing: .01em !important;
}

.av-visualiseur-v0134g .av-mode-switch,
.av-wall-composer-v0130 .avc-mode-switch {
    background: rgba(238,236,229,.70) !important;
    border-color: rgba(38,34,28,.10) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.75) !important;
}

.av-visualiseur-v0134g .av-mode-switch-button,
.av-wall-composer-v0130 .avc-mode-switch-button {
    border-radius: 7px !important;
    color: rgba(23,21,17,.65) !important;
}

.av-visualiseur-v0134g .av-mode-switch-button.is-active,
.av-wall-composer-v0130 .avc-mode-switch-button.is-active {
    background: rgba(255,255,252,.96) !important;
    color: var(--av-ui-ink) !important;
    box-shadow: 0 8px 22px rgba(38,34,28,.10) !important;
}

.av-visualiseur-v0134g .av-wall-upload-button,
.av-wall-composer-v0130 .av-wall-upload-button,
.av-visualiseur-v0134g .av-scale-toggle,
.av-wall-composer-v0130 .av-scale-toggle,
.av-visualiseur-v0134g .av-scale-validate,
.av-wall-composer-v0130 .av-scale-validate {
    border-color: rgba(38,34,28,.12) !important;
    background: rgba(255,255,252,.86) !important;
    box-shadow: 0 8px 24px rgba(38,34,28,.06) !important;
}

/* V132.1 — le bouton de validation du calibrage doit rester lisible.
   La règle esthétique ci-dessus le rendait blanc comme les champs de saisie. */
.av-visualiseur-v0134g .av-scale-input-row,
.av-wall-composer-v0130 .av-scale-input-row {
    grid-template-columns: minmax(0, 1fr) auto minmax(58px, auto) !important;
}

.av-visualiseur-v0134g .av-scale-validate,
.av-wall-composer-v0130 .av-scale-validate {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 58px !important;
    padding: 0 14px !important;
    border-color: rgba(20,18,15,.82) !important;
    background: rgba(22,20,16,.94) !important;
    color: #fff !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
    box-shadow: 0 8px 22px rgba(20,18,15,.13) !important;
}

.av-visualiseur-v0134g .av-wall-upload-button:hover,
.av-wall-composer-v0130 .av-wall-upload-button:hover,
.av-visualiseur-v0134g .av-scale-toggle:hover,
.av-wall-composer-v0130 .av-scale-toggle:hover {
    border-color: rgba(143,116,77,.38) !important;
    background: #fff !important;
    transform: translateY(-1px) !important;
}

.av-visualiseur-v0134g .av-panel select,
.av-wall-composer-v0130 .av-panel select,
.av-visualiseur-v0134g .av-panel input[type="number"],
.av-wall-composer-v0130 .av-panel input[type="number"] {
    border-color: rgba(38,34,28,.12) !important;
    background: rgba(255,255,252,.86) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.75) !important;
}

.av-visualiseur-v0134g .av-artwork-thumb,
.av-wall-composer-v0130 .avc-artwork-thumb,
.av-visualiseur-v0134g .av-wall-choice-item,
.av-wall-composer-v0130 .av-wall-choice-item {
    border-color: rgba(38,34,28,.10) !important;
    background: rgba(255,255,252,.76) !important;
    box-shadow: 0 6px 18px rgba(38,34,28,.055) !important;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease !important;
}

.av-visualiseur-v0134g .av-artwork-thumb:hover,
.av-wall-composer-v0130 .avc-artwork-thumb:hover,
.av-visualiseur-v0134g .av-wall-choice-item:hover,
.av-wall-composer-v0130 .av-wall-choice-item:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 10px 26px rgba(38,34,28,.09) !important;
    background: rgba(255,255,252,.96) !important;
}

.av-visualiseur-v0134g .av-artwork-thumb.is-active,
.av-wall-composer-v0130 .avc-artwork-thumb.is-active,
.av-visualiseur-v0134g .av-wall-choice-item.is-active,
.av-wall-composer-v0130 .av-wall-choice-item.is-active {
    border-color: rgba(143,116,77,.68) !important;
    box-shadow: 0 0 0 2px rgba(143,116,77,.16), 0 10px 28px rgba(38,34,28,.10) !important;
}

.av-visualiseur-v0134g .av-finition-card,
.av-wall-composer-v0130 .av-finition-card {
    background: rgba(255,255,252,.78) !important;
    border-color: rgba(38,34,28,.105) !important;
    box-shadow: 0 7px 18px rgba(38,34,28,.045) !important;
}

.av-visualiseur-v0134g .av-finition-card.is-active,
.av-wall-composer-v0130 .av-finition-card.is-active {
    border-color: rgba(143,116,77,.68) !important;
    background: rgba(255,255,252,.98) !important;
    box-shadow: 0 0 0 2px rgba(143,116,77,.14), 0 10px 26px rgba(38,34,28,.09) !important;
}

.av-visualiseur-v0134g .av-preview,
.av-wall-composer-v0130 .av-preview {
    background:
        radial-gradient(circle at 50% 42%, rgba(255,255,255,.38), rgba(255,255,255,0) 42%),
        linear-gradient(180deg, #f4f2ec, #ebe8df) !important;
}

.av-visualiseur-v0134g .av-canvas-wrap,
.av-wall-composer-v0130 .av-canvas-wrap {
    background:
        linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,0)) !important;
}

.av-visualiseur-v0134g .av-canvas,
.av-wall-composer-v0130 .av-canvas {
    box-shadow:
        0 26px 68px rgba(35,31,25,.16),
        0 1px 0 rgba(255,255,255,.85) inset !important;
}

.av-visualiseur-v0134g .av-info-banner,
.av-wall-composer-v0130 .av-info-banner {
    border-color: rgba(38,34,28,.11) !important;
    background: rgba(255,255,252,.82) !important;
    box-shadow: 0 18px 42px rgba(38,34,28,.13) !important;
    backdrop-filter: blur(18px) saturate(1.08) !important;
}

.av-visualiseur-v0134g .av-project-discuss,
.av-wall-composer-v0130 .av-project-discuss,
.av-visualiseur-v0134g .av-fullscreen-toggle,
.av-wall-composer-v0130 .av-fullscreen-toggle,
.av-wall-composer-v0130 .avc-close {
    border-color: rgba(38,34,28,.12) !important;
    background: rgba(255,255,252,.88) !important;
    color: var(--av-ui-ink) !important;
    box-shadow: 0 10px 28px rgba(38,34,28,.10) !important;
}

.av-visualiseur-v0134g .av-canvas-help-toggle,
.av-wall-composer-v0130 .av-canvas-help-toggle {
    background: rgba(255,255,252,.90) !important;
    border-color: rgba(38,34,28,.12) !important;
    box-shadow: 0 10px 26px rgba(38,34,28,.10) !important;
}

@media (max-width: 900px) {
    .av-visualiseur-v0134g.is-mobile-open .av-project-discuss-desktop,
    .av-visualiseur-v0134g.is-mobile-open .av-fullscreen-toggle,
    .av-visualiseur-v0134g.is-mobile-open .av-canvas-help-toggle {
        background: rgba(255,255,252,.94) !important;
    }
}

/* V0.129 - Harmonisation fine des marges visualiseur / composition. */
.av-visualiseur-v0134g.is-fullscreen-preview > .av-panel,
.av-wall-composer-v0130 .avc-panel,
.av-wall-composer-v0130 .av-panel {
    padding: 22px 22px 24px !important;
}

.av-visualiseur-v0134g .av-panel-header,
.av-wall-composer-v0130 .avc-panel-header,
.av-wall-composer-v0130 .av-panel-header {
    margin-bottom: 20px !important;
    padding-bottom: 15px !important;
}

.av-visualiseur-v0134g .av-step,
.av-wall-composer-v0130 .avc-step,
.av-wall-composer-v0130 .av-step {
    margin-top: 16px !important;
    padding-top: 16px !important;
}

.av-visualiseur-v0134g .av-step:first-of-type,
.av-wall-composer-v0130 .avc-step:first-of-type,
.av-wall-composer-v0130 .av-step:first-of-type {
    margin-top: 0 !important;
}

.av-visualiseur-v0134g .av-ambiance-title,
.av-wall-composer-v0130 .av-ambiance-title {
    gap: 0 !important;
}

.av-visualiseur-v0134g .av-ambiance-step .av-info-dot,
.av-wall-composer-v0130 .av-ambiance-step .av-info-dot,
.av-wall-composer-v0130 .av-ambiance-step .av-inline-help {
    display: none !important;
}

.av-visualiseur-v0134g .av-toggle-line,
.av-wall-composer-v0130 .av-toggle-line {
    min-height: 42px !important;
    padding: 10px 12px !important;
    border: 1px solid rgba(38,34,28,.10) !important;
    border-radius: 8px !important;
    background: rgba(255,255,252,.64) !important;
}

.av-visualiseur-v0134g .av-wall-choice-grid,
.av-wall-composer-v0130 .av-wall-choice-grid,
.av-visualiseur-v0134g .av-artwork-picker,
.av-wall-composer-v0130 .avc-artwork-picker {
    gap: 8px !important;
}
