/* Shared form dialogs. Printed contracts and service acts retain their paper layout. */
dialog:not(#contract-preview-dialog):not(#service-act-preview) {
  box-sizing:border-box; max-width:calc(100vw - 32px);
  max-height:calc(100dvh - 32px); overflow:auto;
  color:#20354c; font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:14px; line-height:1.5; border-radius:14px;
}
dialog:not(#contract-preview-dialog):not(#service-act-preview) :is(p,label,legend,h2,h3,small) {
  overflow-wrap:anywhere;
}
dialog:not(#contract-preview-dialog):not(#service-act-preview) :is(.dialog-head,.drawer-head,.modal-header) {
  display:flex; align-items:flex-start; justify-content:space-between; gap:16px;
}
dialog:not(#contract-preview-dialog):not(#service-act-preview) h2 {
  min-width:0; font-size:20px; line-height:1.4;
}
dialog:not(#contract-preview-dialog):not(#service-act-preview) :is(.dialog-head,.drawer-head,.modal-header) h2 { margin:0; flex:1; }
dialog:not(#contract-preview-dialog):not(#service-act-preview) :is(.dialog-head,.drawer-head,.modal-header) button {
  flex:none; position:static; min-width:40px; min-height:40px; margin:0;
}
dialog:not(#contract-preview-dialog):not(#service-act-preview) :is(form,fieldset,.form-grid,.form-columns,.nd-form-grid) { min-width:0; }
dialog:not(#contract-preview-dialog):not(#service-act-preview) fieldset { box-sizing:border-box; max-width:100%; }
dialog:not(#contract-preview-dialog):not(#service-act-preview) label {
  min-width:0; font-size:14px; line-height:1.5;
}
dialog:not(#contract-preview-dialog):not(#service-act-preview) :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=hidden]) {
  display:block; box-sizing:border-box; width:100%; max-width:100%; min-width:0;
  min-height:44px; height:auto; padding:10px 12px; margin-top:7px;
  border:1px solid #c8d5e5; border-radius:8px;
  font:400 14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;
  color:inherit; background:#fff;
}
dialog:not(#contract-preview-dialog):not(#service-act-preview) textarea { resize:vertical; }
dialog:not(#contract-preview-dialog):not(#service-act-preview) label:has(>input:is([type=checkbox],[type=radio])) {
  display:flex; flex-direction:row; align-items:flex-start; gap:10px;
  white-space:normal;
}
dialog:not(#contract-preview-dialog):not(#service-act-preview) input:is([type=checkbox],[type=radio]) {
  display:inline-block; flex:0 0 18px; box-sizing:border-box;
  width:18px; height:18px; min-height:18px; margin:2px 0 0; padding:0;
  accent-color:#2166b7;
}
dialog:not(#contract-preview-dialog):not(#service-act-preview) button {
  box-sizing:border-box; max-width:100%; min-height:40px;
  font-size:14px; line-height:1.4; white-space:normal; overflow-wrap:anywhere;
}
dialog:not(#contract-preview-dialog):not(#service-act-preview) :is(.form-buttons,.form-actions,.person-actions,.live-visit-actions,.doctor-form-actions,.actions,.buttons) {
  display:flex; flex-wrap:wrap; align-items:center; gap:12px;
}
dialog:not(#contract-preview-dialog):not(#service-act-preview) :is(.form-buttons,.form-actions) {
  margin-top:20px; padding-top:16px; border-top:1px solid #dce5ef; justify-content:flex-end;
}
dialog:not(#contract-preview-dialog):not(#service-act-preview) :is(.form-buttons,.form-actions)>button { min-width:120px; }
dialog:not(#contract-preview-dialog):not(#service-act-preview) [hidden] { display:none!important; }
@media(max-width:640px) {
  dialog:not(#contract-preview-dialog):not(#service-act-preview) :is(.form-grid,.form-columns,.nd-form-grid) { grid-template-columns:minmax(0,1fr); }
  dialog:not(#contract-preview-dialog):not(#service-act-preview) :is(.form-buttons,.form-actions)>button { flex:1 1 140px; }
}
/* A label must grow when its caption wraps; fixed rows used to overlap the next field. */
dialog:not(#contract-preview-dialog):not(#service-act-preview) .nd-action-row .nd-form-grid>label { grid-template-rows:auto auto; }
dialog:not(#contract-preview-dialog):not(#service-act-preview) :is(.nd-form,.staff-editor) label> :is(input,select,textarea) { margin-top:0; }
dialog:not(#contract-preview-dialog):not(#service-act-preview)> .dialog-head { margin-bottom:20px; }
dialog:not(#contract-preview-dialog):not(#service-act-preview) textarea:not([type=checkbox]):not([type=radio]):not([type=hidden]) { min-height:100px; }
dialog:not(#contract-preview-dialog):not(#service-act-preview) form>button { margin-top:12px; }
dialog:not(#contract-preview-dialog):not(#service-act-preview) :is(.dialog-head,.drawer-head,.modal-header) button:is(.close,[aria-label="Закрыть"]) { font-size:22px; line-height:1; }

/* Keep short centered forms readable; side drawers and staff service lists retain their widths. */
dialog:not(#contract-preview-dialog):not(#service-act-preview):not(#drawer):not(:has(.staff-editor)) { width:min(640px,calc(100vw - 32px)); }
dialog .form-validation-summary {
  grid-column:1 / -1; margin:0 0 16px; padding:12px 14px;
  border:1px solid #e2acac; border-radius:8px; background:#fff4f4;
  color:#942b2b; font-size:14px; line-height:1.5; white-space:pre-line;
}
