/* Reset WordPress theme constraints */
.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Theme inspired by the original design */
:root{
    --dof-gap:16px;
    --dof-radius:8px;
    --dof-muted:#f5f6f8;
    --dof-border:#e5e7eb;
    --dof-text:#111827;
    --dof-primary:#173a63;
    --dof-primary-contrast:#fff;
}

.doffre-theme{ max-width: 80%; color: var(--dof-text); font-family: inherit; }
.doffre-theme .doffre-form,
.doffre-theme .doffre-input,
.doffre-theme select,
.doffre-theme textarea,
.doffre-theme button{
    font-family: inherit;
}
.doffre-title{ font-size: 1.5rem; font-weight: 600; margin: 0 0 1rem; }
.doffre-section{ font-size: 1.1rem; font-weight: 600; border-bottom: 1px solid var(--dof-border); padding-bottom: .5rem; margin: 2rem 0 .75rem; }

.doffre-notice{ padding:.75rem 1rem; border-radius:.5rem; margin:1rem 0; }
.doffre-notice.success{ background:#ecfdf5; color:#065f46; border:1px solid #10b981; }
.doffre-notice.error{ background:#fef2f2; color:#991b1b; border:1px solid #ef4444; }

.doffre-form{ display: grid; gap: var(--dof-gap); }
.doffre-fieldset{ border: 1px solid var(--dof-border); border-radius: var(--dof-radius); padding: 16px; display:grid; gap:18px; }
.doffre-field{ display: grid; gap: 10px; }
.doffre-label{ font-weight: 400; font-size: .95rem; display:block; }
.doffre-input,
.doffre-form select,
.doffre-form textarea{
    border:1px solid var(--dof-border);
    border-radius: var(--dof-radius);
    background: var(--dof-muted);
    padding: .6rem .75rem;
}
.doffre-form textarea{ min-height: 140px; }

/* ────────────────────────────────────────────────────────────────────────────
   Lines grid – table-like cells (Fenêtres)
   ─────────────────────────────────────────────────────────────────────────── */
.doffre-line-header,
.doffre-line{
    display:grid !important;
    /* 5 colonnes: Qte, Largeur, Hauteur, Vantaux, Remarques */
    grid-template-columns: 120px 1fr 1fr 140px 2fr;
    gap:0;                     /* bordures = séparation */
    align-items:stretch;
}

/* Cellules : en-têtes + champs */
.doffre-line-header > div,
.doffre-line > .doffre-field{
    background:#fff;
    border:1px solid var(--dof-border);
    padding:.55rem .75rem;
}

/* En-têtes */
.doffre-line-header{
    font-weight:600; font-size:.9rem; color:#475569;
    margin-bottom:0;
    border-radius: var(--dof-radius) var(--dof-radius) 0 0;
    overflow:hidden; /* arrondis propres */
}
.doffre-line-header > div{ background:#f8fafc; }

/* Fusion des bordures internes (évite les doubles traits) */
.doffre-line-header > div + div,
.doffre-line > .doffre-field + .doffre-field{
    border-left:0;
}

/* Conteneur des lignes : arrondis bas + collage des lignes */
.doffre-lines-container{
    display: flex;
    flex-direction: column;
    gap:0;               /* lignes collées visuellement */
    margin-bottom: 16px;
    border-radius:0 0 var(--dof-radius) var(--dof-radius);
    overflow:hidden;     /* arrondis bas propres */
}
.doffre-line + .doffre-line .doffre-field{ border-top:0; }

/* Le champ "Remarques" occupe bien la 5e colonne */
.doffre-line .grow{ grid-column: 5 / span 1; }

/* Inputs dans les cellules : plats/transparent pour laisser la cellule dessiner */
.doffre-line .doffre-field > .doffre-input,
.doffre-line .doffre-field > select,
.doffre-line .doffre-field > textarea{
    border:0;
    background:transparent;
    padding:0;
    width:100%;
    height:100%;
}

/* Bouton supprimer : sous la ligne, aligné à droite et hors des cellules */
.doffre-remove-line{
    grid-column: 1 / -1;     /* occupe toute la rangée sous les 5 colonnes */
    justify-self: end;       /* aligné à droite */
    margin:8px 0 4px;
    background:#ef4444; color:#fff; border:none;
    border-radius: var(--dof-radius);
    padding:.4rem .6rem; cursor:pointer; height:40px;
}

/* Bouton ajouter */
.doffre-add-line{
    background:#475569; color:#fff; border:none;
    border-radius: var(--dof-radius);
    padding:.5rem .75rem; cursor:pointer;
    font-size: 0.9rem;
    width: fit-content;
    justify-self: start;
}

/* Radios with nice wrapping */
.doffre-choice-group{ display:grid; gap:8px; }
.doffre-radio{ display:flex; align-items:flex-start; gap:8px; line-height:1.4; }
.doffre-radio input{ margin-top: 3px; }
.doffre-radio span{ display:inline; white-space: normal; }

/* Client section in 2 columns */
.doffre-client-grid{ grid-template-columns: 1fr 1fr; }

/* Files */
.doffre-files{ display:grid; gap:12px; grid-template-columns: 1fr; }

/* Submit */
.doffre-actions{ display:flex; justify-content:flex-start; margin-top:8px; }
.doffre-submit{
    background: var(--dof-primary);
    color: var(--dof-primary-contrast);
    border:none; border-radius: var(--dof-radius);
    padding:.7rem 1.2rem; cursor:pointer; font-weight:600;
}

/* ────────────────────────────────────────────────────────────────────────────
   Responsive
   ─────────────────────────────────────────────────────────────────────────── */
@media (max-width: 720px){
    /* En mobile, on simplifie la grille des lignes */
    .doffre-line-header{ display:none; }
    .doffre-line{
        grid-template-columns: 1fr 1fr;
        gap:12px;
    }
    .doffre-line > .doffre-field{
        border:1px solid var(--dof-border);
        padding:.6rem .75rem;
        background:#fff;
    }
    .doffre-line > .doffre-field + .doffre-field{ border-left:1px solid var(--dof-border); }
    .doffre-line + .doffre-line .doffre-field{ border-top:1px solid var(--dof-border); }
    .doffre-line .grow{ grid-column:1 / -1; }

    /* bouton sous la ligne également en mobile */
    .doffre-remove-line{
        grid-column:1 / -1;
        justify-self:end;
        margin-top:0;
    }

    .doffre-client-grid{ grid-template-columns: 1fr; }
}
