/* =========================================================
   CATINONE.FR — GLOBAL CSS FIX V1
   Correctifs base documentaire, actualités, boutons natifs
   ========================================================= */

/* Reset boutons natifs */
button,
input,
select,
textarea {
    font-family: inherit;
}

button {
    appearance: none;
    -webkit-appearance: none;
}

/* Layout principal */
.main-container {
    width: min(1220px, calc(100vw - 36px)) !important;
    margin: 0 auto !important;
}

/* Recherche documentaire */
.doc-search-panel {
    width: 100% !important;
    max-width: 880px !important;
    margin-top: 30px !important;
    padding: 12px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.68) !important;
    border: 1px solid rgba(255,255,255,.9) !important;
    box-shadow: 0 22px 58px rgba(31,36,64,.10) !important;
}

.doc-search {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    gap: 10px !important;
    align-items: center !important;
}

.doc-search input[type="search"] {
    width: 100% !important;
    height: 56px !important;
    min-width: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 999px !important;
    padding: 0 22px !important;
    background: rgba(255,255,255,.86) !important;
    color: var(--text) !important;
    font-size: 1rem !important;
    font-weight: 850 !important;
}

/* Bibliothèque */
.doc-layout {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 320px minmax(0,1fr) !important;
    gap: 24px !important;
    align-items: start !important;
    margin-top: 24px !important;
}

.doc-sidebar {
    position: sticky !important;
    top: 112px !important;
    align-self: start !important;
}

.filter-zone {
    display: grid !important;
    gap: 18px !important;
    margin-top: 18px !important;
}

.filter-group {
    padding: 18px !important;
    border-radius: 26px !important;
    background: rgba(255,255,255,.54) !important;
    border: 1px solid rgba(255,255,255,.86) !important;
}

.filter-title {
    display: block !important;
    margin-bottom: 12px !important;
    color: #424a62 !important;
    font-size: .76rem !important;
    font-weight: 1000 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
}

.filter-pills {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 9px !important;
}

button.filter-pill,
.filter-pill {
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 38px !important;
    padding: 0 14px !important;
    border-radius: 999px !important;
    color: #535d76 !important;
    background: rgba(255,255,255,.76) !important;
    border: 1px solid rgba(148,163,184,.18) !important;
    box-shadow: 0 8px 18px rgba(31,36,64,.05) !important;
    font-size: .84rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

button.filter-pill:hover,
button.filter-pill.active,
.filter-pill:hover,
.filter-pill.active {
    color: #fff !important;
    background: linear-gradient(135deg, var(--violet), var(--blue)) !important;
    box-shadow: 0 12px 26px rgba(99,102,241,.18) !important;
}

/* Résultats bibliothèque */
.result-toolbar {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 18px !important;
}

.result-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 22px !important;
}

.result-card {
    display: block !important;
    position: relative !important;
    overflow: hidden !important;
    min-height: 330px !important;
    padding: 24px !important;
    border-radius: 32px !important;
    background: rgba(255,255,255,.62) !important;
    border: 1px solid rgba(255,255,255,.9) !important;
    box-shadow: 0 22px 55px rgba(31,36,64,.10) !important;
    backdrop-filter: blur(24px) !important;
    -webkit-backdrop-filter: blur(24px) !important;
}

.result-card::after {
    content: "" !important;
    position: absolute !important;
    width: 190px !important;
    height: 190px !important;
    right: -92px !important;
    top: -92px !important;
    border-radius: 50% !important;
    background: linear-gradient(135deg, rgba(139,92,246,.22), rgba(56,189,248,.16)) !important;
}

.result-card > * {
    position: relative !important;
    z-index: 2 !important;
}

.result-top {
    display: flex !important;
    gap: 16px !important;
    align-items: flex-start !important;
}

.result-thumb {
    flex: 0 0 82px !important;
    width: 82px !important;
    height: 82px !important;
    border-radius: 26px !important;
    display: grid !important;
    place-items: center !important;
    background:
        radial-gradient(circle at 30% 25%, rgba(255,255,255,.95), transparent 16%),
        linear-gradient(135deg, rgba(139,92,246,.28), rgba(56,189,248,.22), rgba(52,211,153,.18)) !important;
    border: 1px solid rgba(255,255,255,.90) !important;
    color: #6d28d9 !important;
    font-weight: 1000 !important;
    font-size: 1.1rem !important;
}

.result-card h3 {
    margin: 0 0 10px !important;
    font-size: 1.55rem !important;
    font-weight: 1000 !important;
    letter-spacing: -.055em !important;
}

.result-desc {
    margin: 18px 0 !important;
    color: var(--muted) !important;
    line-height: 1.65 !important;
    font-weight: 700 !important;
}

.result-tags {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin: 16px 0 20px !important;
}

.market-strip {
    display: grid !important;
    grid-template-columns: repeat(3,1fr) !important;
    gap: 8px !important;
    margin-top: 16px !important;
}

.market-strip-item {
    padding: 12px !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.62) !important;
    border: 1px solid rgba(255,255,255,.78) !important;
}

/* Actualités */
.news-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 22px !important;
}

.news-card {
    display: block !important;
    position: relative !important;
    overflow: hidden !important;
    min-height: 300px !important;
    padding: 26px !important;
    border-radius: 32px !important;
    background: rgba(255,255,255,.60) !important;
    border: 1px solid rgba(255,255,255,.90) !important;
    box-shadow: 0 22px 55px rgba(31,36,64,.10) !important;
    backdrop-filter: blur(24px) !important;
    -webkit-backdrop-filter: blur(24px) !important;
}

.news-card::after {
    content: "" !important;
    position: absolute !important;
    width: 210px !important;
    height: 210px !important;
    right: -105px !important;
    top: -105px !important;
    border-radius: 50% !important;
    background: linear-gradient(135deg, rgba(139,92,246,.22), rgba(251,113,133,.18)) !important;
}

.news-card > * {
    position: relative !important;
    z-index: 2 !important;
}

.news-meta,
.news-actions,
.news-filterbar {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
}

.news-filterbar a {
    min-height: 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    padding: 0 14px !important;
    border-radius: 999px !important;
    color: #535d76 !important;
    background: rgba(255,255,255,.70) !important;
    border: 1px solid rgba(148,163,184,.18) !important;
    font-weight: 900 !important;
}

.news-filterbar a.active,
.news-filterbar a:hover {
    color: white !important;
    background: linear-gradient(135deg, var(--violet), var(--blue)) !important;
}

.news-card h2,
.news-card h3 {
    margin: 0 0 12px !important;
    font-size: clamp(1.45rem, 2.4vw, 2rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -.055em !important;
    font-weight: 1000 !important;
}

.news-excerpt {
    color: var(--muted) !important;
    line-height: 1.65 !important;
    font-weight: 680 !important;
}

.alert-level {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px 12px !important;
    border-radius: 999px !important;
    font-size: .78rem !important;
    font-weight: 950 !important;
    border: 1px solid rgba(255,255,255,.82) !important;
}

/* Boutons */
.btn-premium,
.btn-soft,
.btn-success-soft,
.btn-warning-soft,
.btn-danger-soft {
    appearance: none !important;
    -webkit-appearance: none !important;
    border: 0 !important;
    text-decoration: none !important;
}

/* Responsive */
@media (max-width: 1080px) {
    .doc-layout {
        grid-template-columns: 1fr !important;
    }

    .doc-sidebar {
        position: static !important;
    }
}

@media (max-width: 780px) {
    .doc-search-panel {
        border-radius: 28px !important;
    }

    .doc-search {
        grid-template-columns: 1fr !important;
    }

    .doc-search input[type="search"] {
        border-radius: 22px !important;
    }

    .result-grid,
    .news-grid {
        grid-template-columns: 1fr !important;
    }

    .market-strip {
        grid-template-columns: 1fr !important;
    }
}


/* =========================================================
   OBSERVATOIRE CSS FIX V2 — forced public layout
   ========================================================= */

body .observatoire-hero {
    padding: clamp(32px, 5vw, 68px) !important;
    margin-bottom: 24px !important;
}

body .obs-kpi-grid {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 16px !important;
    margin: 24px 0 !important;
}

body .obs-kpi {
    display: block !important;
    padding: 22px !important;
    border-radius: 28px !important;
    background: rgba(255,255,255,.60) !important;
    border: 1px solid rgba(255,255,255,.88) !important;
    box-shadow: 0 20px 48px rgba(31,36,64,.09) !important;
    backdrop-filter: blur(20px) !important;
}

body .obs-kpi span {
    display: block !important;
    color: var(--muted) !important;
    font-size: .78rem !important;
    font-weight: 950 !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
}

body .obs-kpi strong {
    display: block !important;
    margin-top: 10px !important;
    color: var(--text) !important;
    font-size: 2.4rem !important;
    line-height: 1 !important;
    letter-spacing: -.06em !important;
    font-weight: 1000 !important;
}

body .obs-layout {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 340px minmax(0, 1fr) !important;
    gap: 24px !important;
    align-items: start !important;
    margin-top: 24px !important;
}

body .obs-sidebar {
    position: sticky !important;
    top: 110px !important;
    align-self: start !important;
}

body .obs-filter-list {
    display: grid !important;
    gap: 10px !important;
}

body .obs-filter-list a {
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 14px !important;
    border-radius: 18px !important;
    color: #475069 !important;
    background: rgba(255,255,255,.68) !important;
    border: 1px solid rgba(255,255,255,.86) !important;
    box-shadow: 0 8px 18px rgba(31,36,64,.04) !important;
    text-decoration: none !important;
    font-weight: 900 !important;
}

body .obs-filter-list a.active,
body .obs-filter-list a:hover {
    color: #fff !important;
    background: linear-gradient(135deg, var(--violet), var(--blue)) !important;
    box-shadow: 0 12px 26px rgba(99,102,241,.18) !important;
}

body .obs-trend-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
}

body .obs-product-card {
    display: block !important;
    position: relative !important;
    overflow: hidden !important;
    min-height: 250px !important;
    padding: 24px !important;
    border-radius: 30px !important;
    background: rgba(255,255,255,.60) !important;
    border: 1px solid rgba(255,255,255,.88) !important;
    box-shadow: 0 20px 48px rgba(31,36,64,.09) !important;
    backdrop-filter: blur(22px) !important;
}

body .obs-product-card::after {
    content: "" !important;
    position: absolute !important;
    right: -85px !important;
    top: -85px !important;
    width: 180px !important;
    height: 180px !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, rgba(139,92,246,.20), rgba(56,189,248,.16)) !important;
}

body .obs-product-card > * {
    position: relative !important;
    z-index: 2 !important;
}

body .obs-product-card h3 {
    margin: 12px 0 10px !important;
    font-size: 1.55rem !important;
    line-height: 1.05 !important;
    letter-spacing: -.055em !important;
    font-weight: 1000 !important;
}

body .obs-product-card p {
    color: var(--muted) !important;
    line-height: 1.65 !important;
    font-weight: 680 !important;
}

body .obs-timeline {
    position: relative !important;
    display: grid !important;
    gap: 18px !important;
    padding-left: 30px !important;
}

body .obs-timeline::before {
    content: "" !important;
    position: absolute !important;
    left: 9px !important;
    top: 8px !important;
    bottom: 8px !important;
    width: 3px !important;
    border-radius: 99px !important;
    background: linear-gradient(var(--violet), var(--blue), var(--mint)) !important;
}

body .obs-event {
    position: relative !important;
    display: block !important;
    padding: 22px !important;
    border-radius: 28px !important;
    background: rgba(255,255,255,.60) !important;
    border: 1px solid rgba(255,255,255,.88) !important;
    box-shadow: 0 18px 42px rgba(31,36,64,.08) !important;
}

body .obs-event::before {
    content: "" !important;
    position: absolute !important;
    left: -29px !important;
    top: 28px !important;
    width: 16px !important;
    height: 16px !important;
    border-radius: 99px !important;
    background: var(--violet) !important;
    box-shadow: 0 0 0 7px rgba(139,92,246,.14) !important;
}

body .obs-event-date {
    color: #6d28d9 !important;
    font-weight: 1000 !important;
}

body .obs-event h3 {
    margin: 8px 0 8px !important;
    font-size: 1.25rem !important;
    font-weight: 1000 !important;
    letter-spacing: -.04em !important;
}

body .obs-event p {
    margin: 0 !important;
    color: var(--muted) !important;
    line-height: 1.65 !important;
    font-weight: 680 !important;
}

body .trend-hausse { color:#047857 !important; background:rgba(52,211,153,.18) !important; }
body .trend-baisse { color:#b45309 !important; background:rgba(253,230,138,.52) !important; }
body .trend-retour { color:#0369a1 !important; background:rgba(56,189,248,.18) !important; }
body .trend-disparu { color:#be123c !important; background:rgba(251,113,133,.16) !important; }
body .trend-stable { color:#6d28d9 !important; background:rgba(139,92,246,.14) !important; }

@media (max-width: 1080px) {
    body .obs-layout {
        grid-template-columns: 1fr !important;
    }

    body .obs-sidebar {
        position: static !important;
    }

    body .obs-kpi-grid {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    }
}

@media (max-width: 760px) {
    body .obs-trend-grid,
    body .obs-kpi-grid {
        grid-template-columns: 1fr !important;
    }
}


/* TRIP REPORTS V2 FIX */
body .report-feed { display:grid !important; gap:22px !important; }
body .report-v2-card { display:block !important; position:relative !important; overflow:hidden !important; padding:clamp(22px,3vw,32px) !important; border-radius:34px !important; background:rgba(255,255,255,.62) !important; border:1px solid rgba(255,255,255,.90) !important; box-shadow:0 24px 64px rgba(31,36,64,.10) !important; }
body .report-v2-head { display:flex !important; flex-wrap:wrap !important; gap:16px !important; justify-content:space-between !important; align-items:flex-start !important; }
body .report-stats { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:10px !important; margin:20px 0 !important; }
body .report-filters-grid { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) auto !important; gap:12px !important; align-items:end !important; }
@media(max-width:980px){ body .report-filters-grid, body .report-stats{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media(max-width:640px){ body .report-filters-grid, body .report-stats{ grid-template-columns:1fr !important; } }


/* =========================================================
   PUBLIC CSS FIX V3 — Actualités + Trip reports
   Corrige largeur hero, formulaires, grilles et espacements
   ========================================================= */

body .page-shell,
body .main-container {
    width: min(1220px, calc(100vw - 36px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body .hero-title,
body .news-hero .hero-title,
body .reports-hero .hero-title,
body .observatoire-hero .hero-title,
body .doc-hero .hero-title {
    max-width: 820px !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    line-height: .9 !important;
}

body .news-hero,
body .reports-hero,
body .observatoire-hero,
body .doc-hero {
    min-height: auto !important;
    overflow: hidden !important;
}

body .hero-lead,
body .news-hero .hero-lead,
body .reports-hero .hero-lead {
    max-width: 760px !important;
    line-height: 1.65 !important;
    margin-top: 20px !important;
}

/* Actualités */
body .news-filterbar {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin-top: 24px !important;
}

body .news-filterbar a {
    min-height: 42px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 16px !important;
    border-radius: 999px !important;
    color: #535d76 !important;
    background: rgba(255,255,255,.72) !important;
    border: 1px solid rgba(148,163,184,.18) !important;
    box-shadow: 0 8px 18px rgba(31,36,64,.05) !important;
    text-decoration: none !important;
    font-weight: 950 !important;
}

body .news-filterbar a.active,
body .news-filterbar a:hover {
    color: #fff !important;
    background: linear-gradient(135deg, var(--violet), var(--blue)) !important;
}

body .news-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px !important;
    margin-top: 24px !important;
}

body .news-card {
    min-height: 360px !important;
    padding: 28px !important;
}

body .news-card .market-strip {
    margin-top: 22px !important;
}

body .news-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin-top: 22px !important;
}

/* Trip reports */
body .reports-hero .hero-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    margin-top: 28px !important;
}

body .report-filter-panel {
    display: block !important;
    margin: 24px 0 !important;
    padding: 22px !important;
    border-radius: 30px !important;
    background: rgba(255,255,255,.62) !important;
    border: 1px solid rgba(255,255,255,.90) !important;
    box-shadow: 0 20px 48px rgba(31,36,64,.09) !important;
    backdrop-filter: blur(24px) !important;
}

body .report-filters-grid {
    display: grid !important;
    grid-template-columns: 1.1fr 1fr 1fr 1.2fr auto !important;
    gap: 14px !important;
    align-items: end !important;
}

body .report-filters-grid > div {
    min-width: 0 !important;
}

body .report-filters-grid .input-label {
    display: block !important;
    margin-bottom: 9px !important;
    color: #424a62 !important;
    font-size: .84rem !important;
    font-weight: 1000 !important;
}

body .report-filters-grid .form-select,
body .report-filters-grid .form-control {
    width: 100% !important;
    min-height: 56px !important;
    border-radius: 22px !important;
    padding: 0 18px !important;
    border: 1px solid rgba(148,163,184,.18) !important;
    background: rgba(255,255,255,.78) !important;
    box-shadow: 0 10px 24px rgba(31,36,64,.04) !important;
    color: var(--text) !important;
    font-weight: 750 !important;
}

body .report-filters-grid button.btn-premium {
    min-height: 56px !important;
    white-space: nowrap !important;
}

body .report-feed {
    margin-top: 24px !important;
}

body .report-feed .empty-state,
body .report-feed .glass-panel.empty-state {
    padding: 70px 24px !important;
    border-radius: 34px !important;
    background: rgba(255,255,255,.58) !important;
    border: 1px dashed rgba(139,92,246,.26) !important;
    box-shadow: 0 20px 48px rgba(31,36,64,.08) !important;
}

body .report-v2-card {
    margin-bottom: 0 !important;
}

/* Header sticky overlap guard */
body .site-header,
body .header-premium,
body header {
    z-index: 100 !important;
}

/* Responsive */
@media (max-width: 1100px) {
    body .report-filters-grid {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    }

    body .report-filters-grid button.btn-premium {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 820px) {
    body .news-grid {
        grid-template-columns: 1fr !important;
    }

    body .hero-title,
    body .news-hero .hero-title,
    body .reports-hero .hero-title,
    body .observatoire-hero .hero-title,
    body .doc-hero .hero-title {
        max-width: 100% !important;
        font-size: clamp(3rem, 15vw, 5.2rem) !important;
    }
}

@media (max-width: 640px) {
    body .page-shell,
    body .main-container {
        width: min(100%, calc(100vw - 20px)) !important;
    }

    body .report-filters-grid {
        grid-template-columns: 1fr !important;
    }

    body .news-hero,
    body .reports-hero,
    body .observatoire-hero,
    body .doc-hero {
        padding: 26px !important;
    }
}


/* =========================================================
   ERROR REPORT MODAL FIX V1
   ========================================================= */

body.modal-open {
    overflow: hidden !important;
}

body .ai-disclaimer {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 18px !important;
    border-radius: 26px !important;
    color: #7c2d12 !important;
    background: rgba(253,230,138,.48) !important;
    border: 1px solid rgba(251,191,36,.35) !important;
    box-shadow: 0 18px 42px rgba(31,36,64,.07) !important;
    font-weight: 760 !important;
    line-height: 1.55 !important;
}

body .ai-disclaimer strong {
    color: #92400e !important;
    font-weight: 1000 !important;
}

body .error-modal-backdrop {
    position: fixed !important;
    inset: 0 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 18px !important;
    background: rgba(31,36,64,.34) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    z-index: 999999 !important;
}

body .error-modal-backdrop.is-open {
    display: flex !important;
}

body .error-modal {
    width: min(720px, 100%) !important;
    max-height: calc(100vh - 36px) !important;
    overflow: auto !important;
    padding: 28px !important;
    border-radius: 34px !important;
    background: rgba(255,255,255,.92) !important;
    border: 1px solid rgba(255,255,255,.96) !important;
    box-shadow: 0 30px 90px rgba(31,36,64,.25) !important;
}

body .error-modal-head {
    display: flex !important;
    gap: 16px !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    margin-bottom: 10px !important;
}

body .error-modal h2 {
    margin: 0 !important;
    font-size: 2rem !important;
    line-height: 1 !important;
    letter-spacing: -.06em !important;
    font-weight: 1000 !important;
}

body .error-modal p {
    color: var(--muted) !important;
    line-height: 1.65 !important;
    font-weight: 700 !important;
}

body .error-modal-close {
    width: 42px !important;
    height: 42px !important;
    flex: 0 0 42px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 999px !important;
    border: 0 !important;
    cursor: pointer !important;
    color: #475069 !important;
    background: rgba(255,255,255,.78) !important;
    box-shadow: 0 10px 24px rgba(31,36,64,.08) !important;
    font-size: 1.5rem !important;
    font-weight: 900 !important;
}

body .modal-form-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    margin-top: 18px !important;
}

body .modal-form-grid .full {
    grid-column: 1 / -1 !important;
}

body .error-modal textarea.form-control {
    min-height: 150px !important;
}

body .error-modal-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin-top: 18px !important;
}

@media (max-width: 640px) {
    body .modal-form-grid {
        grid-template-columns: 1fr !important;
    }

    body .error-modal {
        padding: 22px !important;
        border-radius: 28px !important;
    }
}


/* =========================================================
   ERROR MODAL RADICAL FIX V2
   ========================================================= */

#errorReportModal {
    display: none;
}

#errorReportModal[style*="display: flex"] {
    display: flex !important;
}

body .modal-form-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    margin-top: 18px !important;
}

body .modal-form-grid .full {
    grid-column: 1 / -1 !important;
}

body #errorReportModal textarea.form-control {
    min-height: 160px !important;
}

body .ai-disclaimer {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 18px !important;
    border-radius: 26px !important;
    color: #7c2d12 !important;
    background: rgba(253,230,138,.48) !important;
    border: 1px solid rgba(251,191,36,.35) !important;
    box-shadow: 0 18px 42px rgba(31,36,64,.07) !important;
    font-weight: 760 !important;
    line-height: 1.55 !important;
}

body .ai-disclaimer strong {
    color: #92400e !important;
    font-weight: 1000 !important;
}

@media (max-width: 640px) {
    body .modal-form-grid {
        grid-template-columns: 1fr !important;
    }
}


/* =========================================================
   ERROR MODAL BLUR FIX V3
   Le flou n'existe QUE quand la modal est ouverte
   ========================================================= */

#errorReportModal {
    display: none !important;
    position: fixed !important;
    inset: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 24px !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    z-index: -1 !important;
    pointer-events: none !important;
}

#errorReportModal.is-open {
    display: flex !important;
    background: rgba(15,23,42,.45) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    z-index: 999999 !important;
    pointer-events: auto !important;
}

#errorReportModal:not(.is-open) * {
    pointer-events: none !important;
}

body:not(.modal-open) #errorReportModal {
    display: none !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}


/* =========================================================
   ERROR MODAL CLEAN FIX V4
   Supprime flou/zoom permanent et isole la modal
   ========================================================= */

html.has-open-modal,
html.has-open-modal body {
    overflow: hidden !important;
}

body.modal-open {
    overflow: auto !important;
}

#errorReportModal.clean-error-modal {
    display: none !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    padding: 24px !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    z-index: -1 !important;
    pointer-events: none !important;
    transform: none !important;
    filter: none !important;
}

#errorReportModal.clean-error-modal.is-open {
    display: flex !important;
    background: rgba(15,23,42,.45) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    z-index: 999999 !important;
    pointer-events: auto !important;
}

.clean-error-modal__panel {
    width: min(720px, 100%) !important;
    max-height: calc(100vh - 48px) !important;
    overflow: auto !important;
    padding: 32px !important;
    border-radius: 32px !important;
    background: rgba(255,255,255,.96) !important;
    border: 1px solid rgba(255,255,255,.95) !important;
    box-shadow: 0 40px 120px rgba(15,23,42,.25) !important;
    transform: none !important;
    filter: none !important;
}

.clean-error-modal__head {
    display: flex !important;
    gap: 16px !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    margin-bottom: 10px !important;
}

.clean-error-modal__head h2 {
    margin: 0 !important;
    font-size: 2rem !important;
    line-height: 1 !important;
    letter-spacing: -.06em !important;
    font-weight: 1000 !important;
}

.clean-error-modal__close {
    width: 42px !important;
    height: 42px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: rgba(241,245,249,.9) !important;
    font-size: 1.5rem !important;
    font-weight: 900 !important;
    cursor: pointer !important;
}

.clean-error-modal__intro {
    color: #69718f !important;
    line-height: 1.65 !important;
    font-weight: 700 !important;
}

.clean-error-modal__grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    margin-top: 18px !important;
}

.clean-error-modal__grid .full {
    grid-column: 1 / -1 !important;
}

.clean-error-modal__grid textarea.form-control {
    min-height: 160px !important;
}

.clean-error-modal__actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    margin-top: 24px !important;
}

/* Kill old modal classes that may still exist in cached CSS */
.error-modal-backdrop:not(.is-open) {
    display: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: transparent !important;
    pointer-events: none !important;
    z-index: -1 !important;
}

.error-modal-backdrop:not(.is-open) * {
    display: none !important;
}

body .clean-disclaimer,
body .ai-disclaimer.clean-disclaimer {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 18px !important;
    margin-bottom: 24px !important;
    border-radius: 26px !important;
    color: #7c2d12 !important;
    background: rgba(253,230,138,.48) !important;
    border: 1px solid rgba(251,191,36,.35) !important;
    box-shadow: 0 18px 42px rgba(31,36,64,.07) !important;
    font-weight: 760 !important;
    line-height: 1.55 !important;
    transform: none !important;
    filter: none !important;
}

body .clean-disclaimer strong {
    color: #92400e !important;
    font-weight: 1000 !important;
}

/* Hard reset: no page blur/zoom unless modal is actually open */
html:not(.has-open-modal) body,
html:not(.has-open-modal) main,
html:not(.has-open-modal) .page-shell,
html:not(.has-open-modal) .product-layout,
html:not(.has-open-modal) .glass-panel {
    filter: none !important;
    transform: none !important;
}

@media (max-width: 640px) {
    .clean-error-modal__grid {
        grid-template-columns: 1fr !important;
    }

    .clean-error-modal__panel {
        padding: 22px !important;
        border-radius: 26px !important;
    }
}


/* =========================================================
   ERROR MODAL NO-DOM FIX V5
   Aucune modal n'existe au chargement, donc aucun flou possible.
   ========================================================= */

/* Neutralisation totale des anciennes modales */
#errorReportModal,
.error-modal-backdrop,
.clean-error-modal {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    z-index: -9999 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: transparent !important;
    filter: none !important;
    transform: none !important;
}

/* Reset anti-flou / anti-zoom permanent */
html:not(.has-open-modal),
html:not(.has-open-modal) body,
html:not(.has-open-modal) main,
html:not(.has-open-modal) .page-shell,
html:not(.has-open-modal) .main-container,
html:not(.has-open-modal) .product-layout,
html:not(.has-open-modal) .glass-panel,
html:not(.has-open-modal) .product-hero,
html:not(.has-open-modal) .product-card,
html:not(.has-open-modal) section {
    filter: none !important;
    transform: none !important;
    zoom: 1 !important;
}

html.has-open-modal,
html.has-open-modal body {
    overflow: hidden !important;
}

.dynamic-error-modal {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 24px !important;
    background: rgba(15,23,42,.45) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    z-index: 999999 !important;
}

.dynamic-error-modal__panel {
    width: min(720px, 100%) !important;
    max-height: calc(100vh - 48px) !important;
    overflow: auto !important;
    padding: 32px !important;
    border-radius: 32px !important;
    background: rgba(255,255,255,.96) !important;
    border: 1px solid rgba(255,255,255,.95) !important;
    box-shadow: 0 40px 120px rgba(15,23,42,.25) !important;
    filter: none !important;
    transform: none !important;
}

.dynamic-error-modal__head {
    display: flex !important;
    gap: 16px !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    margin-bottom: 10px !important;
}

.dynamic-error-modal__head h2 {
    margin: 0 !important;
    font-size: 2rem !important;
    line-height: 1 !important;
    letter-spacing: -.06em !important;
    font-weight: 1000 !important;
}

.dynamic-error-modal__close {
    width: 42px !important;
    height: 42px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: rgba(241,245,249,.9) !important;
    font-size: 1.5rem !important;
    font-weight: 900 !important;
    cursor: pointer !important;
}

.dynamic-error-modal__intro {
    color: #69718f !important;
    line-height: 1.65 !important;
    font-weight: 700 !important;
}

.dynamic-error-modal__grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    margin-top: 18px !important;
}

.dynamic-error-modal__grid .full {
    grid-column: 1 / -1 !important;
}

.dynamic-error-modal__grid textarea.form-control {
    min-height: 160px !important;
}

.dynamic-error-modal__actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    margin-top: 24px !important;
}

body .clean-disclaimer,
body .ai-disclaimer.clean-disclaimer {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 18px !important;
    margin-bottom: 24px !important;
    border-radius: 26px !important;
    color: #7c2d12 !important;
    background: rgba(253,230,138,.48) !important;
    border: 1px solid rgba(251,191,36,.35) !important;
    box-shadow: 0 18px 42px rgba(31,36,64,.07) !important;
    font-weight: 760 !important;
    line-height: 1.55 !important;
    filter: none !important;
    transform: none !important;
}

body .clean-disclaimer strong {
    color: #92400e !important;
    font-weight: 1000 !important;
}

@media (max-width: 640px) {
    .dynamic-error-modal__grid {
        grid-template-columns: 1fr !important;
    }

    .dynamic-error-modal__panel {
        padding: 22px !important;
        border-radius: 26px !important;
    }
}
