/* =========================================================
   1. VISIBILITÉ DES SECTIONS (Pilotée par #view-single)
   ========================================================= */

/* Par défaut, cacher les sections spécifiques au Bond + Call */
#view-single:not([data-product="BOND_PLUS_CALL"]) #section-capital-protection,
#view-single:not([data-product="BOND_PLUS_CALL"]) #section-participation {
    display: none !important;
}

/* Si Bond + Call, cacher le standard */
#view-single[data-product="BOND_PLUS_CALL"] #section-coupon,
#view-single[data-product="BOND_PLUS_CALL"] #section-autocall,
#view-single[data-product="BOND_PLUS_CALL"] #section-protection {
    display: none !important;
}

/* L'Autocall n'est visible que pour le produit AUTOCALL */
#view-single:not([data-product="AUTOCALL"]) #section-autocall {
    display: none !important;
}

/* =========================================================
   2. LOGIQUE INTRA-SECTION
   ========================================================= */

/* Cacher Coupon Barrier si Fixed/Guaranteed */
#view-single[data-coupon-type="FIXED"] #wrapper-couponBarrier {
    display: none !important;
}

/* Cacher Protection Barrier si ce n'est pas PDI */
#view-single:not([data-prot-type="PDI"]) #wrapper-protBarrier {
    display: none !important;
}

/* =========================================================
   3. ÉTATS DES CHAMPS (MISSING / SOLVING)
   ========================================================= */

/* Wrapper contenant le champ. Doit être en position relative. */
.solvable-field-container {
    position: relative;
}

/* --- ÉTAT: MANQUANT (REQ) --- */
.solvable-field-container[data-state="missing"] input {
    border-color: var(--mantine-color-error) !important;
    background-color: light-dark(rgba(250, 82, 82, 0.05), rgba(250, 82, 82, 0.1)) !important;
}

.solvable-field-container[data-state="missing"]::after {
    content: "REQ";
    position: absolute;
    right: 35px; /* S'adapte pour ne pas cacher les flèches du NumberInput */
    bottom: 8px;
    color: var(--mantine-color-error);
    font-size: 10px;
    font-weight: 800;
    pointer-events: none;
}

/* --- ÉTAT: SOLVING (TARGET) --- */
.solvable-field-container[data-state="solving"] input {
    border-color: var(--mantine-color-brand-5) !important;
    background-color: light-dark(rgba(255, 102, 0, 0.05), rgba(255, 102, 0, 0.1)) !important;
    color: transparent !important; /* Cache la vraie valeur pendant la résolution */
}

.solvable-field-container[data-state="solving"]::after {
    content: "SOLVING...";
    position: absolute;
    left: 12px;
    bottom: 8px;
    color: var(--mantine-color-brand-5);
    font-size: 11px;
    font-weight: 800;
    pointer-events: none;
}

/* =========================================================
   4. ETAT DESACTIVE (REMPLACE DISABLED)
   ========================================================= */

.solvable-field-container[data-state="solving"],
.solvable-field-container[data-state="disabled"] {
    pointer-events: none;
    opacity: 0.6;
}

/* =========================================================
   5. VISIBILITE DES SECTIONS SECONDAIRES
   ========================================================= */

/* Bond + Call Extras */
#view-single:not([data-bc-bar="true"]) #wrapper-bc-barrier-extras {
    display: none !important;
}

#view-single:not([data-bc-fix="true"]) #wrapper-bc-fixing-extras {
    display: none !important;
}

/* Features */
#view-single:not([data-has-features="true"]) #section-features,
#view-single:not([data-has-features="true"]) #wrapper-recap-main-features,
#modal-summary-single:not([data-has-features="true"]) #wrapper-recap-modal-features {
    display: none !important;
}

#view-single:not([data-has-onestar="true"]) #feature-row-one-star,
#view-single:not([data-has-onestar="true"]) #wrapper-recap-main-one-star,
#modal-summary-single:not([data-has-onestar="true"]) #wrapper-recap-modal-one-star {
    display: none !important;
}

#view-single:not([data-has-async="true"]) #feature-row-async-autocall,
#view-single:not([data-has-async="true"]) #wrapper-recap-main-async,
#modal-summary-single:not([data-has-async="true"]) #wrapper-recap-modal-async {
    display: none !important;
}

/* Recap Logic */
#view-single[data-product="BOND_PLUS_CALL"] #main-standard-recap,
#modal-summary-single[data-product="BOND_PLUS_CALL"] #modal-standard-recap {
    display: none !important;
}

#view-single:not([data-product="BOND_PLUS_CALL"]) #main-bc-recap,
#modal-summary-single:not([data-product="BOND_PLUS_CALL"]) #modal-bc-recap {
    display: none !important;
}

#view-single:not([data-product="AUTOCALL"]) #main-autocall-section,
#modal-summary-single:not([data-product="AUTOCALL"]) #modal-autocall-section {
    display: none !important;
}

/* LOW_STRIKE Logic */
#view-single[data-prot-type="LOW_STRIKE"] #wrapper-recap-main-protectionBarrier,
#modal-summary-single[data-prot-type="LOW_STRIKE"] #wrapper-recap-modal-protectionBarrier,
#view-single[data-prot-type="LOW_STRIKE"] #wrapper-recap-main-obsType,
#modal-summary-single[data-prot-type="LOW_STRIKE"] #wrapper-recap-modal-obsType {
    display: none !important;
}

#view-single[data-prot-type="LOW_STRIKE"] #field-wrapper-obsType {
    pointer-events: none;
    opacity: 0.6;
}
