/* Official Inter 4.1. Original font files and SIL OFL are in assets/fonts/inter. */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/inter/InterVariable.woff2?v=4.1') format('woff2');
}

@font-face {
  font-family: "Inter";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/inter/InterVariable-Italic.woff2?v=4.1') format('woff2');
}

:root {
  --font-ui: "Inter", sans-serif;
  --ui-body-size: 14px;
  --ui-body-line: 21px;
  --ui-title-size: 24px;
  --ui-title-line: 32px;
  --ui-kpi-size: 28px;
  --ui-kpi-line: 32px;
  --ui-section-size: 16px;
  --ui-section-line: 24px;
  --ui-card-size: 14px;
  --ui-card-line: 20px;
  --ui-table-size: 13px;
  --ui-table-line: 20px;
  --ui-label-size: 12px;
  --ui-label-line: 16px;
  --ui-meta-size: 12px;
  --ui-meta-line: 18px;
  font-family: var(--font-ui) !important;
  font-optical-sizing: auto;
  font-synthesis: none;
  font-feature-settings: 'liga' 1, 'calt' 1;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Includes native controls, third-party sign-in UI and body-mounted modals.
   The brand is rendered by the existing image assets, which are untouched. */
:where(*, *::before, *::after) {
  font-family: inherit !important;
  font-optical-sizing: auto;
  font-synthesis: none;
}

body {
  font-size: var(--ui-body-size);
  line-height: var(--ui-body-line);
  font-weight: 400;
}

:where(button, input, select, textarea, option, optgroup) {
  font-size: inherit;
  line-height: inherit;
}

::file-selector-button {
  font: inherit;
  font-weight: 600;
}

:is(strong, b) { font-weight: 500 !important; }
:is(h1, .page-title) { font-weight: 650 !important; }
:is(h2, h3, h4, h5, h6) { font-weight: 600 !important; }

/* The marker may be on a stylesheet link or the server-embedded style element.
   Only typography is standardized; existing layout and color rules still apply.
   Importance keeps the scale consistent with legacy and third-party styles. */
html:has(> head > :is(link, style)[data-typography="portal"]) body {
  font-size: var(--ui-body-size) !important;
  line-height: var(--ui-body-line) !important;
  font-weight: 400 !important;
}

html:has(> head > :is(link, style)[data-typography="portal"]) :is(h1, .page-title, .reviewer-lock-title, .audit-workspace-heading h2) {
  font-size: var(--ui-title-size) !important;
  line-height: var(--ui-title-line) !important;
  font-weight: 650 !important;
  letter-spacing: -.025em;
}

html:has(> head > :is(link, style)[data-typography="portal"]) :is(h2, .section-title, .result-title) {
  font-size: var(--ui-section-size) !important;
  line-height: var(--ui-section-line) !important;
  font-weight: 600 !important;
  letter-spacing: -.01em;
}

html:has(> head > :is(link, style)[data-typography="portal"]) :is(h3, h4, h5, h6, .card-title, .finding-title, .crit-name, .cs-head, .runhead-card .rc-title) {
  font-size: var(--ui-card-size) !important;
  line-height: var(--ui-card-line) !important;
  font-weight: 600 !important;
}

html:has(> head > :is(link, style)[data-typography="portal"]) :is(p, textarea, input, select, .runmeta, .sub, .summary-line, .crit-detail, .crit-missing, .crit-clar .txt, .crit-cite-quote, .pk-rationale, .pk-ev-snippet, .finding-why, .finding-missing, .mf-q, .note-text, .pq-explainer, .gap, .cs-guidance) {
  font-size: var(--ui-body-size) !important;
  line-height: var(--ui-body-line) !important;
  font-weight: 400 !important;
}

html:has(> head > :is(link, style)[data-typography="portal"]) :is(button, [role="button"], .btn, .hero-btn, .workspace-action, .demo-cta, .pq-help-link) {
  font-size: var(--ui-card-size) !important;
  line-height: var(--ui-card-line) !important;
  font-weight: 600 !important;
}

:is(.navitem, .navlink, .header-link, .section-nav a, .signout-btn, .account-menu summary, .account-menu-content a, .queue-packet-link),
html:has(> head > :is(link, style)[data-typography="portal"]) :is(.navitem, .navlink, .header-link, .section-nav a, .signout-btn, .account-menu summary, .account-menu-content a, .queue-packet-link) {
  font-weight: 500 !important;
}

html:has(> head > :is(link, style)[data-typography="portal"]) :is(label, .field-label, .ui-label, dt, .stat-label, .stat .k, .attn-lbl, .crit-clar .lab, .crit-cite-lab, .pq-collabel, .cs-lab) {
  font-size: var(--ui-label-size) !important;
  line-height: var(--ui-label-line) !important;
  font-weight: 600 !important;
}

html:has(> head > :is(link, style)[data-typography="portal"]) :is(.badge, .header-badge, .pilot-badge, .synthetic, .tag, .score-badge, .crit-status, .pq-verdict, .pk-status, .pk-badge, .f-status, .st, .ap-pill, .ap-status, .apb-verdict, .pa-status, .pa-tag, .queue-lane, .queue-workflow-status, .queue-filter-count, .chip, #proBadge) {
  font-size: var(--ui-label-size) !important;
  line-height: var(--ui-label-line) !important;
  font-weight: 600 !important;
}

html:has(> head > :is(link, style)[data-typography="portal"]) :is(.stat .v, .stat-num, .metric-value, .kpi-number, .dashboard-card-value, .your-assignment-counts dd[id], .attn-num, .summary-grid > div > b, .price-amount) {
  font-size: var(--ui-kpi-size) !important;
  line-height: var(--ui-kpi-line) !important;
  font-weight: 650 !important;
  letter-spacing: -.025em;
}

html:has(> head > :is(link, style)[data-typography="portal"]) :is(table, td, .reviewer-queue-table, .queue-packet-link, .rrow-id) {
  font-size: var(--ui-table-size) !important;
  line-height: var(--ui-table-line) !important;
}

html:has(> head > :is(link, style)[data-typography="portal"]) :is(td, .rrow-id) { font-weight: 400 !important; }
html:has(> head > :is(link, style)[data-typography="portal"]) :is(th, .queue-open) { font-weight: 600 !important; }
html:has(> head > :is(link, style)[data-typography="portal"]) th {
  font-size: var(--ui-label-size) !important;
  line-height: var(--ui-label-line) !important;
}

html:has(> head > :is(link, style)[data-typography="portal"]) :is(small, .hint, .helper, .cap-note, .foot, .footer-meta, .last-updated, .char-count, .auth-sub, .auth-line, .runhead-card .rc-sub, .runhead-card .rc-scope, .runhead-card .rc-foot, .upload-cap, .upload-ready-names, .upload-ready-lane, .stat .sub, .lcd-hcpcs, .assignment-note, .dashboard-card-note, .dashboard-updated, .queue-reference, .queue-muted, .queue-table-count, .queue-assignment-scope, .workspace-footer, .pq-internal-ref, .crit-cite-src, .crit-cite-ctx, .crit-cite-absent, .crit-cite-hold, .advisory-note, .clar-note, .scored-ind, .cs-note, .pk-evidence, .pk-missing, .pk-guard-types, .finding-meta, .finding-anchor, .help-note, .export-note, .reviewer-progress-text, #portalStatus) {
  font-size: var(--ui-meta-size) !important;
  line-height: var(--ui-meta-line) !important;
  font-weight: 400 !important;
}

/* Counts, percentages, dates, IDs, references and scoring columns align. */
:is(table, time, code, pre, .mono, input[type="number"], input[type="date"], .kpi-number, .packet-count, .date-value, .stat, .stat-num, .metric-value, .dashboard-card-value, .dashboard-card-counts, .your-assignment-counts, .queue-filter-count, .queue-reference, .queue-scored, .queue-table-count, .dashboard-updated, .reviewer-progress-percent, .reviewer-progress-text, .rrow-id, .rrow-meta, .attn-num, .lane-count, .packet-identity, .fact .v, .score-badge, .cs-opt, .scored-ind, .pi-key, .pi-src) {
  font-variant-numeric: tabular-nums;
}

/* Display the supplied blue-ribbon artwork at its natural proportions.
   The image file is unchanged; the viewport excludes the surrounding canvas. */
.portal-wordmark {
  position: relative;
  display: block;
  flex: none;
  width: 160px;
  aspect-ratio: 1254 / 336;
  overflow: hidden;
  margin: 0 auto 12px;
  line-height: 0;
}
.portal-wordmark > img {
  position: absolute;
  display: block;
  top: -81.845238%;
  left: -18.102073%;
  width: 133.333333% !important;
  height: auto !important;
  max-width: none;
  max-height: none;
  margin: 0;
}
:is(.logo, .nav-brand) .portal-wordmark { width: 108px; margin: 0; }
html.pilot-chrome .reviewer-dashboard .topbar .brand-mark.portal-wordmark {
  width: 80px;
  aspect-ratio: 1254 / 336;
  margin: 0;
}
html.pilot-chrome .reviewer-dashboard .topbar .portal-wordmark > .brand-logo {
  position: absolute;
  top: -81.845238%;
  left: -18.102073%;
  margin: 0;
}
html.pilot-chrome .reviewer-dashboard .topbar .brand-mark.portal-wordmark + .brand-sub {
  margin-top: 4px;
}
