/* Native bodies use the accepted revision-02 Instrument / cream / yellow
   presentation. These are the real route contents and controllers: this scope
   changes their type, rows, panels, controls and responsive composition only.
   The seven frozen public bodies use their own immutable stylesheet. */
.ot-route-body {
  --sans: OpsInstrument, Arial, sans-serif;
  --serif: OpsInstrument, Arial, sans-serif;
  --ink: #212222; --ink-2: #212222;
  --ink-soft: #515652; --ink-muted: #515652;
  --paper: #faf9f5; --paper-2: #f0f0eb; --paper-3: #e7e8e1;
  --rule: #c5c8c5; --hl: #ffe066; --hl-soft: #fff3b0;
  font: 15px/1.5 var(--sans);
  background: var(--paper); color: var(--ink); font-synthesis: none;
  min-width: 0;
}
.ot-route-body :is(.h-page,.w-surface,.ok,.w-app,.cw-public,.cw-page) {
  font-family: var(--sans); min-width: 0;
}
.ot-route-body :is(h1,h2,h3,h4):not(.ot-account :is(h1,h2,h3,h4),.ot-chrome :is(h1,h2,h3,h4),.ot-certificate-print :is(h1,h2,h3,h4)) {
  font-family: var(--sans); font-weight: 500; font-style: normal;
  letter-spacing: -.045em; line-height: 1.1; overflow-wrap: break-word;
}
.ot-route-body h1:not(.ot-account h1,.ot-chrome h1,.ot-certificate-print h1) {
  font-size: clamp(40px,5.4vw,78px) !important;
  line-height: 1.02; letter-spacing: -.06em;
}
.ot-route-body .h-display em {
  font-style: normal; background: linear-gradient(transparent 68%,var(--hl-soft) 68%);
}
.ot-route-body :is(.h-eyebrow,.h-label,.ok-label) {
  font-family: var(--sans); font-size: 11px; font-weight: 600;
  letter-spacing: .075em; text-transform: uppercase; line-height: 1.45;
}
.ot-route-body :is(.h-mono,.h-micro,.ok-num,.ok-micro,code,pre,.h-term,.h-term *) {
  font-family: var(--mono);
}
.ot-route-body :is(.h-container,.h-narrow) { padding-inline: 32px; }
.ot-route-body .h-container { max-width: 1244px; }
.ot-route-body .h-narrow { max-width: 1060px; }
.ot-route-body .h-section { padding-block: 58px; }
.ot-route-body .h-section-sm { padding-block: 48px; }
.ot-route-body :is(.h-card,.h-card-shadow,.h-card-hover,.s-track-card) {
  border: 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule);
  background: var(--paper); box-shadow: none !important; border-radius: 0 !important;
}
.ot-route-body .h-card-hl { background: var(--hl-soft); }
.ot-route-body :is(.h-card-hover,.s-track-card):hover { transform: none; box-shadow: none; background: var(--hl-soft); }
.ot-route-body :is(.h-btn,.ok-btn):not(.ot-chrome *) {
  min-height: 44px; border: 1px solid var(--ink); border-radius: 0;
  padding: 11px 17px; gap: 18px; font: 600 13px/1.4 var(--sans);
  letter-spacing: 0; text-transform: none; box-shadow: none;
  align-items: center; justify-content: space-between; white-space: normal;
}
.ot-route-body :is(.h-btn,.ok-btn):not(.ot-chrome *):hover { transform: none; box-shadow: none; background: var(--paper-2); }
.ot-route-body :is(.h-btn,.ok-btn):not(.ot-chrome *):active { transform: none; box-shadow: none; }
.ot-route-body :is(.h-btn,.ok-btn):not(.ot-chrome *):focus-visible { outline: 3px solid #315f7c !important; outline-offset: 3px; box-shadow: none; }
.ot-route-body :is(.h-btn-primary,.ok-btn-primary):not(.ot-chrome *) { background: var(--hl); color: var(--ink); }
.ot-route-body :is(.h-btn-primary,.ok-btn-primary):not(.ot-chrome *):hover { background: #f2d052; }
.ot-route-body :is(.h-btn-danger,.ok-btn-danger):not(.ot-chrome *) { background: #9e291b; border-color: #9e291b; color: #fff; }
.ot-route-body :is(.h-btn-danger,.ok-btn-danger):not(.ot-chrome *):hover { background: #862316; }
.ot-route-body :is(.h-btn,.ok-btn):not(.ot-chrome *):disabled { box-shadow: none; transform: none; cursor: not-allowed; }
.ot-route-body :is(.h-chip,.ok-pill) { border-width: 1px; border-radius: 0; font-family: var(--sans); }
.ot-route-body :is(.au-input,.s-input,.ok-input,.ok-select,.ok-textarea) {
  border: 1px solid #707870; border-radius: 0; background: #fff;
  font-family: var(--sans); min-height: 44px;
}
.ot-route-body .ok {
  --ok-bg: #faf9f5; --ok-bg-2: #f0f0eb; --ok-bg-3: #e7e8e1;
  --ok-ink: #212222; --ok-ink-2: #212222; --ok-ink-soft: #515652; --ok-ink-mute: #515652;
  --ok-line: #212222; --ok-line-soft: #c5c8c5;
  --ok-good: #245a44; --ok-good-soft: #eaf1ec;
  --ok-bad: #9e291b; --ok-bad-soft: #f7e9e5;
  --ok-warn: #775317; --ok-warn-soft: #f7efdf;
  --ok-shadow: none; --ok-shadow-sm: none;
}
.ot-route-body .ok[data-ok-theme="dark"] {
  --ok-bg: #131312; --ok-bg-2: #1d1d1b; --ok-bg-3: #282824;
  --ok-ink: #f1efe7; --ok-ink-2: #d9d6cb; --ok-ink-soft: #b8b5af; --ok-ink-mute: #b8b5af;
  --ok-line: #f1efe7; --ok-line-soft: rgba(241,239,231,.18);
  --ok-good: #b6cf86; --ok-good-soft: #2c331e; --ok-bad: #e0655a; --ok-bad-soft: #3d211e;
}
.ot-route-body :is(.ok-card,.ok-panel,.ok-stat,.ok-pipeline-card) { box-shadow: none; border-radius: 0; }
.ot-route-body :is(.w-hero-aside,.w-uiframe,.w-frame-body,.cw-screen,.h-term,.a-cert,.s-save-card,.s-soft-fail,.ok-cmd,.ok-toast,.ok-dialog,.ok-cert,.cw-modal,.cw-drawer,.ok-drawer) {
  box-shadow: none !important; border-radius: 0 !important; border-width: 1px;
}
.ot-route-body :is(.cw-screen,.d-cscard,.d-vertcard,.dev-int-card,.ok-kcard):hover { transform: none; box-shadow: none; }
.ot-route-body .s-track-card.is-selected { box-shadow: none; background: var(--hl-soft); border-bottom: 3px solid var(--ink); }
.ot-route-body .cw-modal.dng { box-shadow: none; border-color: #9e291b; }
.ot-route-body :is(.ot-command-dialog,.ot-dirty-save,.cw-coach) { box-shadow: none !important; border-radius: 0 !important; }
.ot-route-body .ok-field.is-error .ok-input { box-shadow: none; border-color: var(--ok-bad); }
.ot-route-body :is(.ok-pagehead,.r-head,.w-head) { align-items: flex-start; flex-wrap: wrap; }
.ot-route-body :is(.r-hero,.w-hero,.a-hero) { padding-block: 56px; }
.ot-route-body :is(.r-hero h1,.w-hero h1,.a-hero h1) { max-width: 930px; }
.ot-route-body :is(.r-hero p,.w-hero p,.a-hero p) { font-family: var(--sans); line-height: 1.65; }
.ot-route-body :is(.r-row,.w-row,.v-feature) { border-color: var(--rule); }
.ot-route-body :is(.r-row-copy h2,.w-row h2,.v-feature h2) { font-size: clamp(28px,3.6vw,44px); }
.ot-route-body :is(.r-cta,.w-cta,.a-cta) { box-shadow: none; border-width: 1px; }
.ot-route-body :is(.r-subnav,.a-subnav,.w-subnav) { font-family: var(--sans); border-bottom-color: var(--rule); }
.ot-route-body :is(.l-grid,.s-score-body) { gap: 36px; }
.ot-route-body .l-toc { font-family: var(--sans); }
.ot-route-body :is(.s-track-name,.s-rubric-bar-name,.s-score-num,.r-stat-num,.w-stat-num) { font-family: var(--sans); }
.ot-route-body :is(.s-track-grid,.edu-grid-2,.edu-grid-3,.edu-grid-4,.edu-grid-5) { gap: 24px; }
.ot-route-body .w-feat { min-width: 0; overflow-wrap: anywhere; }
.ot-route-body .s-score-num { font-size: clamp(76px,11vw,140px); font-weight: 500; }
.ot-route-body :is(.w-app-side,.w-app-top,.w-app-page) { font-family: var(--sans); }
.ot-route-body .w-app-side { background: var(--paper); border-color: var(--rule); }
.ot-route-body .w-app-side a { min-height: 44px; }
.ot-route-body .w-app-side a.is-on { background: var(--hl-soft); color: var(--ink); }
.ot-route-body .w-app-page { padding: 32px; }
.ot-route-body :is(.w-app-page,.ok-page) h1 { font-size: 40px !important; line-height: 1.1; }
.ot-route-body :is(.ot-app-body,.ok,.cw,.as2-root) h1:not(.ot-certificate-print h1) { font-size: 40px !important; line-height: 1.1; letter-spacing: -.045em; }
.ot-route-body .ot-account .h-display { font-family: OpsInstrument,Arial,sans-serif; font-style: normal; }
.ot-route-body :is(.hlp-cat,.sk-cell,.sk-card,.sk-empty) { border-width: 1px; border-radius: 0; box-shadow: none; }
.ot-route-body .hlp-cat:hover { transform: none; box-shadow: none; background: var(--hl-soft); }
.ot-route-body .hlp-search input { font-family: var(--sans); border-width: 1px; min-height: 44px; }
.ot-route-body :is(.hlp-cat-grid,.hlp-article-shell) { gap: 28px; }
.ot-route-body .cw { --cw-ink: #212222; --cw-paper: #faf9f5; --cw-paper-2: #f0f0eb; --cw-rule: 1px solid #212222; --cw-hairline: 1px solid #c5c8c5; }
.ot-route-body .cw .t-display { font-family: var(--sans); font-weight: 500; letter-spacing: -.045em; }
.ot-route-body .cw .cw-btn { min-height: 44px; box-shadow: none; font-family: var(--sans); }
.ot-route-body .cw .cw-btn:focus-visible { outline: 3px solid #315f7c !important; outline-offset: 3px; }
.ot-route-body .as2-root { --as-sans: OpsInstrument,Arial,sans-serif; --as-serif: OpsInstrument,Arial,sans-serif; --as-ink: #212222; --as-ink-soft: #515652; --as-ink-muted: #515652; --as-paper-2: #f0f0eb; }
.ot-route-body :is(.as2-logo,.as2-ticket-title,.as2-modal-title) { font-family: OpsInstrument,Arial,sans-serif; font-weight: 500; }
.ot-route-body :is(.as2-btn,.as2-badge,.as2-ticket,.as2-card) { border-radius: 0; box-shadow: none; }
.ot-route-body .as2-btn { min-height: 44px; }
.ot-route-body .as2-btn:focus-visible { outline: 3px solid #315f7c !important; outline-offset: 3px; }
.ot-route-body .ot-certificate-print {
  --serif: var(--font-serif),"Instrument Serif",Georgia,serif;
  --sans: var(--font-sans),"Inter Tight",Arial,sans-serif;
  --ink: #141413; --ink-soft: #484845; --paper: #faf9f5;
}
/* Local horizontal regions retain their scroll and keyboard affordance. Never
   mask body overflow or truncate terminal/evidence/certificate contents. */
@media(max-width:760px) {
  .ot-route-body :is(.h-container,.h-narrow) { padding-inline: 20px; }
  .ot-route-body :is(.h-section,.h-section-sm) { padding-block: 36px; }
  .ot-route-body h1:not(.ot-account h1,.ot-chrome h1,.ot-certificate-print h1) { font-size: clamp(36px,9.4vw,52px) !important; }
  .ot-route-body :is(.r-hero,.w-hero,.a-hero) { padding-block: 38px; }
  .ot-route-body :is(.l-grid,.s-score-body,.s-track-grid,.edu-grid-2,.edu-grid-3,.edu-grid-4,.edu-grid-5) { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .ot-route-body .s-score-hero { grid-template-columns: minmax(0,1fr); align-items: start; gap: 18px; }
  .ot-route-body .w-app-page { padding: 20px; }
  .ot-route-body :is(.w-app-page,.ok-page) h1 { font-size: 33px !important; }
  .ot-route-body :is(.ot-app-body,.ok,.cw,.as2-root) h1:not(.ot-certificate-print h1) { font-size: 33px !important; }
  .ot-route-body :is(.hlp-cat-grid,.hlp-article-shell) { grid-template-columns: minmax(0,1fr); }
  .ot-route-body .w-feat-grid { grid-template-columns: minmax(0,1fr); gap: 24px; }
}
@media print {
  .ot-route-body { background: #fff; }
  /* The dedicated certificate print controller owns its sheet geometry. */
  .ot-route-body .cert-print-root { font-family: var(--mono); }
}
