[data-contractors-launcher]:empty { display: none; }
[data-contractors-launcher] { flex: 0 0 auto; }
.point-request-launcher:has([data-open-contractors]) { grid-template-columns: minmax(0, 2fr) auto auto; }
.point-request-launcher:has([data-open-contractors]) .point-request-launcher-main { min-width: 0; }
.contractors-dialog { width: min(1160px, calc(100vw - 40px)); max-width: none; max-height: calc(100dvh - 40px); padding: 0; border: 1px solid #e7dce5; border-radius: 20px; color: #292329; background: #fff; box-shadow: 0 24px 90px #35102a40; }
.contractors-dialog::backdrop { background: #25122180; }
.contractors-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 22px 26px; border-bottom: 1px solid #eadfe8; background: #fcf8fc; }
.contractors-header h2 { margin: 0; font-size: 26px; overflow-wrap: anywhere; }
.contractors-header p { margin: 7px 0 0; color: #827780; }
.contractors-header .contractors-close { min-width: 42px; flex-shrink: 0; padding: 10px; }
.contractors-body { padding: 24px 26px; }
.contractors-dialog button, .contractors-partners button { cursor: pointer; }
.contractors-back { padding: 0; margin: 0 0 10px; background: transparent; color: #890b63; border: 0; min-height: 28px; }
.contractors-list-actions, .contractors-actions, .contractors-pagination { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.contractors-list-actions { justify-content: space-between; margin-bottom: 20px; }
.contractors-tabs { display: flex; background: #f6eef4; padding: 4px; border-radius: 12px; }
.contractors-tabs button { background: transparent; color: #776b74; border: 0; padding: 10px 20px; }
.contractors-tabs button[aria-pressed="true"] { color: #fff; background: #890b63; }
.contractors-filters { display: grid; grid-template-columns: 2fr 1.4fr 1fr; gap: 12px; align-items: end; }
.contractors-filters label:not(.contractors-checkbox), .contractors-form-grid > label { display: grid; gap: 7px; min-width: 0; }
.contractors-filters label > span, .contractors-form-grid label > span, .contractors-form-grid legend { color: #786b75; font-size: 14px; font-weight: 600; }
.contractors-dialog input:not([type="checkbox"]), .contractors-dialog select, .contractors-dialog textarea { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid #e4d7e1; border-radius: 10px; padding: 11px 12px; background: #fff; color: #292329; font: inherit; }
.contractors-dialog textarea { resize: vertical; }
.contractors-checkbox { display: flex; align-items: center; gap: 9px; min-width: 0; }
.contractors-checkbox input[type="checkbox"] { appearance: auto; width: 18px; height: 18px; min-height: 18px; padding: 0; margin: 0; flex: 0 0 18px; accent-color: #890b63; }
.contractors-filters .contractors-checkbox { align-self: center; grid-column: span 2; }
.contractors-filters button { justify-self: end; }
.contractors-counter, .contractors-note { color: #81757f; font-size: 14px; line-height: 1.5; }
.contractors-counter { margin: 22px 0 10px; }
.contractors-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.contractors-table th { text-align: left; color: #827680; background: #faf5f9; font-size: 13px; }
.contractors-table th, .contractors-table td { padding: 15px 12px; border-bottom: 1px solid #eee5ec; vertical-align: top; overflow-wrap: anywhere; }
.contractors-table th:first-child { width: 29%; }
.contractors-table th:nth-child(3) { width: 27%; }
.contractors-table th:last-child { width: 16%; }
.contractors-table small { display: block; color: #83767e; margin-top: 6px; }
.contractors-dialog .contractor-name { border: 0; padding: 0; background: none; color: #890b63; font: inherit; font-weight: 700; text-align: left; white-space: normal; overflow-wrap: anywhere; }
.contractor-links { display: flex; flex-direction: column; gap: 7px; overflow-wrap: anywhere; }
.contractor-links a, .contractors-detail-grid a { color: #890b63; text-decoration: none; }
.contractor-links a:hover, .contractor-name:hover { text-decoration: underline; }
.contractors-pagination { justify-content: flex-end; margin-top: 22px; font-size: 14px; color: #837680; }
.contractors-empty { padding: 44px 20px; text-align: center; border: 1px dashed #decdda; border-radius: 16px; background: #fdfafd; }
.contractors-empty p { color: #827680; }
.contractors-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.contractors-form-grid > label:first-child, .contractors-wide, .contractors-categories { grid-column: 1 / -1; }
.contractors-categories { border: 1px solid #e9dde6; border-radius: 12px; padding: 14px; min-width: 0; }
.contractors-categories > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.contractors-categories .contractors-checkbox span { font-weight: 400; color: #493c46; }
.contractors-additional, .contractors-history { border: 1px solid #e9dde6; border-radius: 12px; padding: 16px; margin: 18px 0; }
.contractors-additional summary, .contractors-history summary { cursor: pointer; font-weight: 700; }
.contractors-additional[open] summary { margin-bottom: 20px; }
.contractors-form-grid small { color: #857881; line-height: 1.5; }
.contractors-error, .contractors-duplicate { padding: 14px; border-radius: 12px; background: #fff3ed; color: #903510; overflow-wrap: anywhere; }
.contractors-duplicate { display: grid; gap: 12px; margin: 16px 0; }
.contractors-detail-top { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.contractors-badge { background: #f4e9f1; color: #890b63; border-radius: 30px; padding: 6px 12px; font-size: 13px; }
.contractors-detail-contacts { flex-direction: row; flex-wrap: wrap; gap: 18px; padding: 20px; background: #faf5f9; border-radius: 12px; margin: 12px 0 20px; }
.contractors-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.contractors-detail-grid dt { color: #827680; font-size: 13px; margin-bottom: 5px; }
.contractors-detail-grid dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.contractors-history li { margin: 12px 0; overflow-wrap: anywhere; }
.contractors-history small { color: #827680; }
.contractors-partner { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 16px 0; border-bottom: 1px solid #eee5ec; }
.contractors-partner small { display: block; color: #837680; margin-top: 5px; }
.contractors-partner strong { overflow-wrap: anywhere; }
.contractors-partner .contractors-checkbox { flex-shrink: 0; }
@media (max-width: 900px) {
  .point-request-launcher:has([data-open-contractors]) { grid-template-columns: 1fr 1fr; }
  .point-request-launcher:has([data-open-contractors]) .point-request-launcher-main { grid-column: 1 / -1; }
  .contractors-categories > div { grid-template-columns: repeat(2,1fr); }
  .point-request-launcher [data-contractors-launcher] { flex: 1; }
  .point-request-launcher [data-contractors-launcher] button { width: 100%; }
}
@media (max-width: 600px) {
  .contractors-dialog { width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border: 0; border-radius: 0; }
  .contractors-header, .contractors-body { padding: 18px 16px; }
  .contractors-header h2 { font-size: 22px; }
  .contractors-filters { grid-template-columns: 1fr 1fr; }
  .contractors-filters .contractors-search, .contractors-filters .contractors-checkbox { grid-column: 1 / -1; }
  .contractors-filters button { grid-column: 1 / -1; width: 100%; }
  .contractors-list-actions > button { width: 100%; }
  .contractors-table, .contractors-table tbody, .contractors-table tr, .contractors-table td { display: block; width: auto; }
  .contractors-table thead { display: none; }
  .contractors-table tr { border: 1px solid #e9dde6; border-radius: 14px; padding: 14px; margin-bottom: 12px; }
  .contractors-table td { border: 0; padding: 7px 0; }
  .contractors-table td[data-label]::before { content: attr(data-label); display: block; font-size: 12px; color: #837680; margin-bottom: 5px; }
  .contractors-form-grid, .contractors-detail-grid { grid-template-columns: 1fr; }
  .contractors-categories > div { grid-template-columns: 1fr; }
  .contractors-pagination { justify-content: space-between; gap: 6px; }
  .contractors-pagination button { padding: 10px; }
  .contractors-partner { align-items: flex-start; flex-direction: column; gap: 12px; }
  .contractors-detail-contacts { padding: 14px; }
}
