/* Melhoria progressiva de formulários extensos e uploads. */
form[data-form-workflow="enhanced"] :is(fieldset, .field-panel, .records-form-section, .card-form) { scroll-margin-top: 6rem; }

.form-workflow-summary {
    display: flex;
    align-items: center;
    gap: .8rem;
    margin-bottom: 1rem;
    padding: .85rem 1rem;
    border: 1px solid #cfdfd6;
    border-radius: 12px;
    color: #1b3227;
    background: #f2f8f4;
}

.form-workflow-summary > i { flex: 0 0 auto; color: #1f6b43; font-size: 1.45rem; }
.form-workflow-summary > div { display: grid; flex: 1; grid-template-columns: 1fr auto; gap: .15rem .75rem; min-width: 0; }
.form-workflow-summary strong { font-size: .86rem; }
.form-workflow-summary span { color: #607169; font-size: .75rem; }
.form-workflow-summary__track { grid-column: 1 / -1; overflow: hidden; width: 100%; height: 5px; margin-top: .35rem; border: 0; border-radius: 999px; background: #d8e6de; appearance: none; }
.form-workflow-summary__track::-webkit-progress-bar { border-radius: 999px; background: #d8e6de; }
.form-workflow-summary__track::-webkit-progress-value { border-radius: 999px; background: #278158; transition: width .2s ease; }
.form-workflow-summary__track::-moz-progress-bar { border-radius: 999px; background: #278158; }

.file-workflow { margin-top: .45rem; padding: .7rem .8rem; border: 1px dashed #c5d5cd; border-radius: 10px; background: #f9fbfa; }
.file-workflow__hint,
.file-workflow__meta { display: block; color: #607169; font-size: .73rem; line-height: 1.4; overflow-wrap: anywhere; }
.file-workflow__meta { margin-top: .2rem; color: #33473d; font-weight: 700; }
.file-workflow__list { display: grid; gap: .35rem; margin: .55rem 0 0; padding: 0; list-style: none; }
.file-workflow__list:empty { display: none; }
.file-workflow__list li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .5rem; align-items: center; padding: .5rem .6rem; border: 1px solid #dce6e1; border-radius: 8px; color: #233a2f; background: #fff; }
.file-workflow__list li i { color: #278158; font-size: 1.15rem; }
.file-workflow__list li span { overflow: hidden; font-size: .8rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.file-workflow__list li small { color: #687870; font-size: .7rem; white-space: nowrap; }
.file-workflow__clear { min-height: 36px; margin-top: .55rem; padding: .35rem .55rem; border: 0; color: #9c2f2f; background: transparent; font-size: .76rem; font-weight: 750; text-decoration: underline; text-underline-offset: .18rem; }
.file-workflow__clear:focus-visible { border-radius: 6px; outline: 3px solid rgba(31, 107, 67, .25); outline-offset: 2px; }
.has-file-selection .file-workflow { border-style: solid; border-color: #84ae98; background: #f1f8f4; }

.sig-upload { position: relative; }
.sig-upload .custom-file-label,
.sig-upload > input[type="file"].form-control {
    min-height: 52px;
    border: 1px dashed #9eb9aa;
    border-radius: 10px;
    color: #263d32;
    background-color: #f8fbf9;
}
.sig-upload .custom-file-label { cursor: pointer; }
.sig-upload .custom-file-label i { flex: 0 0 auto; color: #1f6b43; font-size: 1.3rem; }
.sig-upload > input[type="file"].form-control { padding: .55rem .65rem; }
.sig-upload > input[type="file"].form-control::file-selector-button {
    min-height: 36px;
    margin: -.25rem .65rem -.25rem -.35rem;
    padding: .4rem .75rem;
    border: 0;
    border-right: 1px solid #c8d8cf;
    color: #185736;
    background: #eaf3ed;
    font-weight: 700;
    cursor: pointer;
}
.sig-upload .custom-file-input:focus-visible + .custom-file-label,
.sig-upload > input[type="file"].form-control:focus-visible {
    border-color: #1f6b43 !important;
    outline: 3px solid rgba(31, 107, 67, .22);
    outline-offset: 2px;
}
.sig-upload__help { display: block; margin: .45rem 0 0; color: #52675d; font-size: .76rem; line-height: 1.45; }
.sig-upload .file-workflow__hint { display: none; }
.sig-upload .institucional-logo-preview { display: block; max-width: 100%; object-fit: contain; }
.sig-upload .institucional-logo-preview.d-none { display: none; }

@media (forced-colors: active) {
    .sig-upload .custom-file-label,
    .sig-upload > input[type="file"].form-control { border: 2px dashed ButtonText; }
}

@media (max-width: 767.98px) {
    .form-workflow-summary { align-items: flex-start; }
    .form-workflow-summary > div { grid-template-columns: 1fr; }
    .form-workflow-summary__track { grid-column: 1; }
    .file-workflow__list li { grid-template-columns: auto minmax(0, 1fr); }
    .file-workflow__list li small { grid-column: 2; }
    .file-workflow__clear { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .form-workflow-summary__track::-webkit-progress-value { transition: none; }
}
