/* UFirma 5.1 — canonical interface typography, in rem (browser default 16px).
 * Loaded after component styles. PDF canvases and signature artwork retain
 * their document-point sizes; interface text is never reduced on mobile. */
:root {
  --ui-font-body: 1rem;
  --ui-font-control: .875rem;
  --ui-font-caption: .75rem;
  --ui-font-section: 1.25rem;
  --ui-font-title: 2rem;
}
html { font-size: 100%; }
body.institutional-ui { font-size: var(--ui-font-body); line-height: 1.6; }

/* Normalize the older tool screens, including their small inline captions. */
body.institutional-ui :is([style*="font-size: 0.6"], [style*="font-size: 0.7"], [style*="font-size: 0.8"], [style*="font-size:0.6"], [style*="font-size:0.7"], [style*="font-size:0.8"]) { font-size: var(--ui-font-control) !important; }
body.institutional-ui :is(.card, .single-tool-card, .verify-card, .privacy-card) { font-size: var(--ui-font-body); }
body.institutional-ui :is(.card, .single-tool-card) > p,
body.institutional-ui :is(.privacy-section p, .privacy-section li, .privacy-card > p, .verify-header-desc) { font-size: var(--ui-font-body) !important; line-height: 1.7 !important; }
body.institutional-ui :is(h2.card-title, .privacy-section h3, .arco-box h4) { font-size: var(--ui-font-section) !important; line-height: 1.4; }
body.institutional-ui :is(.form-group label, .form-label, .verify-card > label) { font-size: var(--ui-font-control) !important; line-height: 1.5; }
body.institutional-ui :is(.form-control, .form-input, .form-select, .form-textarea, .verify-input) { font-size: var(--ui-font-body) !important; min-height: 46px; line-height: 1.5; }
body.institutional-ui :is(.form-control, .form-input, .verify-input)::placeholder { font-size: var(--ui-font-control); }
body.institutional-ui :is(.btn, .btn-cta-glow, .btn-verify-action, .btn-arco-submit, .preset-pill-btn, .btn-profile-action, .btn-bridge-dl, .btn-bridge-retry, .btn-adobe-win-picker, .btn-adobe-scan-sub, .btn-open-viewer-glow) { font-size: var(--ui-font-control) !important; min-height: 42px; line-height: 1.5; }
body.institutional-ui :is(.card-pill-tag, .visual-badge, .status-pill, .badge-valido, .badge-invalido, .privacy-badge, .verify-brand-badge, .brand-pill) { font-size: var(--ui-font-caption) !important; line-height: 1.5; }
body.institutional-ui :is(.institutional-eyebrow, .workspace-eyebrow) { font-size: var(--ui-font-caption); }
body.institutional-ui :is(.workspace-main-sub, .dropzone p, .cert-upload-sub, .format-desc-card, .arco-box > p) { font-size: var(--ui-font-control) !important; line-height: 1.7; }
body.institutional-ui :is(.dropzone strong, .adobe-empty-dropzone p) { font-size: var(--ui-font-body); }
body.institutional-ui :is(.results-table, .doc-meta-table) { font-size: var(--ui-font-control); }
body.institutional-ui :is(.results-table th, .results-table td, .doc-meta-table td) { font-size: var(--ui-font-control); line-height: 1.6; }
body.institutional-ui :is(.results-table code, .doc-meta-table td:last-child) { font-size: var(--ui-font-caption) !important; }
body.institutional-ui :is(.results-table small, .doc-meta-table small) { font-size: var(--ui-font-caption) !important; }
body.institutional-ui .results-table td:last-child a { font-size: var(--ui-font-control) !important; }
body.institutional-ui .convert-mode-card > div:first-child { font-size: var(--ui-font-control) !important; }
body.institutional-ui .convert-mode-card > div:last-child { font-size: var(--ui-font-caption) !important; }
body.institutional-ui :is(.verify-tab-btn, .btn-asistente-pill, .brand-sub) { font-size: var(--ui-font-control); }
body.institutional-ui :is(.privacy-title, .verify-header-title) { font-size: var(--ui-font-title); line-height: 1.3; }
body.institutional-ui :is(footer, footer a) { font-size: var(--ui-font-caption) !important; line-height: 1.7; }
body.institutional-ui .privacy-container { max-width: 1040px; }
body.institutional-ui .arco-grid > div { min-width: 0; }

/* Login is a full-size interface as well, including its legal/help text. */
body.institutional-ui .login-overlay { align-items: flex-start; }
body.institutional-ui .login-portal-wrapper { margin: auto; min-height: 740px; flex-shrink: 0; }
body.institutional-ui .login-sidebar-header { margin-bottom: 40px; }
body.institutional-ui .login-sidebar-univ { font-size: var(--ui-font-caption); letter-spacing: 1px; }
body.institutional-ui .login-sidebar-univ strong { font-size: var(--ui-font-control); max-width: 240px; }
body.institutional-ui .login-sidebar-hero .institutional-eyebrow { font-size: var(--ui-font-caption); }
body.institutional-ui .login-sidebar-hero p { font-size: var(--ui-font-body); line-height: 1.65; max-width: 360px; }
body.institutional-ui .login-feature-item { font-size: var(--ui-font-body); }
body.institutional-ui .login-feature-item div div { font-size: var(--ui-font-control) !important; line-height: 1.6; }
body.institutional-ui .login-sidebar-footer { font-size: var(--ui-font-caption); flex-wrap: wrap; }
body.institutional-ui .login-form-title { font-size: 1.875rem; }
body.institutional-ui .login-form-desc { font-size: var(--ui-font-body); line-height: 1.65; }
body.institutional-ui .login-form-badge { font-size: var(--ui-font-caption); letter-spacing: 1px; }
body.institutional-ui .login-info-box-header { font-size: var(--ui-font-control); }
body.institutional-ui .login-info-box p { font-size: var(--ui-font-control); line-height: 1.65; }
body.institutional-ui .login-info-box code { font-size: var(--ui-font-caption); }
body.institutional-ui .btn-ms-login { font-size: var(--ui-font-body); min-height: 48px; line-height: 1.5; }
body.institutional-ui .login-security-notice { font-size: var(--ui-font-caption); line-height: 1.6; }
body.institutional-ui .login-portal-form-area > div:last-child { font-size: var(--ui-font-caption) !important; line-height: 1.7 !important; }
body.institutional-ui .login-error-box { font-size: var(--ui-font-control); }

/* Workspace: explicit role-based sizes override the old compact scale. */
#workspace-root { --ws-sidebar: 264px; font-size: var(--ui-font-body); line-height: 1.6; }
#workspace-root :is(.ws-nav-item, .ws-tools-nav summary, .ws-tools-nav a, .ws-collapse, .ws-breadcrumb, .ws-user strong, .ws-metric small) { font-size: var(--ui-font-control); }
#workspace-root :is(.ws-brand strong span, .ws-brand small, .ws-sidebar-label, .ws-sidebar-privacy, .ws-nav-item b, .ws-user small, .ws-eyebrow, .ws-avatar) { font-size: var(--ui-font-caption); }
#workspace-root .ws-brand strong { font-size: 1.5rem; }
#workspace-root .ws-brand strong span { letter-spacing: .3px; }
#workspace-root .ws-sidebar-label { letter-spacing: 1px; }
#workspace-root .ws-nav-item, #workspace-root .ws-tools-nav summary { min-height: 48px; white-space: normal; }
#workspace-root .ws-tools-nav a { padding-block: 10px; }
#workspace-root .ws-user strong { max-width: 210px; }
#workspace-root .ws-user small { margin-top: 2px; }
#workspace-root .ws-topbar { height: 76px; }
#workspace-root h1 { font-size: var(--ui-font-title); line-height: 1.25; }
#workspace-root h2 { font-size: var(--ui-font-section); line-height: 1.4; }
#workspace-root :is(.ws-page-heading p:not(.ws-eyebrow), .ws-sign-heading p:not(.ws-eyebrow), .ws-empty p, .ws-start-card p, .ws-home-tools header p) { font-size: var(--ui-font-body); line-height: 1.65; }
#workspace-root :is(.ws-empty h3, .ws-properties h2, .ws-help-steps h3) { font-size: 1.125rem; line-height: 1.4; }
#workspace-root .ws-start-card h2 { font-size: 2rem; }
#workspace-root .ws-start-card p { max-width: 430px; }
#workspace-root .ws-metric strong { font-size: 2rem; }
#workspace-root :is(.ws-button, .ws-text-button, .ws-text-link, .ws-small-link, .ws-segmented button, .ws-start-card > div button, .ws-panel > header a) { font-size: var(--ui-font-control); line-height: 1.5; }
#workspace-root .ws-button { min-height: 44px; }
#workspace-root .ws-icon-button { min-width: 36px; min-height: 36px; font-size: var(--ui-font-body); }
#workspace-root :is(.ws-file-intake strong, .ws-queued-file strong, .ws-pending-row strong, .ws-home-tools strong) { font-size: var(--ui-font-control); line-height: 1.5; }
#workspace-root :is(.ws-pending-row small, .ws-home-tools a > span, .ws-queued-file small, .ws-segmented button > span, .ws-steps small) { font-size: var(--ui-font-caption); line-height: 1.5; }
#workspace-root .ws-segmented button { min-height: 40px; padding: 9px 13px; }
#workspace-root .ws-steps { gap: 18px; padding-block: 18px; }
#workspace-root .ws-steps strong { font-size: var(--ui-font-control); }
#workspace-root .ws-steps li > span { width: 32px; height: 32px; font-size: var(--ui-font-caption); flex-shrink: 0; }
#workspace-root .ws-sign-layout { grid-template-columns: minmax(0, 1fr) 360px; }
#workspace-root .ws-properties { top: 94px; max-height: calc(100dvh - 205px); }
#workspace-root .ws-properties .ws-field-pair { grid-template-columns: minmax(0, 1fr); gap: 0; }
#workspace-root label:not(.ws-check):not(.ws-search) { font-size: var(--ui-font-control); line-height: 1.5; }
#workspace-root :is(.ws-input, .ws-search input) { font-size: var(--ui-font-body); line-height: 1.5; }
#workspace-root .ws-input { min-height: 46px; }
#workspace-root .ws-input::placeholder { font-size: var(--ui-font-control); }
#workspace-root input[type="file"].ws-input { font-size: var(--ui-font-control); }
#workspace-root input::file-selector-button { font: inherit; }
#workspace-root :is(.ws-check, .ws-properties summary, .ws-modal-form summary, .ws-placement-presets button) { font-size: var(--ui-font-control); line-height: 1.5; }
#workspace-root :is(.ws-property-actions .ws-button, .ws-certificate-controls .ws-button, .ws-file-intake .ws-button, .ws-row-actions .ws-button) { font-size: var(--ui-font-control); min-height: 40px; }
#workspace-root :is(.ws-caption, .ws-viewer-caption, .ws-rendering, .ws-thumbnail span, .ws-thumbnails label, .ws-steps li > span, .ws-status, .ws-footer, .ws-footer a) { font-size: var(--ui-font-caption); line-height: 1.5; }
#workspace-root :is(.ws-viewer-toolbar strong, .ws-viewer-toolbar span, .ws-viewer-toolbar button) { font-size: var(--ui-font-control); }
#workspace-root .ws-viewer-toolbar strong { max-width: 240px; }
#workspace-root .ws-viewer-toolbar { padding: 12px; gap: 10px; }
#workspace-root .ws-viewer-toolbar > div { flex-wrap: wrap; gap: 6px; }
#workspace-root .ws-viewer-toolbar .ws-icon-button { min-width: 30px; min-height: 32px; }
#workspace-root .ws-thumbnails input { font-size: var(--ui-font-control); }
#workspace-root .ws-queued-file { flex-basis: 260px; max-width: 330px; }
#workspace-root .ws-queued-file strong { max-width: 185px; }
#workspace-root .ws-sign-actionbar { gap: 18px; }
#workspace-root .ws-sign-actionbar strong { font-size: var(--ui-font-control); }
#workspace-root .ws-sign-actionbar > div > span { font-size: var(--ui-font-caption); line-height: 1.5; }
#workspace-root .ws-sign-actionbar .ws-check { font-size: var(--ui-font-control); max-width: 250px; }
#workspace-root .ws-sign-workspace { padding-bottom: 125px; }
#workspace-root :is(.ws-results header p, .ws-result-row strong, .ws-table td, .ws-table-document strong, .ws-request-body p, .ws-request-body blockquote, .ws-error strong) { font-size: var(--ui-font-control); line-height: 1.6; }
#workspace-root :is(.ws-result-row p, .ws-table-filters > span, .ws-table-document small, .ws-panel-footnote, .ws-request-body small) { font-size: var(--ui-font-caption); line-height: 1.6; }
#workspace-root .ws-table { min-width: 950px; }
#workspace-root .ws-table th { font-size: var(--ui-font-caption); }
#workspace-root .ws-table-document strong { max-width: 330px; }
#workspace-root .ws-table-filters { flex-wrap: wrap; }
#workspace-root .ws-table-filters select { width: 195px; }
#workspace-root :is(.ws-request-body h2, .ws-modal > header h2) { font-size: var(--ui-font-section); line-height: 1.4; }
#workspace-root .ws-modal { width: 680px; }
#workspace-root :is(.ws-modal-body > p, .ws-modal-form > p, .ws-dialog-message, .ws-help-steps p) { font-size: var(--ui-font-body); line-height: 1.65; }
#workspace-root :is(.ws-review-summary span, .ws-review-summary small, .ws-review-files p > span, .ws-help-steps b) { font-size: var(--ui-font-caption); line-height: 1.6; }
#workspace-root :is(.ws-review-summary strong, .ws-review-files > strong, .ws-review-files p, .ws-toast, .ws-toast > div button, .ws-error p, .ws-field-error, .ws-loading) { font-size: var(--ui-font-control); line-height: 1.6; }
#workspace-root .ws-modal > footer { flex-wrap: wrap; }
#workspace-root .ws-modal-body { overflow-wrap: anywhere; }
#workspace-root .ws-footer { gap: 12px 20px; }

@media (max-width: 1180px) {
  #workspace-root { --ws-sidebar: 250px; }
}
@media (max-width: 1120px) {
  #workspace-root .ws-sign-layout { grid-template-columns: minmax(0, 1fr); }
  #workspace-root .ws-properties { position: static; max-height: none; }
  #workspace-root .ws-properties fieldset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #workspace-root .ws-properties section { min-width: 0; padding: 22px; }
}
@media (max-width: 950px) {
  #workspace-root { --ws-sidebar: 0px; }
  #workspace-root .ws-sidebar { width: min(290px, calc(100vw - 28px)); }
}
@media (max-width: 900px) {
  #workspace-root .ws-sign-actionbar { flex-wrap: wrap; gap: 12px; }
  #workspace-root .ws-sign-actionbar > div { flex-basis: 100%; }
  #workspace-root .ws-sign-actionbar .ws-check { flex: 1; max-width: none; }
  #workspace-root .ws-sign-workspace { padding-bottom: 180px; }
}
@media (max-width: 760px) {
  body.institutional-ui .login-portal-wrapper { min-height: 0; }
  body.institutional-ui .login-portal-form-area { padding: 30px 24px; }
  body.institutional-ui .login-sidebar-hero h1 span { font-size: 1.25rem; }
  body.institutional-ui .login-sidebar-univ strong { font-size: var(--ui-font-caption); }
  body.institutional-ui :is(.privacy-title, .verify-header-title) { font-size: 1.75rem; }
  body.institutional-ui.public-service-page .topbar-container { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  body.institutional-ui.public-service-page .topbar-actions-right { grid-column: 1; grid-row: 2; justify-content: flex-start; }
  body.institutional-ui.public-service-page .topbar-actions-right .btn-asistente-pill { max-width: none; font-size: var(--ui-font-control); padding: 8px 12px; }
  body.institutional-ui.public-service-page .brand-pill { max-width: none; font-size: var(--ui-font-caption); }
  body.institutional-ui .verify-tabs-nav { flex-wrap: wrap; }
  body.institutional-ui .verify-tab-btn { flex-basis: 100%; min-height: 46px; }
  body.institutional-ui :is(.verify-card, .privacy-card, .arco-box) { padding-inline: 20px; }
  #workspace-root .ws-properties fieldset { grid-template-columns: minmax(0, 1fr); }
  #workspace-root .ws-home-grid, #workspace-root .ws-home-tools > div { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
  #workspace-root .ws-topbar { height: 64px; }
  #workspace-root .ws-topbar span.ws-breadcrumb { font-size: 0; min-width: 0; }
  #workspace-root .ws-breadcrumb strong { font-size: var(--ui-font-control); max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  #workspace-root .ws-page-heading > .ws-button { font-size: 0; }
  #workspace-root h1 { font-size: 1.75rem; }
  #workspace-root .ws-sign-heading .ws-segmented { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; }
  #workspace-root .ws-segmented button { font-size: var(--ui-font-control); padding: 9px 4px; white-space: normal; }
  #workspace-root .ws-steps { flex-wrap: wrap; gap: 13px; }
  #workspace-root .ws-steps li { flex: 1 1 100%; flex-direction: row; align-items: center; gap: 10px; }
  #workspace-root .ws-steps strong { font-size: var(--ui-font-control); }
  #workspace-root .ws-steps small { font-size: var(--ui-font-caption); }
  #workspace-root .ws-steps li > span { width: 30px; height: 30px; }
  #workspace-root .ws-file-intake { flex-wrap: wrap; }
  #workspace-root .ws-metric > div { gap: 16px; }
  #workspace-root .ws-viewer-toolbar strong { max-width: 220px; }
  #workspace-root .ws-viewer-toolbar > div:last-child { flex-wrap: wrap; }
  #workspace-root .ws-result-row { flex-wrap: wrap; }
  #workspace-root .ws-request-controls .ws-button { font-size: var(--ui-font-control); }
}
@media (max-width: 600px) {
  #workspace-root .ws-sign-actionbar { gap: 10px; padding: 12px; }
  #workspace-root .ws-sign-actionbar .ws-check { flex-basis: 100%; font-size: var(--ui-font-control); }
  #workspace-root .ws-sign-actionbar > .ws-button { width: 100%; font-size: var(--ui-font-control); min-height: 44px; }
  #workspace-root .ws-sign-workspace { padding-bottom: 225px; }
  #workspace-root .ws-modal > footer .ws-button { flex: 1 1 100%; font-size: var(--ui-font-control); }
  #workspace-root .ws-field-pair { grid-template-columns: minmax(0, 1fr); gap: 0; }
  #workspace-root .ws-review-files p { flex-wrap: wrap; }
  #workspace-root .ws-breadcrumb strong { max-width: 120px; }
  #workspace-root .ws-toasts { max-width: calc(100vw - 24px); }
}
