/* glen-design: v1 */
/* Savings ledger, event-driven beam, and a paper approval desk. */
:root { --au-node-size: var(--s7); }
.au { min-width: 0; }
.au .card, .au button, .au a, .au .switch, .au .bar > i { transition-property: transform, opacity, filter, clip-path; }
.au-head-actions { display: flex; flex-wrap: wrap; gap: var(--s2); }
.au-hero.card { padding: 0; overflow: hidden; border-radius: var(--r-lg); }
.au-ledger { padding: var(--s5) var(--s6); }
.au-ledger-h, .au-sec-h { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); }
.au-livepill { display: inline-flex; align-items: center; gap: var(--s2); font-size: var(--fs-micro); color: var(--ok); }
.au-figs { display: grid; grid-template-columns: 1.25fr 1fr 1fr; margin: var(--s5) 0; }
.au-fig { position: relative; min-width: 0; padding: var(--s2) var(--s5); border-left: 1px solid var(--line); border-radius: var(--r-sm); }
.au-fig:first-child { padding-left: 0; border-left: 0; }
.au-fig:last-child { padding-right: 0; }
.au-fig > small { color: var(--ink-dim); font-size: var(--fs-sm); font-weight: 600; }
.au-fig-v { display: grid; gap: var(--s2); margin: var(--s3) 0; }
.au-fig-v .fig { font-size: var(--fs-hero); white-space: nowrap; }
.au-fig:first-child .fig { color: var(--accent); }
.au-fig-v > span { font-size: var(--fs-sm); color: var(--ink-dim); }
.au-fig p { font-size: var(--fs-sm); line-height: 1.5; color: var(--ink-dim); margin: 0; }
.au-fig p.good { color: var(--ok); }
.au-fig p .ic { width: var(--s3); height: var(--s3); display: inline-block; vertical-align: middle; }
.au-delta { position: absolute; right: var(--s4); top: var(--s1); opacity: 0; pointer-events: none; }
.au-delta.on { opacity: 1; }
.au-basis, .au-note { display: flex; align-items: flex-start; gap: var(--s2); font-size: var(--fs-micro); color: var(--ink-dim); max-width: none; margin: 0; }
.au-basis .ic, .au-note .ic { width: var(--s4); height: var(--s4); flex: none; margin-top: var(--s1); }
.au-hint-touch { display: none; }
.au-pipe { --au-dir: x; position: relative; padding: var(--s5) var(--s6) var(--s6); background: var(--surface-2); border-top: 1px solid var(--line); }
.au-grid { position: absolute; inset: 0; pointer-events: none; opacity: .45; }
.au-pipe-h { position: relative; display: flex; gap: var(--s4); align-items: center; margin-bottom: var(--s5); }
.au-pipe-now { flex: 1; min-width: 0; display: grid; gap: var(--s1); }
.au-pipe-now b { font-weight: 600; font-size: var(--fs-sm); }
.au-pipe-now span { color: var(--ink-dim); font-size: var(--fs-micro); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.au-pipe-count { color: var(--ink-dim); font-size: var(--fs-micro); flex: none; }
.au-pipe-count b { color: var(--ink); }
.au-stages { position: relative; list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.au-stage { position: relative; min-width: 0; padding-right: var(--s5); border-radius: var(--r-sm); }
.au-stage:last-child { padding-right: 0; }
.au-node { position: relative; z-index: 1; display: grid; place-items: center; width: var(--au-node-size); height: var(--au-node-size); border-radius: 50%; background: var(--surface-1); color: var(--ink-dim); box-shadow: var(--shadow-1), 0 0 0 1px var(--line-2); }
.au-node .ic { width: var(--s5); height: var(--s5); }
.au-node--ai { color: var(--accent); box-shadow: var(--shadow-1), 0 0 0 1px var(--tint-2); }
.au-node .mini-orb { width: var(--s6); height: var(--s6); }
.au-node--saved { color: var(--ok); }
.au-link { position: absolute; top: calc(var(--s5) - 1px); left: var(--s5); width: 100%; height: 2px; background: var(--line-2); }
.au-link i { display: block; width: 100%; height: 100%; background: var(--accent); transform-origin: left top; transform: scaleX(0); }
.au-ping { position: absolute; inset: calc(-1 * var(--s2)); border-radius: 50%; border: 1px solid var(--accent); opacity: 0; }
.au-stage.lit .au-node { color: var(--accent); box-shadow: 0 0 0 1px var(--accent), 0 0 var(--s5) var(--glow); }
.au-stage.lit .au-node--saved { color: var(--ok); box-shadow: 0 0 0 1px var(--ok), 0 0 var(--s5) var(--ok-tint); }
.au-sb { margin-top: var(--s4); }
.au-sk { color: var(--accent); font: 500 var(--fs-micro)/1.4 var(--font-mono); }
.au-st { margin: var(--s2) 0; font-size: var(--fs-sm); line-height: 1.5; min-height: 4.5em; }
.au-ss { color: var(--ink-dim); font-size: var(--fs-micro); line-height: 1.4; display: block; }
.au-stage:last-child .au-st { font: 300 var(--fs-2xl)/1.5 var(--font-display); color: var(--ok); min-height: 1.5em; font-variant-numeric: tabular-nums; }
.au-beacon { position: absolute; left: 0; top: 0; width: var(--s3); height: var(--s3); border-radius: 50%; background: var(--hot); box-shadow: 0 0 var(--s2) var(--accent), 0 0 var(--s5) var(--accent); opacity: 0; pointer-events: none; z-index: 3; }
.au-fly { position: absolute; left: 0; top: 0; z-index: 5; pointer-events: none; background: var(--surface-1); color: var(--ok); border-radius: var(--r-pill); padding: var(--s2) var(--s3); box-shadow: var(--shadow-2); font-size: var(--fs-sm); }
.au-sec { margin-top: var(--s6); scroll-margin-top: calc(var(--topbar-h) + var(--s5)); }
.au-sec-h { margin-bottom: var(--s4); }
.au-sec-h h2 { margin-bottom: var(--s2); }
.au-sec-h p { margin: 0; max-width: 80ch; }
.au-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); }
.au-card { display: flex; flex-direction: column; min-width: 0; }
.au-card-h { display: flex; align-items: flex-start; gap: var(--s3); }
.au-ic { display: grid; place-items: center; width: var(--h-touch); height: var(--h-touch); background: var(--surface-2); color: var(--accent); border-radius: var(--r-sm); flex: none; }
.au-ic .ic { width: var(--s5); height: var(--s5); }
.au-card-t { flex: 1; min-width: 0; }
.au-card-t h3 { line-height: 1.3; }
.au-sys { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s1); margin: var(--s1) 0 0; font-size: var(--fs-micro); color: var(--ink-dim); }
.au-sys a { display: inline-block; color: inherit; text-decoration: none; }
.au-sys .ic { width: var(--s3); height: var(--s3); }
.au-flow { list-style: none; padding: 0; margin: var(--s5) 0; }
.au-flow li { position: relative; display: grid; grid-template-columns: var(--s6) minmax(0, 1fr); gap: var(--s3); padding-bottom: var(--s3); }
.au-flow li:last-child { padding-bottom: 0; }
.au-fn { display: grid; place-items: center; width: var(--s6); height: var(--s6); border-radius: 50%; background: var(--surface-2); color: var(--ink-dim); z-index: 1; }
.au-fn .ic { width: var(--s4); height: var(--s4); }
.au-flow .is-ai .au-fn { background: var(--tint); color: var(--accent); }
.au-fl { position: absolute; top: var(--s6); left: calc(var(--s4) - 1px); bottom: 0; width: 2px; background: var(--line); }
.au-fl i { display: block; height: 100%; width: 100%; background: var(--accent); transform: scaleY(0); transform-origin: top; }
.au-flow small { font-size: var(--fs-micro); font-weight: 600; color: var(--ink-dim); }
.au-flow .is-ai small { color: var(--accent); }
.au-flow p { font-size: var(--fs-sm); line-height: 1.5; margin: 0; }
.au-card-figs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); position: relative; padding: var(--s4); gap: var(--s3); background: var(--surface-2); border-radius: var(--r-sm); margin-top: auto; }
.au-card-figs > div, .au-sug-figs > div { display: grid; gap: var(--s2); }
.au-card-figs .fig { font-size: var(--fs-2xl); }
.au-card-figs small, .au-sug-figs small { font-size: var(--fs-micro); color: var(--ink-dim); }
.au-info { position: absolute; right: var(--s2); top: var(--s2); color: var(--ink-dim); }
.au-info .ic { width: var(--s3); height: var(--s3); }
.au-card-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); margin: var(--s4) 0; }
.au-card-meta dt { font-size: var(--fs-micro); color: var(--ink-dim); }
.au-card-meta dd { margin: var(--s1) 0 0; font-size: var(--fs-sm); }
.au-card-f { display: flex; flex-wrap: wrap; gap: var(--s2); align-items: center; border-top: 1px solid var(--line); padding-top: var(--s4); }
.au-card-f > :first-child { margin-right: auto; }
.au-card-f .chip { min-height: var(--h-control); }
.au-focus { box-shadow: var(--shadow-2), 0 0 0 2px var(--accent); }
.au-lede-btn { display: inline; background: none; border: 0; padding: 0; color: var(--accent); font: inherit; text-align: left; cursor: pointer; text-decoration: underline; text-underline-offset: var(--s1); }
.au-work { display: grid; grid-template-columns: minmax(240px, .75fr) minmax(0, 1.5fr); gap: var(--s5); align-items: start; }
.au-work.is-empty { grid-template-columns: 1fr; }
.au-q.card { padding: var(--s2); max-height: 820px; overflow: auto; overscroll-behavior: contain; }
.au-qg + .au-qg { margin-top: var(--s4); }
.au-qg-h { display: flex; justify-content: space-between; gap: var(--s3); padding: var(--s3); font-size: var(--fs-sm); color: var(--ink-dim); }
.au-qg-h b { font-weight: 600; }
.au-qi { display: grid; gap: var(--s1); text-align: left; width: 100%; padding: var(--s3); border: 0; border-radius: var(--r-sm); background: transparent; cursor: pointer; }
.au-qi[aria-pressed="true"] { background: var(--tint); box-shadow: inset 3px 0 var(--accent); }
.au-qi-t { font-size: var(--fs-sm); font-weight: 600; line-height: 1.4; }
.au-qi-s, .au-qi-m { font-size: var(--fs-micro); color: var(--ink-dim); }
.au-qi-m { display: flex; align-items: center; gap: var(--s2); margin-top: var(--s2); }
.au-qi-m > :last-child { margin-left: auto; }
.au-qi.leaving { opacity: 0; pointer-events: none; }
.au-doc { min-width: 0; scroll-margin-top: calc(var(--topbar-h) + var(--s4)); }
.au-doc-top { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); margin-bottom: var(--s3); }
.au-doc-ask { margin-left: auto; }
.au-paper { position: relative; background: var(--surface-1); padding: var(--s6); border: 1px solid var(--line-2); border-radius: var(--r-sm); box-shadow: var(--shadow-2); overflow: hidden; }
.au-paper::after { content: ''; position: absolute; left: var(--s4); right: var(--s4); bottom: var(--s1); border-bottom: 1px solid var(--line); pointer-events: none; }
.au-lh { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s4); padding-bottom: var(--s5); margin-bottom: var(--s5); border-bottom: 1px solid var(--line-2); }
.au-lh-co { display: flex; align-items: center; gap: var(--s3); }
.au-lh-mark { width: var(--h-touch); height: var(--h-touch); }
.au-lh-co > span, .au-lh-k { display: grid; gap: var(--s1); }
.au-lh-co b { font-family: var(--font-display); font-size: var(--fs-base); }
.au-lh-co span span, .au-lh-k { font-size: var(--fs-micro); color: var(--ink-dim); }
.au-hl { font-size: var(--fs-xl); line-height: 1.3; margin-bottom: var(--s5); }
.au-meta { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--s2) var(--s4); font-size: var(--fs-sm); margin: 0 0 var(--s5); }
.au-meta dt { color: var(--ink-dim); }
.au-meta dd { margin: 0; }
.au-part { margin-top: var(--s5); }
.au-part > small, .au-edit-l { display: block; font-size: var(--fs-micro); font-weight: 600; color: var(--ink-dim); margin-bottom: var(--s2); }
.au-part p { font-size: var(--fs-base); line-height: 1.65; }
.au-mk { color: inherit; background: var(--tint); border-radius: var(--s1); padding: 0 var(--s1); box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.au-paper.marks-off .au-mk { background: none; }
.au-alert { display: flex; gap: var(--s3); padding: var(--s3); background: var(--warn-tint); border-radius: var(--r-sm); font-size: var(--fs-sm); }
.au-alert .ic { width: var(--s4); height: var(--s4); color: var(--warn); flex: none; }
.au-alert small { display: block; font-weight: 600; color: var(--warn); margin-bottom: var(--s1); }
.au-sign { font-size: var(--fs-sm); color: var(--ink-dim); border-top: 1px solid var(--line); padding-top: var(--s4); margin-top: var(--s5); }
.au-stamp { position: absolute; z-index: 2; top: var(--s6); right: var(--s6); padding: var(--s3) var(--s5); border: 3px double currentColor; border-radius: var(--r-sm); color: var(--ok); background: var(--surface-1); font: 600 var(--fs-xl)/1.2 var(--font-display); text-transform: uppercase; letter-spacing: .08em; opacity: 0; pointer-events: none; }
.au-stamp.on { opacity: 1; }
.au-stamp.bad { color: var(--bad); }
.au-legend { display: flex; gap: var(--s3); align-items: center; margin: var(--s4) 0; font-size: var(--fs-micro); color: var(--ink-dim); }
.au-decide { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); margin: var(--s5) 0 var(--s3); }
.au-approver { display: grid; gap: var(--s1); font-size: var(--fs-sm); }
.au-approver small { color: var(--ink-dim); }
.au-btns, .au-reasons { display: flex; gap: var(--s2); flex-wrap: wrap; }
.au-reasons-l { width: 100%; font-size: var(--fs-sm); }
.au-next { display: grid; grid-template-columns: 1fr; }
.au-sug { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--s3) var(--s5); }
.au-sug-src { display: flex; align-items: center; gap: var(--s2); color: var(--accent); font-size: var(--fs-micro); grid-column: 1 / -1; }
.au-sug-src .ic { width: var(--s4); height: var(--s4); }
.au-sug p { font-size: var(--fs-sm); color: var(--ink-dim); margin: 0; }
.au-sug .btn { grid-column: 2; grid-row: 2 / 4; }
.au-tip { position: fixed; z-index: 100; width: min(580px, calc(100vw - var(--s5))); max-height: calc(100dvh - var(--s5)); overflow: auto; padding: var(--s5); border-radius: var(--r); background: var(--surface-1); box-shadow: var(--shadow-3), 0 0 0 1px var(--line-2); opacity: 0; visibility: hidden; pointer-events: none; font-size: var(--fs-sm); }
.au-tip.in { opacity: 1; visibility: visible; pointer-events: auto; }
.au-tip h4 { font-size: var(--fs-lg); margin-bottom: var(--s3); }
.au-tip p { margin: var(--s2) 0; }
.au-foot { color: var(--ink-dim); font-size: var(--fs-micro); }
.au-sum { width: 100%; border-collapse: collapse; font-size: var(--fs-micro); }
.au-sum th, .au-sum td { padding: var(--s2) var(--s1); text-align: left; border-bottom: 1px solid var(--line); }
.au-sum .num { text-align: right; }
.au-sum tfoot { font-weight: 600; }
.au .btn, .au button.chip { min-height: var(--h-touch); }
@media (hover: hover) and (pointer: fine) {
  .au-fig:hover, .au-card:hover, .au-sug:hover, .au-qi:hover, .au-card-figs:hover { transform: translateY(-2px); box-shadow: var(--shadow-1), 0 0 0 1px var(--line-2); }
  .au button:hover, .au a:hover { transform: translateY(-2px); }
  .au-stage:hover .au-node, .au-ic:hover, .au-lh-mark:hover { transform: scale(1.08); }
  .au-qi:hover { background: var(--surface-2); }
  .au-qi[aria-pressed="true"]:hover { background: var(--tint-2); }
}
.au button:active, .au a:active, .au-fig:active, .au-card:active, .au-sug:active, .au-card-figs:active, .au-stage:active .au-node { transform: scale(.97); }
.au button:disabled, .au [aria-disabled="true"] { opacity: .45; pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
  .au-fig, .au-node, .au-ic, .au-lh-mark, .au-card-figs, .au a, .au-qi { transition: transform var(--dur-base) var(--ease-out); }
  .au-sb, .au-pipe-now { transition: opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out); }
  .au-sb.out, .au-pipe-now.out { opacity: 0; transform: translateY(var(--s1)); }
  .au-tip { transition: opacity var(--dur-fast) var(--ease-out); }
  .au-delta { transition: opacity var(--dur-fast) var(--ease-out); }
  .au-stage.hit .au-ping { animation: au-ping var(--dur-reveal) var(--ease-out); }
  .au-stamp.on { animation: au-stamp var(--dur-base) var(--ease-out); transform: rotate(-8deg); }
  .au-doc.in { animation: au-fade var(--dur-fast) var(--ease-out); }
  .au-running .au-fl i { animation: au-flow var(--dur-reveal) var(--ease-in-out) both; animation-delay: calc(var(--k) * var(--dur-base)); }
  .au-qi.leaving { transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); transform: translateX(calc(-1 * var(--s3))); }
  .au-pipe.drawn .au-link { animation: au-line var(--dur-reveal) var(--ease-out) backwards; }
  @keyframes au-ping { from { opacity: .7; transform: scale(.8); } to { opacity: 0; transform: scale(1.4); } }
  @keyframes au-stamp { from { opacity: 0; transform: rotate(-8deg) scale(1.2); } to { opacity: 1; transform: rotate(-8deg) scale(1); } }
  @keyframes au-fade { from { opacity: 0; } }
  @keyframes au-flow { from { transform: scaleY(0); } to { transform: scaleY(1); } }
  @keyframes au-line { from { clip-path: inset(0 100% 0 0); } }
}
@media (max-width: 1100px) {
  .au-fig-v .fig { font-size: var(--fs-2xl); }
  .au-work { grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); }
  .au-card-h { flex-wrap: wrap; }
  .au-card-h > .chip { margin-left: calc(var(--h-touch) + var(--s3)); }
  .au-decide { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 760px) {
  .au-head-actions { width: 100%; }
  .au-head-actions .btn { flex: 1; }
  .au-ledger { padding: var(--s5); }
  .au-figs { grid-template-columns: 1fr; margin: var(--s4) 0; }
  .au-fig, .au-fig:first-child, .au-fig:last-child { padding: var(--s4) 0; border-left: 0; }
  .au-fig + .au-fig { border-top: 1px solid var(--line); }
  .au-fig-v { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--s3); }
  .au-fig:first-child .fig { font-size: var(--fs-hero); }
  .au-pipe { --au-dir: y; padding: var(--s5); }
  .au-pipe-h { flex-wrap: wrap; }
  .au-pipe-now { flex-basis: 100%; order: 3; }
  .au-pipe-count { margin-left: auto; }
  .au-stages { grid-template-columns: 1fr; }
  .au-stage { display: grid; grid-template-columns: var(--s7) minmax(0, 1fr); gap: var(--s4); padding: 0 0 var(--s5); }
  .au-stage:last-child { padding: 0; }
  .au-link { top: var(--s5); left: calc(var(--s5) - 1px); height: 100%; width: 2px; }
  .au-link i { transform: scaleY(0); }
  .au-sb { margin-top: 0; }
  .au-st { min-height: 0; }
  .au-stage:last-child .au-st { min-height: 0; }
  .au-cards, .au-work { grid-template-columns: 1fr; }
  .au-card { padding: var(--s4); }
  .au-card-figs { padding: var(--s4) var(--s3); gap: var(--s2); }
  .au-card-figs .fig { font-size: var(--fs-xl); }
  .au-card-f > :first-child { flex-basis: 100%; justify-content: flex-start; width: fit-content; }
  .au-card-f > :last-child { margin-left: auto; }
  .au-q.card { max-height: 360px; }
  .au-paper { padding: var(--s5); }
  .au-meta { grid-template-columns: 1fr; gap: var(--s1); }
  .au-meta dd { margin-bottom: var(--s3); }
  .au-lh { gap: var(--s3); }
  .au-hl { font-size: var(--fs-lg); }
  .au-sec-h { align-items: flex-start; flex-wrap: wrap; }
  .au-sug { grid-template-columns: 1fr; }
  .au-sug .btn { grid-column: auto; grid-row: auto; justify-self: start; }
  .au-tip { padding: var(--s4); }
  .au-sum { font-size: var(--fs-micro); }
  .au-sum .num { font-family: var(--font-body); }
  .au-stamp { right: var(--s4); top: var(--s4); font-size: var(--fs-lg); }
}
@media (hover: none), (pointer: coarse) {
  .au-hint-hover { display: none; }
  .au-hint-touch { display: inline; }
  .au-sys a { min-height: var(--h-touch); display: inline-flex; align-items: center; }
}

/* Shared controls retain their fades, with spatial feedback removed in Reduce. */
@media (prefers-reduced-motion: reduce) {
  .au button, .au a, .au-fig, .au-card, .au-sug, .au-card-figs, .au-stage .au-node, .au-qi, .au-ic, .au-lh-mark { transform: none; transition-property: opacity, filter; }
}
