/* Recovery workspace form dialogs: compact related fields, readable scroll areas, persistent actions. */
@media screen {
  .inventory-dialog.ui-dialog[open] {
    display: flex;
    flex-direction: column;
    width: min(1160px, calc(100vw - 40px));
    max-width: calc(100vw - 40px);
    max-height: calc(100dvh - 32px);
    padding: 0;
    overflow: visible;
  }
  .inventory-dialog form {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    max-height: calc(100dvh - 32px);
  }
  .inventory-dialog .inventory-dialog-heading {
    flex: none;
    margin: 0;
    padding: 14px 24px;
    border-bottom: 1px solid #e6eded;
  }
  .inventory-dialog .inventory-dialog-body {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 20px 24px;
  }
  .inventory-dialog .inventory-form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-width: 0;
  }
  .inventory-dialog .inventory-form-grid > * { min-width: 0; }
  .inventory-dialog .inventory-form-grid :is(input, select, textarea) {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  .inventory-dialog .inventory-form-grid :is(.inventory-full, .inventory-help, .inventory-order-total) {
    grid-column: 1 / -1;
  }
  .inventory-dialog [data-form-error]:not(:empty) {
    margin: 0;
    padding: 12px 14px;
    border-radius: 6px;
    background: #fff0f1;
    overflow-wrap: anywhere;
  }
  .inventory-dialog .inventory-form-actions {
    flex: none;
    margin: 0;
    padding: 14px 24px;
    border-top: 1px solid #e6eded;
    background: #fff;
  }

  /* Override the later setup-guide dialog.ui-dialog cap for this editor only. */
  dialog.workflow-dialog.workflow-case-dialog {
    box-sizing: border-box;
    width: 90vw;
    max-width: 1320px;
    min-width: 0;
    height: min(900px, 92dvh);
    max-height: 92dvh;
    margin: auto;
    padding: 0;
    overflow: hidden;
  }
  .workflow-case-dialog .workflow-case-fields {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px 20px;
    min-width: 0;
  }
  .workflow-case-dialog .workflow-case-fields > * { min-width: 0; }
  .workflow-case-dialog .workflow-case-fields > label.workflow-case-service-type,
  .workflow-case-dialog .workflow-case-fields > label.workflow-case-type-field,
  .workflow-case-dialog .workflow-case-fields > label.workflow-authorization-field {
    grid-column: auto;
    align-self: start;
    width: 100%;
    max-width: none;
    min-width: 0;
  }
  .workflow-case-dialog .workflow-case-fields .workflow-contact-row,
  .workflow-case-dialog .workflow-case-fields .workflow-three-field-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .workflow-case-dialog .workflow-case-fields .workflow-authorization-contacts-row,
  .workflow-case-dialog .workflow-case-fields .workflow-destination-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .workflow-case-dialog .workflow-case-fields .workflow-payment-fields,
  .workflow-case-dialog .workflow-case-fields .workflow-programs-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .workflow-case-dialog .workflow-case-fields .workflow-programs-fields > small {
    grid-column: 1 / -1;
  }
  .workflow-case-dialog .workflow-case-fields .workflow-section-notes:not(.workflow-authorization-field),
  .workflow-case-dialog .workflow-case-fields .workflow-notes-field,
  .workflow-case-dialog .workflow-case-fields .workflow-staff-assignment,
  .workflow-case-dialog .workflow-case-fields > fieldset {
    grid-column: 1 / -1;
    min-width: 0;
  }
  .workflow-case-dialog .workflow-case-fields :is(input, select, textarea) {
    box-sizing: border-box;
    max-width: 100%;
    min-width: 0;
  }
  .workflow-case-dialog .workflow-case-tabs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    min-width: 0;
    flex: none;
    overflow: visible;
  }
  body.workflow-case-modal-open { overflow: hidden; }
  .workflow-case-dialog .workflow-dialog-head { padding: 14px 24px 12px; }
  .workflow-case-dialog .workflow-dialog-head h2 { margin-top: 0; }
  .workflow-case-dialog .workflow-case-tabs { gap: 12px; padding: 12px 24px; }
  .workflow-case-dialog .workflow-case-tabs button {
    min-width: 0;
    min-height: 52px;
    padding: 10px;
    justify-content: flex-start;
    white-space: normal;
  }
  .workflow-case-dialog .workflow-case-tabs button:not(:last-child)::after {
    display: block;
    right: -12px;
    width: 12px;
  }
  .workflow-case-dialog .workflow-step-number { flex: none; }
  .workflow-case-dialog .workflow-step-copy { min-width: 0; }
  .workflow-case-dialog .workflow-case-body {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    padding: 20px 24px;
  }
  .workflow-case-dialog .workflow-case-body section > h3 { max-width: none; }
  .workflow-case-dialog .workflow-case-body .workflow-case-panel-help {
    max-width: none;
    min-height: 0;
    margin: 6px 0 12px;
  }
  .workflow-case-dialog .workflow-case-warning {
    position: static;
    width: auto;
    max-width: none;
    margin: 0 0 8px;
  }
  .workflow-case-dialog .workflow-case-fields .workflow-authorization-field {
    grid-column: auto;
    width: 100%;
    max-width: none;
  }
  .workflow-case-dialog .workflow-authorization-field .workflow-case-panel-help {
    display: block;
    width: 100%;
    max-width: none;
    min-height: 0;
    margin: 6px 0 0;
  }
  .workflow-case-dialog .workflow-form-actions {
    flex: none;
    padding: 14px 24px;
  }
  .workflow-case-dialog .workflow-case-step-actions { margin-right: auto; }
  .workflow-case-dialog .workflow-form-actions .workflow-delete { margin-right: 0; }
  .workflow-case-dialog .workflow-form-actions button { min-height: 44px; }
  .workflow-case-dialog .workflow-case-body > .workflow-form-error {
    flex: none;
    min-width: 0;
    margin: 16px 0 0;
    padding: 0;
    overflow-wrap: anywhere;
  }
  .workflow-case-dialog .workflow-case-body > .workflow-form-error:not(:empty) {
    padding: 12px 14px;
    border-radius: 8px;
    background: #fff0f1;
    color: #b42332;
  }

  .cremains-dialog.ui-dialog[open] {
    display: flex;
    flex-direction: column;
    width: min(1160px, calc(100vw - 40px));
    max-width: calc(100vw - 40px);
    max-height: calc(100dvh - 32px);
    padding: 0;
    overflow: visible;
  }
  .cremains-dialog form {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    max-height: calc(100dvh - 32px);
  }
  .cremains-dialog > form > header {
    flex: none;
    margin: 0;
    padding: 16px 24px;
    border-bottom: 1px solid #d8e0e3;
  }
  .cremains-dialog-body {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 18px 24px;
  }
  .cremains-dialog fieldset { min-width: 0; margin: 0; padding: 0; }
  .cremains-form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-width: 0;
  }
  .cremains-form-grid > * { min-width: 0; }
  .cremains-form-grid :is(input, select, textarea) {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  .cremains-form-grid .cremains-notes,
  .cremains-form-grid [data-release-fields] { grid-column: 1 / -1; }
  .cremains-form-grid [data-release-fields] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cremains-form-grid .cremains-confirm { grid-column: 1 / -1; }
  .cremains-dialog [data-error]:not(:empty) {
    margin: 0;
    padding: 12px 14px;
    border-radius: 6px;
    background: #fff0f1;
    overflow-wrap: anywhere;
  }
  .cremains-dialog section { min-width: 0; overflow-wrap: anywhere; }
  .cremains-dialog > form > footer {
    flex: none;
    margin: 0;
    padding: 14px 24px;
    border-top: 1px solid #d8e0e3;
    background: #fff;
  }

  .doc-modal.vehicle-dialog[open] {
    display: flex;
    flex-direction: column;
    width: min(1160px, calc(100vw - 40px));
    max-width: calc(100vw - 40px);
    max-height: calc(100dvh - 32px);
    padding: 0;
    overflow: visible;
  }
  .vehicle-dialog .ui-dialog-header {
    flex: none;
    margin: 0;
    padding: 14px 24px;
    border-bottom: 1px solid #dce2e5;
  }
  .vehicle-dialog #vehicleForm {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0;
    min-width: 0;
    max-height: calc(100dvh - 32px);
    padding: 0;
  }
  .vehicle-form-body {
    display: grid;
    flex: 1 1 auto;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 20px 24px;
  }
  .vehicle-form-body > * { min-width: 0; }
  .vehicle-form-body > .vehicle-form-wide,
  .vehicle-form-body > #modalError:not(:empty) { grid-column: 1 / -1; }
  .vehicle-form-body > #modalError:empty { display: none; }
  .vehicle-form-body label { display: grid; gap: 7px; }
  .vehicle-form-body :is(input, select, textarea) {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  .vehicle-form-body textarea { min-height: 120px; resize: vertical; }
  .vehicle-form-footer {
    display: flex;
    flex: none;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 14px 24px;
    border-top: 1px solid #dce2e5;
    background: #fff;
  }
}

@media screen and (max-width: 1199px) and (min-width: 761px) {
  dialog.workflow-dialog.workflow-case-dialog { width: 94vw; }
  .workflow-case-dialog .workflow-case-fields,
  .workflow-case-dialog .workflow-case-fields .workflow-case-status-row,
  .workflow-case-dialog .workflow-case-fields .workflow-contact-row,
  .workflow-case-dialog .workflow-case-fields .workflow-three-field-row,
  .workflow-case-dialog .workflow-case-fields .workflow-destination-fields,
  .workflow-case-dialog .workflow-case-fields .workflow-staff-picker,
  .workflow-case-dialog .workflow-case-fields .workflow-programs-fields,
  .workflow-case-dialog .workflow-case-fields .workflow-payment-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 1024px) and (min-width: 761px) {
  .inventory-dialog.ui-dialog[open],
  .cremains-dialog.ui-dialog[open],
  .doc-modal.vehicle-dialog[open] {
    width: calc(100vw - 32px);
    max-width: calc(100vw - 32px);
  }
  .inventory-dialog .inventory-form-grid,
  .cremains-form-grid,
  .cremains-form-grid [data-release-fields],
  .vehicle-form-body {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 1024px) {
  .workflow-case-dialog .workflow-case-tabs {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
  }
  .workflow-case-dialog .workflow-case-tabs button {
    flex: 0 0 200px;
    scroll-snap-align: start;
  }
  .workflow-case-dialog .workflow-case-tabs button:not(:last-child)::after { display: none; }
}

@media screen and (max-width: 760px) {
  dialog.workflow-dialog.workflow-case-dialog {
    width: 100vw;
    max-width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    border-radius: 0;
  }
  .workflow-case-dialog .workflow-dialog-head { padding: 16px 18px 12px; }
  .workflow-case-dialog .workflow-case-tabs { gap: 4px; padding: 8px 18px; }
  .workflow-case-dialog .workflow-case-body { padding: 16px 18px; }
  .workflow-case-dialog .workflow-form-actions { padding: 10px 18px; }
  .workflow-case-dialog .workflow-case-fields,
  .workflow-case-dialog .workflow-case-fields .workflow-case-status-row,
  .workflow-case-dialog .workflow-case-fields .workflow-contact-row,
  .workflow-case-dialog .workflow-case-fields .workflow-authorization-contacts-row,
  .workflow-case-dialog .workflow-case-fields .workflow-three-field-row,
  .workflow-case-dialog .workflow-case-fields .workflow-family-pickup-row,
  .workflow-case-dialog .workflow-case-fields .workflow-destination-fields,
  .workflow-case-dialog .workflow-case-fields .workflow-staff-picker,
  .workflow-case-dialog .workflow-case-fields .workflow-programs-fields,
  .workflow-case-dialog .workflow-case-fields .workflow-payment-fields {
    grid-template-columns: minmax(0, 1fr);
  }
  .workflow-case-dialog .workflow-case-tabs { gap: 8px; }
  .workflow-case-dialog .workflow-case-tabs button {
    flex: 0 0 190px;
    min-width: 0;
    white-space: normal;
  }
  .inventory-dialog.ui-dialog[open],
  .cremains-dialog.ui-dialog[open],
  .doc-modal.vehicle-dialog[open] {
    width: calc(100vw - 16px);
    max-width: calc(100vw - 16px);
    max-height: calc(100dvh - 16px);
  }
  .inventory-dialog form,
  .cremains-dialog form,
  .vehicle-dialog #vehicleForm { max-height: calc(100dvh - 16px); }
  .inventory-dialog .inventory-dialog-heading,
  .inventory-dialog .inventory-form-actions,
  .cremains-dialog > form > header,
  .cremains-dialog > form > footer { padding-right: 16px; padding-left: 16px; }
  .inventory-dialog .inventory-dialog-body,
  .cremains-dialog-body,
  .vehicle-form-body { padding: 16px; }
  .inventory-dialog .inventory-form-grid,
  .cremains-form-grid,
  .cremains-form-grid [data-release-fields],
  .vehicle-form-body { grid-template-columns: minmax(0, 1fr); }
  .inventory-dialog .inventory-form-actions,
  .cremains-dialog > form > footer,
  .vehicle-form-footer { flex-wrap: wrap; }
  .vehicle-form-footer button { flex: 1 1 130px; }
}

/* On-device signing: keep the review area flexible and controls outside its scroll. */
@media screen {
  .doc-modal.authorization-signing-dialog[open] {
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    width: 82vw;
    max-width: 1100px;
    height: min(900px, 90dvh);
    max-height: 90dvh;
    margin: auto;
    padding: 24px;
    gap: 12px;
    overflow: hidden;
  }
  .authorization-signing-dialog > :is(h2, .ui-dialog-header, p) {
    flex: none;
    margin: 0;
  }
  .authorization-signing-dialog .ui-dialog-header { align-items: center; }
  .authorization-signing-dialog .ui-dialog-header h2 { margin: 0; }
  .doc-modal.authorization-signing-dialog > .doc-paper {
    flex: 1 1 auto;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: 160px;
    max-height: none;
    margin: 0;
    padding: 24px;
    overflow: auto;
    overscroll-behavior: contain;
  }
  .authorization-signing-dialog #signatureForm { flex: none; min-width: 0; margin: 0; }
  .authorization-signing-dialog .signature-signer-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: end;
  }
  .authorization-signing-dialog .signature-signer-fields .field { min-width: 0; margin: 0; }
  .authorization-signing-dialog .signature-signer-fields label { display: block; margin: 0 0 6px; }
  .authorization-signing-dialog .signature-signer-fields input { box-sizing: border-box; width: 100%; min-width: 0; }
  .authorization-signing-dialog #signatureForm .doc-check { width: 100%; margin: 12px 0!important; }
  .authorization-signing-dialog .signature-actions {
    position: sticky;
    bottom: 0;
    z-index: 1;
    display: flex;
    justify-content: flex-end;
    padding: 12px 0 0;
    border-top: 1px solid var(--ui-line, #d8e1e2);
    background: #fff;
  }
  .authorization-signing-dialog .signature-actions button { margin: 0; min-height: 44px; }
  .authorization-signing-dialog #modalError { flex: none; margin: 0; max-height: 72px; overflow: auto; }
  .authorization-signing-dialog #modalError:empty { display: none; }
}
@media screen and (max-width: 650px), screen and (max-height: 760px) {
  .doc-modal.authorization-signing-dialog[open] {
    height: auto;
    overflow: auto;
  }
  .authorization-signing-dialog .ui-dialog-header {
    position: sticky;
    top: -1px;
    z-index: 2;
    background: #fff;
  }
  .doc-modal.authorization-signing-dialog > .doc-paper {
    flex: none;
    min-height: 0;
    max-height: 38dvh;
  }
}
@media screen and (max-width: 650px) {
  .doc-modal.authorization-signing-dialog[open] {
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
    max-height: calc(100dvh - 24px);
    padding: 16px;
  }
  .authorization-signing-dialog .signature-signer-fields { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .doc-modal.authorization-signing-dialog > .doc-paper { padding: 16px; }
}

/* Mobile form surfaces fit the viewport without horizontal page dragging. */
@media screen and (max-width:760px){
 body:has(dialog[open]){overflow:hidden}
 dialog[open]{box-sizing:border-box;min-width:0!important;max-width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px);margin:auto;overflow-x:hidden;overscroll-behavior:contain}
 dialog :is(form,fieldset,label,.field,[class*="form-grid"],[class*="dialog-body"],[class*="modal-body"]){box-sizing:border-box;min-width:0;max-width:100%}
 dialog :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){box-sizing:border-box;width:100%;min-width:0;max-width:100%;font-size:16px}
 dialog :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),select){min-height:44px}
 dialog :is([class*="form-grid"],.signature-signer-fields){grid-template-columns:minmax(0,1fr)!important;align-items:start}
 dialog :is([class*="form-grid"],.signature-signer-fields)>*{min-width:0;max-width:100%}
 .document-setup :is(.doc-grid,.settings-grid,.location-form,.location-edit-form){min-width:0;max-width:100%}
 .document-setup :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){box-sizing:border-box;min-width:0;max-width:100%;font-size:16px}
 dialog.workflow-dialog.workflow-case-dialog{width:100vw;max-width:100vw!important}
}
