/* GENERATED by ds/build.js — concatenation of ds/css/*.css in layer order (021 §23). Edit the sources, not this file. */
@layer reset, base, components, patterns, layouts, states, utilities, print;
@import url("aimh-tokens.css");

/* ── 00-reset.css ── */
/* reset — minimal, semantics-preserving (021 §22) */
@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; }
  body { margin: 0; }
  img, svg, video, canvas { display: block; max-inline-size: 100%; block-size: auto; }
  button, input, select, textarea { font: inherit; color: inherit; }
  button { cursor: pointer; }
  fieldset { border: 0; padding: 0; margin: 0; min-inline-size: 0; }
  legend { padding: 0; }
  table { border-collapse: collapse; border-spacing: 0; }
  [hidden] { display: none !important; } /* exception documented in 021 §24: native hidden semantics */
}

/* ── 10-base.css ── */
/* base — body, headings, links, focus, selection, reduced motion (021 §20, §22, §74) */
@layer base {
  html { font-family: var(--aimh-font-family-sans); font-size: 100%; line-height: var(--aimh-lh-body); color: var(--aimh-text-primary); background: var(--aimh-surface-canvas); }
  body { font-size: var(--aimh-text-body-size); }
  [data-register="product"] body, body[data-register="product"] { font-size: var(--aimh-product-text-body-size); }
  h1, h2, h3, h4 { font-family: var(--aimh-font-family-heading); font-weight: 600; line-height: 1.25; letter-spacing: -0.01em; margin: 0 0 var(--aimh-space-stack-public); }
  h1 { font-size: var(--aimh-text-page-title-size); line-height: 1.15; }
  h2 { font-size: var(--aimh-text-section-title-size); }
  h3 { font-size: var(--aimh-text-subsection-size); }
  h4 { font-family: var(--aimh-font-family-sans); font-size: var(--aimh-text-local-heading-size); }
  [data-register="product"] h1 { font-size: var(--aimh-product-text-page-title-size); }
  [data-register="product"] h2 { font-size: var(--aimh-product-text-section-title-size); }
  p, ul, ol, dl { margin: 0 0 var(--aimh-space-stack-public); }
  [data-register="product"] :is(p, ul, ol, dl) { margin-block-end: var(--aimh-space-stack-product); }
  a { color: var(--aimh-text-link); text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
  a:hover { text-decoration-thickness: 2px; }
  strong { font-weight: 600; }
  small, .aimh-caption { font-size: var(--aimh-text-caption-size); color: var(--aimh-text-secondary); }
  code { font-family: var(--aimh-font-family-mono); font-size: 0.8125rem; }
  ::selection { background: var(--aimh-surface-selected); }
  :focus-visible { outline: var(--aimh-focus-width) solid var(--aimh-focus-ring); outline-offset: var(--aimh-focus-offset); box-shadow: none; }
  .aimh-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .aimh-skip { position: absolute; inset-inline-start: -999px; z-index: var(--aimh-z-skip); background: var(--aimh-surface-default); padding: var(--aimh-space-8) var(--aimh-space-12); border-radius: var(--aimh-control-radius); }
  .aimh-skip:focus { inset-inline-start: var(--aimh-space-16); inset-block-start: var(--aimh-space-16); }
  .aimh-num, [data-numeric] { font-variant-numeric: tabular-nums; font-feature-settings: "tnum", "zero"; text-align: end; }
  html[data-legibility="atkinson"] :is(p, li, dd, td, label, input, textarea, select) { font-family: var(--aimh-font-family-legible); }
  html { scroll-behavior: auto; } /* 018 §126: no smooth programmatic scroll */
}

/* ── 20-components.css ── */
/* components — Button, Link, StatusBadge, FieldMessage, FormField/TextInput, Alert, Surface/Card, table, skeleton (021 §26–31, §204) */
@layer components {
  /* Button (013 §6–10, 018 §32–34) */
  .aimh-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--aimh-control-gap-icon); min-block-size: var(--aimh-control-height-md); min-inline-size: var(--aimh-control-min-inline); padding: 0 var(--aimh-control-padding-inline); border-radius: var(--aimh-control-radius); border: 1px solid var(--aimh-button-primary-bg); background: var(--aimh-button-primary-bg); color: var(--aimh-button-primary-fg); font-family: var(--aimh-font-family-sans); font-size: var(--aimh-text-button-size); font-weight: 500; line-height: 1; text-decoration: none; transition: background-color var(--aimh-motion-duration-fast) var(--aimh-motion-easing-state), border-color var(--aimh-motion-duration-fast) var(--aimh-motion-easing-state); }
  [data-register="product"] .aimh-btn { font-size: var(--aimh-product-text-button-size); }
  .aimh-btn:hover { background: var(--aimh-button-primary-bg-hover); border-color: var(--aimh-button-primary-bg-hover); }
  .aimh-btn:active { background: var(--aimh-button-primary-bg-pressed); border-color: var(--aimh-button-primary-bg-pressed); transition-duration: var(--aimh-motion-duration-instant); }
  .aimh-btn[data-emphasis="secondary"] { background: transparent; color: var(--aimh-button-secondary-fg); border-color: var(--aimh-button-secondary-border); }
  .aimh-btn[data-emphasis="secondary"]:hover { background: var(--aimh-surface-subtle); }
  .aimh-btn[data-emphasis="quiet"] { background: transparent; color: var(--aimh-button-quiet-fg); border-color: transparent; min-inline-size: 0; padding-inline: var(--aimh-space-12); }
  .aimh-btn[data-intent="destructive"] { color: var(--aimh-status-critical-fg); border-color: var(--aimh-status-critical-fg); background: transparent; }
  .aimh-btn[disabled], .aimh-btn[aria-disabled="true"] { background: var(--aimh-button-disabled-bg); color: var(--aimh-button-disabled-fg); border-color: var(--aimh-button-disabled-bg); cursor: not-allowed; }
  .aimh-btn[aria-busy="true"] { position: relative; color: transparent; }
  .aimh-btn[aria-busy="true"]::after { content: ""; position: absolute; inline-size: 1em; block-size: 1em; border: 2px solid currentColor; border-color: var(--aimh-button-primary-fg) transparent var(--aimh-button-primary-fg) transparent; border-radius: 50%; animation: aimh-spin var(--aimh-motion-loop-spinner) var(--aimh-motion-easing-loop) infinite; }
  .aimh-btn[data-size="lg"] { min-block-size: var(--aimh-control-height-lg); }
  .aimh-btn[data-size="xl"] { min-block-size: var(--aimh-control-height-xl); font-size: var(--aimh-text-button-size); }
  .aimh-btn[data-size="sm"] { min-block-size: var(--aimh-control-height-sm); }
  .aimh-btn--block { inline-size: 100%; }
  /* Link is native <a> (base). Icon-button */
  .aimh-icon-btn { display: inline-grid; place-items: center; inline-size: var(--aimh-target-min); block-size: var(--aimh-target-min); border-radius: var(--aimh-control-radius); border: 0; background: transparent; color: var(--aimh-text-link); }
  /* StatusBadge (013 §54, 019b §61) — tone from data-tone set by registry, never by page */
  .aimh-badge { display: inline-flex; align-items: center; gap: var(--aimh-space-4); block-size: var(--aimh-badge-height); padding: 0 var(--aimh-space-8); border-radius: var(--aimh-radius-pill); background: var(--aimh-badge-neutral-bg); color: var(--aimh-badge-neutral-fg); font-size: var(--aimh-text-badge-size); font-weight: 500; letter-spacing: 0.01em; line-height: 1; white-space: nowrap; }
  .aimh-badge[data-tone="info"] { background: var(--aimh-badge-info-bg); color: var(--aimh-badge-info-fg); }
  .aimh-badge[data-tone="warning"] { background: var(--aimh-badge-warning-bg); color: var(--aimh-badge-warning-fg); }
  .aimh-badge[data-tone="critical"] { background: var(--aimh-badge-critical-bg); color: var(--aimh-badge-critical-fg); }
  .aimh-badge[data-tone="success"] { background: var(--aimh-badge-success-bg); color: var(--aimh-badge-success-fg); }
  .aimh-badge[data-size="sm"] { block-size: var(--aimh-badge-height-sm); }
  .aimh-badge > .aimh-glyph { inline-size: 12px; block-size: 12px; }
  /* FormField / TextInput / FieldMessage (013 §21–27, 017 forms) */
  .aimh-field { display: grid; gap: var(--aimh-space-4); margin-block-end: var(--aimh-space-16); max-inline-size: var(--aimh-max-form); }
  .aimh-field > label, .aimh-field > .aimh-legend { font-size: var(--aimh-text-label-size); font-weight: 500; }
  .aimh-field .aimh-field__hint { color: var(--aimh-text-secondary); font-size: var(--aimh-text-body-sm-size); }
  .aimh-input, .aimh-select, .aimh-textarea { min-block-size: var(--aimh-control-height-lg); padding: 0 var(--aimh-space-12); border: 1px solid var(--aimh-input-border); border-radius: var(--aimh-control-radius); background: var(--aimh-input-bg); color: var(--aimh-input-fg); inline-size: 100%; }
  [data-register="product"] :is(.aimh-input, .aimh-select, .aimh-textarea) { min-block-size: var(--aimh-control-height-md); }
  .aimh-textarea { padding-block: var(--aimh-space-12); min-block-size: calc(var(--aimh-control-height-lg) * 2); resize: vertical; }
  .aimh-input::placeholder { color: var(--aimh-input-placeholder); }
  .aimh-input:focus-visible, .aimh-select:focus-visible, .aimh-textarea:focus-visible { border-color: var(--aimh-input-border-focus); }
  .aimh-field[data-invalid="true"] :is(.aimh-input, .aimh-select, .aimh-textarea) { border-color: var(--aimh-input-border-invalid); border-width: 2px; }
  .aimh-input[readonly] { background: var(--aimh-surface-subtle); }
  .aimh-input[disabled] { background: var(--aimh-control-disabled-bg); color: var(--aimh-control-disabled-fg); }
  .aimh-field-message { display: flex; gap: var(--aimh-space-8); align-items: flex-start; font-size: var(--aimh-text-body-sm-size); }
  .aimh-field-message[data-kind="error"] { color: var(--aimh-status-critical-fg); }
  .aimh-field-message[data-kind="valid"] { color: var(--aimh-status-success-fg); }
  .aimh-field-message[data-kind="instruction"] { color: var(--aimh-text-secondary); }
  .aimh-overline { font-size: var(--aimh-text-overline-size); letter-spacing: 0.06em; text-transform: uppercase; color: var(--aimh-text-secondary); margin: 0; }
  .aimh-lead { font-size: var(--aimh-text-body-lg-size); color: var(--aimh-text-secondary); max-inline-size: var(--aimh-max-reading); }
  .aimh-error-summary ul { margin: var(--aimh-space-8) 0 0; padding-inline-start: var(--aimh-space-24); }
  .aimh-error-summary a { color: inherit; }
  .aimh-form-section { border: 0; padding: 0; margin: 0 0 var(--aimh-space-24); min-inline-size: 0; }
  .aimh-form-section > legend { font-family: var(--aimh-font-family-heading); font-weight: 600; font-size: var(--aimh-text-local-heading-size); padding: 0; margin-block-end: var(--aimh-space-12); }
  .aimh-form-actions { margin-block-start: var(--aimh-space-24); }
  .aimh-form-row { display: grid; gap: 0 var(--aimh-space-16); grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
  .aimh-required { color: var(--aimh-text-secondary); font-weight: 400; }
  .aimh-checkbox { display: flex; gap: var(--aimh-space-12); align-items: flex-start; min-block-size: var(--aimh-target-min); }
  .aimh-checkbox input { inline-size: 20px; block-size: 20px; margin-block-start: 2px; accent-color: var(--aimh-brand-primary); }
  /* Alert (013 §55, 019b §62) — condition with consequence; persistent */
  .aimh-alert { display: grid; grid-template-columns: auto 1fr; gap: var(--aimh-space-12); padding: var(--aimh-space-12) var(--aimh-space-16); border: 1px solid var(--aimh-border-subtle); border-inline-start: var(--aimh-alert-border) solid var(--aimh-alert-info-border); border-radius: var(--aimh-control-radius); background: var(--aimh-alert-bg); margin-block-end: var(--aimh-space-stack-product); }
  .aimh-alert[data-tone="warning"] { border-inline-start-color: var(--aimh-alert-warning-border); }
  .aimh-alert[data-tone="critical"] { border-inline-start-color: var(--aimh-alert-critical-border); }
  .aimh-alert[data-tone="success"] { border-inline-start-color: var(--aimh-alert-success-border); }
  .aimh-alert > .aimh-glyph { inline-size: 20px; block-size: 20px; margin-block-start: 2px; }
  .aimh-alert__body > :last-child { margin-block-end: 0; }
  .aimh-alert__actions { display: flex; gap: var(--aimh-space-8); flex-wrap: wrap; margin-block-start: var(--aimh-space-8); }
  /* Surface / Card (013 §115–116; card only for actionable units) */
  .aimh-surface { background: var(--aimh-surface-card-bg); border: 1px solid var(--aimh-surface-card-border); border-radius: var(--aimh-surface-card-radius); padding: var(--aimh-space-24); }
  .aimh-surface[data-elevation="raised"] { box-shadow: var(--aimh-shadow-elevated); }
  .aimh-card { display: block; text-decoration: none; color: inherit; }
  [data-register="public"] .aimh-card--interactive:hover { transform: scale(var(--aimh-motion-scale-card-hover)); transition: transform var(--aimh-motion-duration-fast) var(--aimh-motion-easing-state); }
  /* Definition list of facts (013 §67) */
  .aimh-facts { display: grid; grid-template-columns: max-content 1fr; gap: var(--aimh-space-4) var(--aimh-space-16); }
  .aimh-facts dt { color: var(--aimh-text-secondary); font-size: var(--aimh-text-label-size); }
  .aimh-facts dd { margin: 0; }
  /* Table primitives (013 §60–66; no zebra) */
  .aimh-table { inline-size: 100%; font-variant-numeric: tabular-nums; font-size: var(--aimh-text-data-size); }
  .aimh-table th { text-align: start; color: var(--aimh-table-header-fg); font-weight: 500; block-size: var(--aimh-row-standard); padding: 0 var(--aimh-space-12); border-block-end: 1px solid var(--aimh-border-subtle); position: sticky; inset-block-start: 0; background: var(--aimh-surface-default); }
  .aimh-table td { block-size: var(--aimh-row-standard); padding: 0 var(--aimh-space-12); border-block-end: 1px solid var(--aimh-table-row-border); vertical-align: middle; }
  .aimh-table tr:hover > td { background: var(--aimh-table-row-hover); }
  .aimh-table .aimh-num { text-align: end; }
  .aimh-table[data-density="compact"] :is(th, td) { block-size: var(--aimh-row-compact); }
  /* Loading — skeleton at final geometry (018 §48) */
  .aimh-skeleton { background: var(--aimh-skeleton-bg); border-radius: var(--aimh-control-radius); color: transparent !important; animation: aimh-pulse var(--aimh-motion-loop-skeleton) ease-in-out infinite; }
  .aimh-skeleton * { visibility: hidden; }
  @keyframes aimh-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .6; } }
  @keyframes aimh-spin { to { transform: rotate(360deg); } }
  @media (prefers-reduced-motion: reduce) { .aimh-skeleton, .aimh-btn[aria-busy="true"]::after { animation: none; } }
  /* Chip (active filter) */
  .aimh-chip { display: inline-flex; align-items: center; gap: var(--aimh-space-4); min-block-size: 28px; padding: 0 var(--aimh-space-8); border: 1px solid var(--aimh-border-subtle); border-radius: var(--aimh-radius-pill); font-size: var(--aimh-text-caption-size); background: var(--aimh-surface-default); }
  .aimh-glyph { display: inline-block; inline-size: 1em; block-size: 1em; flex: none; }
}

/* ── 50-shells.css ── */
/* shells — public header/footer, product (rail + context bar), portal, auth (021 §43–48) */
@layer layouts {
  .aimh-wrap { max-inline-size: var(--aimh-max-public); margin-inline: auto; padding-inline: var(--aimh-space-margin-public); }
  .aimh-measure { max-inline-size: var(--aimh-max-reading); }
  /* public */
  .aimh-public-header { block-size: var(--aimh-header-public); border-block-end: 1px solid var(--aimh-border-divider); background: var(--aimh-surface-default); position: sticky; inset-block-start: 0; z-index: var(--aimh-z-sticky); }
  .aimh-public-header .aimh-wrap { display: flex; align-items: center; justify-content: space-between; gap: var(--aimh-space-24); block-size: 100%; }
  .aimh-public-header nav ul { display: flex; gap: var(--aimh-space-16); list-style: none; margin: 0; padding: 0; }
  .aimh-public-header nav a { text-decoration: none; color: var(--aimh-text-primary); padding: var(--aimh-space-8) var(--aimh-space-4); display: inline-block; }
  .aimh-public-header nav a[aria-current="page"] { color: var(--aimh-text-link); box-shadow: inset 0 -2px 0 var(--aimh-brand-primary); }
  .aimh-public-header .aimh-utility { display: flex; align-items: center; gap: var(--aimh-space-12); font-size: var(--aimh-text-body-sm-size); }
  .aimh-nav-toggle { display: none; min-inline-size: var(--aimh-target-min); min-block-size: var(--aimh-target-min); border: 1px solid var(--aimh-border-strong); border-radius: var(--aimh-control-radius); background: var(--aimh-surface-default); color: var(--aimh-text-primary); font: inherit; padding-inline: var(--aimh-space-12); }
  .aimh-public-header nav ul li { display: contents; }
  .aimh-measure-form { max-inline-size: var(--aimh-max-form); margin-inline: auto; padding-inline: var(--aimh-space-margin-public-narrow); }
  .aimh-measure-prose { max-inline-size: var(--aimh-max-reading); margin-inline: auto; padding-inline: var(--aimh-space-margin-public-narrow); }
  /* router / recovery path lists (020 pub.router, pub.system-recovery): rows, not cards */
  .aimh-paths { list-style: none; margin: 0; padding: 0; border-block-start: 1px solid var(--aimh-border-divider); }
  .aimh-paths li { border-block-end: 1px solid var(--aimh-border-divider); }
  .aimh-paths a { display: block; padding-block: var(--aimh-space-16); text-decoration: none; color: inherit; min-block-size: var(--aimh-target-min); }
  .aimh-paths a:hover strong, .aimh-paths a:focus-visible strong { text-decoration: underline; }
  .aimh-paths strong { display: block; color: var(--aimh-text-link); font-weight: 600; }
  .aimh-paths span { display: block; color: var(--aimh-text-secondary); font-size: var(--aimh-text-body-sm-size); }
  .aimh-wordmark { display: inline-flex; align-items: center; gap: var(--aimh-space-8); font-family: var(--aimh-font-family-heading); font-weight: 700; color: var(--aimh-text-primary); text-decoration: none; }
  .aimh-seal { inline-size: 40px; block-size: 40px; flex: 0 0 auto; }
  .aimh-wordmark small { display: block; font-family: var(--aimh-font-family-sans); font-weight: 400; font-size: var(--aimh-text-caption-size); color: var(--aimh-text-secondary); }
  main.aimh-public > section { padding-block: var(--aimh-space-section-public); }
  main.aimh-public > section + section { border-block-start: 1px solid var(--aimh-border-divider); }
  .aimh-public-footer { background: var(--aimh-shell-footer-bg); color: var(--aimh-shell-footer-fg); padding-block: var(--aimh-space-32); margin-block-start: var(--aimh-space-chapter-public); }
  .aimh-public-footer a { color: inherit; }
  .aimh-wave { block-size: 24px; background: linear-gradient(to bottom, transparent 50%, var(--aimh-surface-canvas-alt) 50%); }
  .aimh-hero { display: grid; grid-template-columns: 7fr 5fr; gap: var(--aimh-space-32); align-items: center; padding-block: var(--aimh-space-48); }
  .aimh-hero .aimh-media { aspect-ratio: 4 / 3; background: var(--aimh-surface-subtle); border-radius: var(--aimh-radius-lg); }
  .aimh-beside { display: grid; grid-template-columns: 7fr 5fr; gap: var(--aimh-space-32); }
  .aimh-row { display: grid; grid-template-columns: 1fr auto; gap: var(--aimh-space-12); align-items: start; padding-block: var(--aimh-space-12); border-block-end: 1px solid var(--aimh-border-divider); }
  /* product */
  .aimh-app { display: grid; grid-template-columns: var(--aimh-rail-wide) 1fr; min-block-size: 100vh; }
  .aimh-rail { background: var(--aimh-shell-rail-bg); border-inline-end: 1px solid var(--aimh-border-divider); padding: var(--aimh-space-16); position: sticky; inset-block-start: 0; block-size: 100vh; z-index: var(--aimh-z-rail); }
  .aimh-rail ul { list-style: none; margin: 0; padding: 0; }
  .aimh-rail a { display: block; padding: var(--aimh-space-8) var(--aimh-space-12); border-radius: var(--aimh-control-radius); text-decoration: none; color: var(--aimh-text-primary); min-block-size: var(--aimh-target-min); }
  .aimh-rail a[aria-current="page"] { background: var(--aimh-surface-selected); font-weight: 600; }
  .aimh-work { padding: var(--aimh-space-16) var(--aimh-space-margin-product); max-inline-size: var(--aimh-max-app); }
  .aimh-context-bar { position: sticky; inset-block-start: 0; z-index: var(--aimh-z-sticky); background: var(--aimh-shell-contextbar-bg); border-block-end: 1px solid var(--aimh-border-subtle); min-block-size: var(--aimh-header-product); display: flex; align-items: center; gap: var(--aimh-space-16); flex-wrap: wrap; padding-block: var(--aimh-space-8); }
  .aimh-context-bar h1 { margin: 0; font-size: var(--aimh-product-text-section-title-size); }
  .aimh-exception-strip { margin-block: var(--aimh-space-12); }
  .aimh-tabs { display: flex; gap: var(--aimh-space-8); border-block-end: 1px solid var(--aimh-border-subtle); margin-block: var(--aimh-space-12); list-style: none; padding: 0; overflow-x: auto; }
  .aimh-tabs a { display: inline-block; padding: var(--aimh-space-8) var(--aimh-space-12); text-decoration: none; color: var(--aimh-text-secondary); white-space: nowrap; min-block-size: var(--aimh-target-min); }
  .aimh-tabs a[aria-current="page"] { color: var(--aimh-text-link); box-shadow: inset 0 -2px 0 var(--aimh-brand-primary); }
  .aimh-filters { display: flex; gap: var(--aimh-space-8); flex-wrap: wrap; margin-block: var(--aimh-space-12); align-items: center; }
  .aimh-save-bar { position: sticky; inset-block-end: 0; background: var(--aimh-surface-default); border-block-start: 1px solid var(--aimh-border-subtle); padding-block: var(--aimh-space-12); display: flex; gap: var(--aimh-space-12); align-items: center; z-index: var(--aimh-z-sticky); }
  /* portal */
  /* family portal shell (023): identity + help; no public navigation; no bottom nav (link-gated single tasks — 023 §4) */
  .aimh-portal-header { border-block-end: 1px solid var(--aimh-border-divider); background: var(--aimh-surface-default); }
  .aimh-portal-header .aimh-wrap { display: flex; justify-content: space-between; align-items: center; gap: var(--aimh-space-16); min-block-size: var(--aimh-target-rbt); padding-block: var(--aimh-space-8); }
  .aimh-portal-main { max-inline-size: var(--aimh-max-reading); margin-inline: auto; padding: var(--aimh-space-16) var(--aimh-space-margin-public-narrow) var(--aimh-space-48); }
  .aimh-portal-main > section + section { margin-block-start: var(--aimh-space-24); }
  .aimh-portal-footer { border-block-start: 1px solid var(--aimh-border-divider); padding-block: var(--aimh-space-24); color: var(--aimh-text-secondary); font-size: var(--aimh-text-body-sm-size); }
  .aimh-portal .aimh-btn { min-block-size: var(--aimh-target-rbt); }
  .aimh-portal .aimh-btn[data-size="sm"] { min-block-size: var(--aimh-target-min); }
  /* family item list: one row per appointment/document — date, facts, state, action (020 fam.list) */
  .aimh-items { list-style: none; margin: 0; padding: 0; border-block-start: 1px solid var(--aimh-border-divider); }
  .aimh-item { display: grid; gap: var(--aimh-space-4); padding-block: var(--aimh-space-16); border-block-end: 1px solid var(--aimh-border-divider); }
  .aimh-item__when { font-weight: 600; }
  .aimh-item__facts { color: var(--aimh-text-secondary); }
  .aimh-item__actions { display: flex; flex-wrap: wrap; gap: var(--aimh-space-8); margin-block-start: var(--aimh-space-8); }
  .aimh-item[data-status-of="appt.cancelled"] .aimh-item__when { color: var(--aimh-text-secondary); text-decoration: line-through; }
  .aimh-owner { display: block; color: var(--aimh-text-secondary); font-size: var(--aimh-text-body-sm-size); }
  .aimh-group-title { margin-block: var(--aimh-space-24) var(--aimh-space-8); font-size: var(--aimh-text-local-heading-size); }
  .aimh-bottom-nav { display: none; }
  /* auth */
  .aimh-auth { min-block-size: 100vh; display: grid; place-items: center; background: var(--aimh-shell-auth-canvas); padding: var(--aimh-space-16); }
  .aimh-auth__card { inline-size: min(100%, var(--aimh-max-auth)); background: var(--aimh-surface-default); border: 1px solid var(--aimh-border-subtle); border-radius: var(--aimh-radius-md); padding: var(--aimh-space-32); }
  /* client record context header (014 client-context-header · 020 prod.client-record · 024 §6–11): static (not sticky) while it coexists with the legacy rail; identity → disambiguators → state → facts → nav */
  .aimh-client-context { display: grid; grid-template-columns: 1fr auto; gap: var(--aimh-space-12) var(--aimh-space-24); padding: var(--aimh-space-16) var(--aimh-space-margin-product); background: var(--aimh-surface-default); border-block-end: 1px solid var(--aimh-border-subtle); }
  .aimh-client-context__id { display: flex; gap: var(--aimh-space-12); align-items: flex-start; grid-column: 1; }
  .aimh-client-context__photo { inline-size: 56px; block-size: 56px; border-radius: var(--aimh-radius-pill); object-fit: cover; flex: 0 0 auto; }
  .aimh-client-context h1 { margin: 0; font-size: var(--aimh-product-text-section-title-size); overflow-wrap: anywhere; }
  .aimh-client-context__disambiguator { margin: var(--aimh-space-4) 0 0; color: var(--aimh-text-secondary); font-size: var(--aimh-text-body-sm-size); overflow-wrap: anywhere; }
  .aimh-client-context__state { margin: var(--aimh-space-8) 0 0; display: flex; flex-wrap: wrap; gap: var(--aimh-space-8); align-items: center; }
  .aimh-client-context__facts { grid-column: 1; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: var(--aimh-space-8) var(--aimh-space-16); margin: 0; }
  .aimh-client-context__facts dt { font-size: var(--aimh-text-overline-size); text-transform: uppercase; letter-spacing: 0.06em; }
  .aimh-client-context__actions { grid-column: 2; grid-row: 1 / span 2; display: flex; flex-direction: column; gap: var(--aimh-space-8); align-items: flex-end; }
  .aimh-client-context__nav { margin: 0; padding-inline: var(--aimh-space-margin-product); background: var(--aimh-surface-default); }
  .aimh-product-lab-header { border-block-end: 1px solid var(--aimh-border-divider); padding-block: var(--aimh-space-8); }
  .ds-example { border: 1px solid var(--aimh-border-divider); margin-block: var(--aimh-space-16); }
  .aimh-product-home { max-inline-size: var(--aimh-max-reading); }
  .aimh-safety { margin: 0; border-radius: 0; }
  [data-save-state] { font-size: var(--aimh-text-body-sm-size); color: var(--aimh-text-secondary); }
  [data-save-state="save-failed"], [data-save-state="conflict"] { color: var(--aimh-status-critical-fg); }
  /* responsive: stack · reorder · collapse · remove (012) */
  @media (max-width: 1023px) {
    .aimh-nav-toggle { display: inline-flex; align-items: center; }
    .aimh-public-header nav { display: none; position: absolute; inset-inline: 0; inset-block-start: var(--aimh-header-public); background: var(--aimh-surface-default); border-block-end: 1px solid var(--aimh-border-divider); padding: var(--aimh-space-8) var(--aimh-space-margin-public-narrow) var(--aimh-space-16); }
    .aimh-public-header[data-nav="open"] nav { display: block; }
    .aimh-public-header nav ul { flex-direction: column; gap: 0; }
    .aimh-public-header nav a { display: block; min-block-size: var(--aimh-target-min); padding-block: var(--aimh-space-12); border-block-end: 1px solid var(--aimh-border-divider); }
    .aimh-public-header nav a[aria-current="page"] { box-shadow: none; font-weight: 600; }
    .aimh-hero, .aimh-beside { grid-template-columns: 1fr; }
    .aimh-app { grid-template-columns: 1fr; }
    .aimh-rail { display: none; }
    .aimh-wrap { padding-inline: var(--aimh-space-margin-public-narrow); }
  }
  @media (max-width: 599px) {
    .aimh-client-context { grid-template-columns: 1fr; }
    .aimh-client-context__actions { grid-column: 1; grid-row: auto; flex-direction: row; align-items: center; }
    .aimh-public-header .aimh-wordmark small { display: none; }
    .aimh-hero .aimh-media { display: none; }
    .aimh-remove-narrow { display: none; }
    .aimh-bottom-nav { display: flex; position: fixed; inset-block-end: 0; inset-inline: 0; background: var(--aimh-surface-default); border-block-start: 1px solid var(--aimh-border-subtle); justify-content: space-around; padding-block: var(--aimh-space-8); z-index: var(--aimh-z-sticky); }
    .aimh-bottom-nav a { min-block-size: var(--aimh-target-min); display: inline-flex; align-items: center; text-decoration: none; }
    .aimh-fixed-action { position: fixed; inset-block-end: 0; inset-inline: 0; padding: var(--aimh-space-12); background: var(--aimh-surface-default); border-block-start: 1px solid var(--aimh-border-subtle); z-index: var(--aimh-z-sticky); }
    .aimh-table[data-narrow="cards"] { display: block; }
    .aimh-table[data-narrow="cards"] thead { display: none; }
    .aimh-table[data-narrow="cards"] tr { display: grid; padding-block: var(--aimh-space-12); border-block-end: 1px solid var(--aimh-border-divider); }
    .aimh-table[data-narrow="cards"] td { block-size: auto; padding: 2px 0; border: 0; }
    .aimh-table[data-narrow="cards"] td[data-label]::before { content: attr(data-label) ": "; color: var(--aimh-text-secondary); }
    .aimh-work { padding-inline: var(--aimh-space-margin-product-narrow); }
  }
}

/* ── 60-states.css ── */
/* states — data-state driven regions (018 §48–61, 019 §151–154, 020 §140–144) */
@layer states {
  [data-state] > .aimh-when-empty, [data-state] > .aimh-when-error, [data-state] > .aimh-when-loading { display: none; }
  [data-state="empty"] > .aimh-when-empty, [data-state="error"] > .aimh-when-error, [data-state="loading"] > .aimh-when-loading { display: block; }
  [data-state="empty"] > .aimh-when-loaded, [data-state="error"] > .aimh-when-loaded, [data-state="loading"] > .aimh-when-loaded { display: none; }
  [data-state="stale"] .aimh-freshness, [data-freshness="stale"] { color: var(--aimh-text-secondary); }
  .aimh-freshness::before { content: ""; }
}

/* ── 70-print.css ── */
/* print — shared foundation (012 §151, 019 §89, 020 §136, 021 §131–133) */
@layer print {
  @media print {
    .aimh-public-header, .aimh-public-footer, .aimh-rail, .aimh-filters, .aimh-save-bar, .aimh-fixed-action, .aimh-bottom-nav, .aimh-btn, .aimh-skip, .aimh-wave, nav { display: none !important; } /* documented exception 021 §24 */
    .aimh-app { display: block; }
    .aimh-context-bar { position: static; border: 0; }
    body { color: #000; background: #fff; font-size: 11pt; } /* print set (04 § print) */
    h1, h2, h3 { break-after: avoid; }
    tr, .aimh-alert, .aimh-surface { break-inside: avoid; }
    a { text-decoration: none; color: inherit; }
    .aimh-badge { border: 1px solid #000; background: transparent !important; color: #000 !important; }
  }
}

/* ── 90-utilities.css ── */
/* utilities — few, structural, documented (021 §25) */
@layer utilities {
  .aimh-stack > * + * { margin-block-start: var(--aimh-space-stack-public); }
  [data-register="product"] .aimh-stack > * + * { margin-block-start: var(--aimh-space-stack-product); }
  .aimh-cluster { display: flex; flex-wrap: wrap; gap: var(--aimh-space-8); align-items: center; }
  .aimh-muted { color: var(--aimh-text-secondary); }
  .aimh-text-sm { font-size: var(--aimh-text-body-sm-size); }
  .aimh-prewrap { white-space: pre-line; }
  .aimh-mb-0 { margin-block-end: 0; }
}
