/* Clinic portal presentation. No governance/login selectors, palette changes,
   API dependencies, external fonts, or storage. Loaded after portal.css. */
body.portal-active {
  --portal-font-ui: "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --portal-page-width: 1500px;
  --portal-page-top: 30px;
  --portal-page-gutter: 32px;
  font-family: var(--portal-font-ui);
}
/* Short and long tabs use the same viewport width on classic-scrollbar systems. */
html:has(body.portal-active) { scrollbar-gutter: stable; }
#portal-shell { font-size: 15px; line-height: 1.5; }
#portal-shell button, #portal-shell input, #portal-shell select,
#portal-shell textarea { font-family: var(--portal-font-ui); }
#portal-shell [hidden] { display: none !important; }
#portal-shell :is(button, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--portal-teal);
  outline-offset: 3px;
}
#portal-sidebar { --rail-w: 240px; box-shadow: none; border-right-color: var(--portal-line); }
#portal-sidebar-brand { padding: 28px 20px 30px; }
#portal-logo { width: 180px; max-width: 100%; height: auto; }
#portal-tab-bar { padding: 4px 12px; gap: 4px; }
.portal-tab { border-radius: 5px; min-height: 44px; font-size: 14px; padding: 11px 12px; }
.portal-tab::before, .portal-tab::after { display: none; }
.portal-nav-icon { width: 18px; height: 18px; }
.portal-nav-label { white-space: normal; text-overflow: clip; }
.portal-val-urgency-label, .portal-val-history-title, .portal-val-tier { text-transform: none; letter-spacing: 0; }
#portal-sidebar-account { padding: 18px 16px; }
#portal-content { min-width: 0; }
.portal-panel-inner, .portal-panel-inner--wide, .portal-panel-inner--val {
  box-sizing: border-box;
  max-width: var(--portal-page-width); width: 100%; margin: 0 auto;
  padding: var(--portal-page-top) var(--portal-page-gutter) 48px;
}
#portal-shell .portal-section-label { font-size: 12px; line-height: 18px; letter-spacing: 0; text-transform: none; font-weight: 500; margin: 0 0 6px; }
#portal-shell .portal-section-heading { font-size: 28px; line-height: 1.2; font-weight: 600; letter-spacing: -.5px; margin: 0 0 9px; }
.portal-section-sub { font-size: 14px; line-height: 1.6; max-width: 76ch; }
.portal-na-head, .portal-val-head, .portal-pk-head { margin-bottom: 24px; align-items: start; }
.portal-card, .portal-block, .portal-val-filters, .portal-val-card,
.portal-val-fact, .portal-pk-card, .portal-stat, .portal-note,
.portal-srt-detail, .portal-val-table-scroll {
  box-shadow: none; border-color: var(--portal-line); border-radius: 6px;
}
.portal-card:hover, .portal-pk-card:hover, .portal-note:hover {
  box-shadow: none; transform: none;
}
.portal-primary-btn, .portal-val-btn, .portal-pill-btn, .portal-back,
.portal-pager-btn, .portal-export-btn { min-height: 38px; border-radius: 5px; font-size: 14px; box-shadow: none; }
.portal-primary-btn:hover, .portal-val-btn:hover, .portal-pill-btn:hover { transform: none; box-shadow: none; }
.portal-field label, .portal-val-field label { font-size: 12px; text-transform: none; letter-spacing: 0; }
.portal-field input, .portal-field select, .portal-input, .portal-search,
.portal-val-input, .portal-srt-comment {
  font-size: 14px; min-height: 38px; border-radius: 5px;
  background: var(--portal-input-bg); color: var(--portal-dark-gray);
  border-color: var(--portal-input-border);
}
.portal-field-hint { font-size: 12px; }
.portal-msg { border-radius: 5px; font-size: 14px; }
.portal-na-controls, .portal-val-filters { padding: 18px 20px; background: var(--portal-surface); }
.portal-val-filter-grid { gap: 14px; }
.portal-val-filter-actions { margin-top: 16px; }
.portal-na-seg, .portal-val-seg, .portal-pk-window { border-radius: 5px; box-shadow: none; }
.portal-na-seg-btn, .portal-val-seg-btn, .portal-pk-win-btn {
  border-radius: 3px; min-height: 32px; font-size: 13px; font-weight: 500;
}
.portal-na-seg-btn--on, .portal-val-seg-btn--on, .portal-pk-win-btn--on { box-shadow: none; }
.portal-na-refine { gap: 16px; }
.portal-na-runrow { border-top: 1px solid var(--portal-line); padding-top: 14px; }
.portal-na-runrow-copy strong { font-size: 14px; }
.portal-na-runrow-copy span { font-size: 13px; }
.portal-na-tally { gap: 8px; }
.portal-na-tile { border-radius: 4px; padding: 8px 12px; box-shadow: none; }
.portal-na-tile-n { font-size: 18px; }
.portal-na-tile-l { font-size: 12px; letter-spacing: 0; text-transform: none; }
.portal-list-toolbar { margin-top: 18px; gap: 12px; }
.portal-list-count, .portal-val-count, .portal-val-tally { font-size: 13px; }
.portal-na-day-h { font-size: 13px; letter-spacing: 0; text-transform: none; padding: 12px 14px; margin: 0; background: var(--portal-ice); }
.portal-na-day-list { gap: 0; border: 1px solid var(--portal-line); border-radius: 5px; overflow: hidden; }
.portal-note { border: 0; border-bottom: 1px solid var(--portal-line); border-radius: 0; padding: 15px 16px; min-height: 72px; background: var(--portal-surface); }
.portal-note:last-child { border-bottom: 0; }
.portal-note-date { font-size: 15px; font-weight: 600; }
.portal-note-provider, .portal-note-meta { font-size: 12px; line-height: 1.5; }
.portal-chip, .portal-pill, .portal-val-tier, .portal-srt-badge { font-size: 12px; border-radius: 4px; font-weight: 500; }
.portal-row-selected, .portal-row-selected:hover { background: var(--portal-soft-blue) !important; }
.portal-val-table { font-size: 14px; }
.portal-val-table th, .portal-pk-providers-table th {
  background: var(--portal-ice); color: var(--portal-mid-gray);
  font-family: var(--portal-font-ui); font-size: 12px; text-transform: none;
  letter-spacing: 0; font-weight: 500; padding: 12px 14px;
}
.portal-val-table td { padding: 14px; line-height: 1.5; vertical-align: top; }
.portal-val-patient { font-size: 15px; font-weight: 600; }
.portal-val-date, .portal-val-line { font-size: 14px; }
.portal-val-sub, .portal-val-esc-detail { font-size: 12px; line-height: 1.5; }
.portal-val-row--tier-start td { border-top: 1px solid var(--portal-line); }
.portal-val-detail-screen { min-width: 0; }
.portal-val-detail-title, .portal-detail-title { font-size: 25px; font-weight: 600; letter-spacing: -.4px; }
.portal-val-detail-kicker, .portal-val-card-kicker, .portal-val-detail-label,
.portal-block-title, .portal-cov-section-label {
  text-transform: none; letter-spacing: 0; font-size: 12px; font-weight: 500;
}
.portal-val-detail-head { border-bottom: 1px solid var(--portal-line); padding-bottom: 20px; }
.portal-val-detail-facts { border: 1px solid var(--portal-line); border-radius: 5px; gap: 0; background: var(--portal-ice); }
.portal-val-fact { background: transparent; padding: 15px 18px; border: 0; border-radius: 0; }
.portal-val-card { padding: 20px; }
.portal-val-card--action { background: var(--portal-surface); }
.portal-val-card-lead { font-size: 16px; font-weight: 500; line-height: 1.65; }
.portal-val-detail-body, .portal-val-card-meta { font-size: 14px; line-height: 1.65; }
.portal-val-detail-muted { font-size: 13px; }
.portal-val-card-grid { gap: 22px; background: var(--portal-ice); border-radius: 4px; padding: 16px; }
.portal-block { padding: 22px; }
.portal-problem-text { font-size: 17px; line-height: 1.5; font-weight: 500; }
.portal-issue { padding: 14px; min-height: 58px; }
.portal-quote { border: 1px solid var(--portal-line); border-radius: 4px; }
.portal-facts { gap: 14px; }
.portal-pk-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.portal-pk-card { padding: 24px; gap: 20px; border: 1px solid var(--portal-line); }
.portal-pk-card::before { display: none; }
.portal-pk-card--hero { grid-column: 1 / -1; }
.portal-pk-card-title, .portal-pk-card--hero .portal-pk-card-title { font-size: 20px; font-weight: 600; letter-spacing: -.2px; }
.portal-pk-eyebrow { text-transform: none; letter-spacing: 0; font-size: 12px; font-weight: 500; }
.portal-pk-card-lede { font-size: 14px; line-height: 1.6; }
.portal-pk-card-body, .portal-pk-card:not(.portal-pk-card--hero) .portal-pk-card-body { display: grid; grid-template-columns: minmax(130px, .7fr) minmax(0, 1.3fr); gap: 24px; align-items: center; }
.portal-pk-hero-num, .portal-pk-card--hero .portal-pk-hero-num { font-size: 42px; font-weight: 550; letter-spacing: -1px; }
.portal-pk-hero-unit, .portal-pk-card--hero .portal-pk-hero-unit { font-size: 22px; }
.portal-pk-chip { font-size: 12px; border-radius: 4px; }
.portal-pk-worklist { margin-top: 16px; }
.portal-pk-worklist-label { font-size: 13px; }
.portal-pk-providers { border-top: 1px solid var(--portal-line); padding-top: 18px; }
.portal-pk-providers-table td { font-size: 14px; padding: 11px 14px; }
.portal-srt-loc-bar { margin-bottom: 16px; }
.portal-srt-detail { border: 1px solid var(--portal-line); border-radius: 5px; padding: 22px; }
.portal-srt-detail-name { font-size: 23px; font-weight: 600; }
.portal-srt-kv { font-size: 14px; }
.portal-srt-comment { min-width: 150px; min-height: 58px; font-size: 13px; }
.portal-srt-split--open { grid-template-columns: minmax(0, 1fr) minmax(340px, .65fr); gap: 20px; }
.portal-cov-card { padding: 0; overflow: hidden; }
.portal-cov-form { padding: 22px; }
.portal-cov-textarea { font-size: 15px; min-height: 160px; line-height: 1.6; }
.portal-cov-card .portal-results-area { margin: 0; padding: 24px; border-top: 1px solid var(--portal-line); }
.portal-cov-answer { box-shadow: none; background: var(--portal-ice); border: 1px solid var(--portal-line); border-radius: 5px; font-size: 16px; line-height: 1.7; }
.portal-cov-fact, .portal-cov-facts { border-radius: 4px; }
/* Focused workspaces retain all existing controls and record renderers. */
@media (min-width: 1101px) {
  .portal-val-filter-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 10px; }
  .portal-val-urgency { padding-bottom: 10px; margin-bottom: 12px; }
  .portal-val-filter-actions { margin-top: 12px; }
  #portal-panel-validator[data-view="detail"],
  #portal-panel-note-audit:is([data-view="detail"], [data-view="fix"]) {
    display: grid; grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr);
    column-gap: 24px; align-items: start;
    box-sizing: border-box;
    padding: var(--portal-page-top) var(--portal-page-gutter) 48px;
    width: 100%; max-width: var(--portal-page-width); margin: 0 auto;
  }
  #portal-panel-validator[data-view="detail"] #portal-val-list-view,
  #portal-panel-note-audit:is([data-view="detail"], [data-view="fix"]) #portal-na-list-view { display: contents; }
  #portal-panel-validator[data-view="detail"] .portal-val-head { grid-column: 1 / -1; grid-row: 1; }
  #portal-panel-validator[data-view="detail"] .portal-val-filters { grid-column: 1 / -1; grid-row: 2; margin-bottom: 18px; }
  #portal-panel-validator[data-view="detail"] .portal-val-toolbar { grid-column: 1; grid-row: 3; flex-wrap: wrap; margin-top: 0; }
  #portal-panel-validator[data-view="detail"] #portal-val-worklist-wrap { grid-column: 1; grid-row: 4; min-width: 0; max-height: 74vh; overflow: auto; }
  #portal-panel-validator[data-view="detail"] .portal-val-history { grid-column: 1; grid-row: 5; }
  #portal-panel-validator[data-view="detail"] #portal-val-detail-view { grid-column: 2; grid-row: 3 / span 3; padding: 22px; min-width: 0; border: 1px solid var(--portal-line); border-radius: 6px; background: var(--portal-surface); }
  #portal-panel-validator[data-view="detail"] .portal-val-table { min-width: 0; table-layout: auto; }
  #portal-panel-validator[data-view="detail"] :is(.portal-val-c-visit,.portal-val-c-provider,.portal-val-c-gaps,.portal-val-c-action,.portal-val-c-esc,.portal-val-c-go) { display: none; }
  #portal-panel-validator[data-view="detail"] .portal-val-table th:nth-child(n+4) { display: none; }
  #portal-panel-validator[data-view="detail"] .portal-val-table td { width: auto; padding: 13px 10px; }
  #portal-panel-validator[data-view="detail"] .portal-val-c-tier { white-space: normal; }
  #portal-panel-validator[data-view="detail"] .portal-val-tier { font-size: 11px; white-space: normal; }
  #portal-panel-validator[data-view="detail"] .portal-val-detail-facts { grid-template-columns: 1fr 1fr; }
  #portal-panel-validator[data-view="detail"] .portal-val-card-grid { grid-template-columns: 1fr; }
  #portal-panel-note-audit:is([data-view="detail"], [data-view="fix"]) .portal-na-head { grid-column: 1 / -1; grid-row: 1; }
  #portal-panel-note-audit:is([data-view="detail"], [data-view="fix"]) #portal-na-controls { grid-column: 1 / -1; grid-row: 2; margin-bottom: 18px; }
  #portal-panel-note-audit:is([data-view="detail"], [data-view="fix"]) #portal-na-run-msg { grid-column: 1 / -1; grid-row: 3; }
  #portal-panel-note-audit:is([data-view="detail"], [data-view="fix"]) #portal-na-summary { grid-column: 1; grid-row: 4; flex-wrap: wrap; }
  #portal-panel-note-audit:is([data-view="detail"], [data-view="fix"]) .portal-list-toolbar { grid-column: 1; grid-row: 5; flex-wrap: wrap; }
  #portal-panel-note-audit:is([data-view="detail"], [data-view="fix"]) #portal-na-list { grid-column: 1; grid-row: 6; max-height: 74vh; overflow: auto; min-width: 0; }
  #portal-panel-note-audit:is([data-view="detail"], [data-view="fix"]) :is(#portal-na-detail-view,#portal-na-fix-view) { grid-column: 2; grid-row: 4 / span 3; padding: 22px; border: 1px solid var(--portal-line); border-radius: 6px; background: var(--portal-surface); min-width: 0; }
  #portal-panel-note-audit:is([data-view="detail"], [data-view="fix"]) .portal-note { flex-wrap: wrap; gap: 8px; }
  #portal-panel-note-audit:is([data-view="detail"], [data-view="fix"]) .portal-note-text { flex: 1 1 100%; }
  #portal-panel-note-audit:is([data-view="detail"], [data-view="fix"]) .portal-note-cta { margin-left: auto; }
  .portal-cov-card:has(.portal-results-area:not([hidden])) { display: grid; grid-template-columns: minmax(270px,.7fr) minmax(0,1.3fr); align-items: start; }
  .portal-cov-card:has(.portal-results-area:not([hidden])) .portal-results-area { border-top: 0; border-left: 1px solid var(--portal-line); }
  .portal-cov-card:has(.portal-results-area:not([hidden])) .portal-cov-form { position: sticky; top: 20px; }
}
@media (min-width: 641px) and (max-width: 1000px) {
  #portal-sidebar { --rail-w: 76px; }
  #portal-sidebar-brand { padding: 20px 5px; }
  #portal-logo { width: 65px; height: auto; }
  #portal-tab-bar { padding: 4px 8px; }
}
@media (max-width: 1100px) {
  #portal-panel-validator[data-view="detail"] #portal-val-list-view,
  #portal-panel-note-audit:is([data-view="detail"], [data-view="fix"]) #portal-na-list-view { display: none; }
  .portal-srt-split--open { grid-template-columns: 1fr; }
  .portal-srt-detail { position: static; }
  .portal-pk-card-body, .portal-pk-card:not(.portal-pk-card--hero) .portal-pk-card-body { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  body.portal-active { --portal-page-top: 24px; --portal-page-gutter: 16px; }
  .portal-panel-inner, .portal-panel-inner--wide, .portal-panel-inner--val { padding-bottom: 40px; }
  .portal-pk-grid { grid-template-columns: 1fr; }
  #portal-shell .portal-section-heading { font-size: 25px; }
  .portal-val-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-val-field--search { grid-column: 1 / -1; }
  .portal-pk-card { padding: 20px; }
  .portal-val-detail-facts, .portal-val-card-grid { grid-template-columns: 1fr; }
  .portal-val-detail-head { flex-wrap: wrap; }
  .portal-pk-eyebrow-row { flex-wrap: wrap; gap: 10px; }
  .portal-na-controls, .portal-val-filters { padding: 16px; }
  .portal-cov-form, .portal-cov-card .portal-results-area { padding: 18px; }
}
@media (max-width: 640px) {
  #portal-sidebar { --rail-w: min(86vw, 280px); }
  #portal-sidebar-brand { padding: 28px 20px; }
  #portal-logo { width: 190px; height: auto; }
  #portal-tab-bar { padding: 4px 12px; }
}
@media (prefers-reduced-motion: reduce) {
  #portal-shell *, #portal-shell *::before, #portal-shell *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
