/**
 * Onglet Devis. Rendu dans la coque de l'espace pro (tokens --sp-*/--as-*).
 */

.dv-page{ max-width:1240px; }
.dv-cta{ display:flex; gap:8px; flex-wrap:wrap; }
.dv-empty{ text-align:center; padding:48px 24px; color:var(--sp-gray5); }

/* Liste */
.dv-list{ display:flex; flex-direction:column; gap:9px; }
.dv-row{ display:flex; align-items:center; gap:13px; background:var(--as-surface); border:1px solid var(--as-line-2); border-left:4px solid var(--sp-gray4); border-radius:12px; padding:11px 15px; box-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 18px -12px rgba(16,24,40,.16); flex-wrap:wrap; }
.dv-row--draft{ border-left-color:var(--sp-gray4); }
.dv-row--sent{ border-left-color:#2563eb; }
.dv-row--ok{ border-left-color:#10b981; }
.dv-row--ko{ border-left-color:#dc2626; }
.dv-row--exp{ border-left-color:var(--sp-amber); }
.dv-row__num{ flex:1; min-width:170px; }
.dv-row__num b{ display:block; font-size:.93rem; font-weight:700; color:var(--sp-dark); }
.dv-row__num span{ display:block; font-size:.79rem; color:var(--sp-gray5); }
.dv-row__total{ font-weight:800; font-size:.95rem; color:var(--sp-dark); white-space:nowrap; }
.dv-row__status{ font:inherit; font-size:.8rem; font-weight:600; padding:6px 10px; border-radius:8px; border:1px solid var(--as-line-2); background:var(--sp-white); cursor:pointer; }
.dv-pill--draft{ color:var(--sp-gray6); }
.dv-pill--sent{ color:#1d4ed8; }
.dv-pill--ok{ color:#067a52; }
.dv-pill--ko{ color:#b91c1c; }
.dv-pill--exp{ color:var(--sp-amber-deep,#b45309); }
.dv-exp{ font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--sp-amber-deep,#b45309); }
.dv-row__act{ display:flex; align-items:center; gap:7px; }
.dv-del{ width:30px; height:30px; border:none; background:none; border-radius:7px; color:var(--sp-gray4); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.dv-del:hover{ background:#fde8e8; color:#dc2626; }
.dv-del svg{ width:15px; height:15px; }
@media(max-width:620px){
	/* Les boutons (.as-btn = white-space:nowrap) tenaient sur UNE ligne sans
	   retour → Modifier/Supprimer débordaient hors écran à droite, inatteignables.
	   On force le passage à la ligne et on étire les boutons texte. */
	.dv-row__act{ width:100%; flex-wrap:wrap; }
	.dv-row__act .as-btn{ flex:1 1 auto; justify-content:center; }
}

/* Modales */
.dv-modal{ position:fixed; inset:0; z-index:100000; display:none; overflow-y:auto; }
.dv-modal.is-open{ display:block; }
.dv-modal__scrim{ position:fixed; inset:0; background:rgba(16,24,40,.45); }
.dv-modal__card{ position:relative; z-index:1; margin:30px auto; background:var(--sp-white); border-radius:16px; box-shadow:0 16px 50px rgba(15,23,42,.28); padding:22px 24px; width:680px; max-width:94vw; }
.dv-modal__card h2{ font-size:1.1rem; font-weight:700; color:var(--sp-dark); margin:0 0 16px; }
.dv-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.dv-field{ display:block; margin-bottom:12px; }
.dv-field span{ display:block; font-size:.8rem; font-weight:600; color:var(--sp-gray5); margin-bottom:5px; }
.dv-field input, .dv-field select, .dv-field textarea{ width:100%; font:inherit; font-size:.9rem; padding:9px 11px; border:1px solid var(--as-line-2); border-radius:9px; background:var(--sp-white); color:var(--sp-dark); }
.dv-field input:focus, .dv-field select:focus, .dv-field textarea:focus{ outline:none; border-color:var(--sp-amber); box-shadow:0 0 0 3px var(--sp-amber-ring); }

/* Mode client : fiche / ponctuel. */
.dv-cmode{ display:inline-flex; gap:4px; background:var(--sp-gray1); border-radius:9px; padding:3px; margin-bottom:12px; }
.dv-cmode label{ display:inline-flex; align-items:center; gap:6px; font-size:.83rem; font-weight:600; color:var(--sp-gray6); padding:6px 12px; border-radius:7px; cursor:pointer; }
.dv-cmode label:has(input:checked){ background:var(--sp-white); color:var(--sp-dark); box-shadow:0 1px 2px rgba(16,24,40,.08); }
.dv-cmode input{ accent-color:var(--sp-amber); }
.dv-cm--fiche[hidden], .dv-cm--ponctuel[hidden]{ display:none; }
.dv-cm__hint{ font-size:.83rem; color:var(--sp-gray5); margin:0 0 12px; }

/* Réduction. */
.dv-disc{ margin:4px 0 6px; }
.dv-disc__add{ display:inline-flex; align-items:center; gap:6px; font:inherit; font-size:.81rem; font-weight:600; color:var(--sp-amber-deep,#b45309); background:none; border:1px dashed var(--sp-gray3); border-radius:8px; padding:6px 11px; cursor:pointer; }
.dv-disc__add:hover{ border-color:var(--sp-gray4); }
.dv-disc__add svg{ width:14px; height:14px; }
.dv-disc__form{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.dv-disc__form[hidden]{ display:none; }
.dv-disc__form input[type="text"]{ flex:1; min-width:160px; font:inherit; font-size:.86rem; padding:8px 10px; border:1px solid var(--as-line-2); border-radius:8px; background:var(--sp-white); color:var(--sp-dark); }
.dv-disc__form select{ font:inherit; font-size:.86rem; padding:8px; border:1px solid var(--as-line-2); border-radius:8px; background:var(--sp-white); }
.dv-disc__form input[type="number"]{ width:90px; text-align:right; font:inherit; font-size:.86rem; padding:8px 10px; border:1px solid var(--as-line-2); border-radius:8px; background:var(--sp-white); color:var(--sp-dark); }
.dv-disc__form input:focus, .dv-disc__form select:focus{ outline:none; border-color:var(--sp-amber); box-shadow:0 0 0 2px var(--sp-amber-ring); }
.dv-disc__del{ width:30px; height:30px; border:none; background:none; border-radius:7px; color:var(--sp-gray4); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.dv-disc__del:hover{ background:#fde8e8; color:#dc2626; }
.dv-disc__del svg{ width:15px; height:15px; }
.dv-totals .row[hidden]{ display:none; }

/* Lignes */
.dv-lines-head{ display:flex; align-items:center; justify-content:space-between; margin:8px 0 6px; font-size:.72rem; font-weight:700; color:var(--sp-gray5); text-transform:uppercase; letter-spacing:.04em; }
.dv-lines{ width:100%; border-collapse:collapse; }
.dv-lines th{ font-size:.7rem; text-transform:uppercase; letter-spacing:.03em; color:var(--sp-gray5); text-align:left; padding:2px 6px; font-weight:700; }
.dv-lines th.r{ text-align:right; }
.dv-lines td{ padding:3px 6px; vertical-align:middle; }
.dv-lines input{ width:100%; font:inherit; font-size:.86rem; padding:7px 8px; border:1px solid var(--as-line-2); border-radius:7px; background:var(--sp-white); color:var(--sp-dark); }
.dv-lines input:focus{ outline:none; border-color:var(--sp-amber); box-shadow:0 0 0 2px var(--sp-amber-ring); }
.dv-l-q, .dv-l-pu, .dv-l-t{ width:74px; text-align:right; }
.dv-l-del{ width:28px; height:28px; border:none; background:none; border-radius:6px; color:var(--sp-gray4); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.dv-l-del:hover{ background:#fde8e8; color:#dc2626; }
.dv-l-del svg{ width:14px; height:14px; }
.dv-addline{ display:inline-flex; align-items:center; gap:6px; margin-top:8px; font:inherit; font-size:.81rem; font-weight:600; color:var(--sp-gray5); background:none; border:1px dashed var(--sp-gray3); border-radius:8px; padding:7px 11px; cursor:pointer; }
.dv-addline:hover{ color:var(--sp-dark); border-color:var(--sp-gray4); }
.dv-addline svg{ width:15px; height:15px; }

.dv-totals{ margin:14px 0 4px auto; width:260px; }
.dv-totals .row{ display:flex; justify-content:space-between; padding:5px 0; font-size:.9rem; color:var(--sp-gray7); }
.dv-totals .row.ttc{ font-weight:800; font-size:1.05rem; color:var(--sp-dark); border-top:1px solid var(--sp-gray2); margin-top:4px; padding-top:8px; }

.dv-err{ color:#dc2626; font-size:.83rem; margin:0 0 8px; }
.dv-modal__act{ display:flex; justify-content:flex-end; gap:10px; margin-top:16px; }
@media(max-width:600px){ .dv-grid2{ grid-template-columns:1fr; } .dv-totals{ width:100%; } }

/* Sélecteur « ajouter une prestation » dans l'en-tête des lignes. */
.dv-presta{ font:inherit; font-size:.8rem; font-weight:600; color:var(--sp-amber-deep,#b45309); background:var(--sp-white); border:1px solid var(--as-line-2); border-radius:8px; padding:6px 10px; cursor:pointer; max-width:260px; }
.dv-presta:focus{ outline:none; border-color:var(--sp-amber); box-shadow:0 0 0 3px var(--sp-amber-ring); }

/* ============================================================
   Devis (rework carnet) : ledger plat + modale carnet (tokens --sp-*).
   ============================================================ */
.dv-list{ gap:0; background:var(--sp-white); border:1px solid var(--sp-gray2); border-radius:var(--sp-radius); box-shadow:var(--as-shadow); overflow:hidden; }
.dv-row{ background:none; border:0; border-radius:0; box-shadow:none; border-top:1px solid var(--sp-gray2); padding:12px 16px 12px 18px; position:relative; }
.dv-list .dv-row:first-child{ border-top:0; }
.dv-row::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--sp-gray4); }
.dv-row--draft::before{ background:var(--sp-gray4); }
.dv-row--sent::before{ background:var(--sp-g-bleue); }
.dv-row--ok::before{ background:var(--sp-g-verte); }
.dv-row--ko::before{ background:var(--sp-g-rouge); }
.dv-row--exp::before{ background:var(--sp-amber); }
.dv-row__num b{ font-family:'Archivo',sans-serif; color:var(--sp-gray7); }
.dv-row__num span{ font-family:'Courier Prime',monospace; font-size:.76rem; color:var(--sp-gray5); }
.dv-row__total{ font-family:'Courier Prime',monospace; color:var(--sp-gray7); }
.dv-row__status{ border-radius:var(--sp-radius); border-color:var(--sp-gray2); }
/* Modale éditeur : radius + labels Courier carnet. */
.dv-modal__card{ border-radius:var(--sp-radius); }
.dv-modal__card h2{ font-family:'Archivo',sans-serif; color:var(--sp-gray7); }
.dv-field input, .dv-field select, .dv-field textarea{ border-radius:var(--sp-radius); border-color:var(--sp-gray2); }
.dv-field span{ font-family:'Courier Prime',monospace; font-size:.6rem; letter-spacing:.06em; text-transform:uppercase; color:var(--sp-gray5); }
