.file-contract-view, .file-contract-editor { min-width: 0; width: 100%; }
.file-contract-page-nav { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-block: 12px; }
.file-contract-page-nav button { min-height: 42px; }
.file-contract-page-status { margin: 0; color: #52647b; font-size: .9rem; font-variant-numeric: tabular-nums; }
.file-contract-page { position: relative; width: min(100%, 760px); margin-inline: auto; background: #fff; }
.file-contract-page img { display: block; width: 100%; height: auto; outline: 1px solid #d6dee9; }
.file-contract-page img[hidden] { display: none; }
.file-contract-text-notice { padding: 9px 12px; color: #684611; background: #fff8e9; border-left: 3px solid #a36c14; overflow-wrap: anywhere; }
.file-contract-page-text { margin-block: 12px; padding: 10px 12px; border: 1px solid #d6dee9; border-radius: 8px; }
.file-contract-page-text summary { color: #215bce; cursor: pointer; }
.file-contract-page-text p { white-space: pre-wrap; overflow-wrap: anywhere; margin-block: 8px 0; }
.file-contract-overlay { position: absolute; inset: 0; pointer-events: none; }
.file-contract-overlay .file-contract-overlay-field {
  position: absolute; min-width: 0; min-height: 0; max-width: 100%; padding: 0 3px; margin: 0;
  border: 1px solid #6481b4; border-radius: 3px; background: #fff; color: #182638; font: inherit; font-size: clamp(.65rem, 1.5vw, .95rem);
  box-sizing: border-box; pointer-events: auto; overflow: hidden; text-overflow: ellipsis;
}
.file-contract-overlay .file-contract-overlay-field.is-required { background: #edf4ff; border-color: #215bce; }
.file-contract-overlay .file-contract-overlay-field:is(:hover,:focus-visible) { z-index: 1; outline: 2px solid #215bce; outline-offset: 1px; }
.file-contract-fields { display: grid; gap: 10px; min-width: 0; }
.file-contract-field { display: grid; gap: 5px; min-width: 0; overflow-wrap: anywhere; }
.file-contract-field :is(input:not([type=checkbox],[type=radio]),select,textarea) { box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px; }
.file-contract-field :is(select,textarea) { padding: 9px 12px; border: 1px solid #c7cfda; border-radius: 6px; background: #fafbfc; color: inherit; font: inherit; }
.file-contract-field textarea { resize: vertical; white-space: pre-wrap; }
.file-contract-overlay textarea.file-contract-overlay-field { resize: none; white-space: pre-wrap; }
.file-contract-overlay .file-contract-group-jump { white-space: nowrap; }
.file-contract-field input:is([type=checkbox],[type=radio]) { width: 20px; height: 20px; accent-color: #215bce; }
.file-contract-field.is-required :is(input:not([type=checkbox],[type=radio]),select,textarea,.file-contract-toggle) { background: #edf4ff; border-color: #87a8e4; }
fieldset.file-contract-field { margin: 0; padding: 8px 12px; border: 1px solid #d6dee9; border-radius: 8px; }
fieldset.file-contract-field.is-required { background: #edf4ff; border-color: #87a8e4; }
.file-contract-field legend { padding: 0 4px; }
:is(.file-contract-radio-row,.file-contract-check-row) { display: flex; align-items: center; gap: 8px; min-height: 44px; margin: 0; }
.file-contract-field .file-contract-radio-row input[type=radio],
.file-contract-field .file-contract-check-row input[type=checkbox] { flex-shrink: 0; min-height: 0; padding: 0; margin: 0; }
.file-contract-check-row span { min-width: 0; overflow-wrap: anywhere; }
.file-contract-group-error { color: #8e2f26; }
.file-contract-toggle { min-height: 44px; padding: 9px 12px; border: 1px solid #87a8e4; background: #f4f7fc; color: #18335d; }
.file-contract-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.file-contract-compose { display: grid; gap: 16px; align-items: start; grid-template-columns: minmax(0, 1fr) minmax(240px, .53fr); }
.file-contract-compose > * { min-width: 0; }
.file-contract-compose-form { display: grid; gap: 12px; padding: 14px; border: 1px solid #d6dee9; border-radius: 10px; background: #fff; }
.file-contract-compose-form input[required]:not([type=checkbox],[type=radio]) { background: #edf4ff; border-color: #87a8e4; }
.file-contract-compose-form input:not([type=checkbox],[type=radio]) { box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px; }
.file-contract-compose-form .contract-actions { margin: 0; }
@media (max-width: 780px) {
  .file-contract-compose { grid-template-columns: minmax(0, 1fr); }
  .file-contract-compose-form { order: -1; }
}
