/* Medinavigo page-specific layout. Colours, sizes and radii come from tokens.css (var(--…)) only. */

/* App-level tokens the design system's tokens.css does not have (bundle.css writes this accent rule as 3px). */
:root { --border-accent: 3px; }

/* Become-a-member flow */
.mn-choice:has(input:checked) { border-color: var(--route); background: var(--route-tint); }
.mn-flow-head form { margin: 0; }
.mn-fieldset .mn-error-msg { margin-top: var(--space-2); }
/* Step 6: care providers. One searchable field each (input + shared datalist); the script shows them one at a time. */
.mn-provider + .mn-provider { margin-top: var(--space-3); }
.mn-provider-label { font-weight: 400; }
.mn-provider-add { margin-top: var(--space-2); }
.mn-provider-add[hidden] { display: none; } /* .mn-btn sets display, which would beat the hidden attribute */
.mn-provider-source { margin-top: var(--space-3); }
/* Step 6: the insurer field shows only after "Ja" on the claim question (pure CSS, works without script). */
.mn-claim { margin-top: var(--space-5); }
.mn-field.mn-claim-party { display: none; }
.mn-claim:has(input[name="claim_involved"][value="yes"]:checked) .mn-claim-party { display: block; }
@supports not selector(:has(*)) { .mn-field.mn-claim-party { display: block; } } /* old browsers: always show it */

/* Portal: traject */
.mn-phase-body { grid-column: 2; }
.mn-phase-appts { margin-top: var(--space-2); }
.mn-appt-actions form { display: contents; }
.mn-empty-route { width: 200px; height: 90px; }
/* On a narrow screen the next step comes first, above the route (screens/TrajectMobile.html). */
@container (max-width: 700px) {
  .mn-traject { display: flex; flex-direction: column; gap: var(--space-6); }
  .mn-traject > .mn-aside { display: contents; }
  .mn-traject .mn-next { order: -1; }
  .mn-traject .mn-trial { order: 1; }
}
.mn-page-notice { margin-bottom: var(--space-5); }

/* Portal: shared chrome */
.mn-signout { margin: 0; }
.mn-signout .mn-btn { padding-left: 0; min-height: 0; justify-self: start; }
.mn-portal-section { margin-top: var(--space-5); }
.mn-portal-h2 { margin: var(--space-7) 0 var(--space-4); }
.mn-portal-lead { margin-bottom: var(--space-4); }
.mn-portal-inline { display: inline; margin: 0; }
.mn-portal-more { margin: 0; }

/* Portal: documents (screens/DocumentsDesktop.html) and the dossier (screens/DossierDesktop.html) */
.mn-portal-drop { margin-bottom: var(--space-6); }
.mn-portal-phase { width: 100%; max-width: 30em; text-align: left; }
.mn-portal-back { margin-bottom: var(--space-4); }
.mn-doc-body { margin-top: var(--space-5); }

/* Portal: messages (screens/MessagesDesktop.html) */
.mn-portal-thread-card { margin-top: var(--space-5); padding: 0; overflow: hidden; }
.mn-portal-thread { padding: var(--space-5); }
.mn-portal-msg-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.mn-msg-stamp { display: flex; gap: var(--space-2); align-items: flex-start; }
.mn-msg-stamp .mn-ico { color: var(--route-deep); flex: none; }

/* Portal: services, membership, privacy */
.mn-btn-group-equal form { display: contents; }
.mn-portal-facts dd { margin: 0; }
.mn-portal-payments { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-2); }
.mn-portal-consent { align-items: center; }
.mn-portal-consent .mn-doccard-side form { margin: 0; }
.mn-portal-steps { list-style: none; padding: 0; }

/* Back-office: confirm knowledge */
.mn-ko-note { margin-bottom: var(--space-5); }
.mn-ko-stale { margin-top: var(--space-5); }
.mn-ko-statement { max-width: 28em; }
.mn-ko-action { min-width: 300px; }
.mn-ko-form .mn-field { margin-bottom: var(--space-2); }
.mn-ko-buttons { flex-wrap: nowrap; }
.mn-ko-recent { margin-top: var(--space-5); }
.mn-ko-filter { flex-wrap: nowrap; align-items: flex-end; gap: var(--space-2); }
.mn-ko-filter .mn-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.mn-ko-back { margin-top: var(--space-5); }

/* Back-office: shared */
.mn-bo-signout { margin: 0; }
.mn-bo-signout .mn-btn { padding-left: 0; min-height: 0; }
.mn-bo-notice { margin-bottom: var(--space-4); }
.mn-bo-section { margin-top: var(--space-5); }
.mn-bo-wide { max-width: none; }
.mn-bo-minutes { max-width: 7em; }
.mn-bo-date { max-width: 12em; }
.mn-bo-decide { align-items: flex-end; justify-content: space-between; gap: var(--space-4); }
.mn-bo-decide .mn-field { margin: 0; }

/* Back-office: approval item (screens/BackofficeApprovalQueue.html, right panel) */
.mn-bo-item-type { font-size: var(--fs-lg); }
.mn-bo-item { display: grid; grid-template-columns: minmax(0, 1fr) 300px; }
.mn-bo-item-main { border-right: 1px solid var(--border); display: grid; gap: var(--space-4); align-content: start; }
.mn-bo-item-side .mn-label-tag { margin-bottom: var(--space-2); }
.mn-bo-nextstep { border-left: var(--border-accent) solid var(--route); padding-left: var(--space-3); }
.mn-bo-plain { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; gap: var(--space-4); }
.mn-bo-nocase { text-transform: none; letter-spacing: 0; font-weight: 400; }
.mn-bo-claims td { vertical-align: top; }
.mn-bo-claims td:first-child { width: 55%; }
.mn-bo-claims .mn-cite { white-space: normal; }
/* Rendered markdown headings sit at the draft's own heading size (the screen uses h4 in .mn-draft). */
.mn-draft h1, .mn-draft h2, .mn-draft h3 { font-size: var(--fs-lg); line-height: var(--lh-tight); margin: var(--space-4) 0 var(--space-2); }
.mn-draft ol, .mn-draft ul { padding-left: var(--space-5); }
.mn-bo-facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: var(--space-2) var(--space-4); }
.mn-bo-facts dt { font-weight: 700; }
.mn-bo-text { white-space: pre-wrap; }
/* The intake answers shown read-only (join step 6 once the intake agent has started). */
.mn-intake-facts dt { font-weight: 700; margin-top: var(--space-4); }
.mn-intake-facts dd { margin: var(--space-1) 0 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.mn-intake-facts ul { margin: 0; padding-left: var(--space-5); }
.mn-bo-flags { margin-top: var(--space-4); }
.mn-bo-flags summary { cursor: pointer; font-size: var(--fs-sm); font-weight: 700; padding: var(--space-2) 0; }
.mn-bo-actions { border-top: 1px solid var(--border); }
.mn-bo-blocked { color: var(--danger); font-weight: 700; text-align: right; }
.mn-bo-reject { border-top: 1px solid var(--border); }
.mn-bo-reject summary { cursor: pointer; font-weight: 700; color: var(--danger); padding: var(--space-2) 0; }
@container (max-width: 1000px) {
  .mn-bo-item { grid-template-columns: minmax(0, 1fr); }
  .mn-bo-item-main { border-right: 0; border-bottom: 1px solid var(--border); }
}

/* Back-office: case view (screens/BackofficeCaseView.html) */
.mn-bo-casebar { margin-top: var(--space-4); }
.mn-bo-casegrid { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: var(--space-5); align-items: start; margin-top: var(--space-5); }
.mn-bo-route { font-size: var(--fs-sm); }
.mn-bo-list { list-style: none; padding: var(--space-3) var(--space-4); margin: 0; display: grid; gap: var(--space-2); }
.mn-bo-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
.mn-bo-thread { font-size: var(--fs-sm); }
.mn-bo-thread .mn-msg-body { white-space: pre-wrap; }
.mn-bo-doctext { white-space: pre-wrap; font-family: var(--font); font-size: var(--fs-base); line-height: var(--lh-body); margin: 0; }
@container (max-width: 1000px) {
  .mn-bo-casegrid, .mn-bo-two { grid-template-columns: minmax(0, 1fr); }
}

/* Back-office: referral codes (screens/BackofficeReferralCodes.html) */
.mn-bo-codegrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); align-items: end; }
.mn-bo-new { background: var(--route-tint); }

/* Homepage (public/home.html) */
.mn-home-lead { font-size: var(--fs-lg); }
.mn-home-steps { list-style: none; padding: 0; }
