/**
 * ASSCW Delivery Picker — feuille de style
 *
 * Couvre le picker inline (shortcode) ET la modale ouverte au clic Transmettre.
 *
 * Règles durcies pour résister aux thèmes minimalistes (Hello/Elementor) qui
 * n'enqueueent pas WooCommerce sur les pages d'application : le `position:
 * fixed` et le z-index sont forcés en `!important` afin d'éviter qu'une règle
 * de thème (transform, contain, isolation) ne crée un nouveau stacking
 * context qui pousse la modale hors viewport.
 *
 * @package ASS_Client_Workspace
 */

/* ========================================================================
   1. Picker inline (shortcode)
   ======================================================================== */

.asscw-delivery-picker {
    padding: 16px;
    border: 1px solid #BFAC95;
    background: #F2E4D8;
    border-radius: 6px;
    color: #384759;
    max-width: 640px;
    box-sizing: border-box;
}
.asscw-delivery-picker .asscw-dp-title {
    margin: 0 0 12px;
    color: #384759;
    font-size: 1.1em;
    font-weight: 600;
}
.asscw-delivery-picker .asscw-dp-row {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}
.asscw-delivery-picker .asscw-dp-row label {
    font-weight: 600;
    color: #384759;
}
.asscw-delivery-picker .asscw-dp-input {
    padding: 8px;
    border: 1px solid #BFAC95;
    border-radius: 4px;
    background: #fff;
    color: #384759;
    font-size: 1em;
}
.asscw-delivery-picker .asscw-dp-check {
    background: #3270A6 !important;
    border-color: #3270A6 !important;
    color: #fff !important;
    cursor: pointer;
}
.asscw-delivery-picker .asscw-dp-result {
    margin-top: 12px;
    padding: 12px;
    background: #fff;
    border-radius: 4px;
    border-left: 3px solid #3270A6;
}
.asscw-delivery-picker .asscw-dp-result.is-accepted { border-left-color: #1b5e20; }
.asscw-delivery-picker .asscw-dp-result.is-refused  { border-left-color: #F2911B; }
.asscw-delivery-picker .asscw-dp-result h4 {
    margin: 0 0 8px;
    font-size: 1em;
    color: #384759;
}
.asscw-delivery-picker .asscw-dp-result .asscw-dp-reason {
    color: #5d4037;
    margin: 0 0 10px;
    font-size: .95em;
}
.asscw-delivery-picker .asscw-dp-options {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 8px;
}
.asscw-delivery-picker .asscw-dp-option {
    flex: 1;
    min-width: 240px;
    background: #F2E4D8;
    border: 1px solid #BFAC95;
    border-radius: 4px;
    padding: 10px;
    cursor: pointer;
    box-sizing: border-box;
}
.asscw-delivery-picker .asscw-dp-option.is-selected {
    border-color: #3270A6;
    box-shadow: 0 0 0 2px #3270A6 inset;
}
.asscw-delivery-picker .asscw-dp-option-title {
    font-weight: 600;
    margin: 0 0 4px;
    color: #384759;
}
.asscw-delivery-picker .asscw-dp-option-detail {
    font-size: .92em;
    color: #384759;
    margin: 0;
}
.asscw-delivery-picker .asscw-dp-actions {
    margin-top: 12px;
    display: flex;
    gap: 8px;
}
.asscw-delivery-picker .asscw-dp-confirm {
    background: #3270A6 !important;
    border-color: #3270A6 !important;
    color: #fff !important;
    cursor: pointer;
}
.asscw-delivery-picker .asscw-dp-error {
    color: #b00;
    background: #fff;
    padding: 8px;
    border-radius: 4px;
    margin-top: 10px;
}
.asscw-delivery-picker .asscw-dp-feedback {
    margin-top: 8px;
    font-size: .95em;
}
.asscw-delivery-picker .asscw-dp-feedback.is-success { color: #1b5e20; }
.asscw-delivery-picker .asscw-dp-feedback.is-error   { color: #b00; }

/* ========================================================================
   2. Modale (overlay + container)
   --
   Règles forcées pour résister à Hello, Elementor et autres thèmes qui
   n'enqueueent pas WooCommerce ou qui appliquent des transformations
   globales sur les enfants directs de body.
   ======================================================================== */

.asscw-dp-modal-overlay {
    /* Position absolue par rapport au viewport — forcée pour neutraliser
       les `transform` parentaux qui rebaseraient le `fixed`. */
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    margin: 0 !important;
    padding: 16px !important;
    background: rgba(56, 71, 89, .55) !important;

    /* Centrage du contenu */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    /* Au-dessus de tout, y compris menus Elementor sticky (z-index élevé). */
    z-index: 999999 !important;

    /* Empêche les règles de mise en page parentales de réintroduire des marges. */
    box-sizing: border-box !important;
    overflow-y: auto !important;
}

/* La modale interne est un .asscw-delivery-picker + .asscw-dp-modal */
.asscw-dp-modal-overlay .asscw-dp-modal.asscw-delivery-picker {
    background: #F2E4D8 !important;
    max-width: 640px !important;
    width: 100% !important;
    max-height: 90vh !important;
    overflow-y: auto !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, .25) !important;
    margin: 0 !important;
    padding: 20px !important;
    border-radius: 6px !important;
    box-sizing: border-box !important;
    position: relative !important;
}

.asscw-dp-modal-overlay .asscw-dp-modal-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-bottom: 1px solid #BFAC95;
    padding-bottom: 8px;
    margin-bottom: 12px;
}
.asscw-dp-modal-overlay .asscw-dp-modal-header .asscw-dp-title {
    margin: 0 !important;
}
.asscw-dp-modal-overlay .asscw-dp-modal-close {
    background: none !important;
    border: 0 !important;
    font-size: 1.5em !important;
    line-height: 1 !important;
    cursor: pointer;
    color: #384759 !important;
    padding: 0 4px !important;
    margin: 0 !important;
}
.asscw-dp-modal-overlay .asscw-dp-modal-status {
    margin-top: 10px;
    min-height: 1.2em;
    font-size: .95em;
}
.asscw-dp-modal-overlay .asscw-dp-modal-status.is-error   { color: #b00; }
.asscw-dp-modal-overlay .asscw-dp-modal-status.is-success { color: #1b5e20; }
.asscw-dp-modal-overlay .asscw-dp-modal-status.is-info {
    color: #384759;
    font-style: italic;
}
.asscw-dp-modal-overlay .asscw-dp-modal-footer {
    display: flex !important;
    gap: 8px;
    justify-content: flex-end;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #BFAC95;
    flex-wrap: wrap;
}
.asscw-dp-modal-overlay .asscw-dp-modal-footer .button {
    cursor: pointer;
}
.asscw-dp-modal-overlay .asscw-dp-modal-footer .button-primary,
.asscw-dp-modal-overlay .asscw-dp-btn-transmit {
    background: #3270A6 !important;
    border: 1px solid #3270A6 !important;
    color: #fff !important;
}
.asscw-dp-modal-overlay .asscw-dp-modal-footer .asscw-dp-btn-transmit[disabled] {
    opacity: .55;
    cursor: not-allowed;
}
.asscw-dp-modal-overlay .asscw-dp-btn-without {
    background: #fff !important;
    border: 1px solid #F2911B !important;
    color: #5d4037 !important;
}
.asscw-dp-modal-overlay .asscw-dp-btn-cancel {
    background: #fff !important;
    border: 1px solid #BFAC95 !important;
    color: #384759 !important;
}

/* Verrou de scroll body lorsqu'une modale est ouverte. */
body.asscw-dp-modal-open {
    overflow: hidden !important;
}
