/*
 * Hybridoc R91 — reference-inspired presentation for the existing PHP app.
 * Load after emr-interface-r90.css (dashboards) and existing public/network CSS.
 * The supplied reference supplies the visual direction, not application data.
 * Existing routes, clinical layouts, permissions and hidden states remain owned
 * by their modules. No demo handlers, synthetic statuses or remote assets.
 *
 * The palette bridge deliberately replaces R90's local layout variables and
 * the Network's nw/r81 variables. This also lets an explicit Light preference
 * override an operating system in Dark mode without another parallel theme.
 */

.secure-site,
.hybridoc-public {
  --h91-bg: #f4f8f7;
  --h91-surface: #ffffff;
  --h91-soft: #edf6f4;
  --h91-selected: #dcefeb;
  --h91-ink: #17383d;
  --h91-ink-2: #34535a;
  --h91-muted: #50696d;
  --h91-brand: #096c70;
  --h91-brand-strong: #075b60;
  --h91-on-brand: #ffffff;
  --h91-line: #d3e1df;
  --h91-control-line: #708b8b;
  --h91-success: #176346;
  --h91-success-bg: #edf8f1;
  --h91-warning: #845000;
  --h91-warning-bg: #fff7e6;
  --h91-danger: #b02b25;
  --h91-danger-bg: #fff0ed;
  --h91-info: #1f5f88;
  --h91-info-bg: #edf5ff;
  --h91-focus: #975a05;
  --h91-hero: #103e43;
  --h91-on-hero: #f1fafa;
  --h91-hero-muted: #c8e1df;
  --h91-hero-line: #507879;
  --h91-shadow: 0 8px 28px rgb(16 62 67 / 6%);
  --h91-panel-shadow: 0 20px 56px rgb(16 62 67 / 16%);
  --h91-scheme: light;
  --h91-ease: cubic-bezier(.2,.8,.2,1);
}

/* Auto follows the device; a user's explicit Light choice is excluded. */
@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) .secure-site,
  html:not([data-theme="light"]) .hybridoc-public {
    --h91-bg: #102125;
    --h91-surface: #192e33;
    --h91-soft: #213b40;
    --h91-selected: #2a4b50;
    --h91-ink: #e8f2f0;
    --h91-ink-2: #c7dcd9;
    --h91-muted: #abc3c1;
    --h91-brand: #80d4cf;
    --h91-brand-strong: #a7e9e2;
    --h91-on-brand: #102b2d;
    --h91-line: #345156;
    --h91-control-line: #799999;
    --h91-success: #95dfb2;
    --h91-success-bg: #193c2e;
    --h91-warning: #ffce80;
    --h91-warning-bg: #44391f;
    --h91-danger: #ffb0a6;
    --h91-danger-bg: #482d2a;
    --h91-info: #b7d9f4;
    --h91-info-bg: #203d50;
    --h91-focus: #ffc86b;
    --h91-shadow: 0 8px 28px rgb(0 0 0 / 12%);
    --h91-panel-shadow: 0 20px 56px rgb(0 0 0 / 32%);
    --h91-scheme: dark;
  }
}

html[data-theme="dark"] .secure-site,
html[data-theme="dark"] .hybridoc-public {
  --h91-bg: #102125;
  --h91-surface: #192e33;
  --h91-soft: #213b40;
  --h91-selected: #2a4b50;
  --h91-ink: #e8f2f0;
  --h91-ink-2: #c7dcd9;
  --h91-muted: #abc3c1;
  --h91-brand: #80d4cf;
  --h91-brand-strong: #a7e9e2;
  --h91-on-brand: #102b2d;
  --h91-line: #345156;
  --h91-control-line: #799999;
  --h91-success: #95dfb2;
  --h91-success-bg: #193c2e;
  --h91-warning: #ffce80;
  --h91-warning-bg: #44391f;
  --h91-danger: #ffb0a6;
  --h91-danger-bg: #482d2a;
  --h91-info: #b7d9f4;
  --h91-info-bg: #203d50;
  --h91-focus: #ffc86b;
  --h91-shadow: 0 8px 28px rgb(0 0 0 / 12%);
  --h91-panel-shadow: 0 20px 56px rgb(0 0 0 / 32%);
  --h91-scheme: dark;
}

.secure-site,
.secure-site .layout,
.hybridoc-public {
  --bg: var(--h91-bg);
  --bg-elevated: var(--h91-surface);
  --surface: var(--h91-surface);
  --surface-soft: var(--h91-soft);
  --surface-strong: var(--h91-selected);
  --ink: var(--h91-ink);
  --ink-2: var(--h91-ink-2);
  --muted: var(--h91-muted);
  --teal: var(--h91-brand);
  --teal-2: var(--h91-brand);
  --teal-dark: var(--h91-brand-strong);
  --teal-deep: var(--h91-hero);
  --on-accent: var(--h91-on-brand);
  --line: var(--h91-line);
  --line-strong: var(--h91-control-line);
  --success: var(--h91-success);
  --success-bg: var(--h91-success-bg);
  --warning: var(--h91-warning);
  --warning-bg: var(--h91-warning-bg);
  --danger: var(--h91-danger);
  --danger-bg: var(--h91-danger-bg);
  --focus: var(--h91-focus);
  --r90-selected: var(--h91-selected);
  --r90-info: var(--h91-info);
  --r90-info-bg: var(--h91-info-bg);
  --shadow-sm: 0 1px 2px rgb(16 62 67 / 4%);
  --shadow-md: var(--h91-shadow);
  --shadow-lg: var(--h91-panel-shadow);
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 22px;
  background-color: var(--bg);
  color: var(--ink);
  color-scheme: var(--h91-scheme);
}

/* Shared shell. The navigation scrolls; the identity/sign-out block does not. */
.secure-site .layout > .sidebar {
  background: var(--surface);
  border-color: var(--line);
}
.secure-site .layout .sidebar-head { flex: 0 0 auto; }
.secure-site .layout .sidebar .brand-line { font-size: 24px; letter-spacing: -.045em; }
.secure-site .layout .sidebar .brand > span:last-child { letter-spacing: .09em; }
.secure-site .layout .sidebar #workspace-nav a {
  min-height: 48px;
  border-radius: 10px;
  font-size: 15px;
}
.secure-site .layout .sidebar #workspace-nav a:is(.active, [aria-current="page"]) {
  box-shadow: none;
  background: var(--surface-strong);
  color: var(--teal-dark);
}
.secure-site .layout .sidebar .nav-section > summary { min-height: 48px; }
.secure-site .layout .workspace > .topbar {
  min-height: 72px;
  gap: 12px;
  border-color: var(--line);
  background: var(--surface);
}
.secure-site .layout .topbar .context-controls { flex: 1 1 auto; }
.secure-site .layout .topbar .workspace-label { font-size: 15px; color: var(--ink-2); }
.secure-site .layout .topbar .context-control select { min-height: 48px; }
.secure-site .layout .workspace > .content { padding-top: 28px; }
.secure-site .layout .content :is(.card, .panel) { border-radius: 16px; }
.secure-site .layout .content :is(button, .button) {
  min-height: 48px;
  border-radius: 10px;
  white-space: normal;
}
.secure-site .layout .content :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]), select) {
  min-height: 48px;
  border-color: var(--line-strong);
}
.secure-site :is(a, button, input, select, textarea, summary):focus-visible,
.hybridoc-public :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

/* Explicit account controls: text remains visible on a 360 px viewport. */
.secure-site .r91-account-menu { flex: 0 0 auto; margin-inline-start: auto; min-width: 0; max-width: min(300px, 50%); }
.secure-site .r91-account-trigger {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  max-width: 100%;
  padding: 5px 12px 5px 5px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: var(--surface);
  color: var(--ink);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.3;
  text-align: start;
  box-shadow: none;
}
.secure-site .r91-account-trigger:hover,
.secure-site .r91-account-trigger[aria-expanded="true"] {
  background: var(--surface-soft);
  border-color: var(--teal);
  transform: none;
}
.secure-site .r91-account-trigger > svg { width: 16px; height: 16px; flex: 0 0 16px; }
.secure-site .r91-avatar {
  display: inline-grid;
  place-items: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--surface-strong);
  color: var(--teal-dark);
  font-size: 13px;
  font-weight: 750;
  line-height: 1;
}
.secure-site .r91-account-panel {
  position: fixed;
  inset: 80px 20px auto auto;
  z-index: 180;
  width: min(360px, calc(100vw - 32px));
  max-width: none;
  max-height: calc(100dvh - 104px);
  margin: 0;
  padding: 12px;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--line-strong);
  border-radius: 20px;
  background: var(--surface);
  color: var(--ink);
  box-shadow: var(--h91-panel-shadow);
  scrollbar-width: thin;
}
.secure-site .r91-account-panel[open] { display: grid; gap: 6px; }
.secure-site .r91-account-panel::backdrop,
.secure-site .r91-leave-dialog::backdrop { background: rgb(5 24 27 / 62%); }
.secure-site .r91-account-identity {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 48px;
  align-items: start;
  gap: 10px;
  padding: 10px 10px 16px;
  margin-bottom: 4px;
  border-bottom: 1px solid var(--line);
  min-width: 0;
}
.secure-site .r91-account-identity :is(strong, p, small, span) { overflow-wrap: anywhere; }
.secure-site .r91-account-identity strong { color: var(--ink); font-size: 17px; }
.secure-site .r91-account-identity > div { min-width: 0; }
.secure-site .r91-account-identity h2 { margin: 0 0 5px; color: var(--ink); font-size: 17px; line-height: 1.35; letter-spacing: -.01em; overflow-wrap: anywhere; }
.secure-site .r91-account-identity :is(p, small) { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.secure-site .r91-account-close { display: grid; place-items: center; width: 48px; height: 48px; min-height: 48px; padding: 0; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--ink); font-size: 26px; font-weight: 450; line-height: 1; box-shadow: none; }
.secure-site .r91-account-close:hover { background: var(--surface-soft); transform: none; }
.secure-site .r91-account-link,
.secure-site .r91-dashboard-button {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 48px;
  padding: 12px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--ink);
  font-family: inherit;
  font-size: 15px;
  font-weight: 550;
  line-height: 1.4;
  text-align: start;
  text-decoration: none;
  box-shadow: none;
  white-space: normal;
}
.secure-site .r91-account-link:hover,
.secure-site .r91-dashboard-button:hover { background: var(--surface-soft); color: var(--ink); transform: none; }
.secure-site .r91-account-link svg { flex: 0 0 20px; width: 20px; height: 20px; color: var(--muted); }
.secure-site .r91-dashboard-switcher { display: grid; gap: 4px; margin-block: 8px; padding-top: 12px; border-top: 1px solid var(--line); }
.secure-site .r91-dashboard-switcher > :is(h2, h3, p, legend, label) {
  margin: 0 12px 4px;
  padding: 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none;
}
.secure-site .r91-dashboard-button { justify-content: space-between; }
.secure-site .r91-dashboard-button[aria-current="true"] {
  background: var(--surface-strong);
  color: var(--teal-dark);
  font-weight: 650;
  opacity: 1;
}
.secure-site .r91-dashboard-current { flex: 0 0 auto; font-size: 12px; font-weight: 650; }
.secure-site .r91-signout {
  width: 100%;
  min-height: 48px;
  justify-content: center;
  margin: 4px 0 0;
  padding: 12px;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  background: var(--surface);
  color: var(--ink);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.4;
  box-shadow: none;
}
.secure-site .r91-signout:hover { background: var(--surface-soft); color: var(--ink); transform: none; }
.secure-site .r91-signout svg { width: 18px; height: 18px; flex: 0 0 18px; }
.secure-site .r91-live-signout { display: none; }
.secure-site .r91-sidebar-footer {
  display: grid;
  gap: 10px;
  flex: 0 0 auto;
  margin-top: 14px;
  padding: 16px 8px 0;
  border-top: 1px solid var(--line);
}
.secure-site .r91-sidebar-person { display: flex; gap: 10px; align-items: center; min-width: 0; }
.secure-site .r91-sidebar-person > :not(.r91-avatar) { min-width: 0; }
.secure-site .r91-sidebar-person strong { display: block; color: var(--ink); font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; }
.secure-site .r91-sidebar-person small,
.secure-site .r91-sidebar-person > div > span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.secure-site .r91-account-error {
  margin: 8px 0 0;
  padding: 12px;
  border: 1px solid currentColor;
  border-radius: 10px;
  background: var(--danger-bg);
  color: var(--danger);
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.secure-site .r91-leave-dialog {
  width: min(448px, calc(100vw - 32px));
  max-height: calc(100dvh - 32px);
  padding: 24px;
  border: 1px solid var(--line-strong);
  border-radius: 20px;
  overflow-y: auto;
  background: var(--surface);
  color: var(--ink);
  box-shadow: var(--h91-panel-shadow);
}
.secure-site .r91-leave-dialog h2 { margin: 0 0 12px; font-size: 22px; line-height: 1.3; letter-spacing: -.02em; }
.secure-site .r91-leave-dialog p { font-size: 16px; line-height: 1.55; color: var(--muted); }
.secure-site .r91-dialog-actions { display: grid; gap: 10px; margin-top: 20px; }
.secure-site .r91-dialog-actions button { width: 100%; min-height: 48px; border-radius: 12px; white-space: normal; }
.secure-site .r91-auth-notice { margin: 0 0 20px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); color: var(--ink); font-size: 15px; line-height: 1.5; }
.secure-site .r91-session-restore {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  align-content: center;
  justify-items: start;
  gap: 16px;
  padding: 32px max(24px, calc((100vw - 480px) / 2));
  background: var(--bg);
  color: var(--ink);
  overflow-y: auto;
}
.secure-site .r91-session-restore h2 { margin: 0; font-size: 26px; line-height: 1.3; letter-spacing: -.02em; }
.secure-site .r91-session-restore p { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.6; }
.secure-site .r91-session-restore button { min-height: 48px; border-radius: 12px; }

/* Appearance uses the same explicit choice in the public header and account. */
.secure-site .r91-appearance { margin: 6px 0 8px; padding: 12px 0; border-top: 1px solid var(--line); }
.secure-site .r91-appearance h3 { margin: 0 12px 10px; color: var(--muted); font-size: 13px; line-height: 1.5; letter-spacing: 0; font-weight: 650; }
.secure-site .r91-appearance > [role="group"] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.secure-site [data-appearance-r91],
.hybridoc-public [data-appearance-r91] {
  min-height: 48px;
  min-width: 48px;
  padding: 10px 14px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: var(--surface);
  color: var(--ink-2);
  font: inherit;
  font-size: 14px;
  line-height: 1.4;
  box-shadow: none;
}
.secure-site [data-appearance-r91][aria-pressed="true"],
.hybridoc-public [data-appearance-r91][aria-pressed="true"] { background: var(--surface-strong); color: var(--teal-dark); border-color: var(--teal); font-weight: 650; }
.secure-site [data-appearance-r91]:hover,
.hybridoc-public [data-appearance-r91]:hover { transform: none; background: var(--surface-soft); }

/* Hierarchy comes from spacing and tone, while the R90 care grid stays intact. */
.secure-site .layout .content :is(.r83-dashboard-section, .r83-care-links, .r83-earnings-summary, .r55-board.r90-worklist, .r55-board.r90-care-board) {
  border-color: var(--line);
  border-radius: 18px;
}
.secure-site .layout .content .r55-next {
  border-radius: 18px;
  border: 1px solid var(--line);
  border-inline-start: 4px solid var(--teal);
  background: var(--surface-soft);
}
.secure-site .layout .content .r55-next h2 { font-size: clamp(22px, 2.2vw, 28px); }
.secure-site .layout .content .r83-earnings-summary { background: var(--surface-soft); box-shadow: none; }
.secure-site .layout .content .r83-amount { font-variant-numeric: tabular-nums; letter-spacing: -.025em; }
.secure-site .layout .content .r90-worklist-icon { border-radius: 11px; }
.secure-site .layout .content .consultation-card { border-color: var(--line); background: var(--surface); }
.secure-site .layout .content .consultation-card h3 { color: var(--ink); font-size: 18px; }
.secure-site .layout .content .consultation-card p { font-size: 15px; }
.secure-site .layout .content .r90-worklist-label { font-size: 16px; }
.secure-site .layout .content .r90-worklist-row .r90-worklist-meta { font-size: 14px; }
.secure-site .layout .content .r90-worklist-filters button { min-height: 48px; }
.secure-site .layout .content .r90-context-main :is(h2, h3) { font-size: 23px; }
.secure-site .layout .content .r90-context-facts dd { font-size: 15px; }
.secure-site .layout .content :is(.r90-context-facts dt, .r90-context-main p) { font-size: 14px; }

/* Public home: a clear care pathway alongside real fees and existing routes. */
.hybridoc-public .site-header { background: var(--surface); border-color: var(--line); backdrop-filter: none; }
.hybridoc-public .site-header-inner { max-width: 1328px; gap: 20px; padding-inline: 24px; }
.hybridoc-public .platform-brand-name { font-size: 25px; font-weight: 750; letter-spacing: -.045em; }
.hybridoc-public .platform-brand-owner { font-size: 10px; font-weight: 600; letter-spacing: .09em; line-height: 1.4; }
.hybridoc-public .public-nav a { min-height: 48px; display: inline-flex; align-items: center; font-size: 14px; font-weight: 600; }
.hybridoc-public .header-account a { min-height: 48px; display: inline-flex; align-items: center; }
.hybridoc-public :is(.menu-toggle, .back-to-top) { min-width: 48px; min-height: 48px; }
.hybridoc-public .menu-toggle { width: auto; min-width: 88px; height: 48px; flex-direction: row; gap: 8px; padding: 10px 12px; }
.hybridoc-public .menu-toggle span:not(.sr-only) { display: inline; width: auto; height: auto; background: transparent; color: var(--ink); font-size: 14px; font-weight: 600; line-height: 1; }
.hybridoc-public .menu-toggle svg { width: 20px; height: 20px; }
.hybridoc-public .services-overview { font-size: 14px; line-height: 1.5; background: var(--surface-soft); }
.hybridoc-public .public-hero {
  width: min(1328px, 100%);
  padding: clamp(36px, 5vw, 72px) 24px;
  gap: clamp(28px, 4vw, 64px);
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
  overflow: visible;
}
.hybridoc-public .public-hero::before { content: none; }
.hybridoc-public .public-hero h1 { max-width: 14ch; margin-bottom: 24px; font-size: clamp(36px, 4.5vw, 64px); line-height: 1.08; letter-spacing: -.045em; font-weight: 700; }
.hybridoc-public .public-hero .hero-lead { max-width: 52ch; font-size: 18px; line-height: 1.65; }
.hybridoc-public .public-hero .kicker { font-size: 12px; letter-spacing: .1em; font-weight: 700; }
.hybridoc-public .public-hero .hero-actions { margin: 28px 0 18px; gap: 12px; }
.hybridoc-public .public-hero-visual { max-width: 540px; width: 100%; margin: 0; }
.hybridoc-public .hero-actions .button { min-height: 54px; padding: 14px 20px; font-size: 16px; }
.hybridoc-public .button { min-height: 48px; border-radius: 12px; font-weight: 650; white-space: normal; line-height: 1.4; box-shadow: none; }
.hybridoc-public .button:hover { transform: none; }
.hybridoc-public .button-primary { background: var(--teal); color: var(--on-accent); }
.hybridoc-public .button-primary:hover { background: var(--teal-dark); }
.hybridoc-public .button-ghost { background: var(--surface); color: var(--teal-dark); border-color: var(--line-strong); }
.hybridoc-public .button-ghost:hover { background: var(--surface-soft); }
.hybridoc-public .hero-facts { border-radius: 14px; }
.hybridoc-public .hero-facts strong { font-size: 14px; font-weight: 600; }
.hybridoc-public .availability-line { font-size: 14px; line-height: 1.55; }
.hybridoc-public .hybridoc-care-preview {
  padding: clamp(22px, 3vw, 32px);
  border: 1px solid var(--line);
  border-radius: 24px;
  background: var(--surface);
  color: var(--ink);
  box-shadow: var(--h91-shadow);
}
.hybridoc-public .hybridoc-preview-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.hybridoc-public .hybridoc-preview-head h2 { margin: 0; color: var(--ink); font-size: 24px; line-height: 1.25; letter-spacing: -.025em; }
.hybridoc-public .hybridoc-preview-head p { margin: 8px 0 0; font-size: 15px; }
.hybridoc-public .hybridoc-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface-soft); color: var(--teal-dark); font-size: 13px; font-weight: 600; line-height: 1.4; }
.hybridoc-public .hybridoc-path-list { display: grid; gap: 12px; margin: 24px 0; padding: 0; list-style: none; }
.hybridoc-public .hybridoc-path-list > :is(a, article, li) { display: flex; align-items: flex-start; gap: 14px; min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface-soft); color: var(--ink); text-decoration: none; }
.hybridoc-public .hybridoc-path-list > a:hover { border-color: var(--teal); background: var(--surface-strong); }
.hybridoc-public .hybridoc-path-icon { flex: 0 0 44px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--surface); color: var(--teal-dark); }
.hybridoc-public .hybridoc-path-icon svg { width: 24px; height: 24px; }
.hybridoc-public .hybridoc-path-copy { flex: 1 1 auto; min-width: 0; }
.hybridoc-public .hybridoc-path-list strong { display: block; color: var(--ink); font-size: 17px; font-weight: 650; line-height: 1.35; }
.hybridoc-public .hybridoc-path-list :is(p, small) { display: block; margin: 5px 0 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.hybridoc-public .hybridoc-service-summary { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.hybridoc-public .hybridoc-service-summary > :is(span, li, a) { display: inline-flex; align-items: center; gap: 6px; padding: 6px 9px; background: var(--surface-soft); color: var(--ink-2); border-radius: 8px; font-size: 13px; line-height: 1.5; }
.hybridoc-public .hybridoc-fee-note { padding-top: 18px; margin: 20px 0 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 14px; line-height: 1.55; }
.hybridoc-public .public-section { max-width: 1328px; padding: 48px 24px; }
.hybridoc-public .section-heading { align-items: flex-start; gap: 20px; margin-bottom: 24px; }
.hybridoc-public .section-heading h2 { max-width: 26ch; font-size: clamp(28px, 3vw, 40px); line-height: 1.18; letter-spacing: -.035em; }
.hybridoc-public .section-heading p { font-size: 16px; line-height: 1.6; }
.hybridoc-public .r83-audience-grid { gap: 20px; }
.hybridoc-public .r83-audience-grid article { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 24px; background: var(--surface); border: 1px solid var(--line); border-radius: 20px; }
.hybridoc-public .r83-audience-grid h3 { margin: 0; font-size: 21px; }
.hybridoc-public .r83-audience-grid p { flex: 1; margin: 0; }
.hybridoc-public .r83-audience-grid .button { margin-top: 8px; }
.hybridoc-public .practitioner-card { background: var(--surface); border-color: var(--line); border-radius: 18px; box-shadow: none; }
.hybridoc-public .practitioner-card h3 { font-size: 20px; line-height: 1.3; }
.hybridoc-public .journey-grid { border-color: var(--line); border-radius: 20px; }
.hybridoc-public .journey-grid h3 { font-size: 20px; line-height: 1.3; }
.hybridoc-public .privacy-strip { border-color: var(--line); background: var(--surface-soft); color: var(--ink); border-radius: 12px; font-size: 14px; }
.hybridoc-public .public-footer { background: var(--surface); color: var(--ink); border-color: var(--line); }
.hybridoc-public .footer-links a,
.hybridoc-public .footer-legal a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ink-2); }
.hybridoc-public .hybridoc-faq > details { max-width: 880px; margin: 0; padding: 0; border-bottom: 1px solid var(--line); }
.hybridoc-public .hybridoc-faq summary { min-height: 56px; padding: 18px 0; color: var(--ink); font-size: 17px; font-weight: 600; line-height: 1.5; cursor: pointer; }
.hybridoc-public .hybridoc-faq details > p { max-width: 68ch; margin: 0; padding: 0 0 20px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.hybridoc-public .hybridoc-faq details > a { display: inline-flex; align-items: center; min-height: 48px; margin-bottom: 12px; font-size: 16px; color: var(--teal-dark); }

/* One palette across home and Network; preserve each actual authorised path. */
.hybridoc-public .network-page,
.secure-site .layout .network-page {
  --nw-bg: var(--bg);
  --nw-surface: var(--surface);
  --nw-soft: var(--surface-soft);
  --nw-selected: var(--surface-strong);
  --nw-ink: var(--ink);
  --nw-muted: var(--muted);
  --nw-teal: var(--teal);
  --nw-strong: var(--teal-dark);
  --nw-border: var(--line);
  --nw-focus: var(--focus);
  --nw-shadow: var(--h91-shadow);
  --r81-ink: var(--ink);
  --r81-muted: var(--muted);
  --r81-bg: var(--bg);
  --r81-surface: var(--surface);
  --r81-soft: var(--surface-soft);
  --r81-strong: var(--surface-strong);
  --r81-brand: var(--teal);
  --r81-brand-strong: var(--teal-dark);
  --r81-on-brand: var(--on-accent);
  --r81-border: var(--line);
  --r81-border-strong: var(--line-strong);
  --r81-focus: var(--focus);
  padding-top: 40px;
  line-height: 1.6;
}
.hybridoc-public .network-hero h1 { max-width: 22ch; font-size: clamp(32px, 4vw, 52px); line-height: 1.12; letter-spacing: -.04em; }
.hybridoc-public .network-hero > p:last-child { max-width: 65ch; font-size: 18px; line-height: 1.6; }
.hybridoc-public .network-page .network-choices > .network-mode-card { padding: 24px; border-radius: 20px; box-shadow: none; }
.hybridoc-public .network-page .network-choices .network-mode-card:not(:first-child) .network-button { background: var(--surface); color: var(--teal-dark); border-color: var(--line-strong); }
.hybridoc-public .network-page .network-choices .network-mode-card:not(:first-child) .network-button:hover { background: var(--surface-soft); }
.hybridoc-public .network-page :is(button, .network-button) { color: var(--on-accent); transform: none; }
.hybridoc-public .network-page :is(button, .network-button):hover { color: var(--on-accent); transform: none; }
.hybridoc-public .network-page :is(button.secondary, .network-button.secondary) { color: var(--teal-dark); background: var(--surface); }
.hybridoc-public .network-page :is(button.secondary, .network-button.secondary):hover { color: var(--teal-dark); background: var(--surface-soft); }
.hybridoc-public .network-page .network-field :is(input:not([type="checkbox"]), select, textarea) { border-color: var(--line-strong); background: var(--surface); color: var(--ink); }
.hybridoc-public .network-page .network-error { background: var(--danger-bg) !important; color: var(--danger) !important; }
.hybridoc-public .network-page .network-tabs a { border-radius: 10px; }
.hybridoc-public .network-page .network-panel { border-radius: 18px; }
.secure-site .layout .network-page { width: 100% !important; max-width: none; margin: 0; padding: 0; }
.secure-site .layout .network-page :is(button, .network-button),
.secure-site .layout .network-page :is(button, .network-button):hover { color: var(--on-accent); transform: none; }
.secure-site .layout .network-page :is(button.secondary, .network-button.secondary) { color: var(--teal-dark); background: var(--surface); }
.secure-site .layout .network-page :is(button.secondary, .network-button.secondary):hover { color: var(--teal-dark); background: var(--surface-soft); }
.secure-site .layout .network-page .network-field :is(input:not([type="checkbox"]), select, textarea) { border-color: var(--line-strong); background: var(--surface); color: var(--ink); }
.secure-site .layout .network-page .network-error { background: var(--danger-bg) !important; color: var(--danger) !important; }

@media (min-width: 821px) {
  .secure-site .layout > .sidebar { display: flex; flex-direction: column; height: 100dvh; min-height: 0; overflow: hidden; padding-bottom: 16px; }
  .secure-site .layout .sidebar #workspace-nav { position: static; flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 4px 4px 8px; scroll-padding-block: 8px; overscroll-behavior: contain; }
  /* The existing live room intentionally hides the sidebar. Keep its wide
     clinical layout and expose the same guarded sign-out action in the bar. */
  .secure-site.consultation-live .layout .r91-live-signout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; flex: 0 1 160px; min-width: 0; max-width: 200px; }
  .secure-site.consultation-live .layout .r91-live-signout .r91-signout { min-height: 48px; margin: 0; }
  .secure-site.consultation-live .layout .r91-live-signout .r91-account-error { min-width: 0; max-width: 100%; margin: 0; white-space: normal; overflow-wrap: anywhere; }
}
@media (max-width: 1000px) {
  .hybridoc-public .public-hero { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .hybridoc-public .public-hero-copy { max-width: 760px; }
  .hybridoc-public .public-hero-visual { max-width: 760px; justify-self: start; }
  .hybridoc-public .public-hero h1 { max-width: 18ch; }
}
@media (max-width: 820px) {
  .secure-site .layout .workspace > .topbar { min-height: 64px; flex-wrap: wrap; }
  .secure-site .layout .topbar .context-controls { flex: 1 1 140px; }
  .secure-site .layout .topbar .workspace-label { white-space: normal; font-size: 14px; }
  .secure-site .r91-account-trigger { gap: 7px; padding-inline-end: 10px; }
  .secure-site .r91-account-trigger .user-menu-name { max-width: 104px; font-size: 14px; }
  .secure-site .r91-account-panel { inset: auto 0 0; width: 100%; max-width: 560px; max-height: 88dvh; margin-inline: auto; padding: 16px 16px calc(16px + env(safe-area-inset-bottom, 0px)); border-radius: 24px 24px 0 0; }
  .secure-site .r91-sidebar-footer { display: none; }
  .secure-site .sidebar.menu-open .r91-sidebar-footer { position: fixed; inset: auto 16px max(16px, env(safe-area-inset-bottom, 0px)); z-index: 72; display: grid; max-height: min(40dvh, 240px); margin: 0; padding: 14px 16px; border: 1px solid var(--line-strong); border-radius: 16px; background: var(--surface); box-shadow: var(--h91-shadow); overflow-y: auto; overscroll-behavior: contain; }
  .secure-site .layout .sidebar.menu-open #workspace-nav { max-height: max(80px, calc(var(--workspace-menu-height, calc(100dvh - 100px)) - var(--r91-sidebar-footer-height, 132px) - 16px)); }
  .secure-site .layout .sidebar .workspace-menu-toggle { width: auto; min-width: 88px; height: 48px; padding: 10px 12px; flex-direction: row; gap: 8px; }
  .secure-site .layout .sidebar .workspace-menu-toggle .r91-menu-label { display: inline; width: auto; height: auto; background: transparent; font-size: 14px; font-weight: 600; line-height: 1; }
  .secure-site .layout .sidebar .workspace-menu-toggle svg { width: 20px; height: 20px; }
  .secure-site .layout .sidebar .brand-line { font-size: 23px; }
  .secure-site .layout .workspace > .content { padding-top: 24px; }
  .hybridoc-public .site-header-inner { gap: 12px; padding-inline: 16px; }
  .hybridoc-public .public-nav a { width: 100%; font-size: 16px; }
  .hybridoc-public .public-hero { padding-inline: 20px; }
  .hybridoc-public .public-section { padding: 36px 20px; }
}
@media (max-width: 599px) {
  .secure-site .r91-account-trigger .user-menu-name { max-width: 84px; }
  .secure-site .layout .content :is(.r83-dashboard-section, .r83-care-links, .r83-earnings-summary, .r55-next, .r55-board.r90-worklist, .r55-board.r90-care-board) { padding: 20px; }
  .secure-site .layout .content .r90-worklist-label { font-size: 15px; }
  .secure-site .layout .content .r90-worklist-row .r90-worklist-meta { font-size: 13px; }
  .secure-site .layout .content .r90-context-main :is(h2, h3) { font-size: 21px; }
  .hybridoc-public .public-hero { padding: 32px 16px; }
  .hybridoc-public .public-hero h1 { font-size: clamp(34px, 9vw, 46px); max-width: 16ch; }
  .hybridoc-public .hero-actions .button { flex: 1 1 100%; width: 100%; text-align: center; }
  .hybridoc-public .hero-facts { grid-template-columns: minmax(0, 1fr); }
  .hybridoc-public .hero-facts > div { display: flex; gap: 12px; align-items: baseline; justify-content: space-between; }
  .hybridoc-public .hero-facts > div strong { text-align: end; }
  .hybridoc-public .public-section { padding-inline: 16px; }
  .hybridoc-public .hybridoc-care-preview { padding: 20px; border-radius: 20px; }
  .hybridoc-public .hybridoc-path-list > :is(a, article, li) { padding: 14px; gap: 10px; }
  .hybridoc-public .hybridoc-path-icon { width: 36px; height: 36px; flex-basis: 36px; border-radius: 10px; }
  .hybridoc-public .r83-audience-grid { grid-template-columns: minmax(0, 1fr); }
  .hybridoc-public .r83-audience-grid article { padding: 20px; }
  .hybridoc-public .network-page { padding-top: 28px; }
  .hybridoc-public .network-page .network-choices > .network-mode-card { padding: 20px; }
  .hybridoc-public .network-page .network-choices .network-mode-card .network-button { width: 100%; }
}

/* Visibility and motion are behavioural contracts, not decorative decisions. */
.secure-site .r91-account-panel:not([open]),
.secure-site [hidden],
.hybridoc-public [hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) {
  .secure-site,
  .secure-site *,
  .hybridoc-public,
  .hybridoc-public * { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
@media (forced-colors: active) {
  .secure-site :is(.r91-account-trigger, .r91-account-panel, .r91-signout, .r91-leave-dialog),
  .hybridoc-public .hybridoc-care-preview { border: 1px solid CanvasText; box-shadow: none; }
  .secure-site .r91-dashboard-button[aria-current="true"] { outline: 2px solid Highlight; }
  .secure-site .r91-avatar { border: 1px solid CanvasText; }
}
@media print {
  .secure-site,
  .secure-site .layout,
  .hybridoc-public { --bg: #ffffff; --surface: #ffffff; --bg-elevated: #ffffff; --surface-soft: #f4f5f5; --ink: #111111; --ink-2: #222222; --muted: #444444; --line: #bbbbbb; color-scheme: light; }
  .secure-site :is(.r91-account-panel, .r91-leave-dialog, .r91-sidebar-footer),
  .hybridoc-public [data-appearance-r91] { display: none !important; }
}
