/* One editable-field affordance across record dossiers and their Details. */
.modal{--editable-field-border:#ffffff12;--editable-field-radius:6px;--editable-field-focus:var(--gold,#cfb573)}
.modal :is(
  input:not([type=hidden]):not([type=file]):not([type=checkbox]):not([type=radio]):not([type=button]):not([type=submit]):not([type=reset]):not([data-numeric-input]):not([data-estate-floor-input]):not(.client-name-title):not(.estate-name-title):not([data-client-picker-search]):not([data-catalog-picker-search]):not([data-record-link-search]),
  select,textarea
):not(:disabled):not([readonly]){border:1px solid var(--editable-field-border);border-radius:var(--editable-field-radius)}
.modal :is(
  input:not([type=hidden]):not([type=file]):not([type=checkbox]):not([type=radio]):not([type=button]):not([type=submit]):not([type=reset]):not([data-numeric-input]):not([data-estate-floor-input]):not(.client-name-title):not(.estate-name-title):not([data-client-picker-search]):not([data-catalog-picker-search]):not([data-record-link-search]),
  select,textarea
):not(:disabled):not([readonly]):focus{border-color:var(--editable-field-focus);box-shadow:0 0 0 2px #cfb57312;outline:none}
/* Older status/result rules contain IDs; retain their dots and override only
   the deliberately transparent field outline, not semantic text colors. */
.modal .task-property-value .record-select-state>:is(#field-status,#field-result):not(:disabled):not([readonly]){border:1px solid var(--editable-field-border);border-radius:var(--editable-field-radius)}
.modal .task-property-value .record-select-state>:is(#field-status,#field-result):not(:disabled):not([readonly]):focus{border-color:var(--editable-field-focus);box-shadow:0 0 0 2px #cfb57312;outline:none}

/* The summary carries the outline; the popup container does not add a second
   border. Discreet New/Link triggers remain the established text buttons. */
.modal .relation-picker:has(.relation-option input:not(:disabled)):has(>summary:not(.record-link-trigger)),
.modal:has(#field-cityIds .relation-option input:not(:disabled)) #field-districtIds[data-city-required=true]{border:0;box-shadow:none}
.modal .relation-picker:has(.relation-option input:not(:disabled))>summary:not(.record-link-trigger),
.modal:has(#field-cityIds .relation-option input:not(:disabled)) #field-districtIds[data-city-required=true]>summary{border:1px solid var(--editable-field-border);border-radius:var(--editable-field-radius)}
.modal .relation-picker:has(.relation-option input:not(:disabled))>summary:not(.record-link-trigger):is(:focus-visible,:hover),
.modal:has(#field-cityIds .relation-option input:not(:disabled)) #field-districtIds[data-city-required=true]>summary:is(:focus-visible,:hover){border-color:var(--editable-field-focus)}
.modal .relation-picker:has(.relation-option input:not(:disabled))[open]>summary:not(.record-link-trigger),
.modal .relation-picker:has(.relation-option input:not(:disabled))>summary:not(.record-link-trigger):focus-visible{border-color:var(--editable-field-focus);box-shadow:0 0 0 2px #cfb57312;outline:none}

/* Single relations keep native radio sizing even after a picker moves out of
   its form-field wrapper into a tab or Details. Text-input rules must not
   stretch a radio to the popup width and push its caption out of view. */
.modal details.relation-picker .relation-option:has(>input[type=radio]){display:flex;align-items:center;gap:8px;width:100%;min-width:0;max-width:100%;min-height:31px;padding:5px 7px;box-sizing:border-box;border-radius:4px;cursor:pointer;color:var(--ink,#d8d8dc);font-size:12px;line-height:1.4}
.modal details.relation-picker .relation-option>input[type=radio]{display:inline-block;width:16px!important;min-width:16px!important;max-width:16px!important;height:16px!important;min-height:16px!important;max-height:16px!important;flex:0 0 16px!important;margin:0!important;padding:0!important;box-sizing:border-box;border:0!important;border-radius:50%;background:transparent!important;box-shadow:none!important;line-height:1;appearance:auto;accent-color:var(--gold,#cfb573)}
.modal details.relation-picker .relation-option>input[type=radio]:focus-visible{outline:2px solid var(--editable-field-focus);outline-offset:3px}
.modal details.relation-picker .relation-option:has(>input[type=radio])>span{display:flex;align-items:center;gap:8px;flex:1;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.modal details.relation-picker .relation-option:has(>input[type=radio])>span>.record-avatar,.modal details.relation-picker .relation-option:has(>input[type=radio])>span>.client-option-avatar{flex:0 0 20px;min-width:20px}
.modal details.relation-picker .relation-option:has(>input[type=radio])>span>span:not(.record-avatar):not(.client-option-avatar){flex:1;min-width:0;max-width:100%;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}
.modal details.relation-picker .relation-option:has(>input[type=radio]:disabled){cursor:default;color:var(--muted,#a6a6ad)}

.modal .gc-date-trigger:not(:disabled){border:1px solid var(--editable-field-border);border-radius:var(--editable-field-radius)}
.modal .gc-date-trigger:not(:disabled):is(:focus-visible,[aria-expanded=true]){border-color:var(--editable-field-focus);box-shadow:0 0 0 2px #cfb57312;outline:none}
.modal .numeric-input-control{border-color:var(--editable-field-border);border-radius:var(--editable-field-radius)}
.modal .numeric-input-control:focus-within{border-color:var(--editable-field-focus)}
.modal .numeric-input-control:has(>input:is(:disabled,[readonly])){border-color:transparent;background:transparent;box-shadow:none}

/* The broker caption can occupy two lines; reserve the same caption and
   control rows for every client summary card. Mobile keeps its two columns. */
.modal .client-pinned-properties .process-pinned-label{min-height:31px;align-items:center}
.modal .client-pinned-properties .process-pinned-label>label{line-height:1.35}
.modal .client-pinned-properties .task-property-value{min-height:31px}
@media(min-width:801px){.modal .client-pinned-properties{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Ordinary catalog selections are quiet values, not category/status badges.
   The priority picker keeps its colored marker and source priority style. */
.modal .estate-catalog-picker:not(#field-priorityIds)>summary .estate-catalog-chip,
.modal .estate-catalog-picker:not(#field-priorityIds) .relation-options .estate-catalog-chip,
.modal .relation-picker:not(#field-priorityIds)>summary .client-source-tag,
.modal .relation-picker:not(#field-priorityIds)>summary .badge:not(.record-state):not(.process-status-tag){color:inherit!important;background:transparent!important;border:0!important;border-radius:0;padding:0!important;font-size:inherit!important}
/* Popup labels retain their full names. Long names can wrap inside an option;
   the selected short-value intrinsic-width rules remain separate. */
.modal .estate-catalog-picker:not(#field-priorityIds) .relation-options .estate-catalog-chip{min-width:0;max-width:100%;white-space:normal}
.modal .estate-catalog-picker:not(#field-priorityIds) .relation-options .estate-catalog-chip>span:last-child{min-width:0;max-width:100%;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:normal;word-break:normal}

/* Only the three pinned manual-status boxes share their current dot's tone.
   The existing select change handlers already refresh these marker classes. */
.modal .estate-pinned-properties .process-pinned-property:has(#field-offerStatusId),
.modal .estate-pinned-properties .process-pinned-property:has(#field-statusId),
.modal .client-pinned-properties .process-pinned-property:has(#field-status){--pinned-status-color:#97979e;background-image:var(--glass-light,linear-gradient(145deg,#ffffff02,transparent));background-color:color-mix(in srgb,var(--pinned-status-color) 7%,#1b1b1d66);border-color:color-mix(in srgb,var(--pinned-status-color) 22%,transparent)}
.modal .process-pinned-property:has(:is(#field-offerStatusId,#field-statusId,#field-status)):has(:is(.estate-state-choice,.client-selected-status) .record-state-dot.status-success){--pinned-status-color:#6abd87}
.modal .process-pinned-property:has(:is(#field-offerStatusId,#field-statusId,#field-status)):has(:is(.estate-state-choice,.client-selected-status) .record-state-dot.status-warning){--pinned-status-color:#c9af50}
.modal .process-pinned-property:has(:is(#field-offerStatusId,#field-statusId,#field-status)):has(:is(.estate-state-choice,.client-selected-status) .record-state-dot.status-danger){--pinned-status-color:#d68174}
.modal .process-pinned-property:has(:is(#field-offerStatusId,#field-statusId,#field-status)):has(:is(.estate-state-choice,.client-selected-status) .record-state-dot.status-info){--pinned-status-color:#7da4bd}
.modal .process-pinned-property:has(:is(#field-offerStatusId,#field-statusId,#field-status)):has(:is(.estate-state-choice,.client-selected-status) .record-state-dot.status-orange){--pinned-status-color:#e3a65e}
.modal .process-pinned-property:has(:is(#field-offerStatusId,#field-statusId,#field-status)):has(:is(.estate-state-choice,.client-selected-status) .record-state-dot.status-purple){--pinned-status-color:#bc93ed}
@media(prefers-reduced-motion:no-preference){
  .modal .estate-pinned-properties .process-pinned-property:has(#field-offerStatusId),
  .modal .estate-pinned-properties .process-pinned-property:has(#field-statusId),
  .modal .client-pinned-properties .process-pinned-property:has(#field-status){transition:background-color 160ms ease,border-color 160ms ease}
}

@media(prefers-contrast:more){.modal{--editable-field-border:#ffffff38}}
@media(forced-colors:active){.modal{--editable-field-border:ButtonText;--editable-field-focus:Highlight}}
@media(forced-colors:active){
  .modal .estate-pinned-properties .process-pinned-property:has(#field-offerStatusId),
  .modal .estate-pinned-properties .process-pinned-property:has(#field-statusId),
  .modal .client-pinned-properties .process-pinned-property:has(#field-status){background:Canvas;border-color:CanvasText}
}
