.contractor-dialog { margin:auto; width:min(1040px,calc(100% - 32px)); max-height:94dvh; padding:0; border:1px solid var(--border-strong,#ddd); border-radius:16px; background:#fff; color:#171717; font:13px/1.5 var(--font-ui,Inter,sans-serif); box-shadow:0 24px 90px #0004; }
.contractor-dialog[open] { display:flex; flex-direction:column; }
.contractor-dialog::backdrop { background:#15201b80; }
.contractor-dialog header { display:flex; align-items:flex-start; justify-content:space-between; padding:24px 28px 10px; gap:20px; }
.contractor-dialog h2 { font-size:25px; font-weight:600; letter-spacing:-.6px; margin:5px 0; }
.contractor-project { color:#666; font-size:12px; overflow-wrap:anywhere; }
.contractor-intro { padding:0 28px 20px; color:#666; }
.contractor-dialog button { padding:9px 14px; border:1px solid #d6d6d6; border-radius:7px; background:#fff; color:#171717; cursor:pointer; font:600 12px/1.4 var(--font-ui,Inter,sans-serif); }
.contractor-dialog button:hover { border-color:#8b8b8b; background:#f7f7f7; }
.contractor-dialog button:disabled { opacity:.5; cursor:default; }
.contractor-dialog button.contractor-primary { background:#ffc824; border-color:#ffc824; }
.contractor-dialog button.contractor-primary:hover { background:#efb818; }
.contractor-dialog .contractor-close { border:0; font-size:25px; padding:0 8px; }
.contractor-dialog nav { display:flex; padding:0 28px; border-bottom:1px solid #ddd; gap:24px; }
.contractor-dialog nav button { padding:12px 0; border:0; border-radius:0; border-bottom:3px solid transparent; font-size:12px; color:#6d6d6d; }
.contractor-dialog nav button[aria-current=step] { border-bottom-color:#ffc824; color:#111; }
.contractor-body { overflow:auto; padding:22px 28px; min-height:230px; }
.contractor-dialog footer { border-top:1px solid #ddd; padding:14px 28px; }
.contractor-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.contractor-actions strong { margin-left:auto; font-size:12px; }
.contractor-status { font-size:12px; color:#6d5a24; margin-top:8px; }
.contractor-status:empty { margin:0; }
.contractor-group { margin:20px 0; border:1px solid #dedede; border-radius:9px; overflow:hidden; }
.contractor-group h3,.contractor-group summary { padding:12px 16px; background:#f5f5f3; margin:0; font-size:13px; font-weight:600; }
.contractor-group h3 label { display:flex; gap:12px; align-items:center; cursor:pointer; }
.contractor-group summary { cursor:pointer; }
.contractor-group > p,.contractor-group > .contractor-fields,.contractor-group > .contractor-field { margin:12px 16px; }
.contractor-service { display:flex; align-items:center; gap:12px; padding:13px 16px; border-top:1px solid #eee; cursor:pointer; }
.contractor-service > span:nth-of-type(1) { flex:1; }
.contractor-service.is-excluded { color:#888; }
.contractor-value { flex:none; font-family:var(--font-mono,monospace); font-size:12px; white-space:nowrap; }
.contractor-dialog input[type=checkbox] { width:17px; height:17px; flex:none; accent-color:#c79200; cursor:pointer; }
.contractor-help { color:#6a6a6a; line-height:1.65; margin:8px 0 16px; font-size:12px; }
.contractor-notice { display:block; background:#fff8e4; border-left:3px solid #d3a230; padding:12px 16px; margin:0 0 16px; color:#685525; font-size:12px; }
.contractor-notice button { margin-top:8px; }
.contractor-notice li { margin-left:12px; }
.contractor-warning { color:#926925; }
.contractor-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 24px; margin:12px 0; }
.contractor-field { display:flex; flex-direction:column; gap:5px; min-width:0; font-size:12px; }
.contractor-field > span { color:#666; }
.contractor-field input,.contractor-field textarea { width:100%; padding:9px 11px; border:1px solid #ccc; border-radius:6px; background:#fff; color:#111; font:13px/1.5 var(--font-ui,Inter,sans-serif); box-sizing:border-box; }
.contractor-field input[type=number] { font-family:var(--font-mono,monospace); }
.contractor-field input:invalid { border-color:#b33525; }
.contractor-field input:disabled,.contractor-field textarea:disabled { background:#f5f5f5; color:#666; }
.contractor-field textarea { resize:vertical; }
.contractor-quantity { border-bottom:1px solid #ddd; padding:12px 0 20px; margin-bottom:16px; }
.contractor-quantity h3 { font-size:13px; margin:0 0 10px; font-weight:600; overflow-wrap:anywhere; }
.contractor-group .contractor-quantity { margin:0 16px; }
.contractor-group .contractor-quantity h3 { background:none; padding:0; }
.contractor-quantity-meta { display:flex; align-items:center; flex-wrap:wrap; gap:12px; font-size:12px; color:#666; }
.contractor-badge { background:#f0f1ed; border-radius:4px; padding:2px 7px; font-size:11px; }
.contractor-dialog .contractor-link { border:0; padding:4px 0; color:#87631b; margin:5px 10px 5px 0; background:none; text-decoration:underline; }
.contractor-stats { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid #ddd; padding-bottom:18px; margin-bottom:18px; gap:20px; }
.contractor-stats div { display:flex; flex-direction:column; gap:4px; }
.contractor-stats strong { font-size:28px; font-weight:500; }
.contractor-stats span { color:#777; font-size:12px; }
.contractor-sheet { display:flex; justify-content:space-between; padding:9px 16px; gap:16px; border-top:1px solid #eee; font-size:12px; }
.contractor-sheet strong { font-weight:500; }
.contractor-downloads { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }
.contractor-dialog :focus-visible { outline:2px solid #9d7400; outline-offset:3px; }
@media(max-width:650px) {
 .contractor-dialog { width:calc(100% - 12px); max-height:98dvh; border-radius:10px; }
 .contractor-dialog header { padding:18px 16px 8px; }.contractor-dialog h2 { font-size:21px; }
 .contractor-intro,.contractor-body { padding:12px 16px; }.contractor-dialog footer { padding:12px 16px; }
 .contractor-dialog nav { padding:0 16px; gap:18px; }.contractor-dialog nav button { font-size:11px; }
 .contractor-service { flex-wrap:wrap; padding:12px; }.contractor-value { padding-left:29px; width:100%; }
 .contractor-fields { grid-template-columns:1fr; gap:12px; }.contractor-stats { gap:10px; }.contractor-stats span { font-size:11px; }
 .contractor-sheet { flex-direction:column; gap:3px; }.contractor-downloads button { flex:1 1 100%; }
}

/* Modale « Avant de générer » du dossier prestataire */
.contractor-check .contractor-intro { padding:0 0 14px; }
.contractor-check .contractor-body { padding:18px 28px 8px; }
.contractor-check-group { font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#777; padding:14px 0 4px; }
.contractor-check-row { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:10px 0; border-top:1px solid #f0f0ec; }
.contractor-check-state { width:22px; height:22px; border-radius:50%; flex:none; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; background:#fff1c2; color:#8a6400; }
.contractor-check-row.is-done .contractor-check-state { background:#e3f1df; color:#2e6b2a; }
.contractor-check-text { flex:1; min-width:180px; line-height:1.35; font-size:13px; }
.contractor-check-text small { display:block; color:#777; font-size:12px; }
.contractor-check-row.is-done .contractor-check-text small { color:#2e6b2a; }
.contractor-check-actions { display:flex; gap:8px; flex-wrap:wrap; }
.contractor-check-actions button, .contractor-check-editor button { white-space:nowrap; }
.contractor-dialog button.contractor-ghost { border-color:#ddd; color:#888; }
.contractor-check-editor { flex-basis:100%; background:#fafaf8; border-radius:9px; padding:12px 16px 14px 46px; display:flex; flex-direction:column; gap:8px; }
.contractor-check-editor .contractor-help { margin:0; }
.contractor-fields.three { grid-template-columns:repeat(3,minmax(0,1fr)); margin:4px 0; }
.contractor-field select { width:100%; padding:9px 11px; border:1px solid #ccc; border-radius:6px; background:#fff; color:#111; font:13px/1.5 var(--font-ui,Inter,sans-serif); }
.contractor-preview { background:#fff; border:1px solid #ddd; border-radius:8px; height:120px; }
.contractor-preview svg { width:100%; height:100%; display:block; }
.contractor-counter { font-size:12px; color:#777; margin-right:auto; }
.contractor-check footer { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.contractor-check footer .contractor-status { flex-basis:100%; }
@media(max-width:650px) { .contractor-fields.three { grid-template-columns:1fr; } .contractor-check-editor { padding-left:16px; } }

.consultation-invite{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:24px 0}.consultation-invite .contractor-field{flex:1;min-width:200px}.consultation-table-scroll{overflow:auto;max-width:100%;margin:16px 0;border:1px solid var(--border-1,#ddd);border-radius:10px}.consultation-table{border-collapse:collapse;width:100%;font-size:13px}.consultation-table th,.consultation-table td{padding:12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border-1,#ddd);min-width:160px}.consultation-table th{font-weight:600;background:var(--bg-2,#f7f7f7)}.consultation-table td small{display:block;margin-top:6px;color:var(--text-3,#666)}.consultation-table tbody th{min-width:220px}.contractor-field select,.contractor-actions select{padding:10px;border:1px solid var(--border-1,#ddd);border-radius:6px;background:white;color:var(--text-1,#111);font:inherit;max-width:100%}#consultations-dialog .contractor-service{gap:12px}#consultations-dialog .contractor-group p{overflow-wrap:anywhere}
#consultations-dialog .contractor-group>strong{display:block;padding:12px 16px 0}.consultation-invite input:invalid:not(:user-invalid){border-color:#d6d6d6}
