/* devis.css — assistant de devis */
.dv-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.dv-prog{padding:20px 22px 0}
.dv-bar{height:8px;background:var(--blue-2);border-radius:999px;overflow:hidden}
.dv-bar span{display:block;height:100%;background:var(--blue);border-radius:999px;transition:width .3s}
.dv-steps{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 0;font-size:.82rem;color:var(--ink-3)}
.dv-steps span.on{color:var(--blue-d);font-weight:700}
.dv-steps span.done{color:var(--ink-2)}
.dv-body{padding:24px 22px 26px}
.dv-q{font-size:1.4rem;margin:0 0 6px}
.dv-hint{color:var(--ink-3);font-size:.9rem;margin:0 0 16px}
.dv-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.dv-grid-2{grid-template-columns:repeat(2,1fr)}
.dv-choice{display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left;
  padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;
  font-family:var(--ff-body);font-size:1rem;font-weight:600;color:var(--ink);transition:.15s}
.dv-choice svg{color:var(--blue)}
.dv-choice:hover{border-color:var(--blue);background:var(--blue-2)}
.dv-choice.on{border-color:var(--blue);background:var(--blue-2);box-shadow:0 0 0 2px var(--blue) inset}
.dv-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.dv-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;cursor:pointer;
  font-family:var(--ff-body);font-size:.9rem;color:var(--ink-2);transition:.15s}
.dv-chip:hover{border-color:var(--blue);color:var(--blue-d)}
.dv-chip.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.dv-input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-family:var(--ff-body);
  font-size:1rem;color:var(--ink);background:#fff;transition:.15s}
.dv-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-2)}
textarea.dv-input{resize:vertical;margin-bottom:12px}
.dv-field{margin-bottom:14px;position:relative}
.dv-field label{display:block;font-size:.85rem;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.dv-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dv-file{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;color:var(--blue-d);cursor:pointer;
  border:1px dashed var(--line);border-radius:10px;padding:10px 14px;margin-top:4px}
.dv-file input{display:none}
.dv-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.dv-thumb{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.dv-ac{position:absolute;left:0;right:0;top:100%;z-index:20;background:#fff;border:1px solid var(--line);
  border-radius:10px;box-shadow:var(--shadow);margin-top:4px;overflow:hidden}
.dv-ac:empty{display:none}
.dv-ac-item{display:block;width:100%;text-align:left;padding:10px 14px;border:0;background:#fff;cursor:pointer;
  font-family:var(--ff-body);font-size:.92rem;color:var(--ink-2)}
.dv-ac-item:hover{background:var(--blue-2);color:var(--blue-d)}
.dv-check{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--ink-2);margin:8px 0 14px}
.dv-check input{margin-top:3px}
.dv-actions{display:flex;justify-content:space-between;gap:12px;margin-top:20px}
.dv-actions .btn-primary{margin-left:auto}
.dv-err{color:#c23a10;font-size:.9rem;margin:6px 0}
.dv-shake{animation:dvshake .4s}
@keyframes dvshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.dv-done{text-align:center;padding:40px 24px}
.dv-ok{width:64px;height:64px;border-radius:50%;background:var(--blue);color:#fff;font-size:2rem;
  display:grid;place-items:center;margin:0 auto 18px}
@media(max-width:520px){.dv-grid,.dv-row,.dv-grid-2{grid-template-columns:1fr}}
