/* STRIDE brain presentation system (SPEC: the eleven patterns, .bp-*).
   Load after stride-shell.css. Neutral everywhere; ember is earned only by
   the viewer's due-soon/overdue item, the unread dot and a time-bound why-now
   pill addressed to the viewer. success = done check + complete coverage;
   warning = gap blocks only. No cards inside cards: rows inside the evidence
   block are separated by a 1px text-7% hairline. Dark Graphite is the default
   paint; Daybreak (light) mirrors it. */

:root {
  --bp-canvas: var(--stride-color-canvas, #0B0B0D);
  --bp-surface: var(--stride-color-surface, #141417);
  --bp-inset: var(--stride-color-surface-inset, #1D1D21);
  --bp-text: var(--stride-color-text, #F5F5F7);
  --bp-text2: var(--stride-color-text-secondary, #B3B5BC);
  --bp-text3: var(--stride-color-text-muted, #8E919A);
  --bp-action: var(--stride-color-action, #F5F5F7);
  --bp-on-action: var(--stride-color-on-action, #0B0B0D);
  --bp-success: var(--stride-color-success, #4FD68A);
  --bp-warning: var(--stride-color-warning, #F5B544);
  --bp-danger: var(--stride-color-danger, #FF7A7F);
  --bp-own: #EFEAE4;
  --bp-selected: #EEE7DF;
  --bp-warning-s: #FFF1D6;
  --bp-ember: #B83B07;
  --bp-signal: #FF5A19;
  --bp-mention: #FFE7D9;
  --bp-mention-text: #9C3103;
  --bp-pop: rgba(255, 253, 251, 0.92);
  --bp-hair: color-mix(in srgb, var(--bp-text) 7%, transparent);
  --bp-shadow-1: 0 1px 2px #5A2D0F14, 0 8px 24px #5A2D0F1F;
  --bp-shadow-float: 0 16px 40px #5A2D0F29, 0 2px 6px #5A2D0F14;
  --bp-scrim: var(--stride-color-scrim, #1D191666);
  --bp-ease: var(--stride-motion-ease, cubic-bezier(0.2, 0, 0, 1));
  --bp-snappy: cubic-bezier(0.25, 1.1, 0.4, 1);
  --bp-pop-spring: linear(0, 0.21 6%, 0.56 14%, 0.86 24%, 1.03 34%, 1.06 40%, 1.04 50%, 1.01 62%, 0.995 76%, 1);
  --bp-sans: var(--font-sans, "Google Sans Flex", -apple-system, "SF Pro Text", "Segoe UI", sans-serif);
  --bp-mono: var(--font-mono, "Geist Mono", "SF Mono", Menlo, monospace);
}
html[data-theme="dark"] {
  --bp-own: #2B2C31;
  --bp-selected: #232428;
  --bp-warning-s: #2A2214;
  --bp-ember: #FF8A55;
  --bp-signal: #FF6A2B;
  --bp-mention: #3A1F13;
  --bp-mention-text: #FFB08A;
  --bp-pop: rgba(29, 29, 33, 0.92);
  --bp-shadow-1: 0 1px 2px #0006, 0 8px 24px #0000005C;
  --bp-shadow-float: 0 16px 40px #0000008C;
}

/* ---------- primitives ---------- */
[class^="bp-"], [class*=" bp-"] { box-sizing: border-box; }
[class^="bp-"][hidden], [class*=" bp-"][hidden] { display: none !important; }
.bp-i { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.bp-label { font: 500 12px/1.4 var(--bp-sans); letter-spacing: 0.02em; color: var(--bp-text3); margin: 0; }
.bp-mark { width: 32px; height: 32px; border-radius: 50%; background: var(--bp-inset); display: grid; place-items: center; flex: none; }
.bp-mark { color: var(--bp-text); }
.bp-sparkle { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.bp-mark--sm .bp-sparkle { width: 12px; height: 12px; stroke-width: 2; }
.bp-mark--sm { width: 20px; height: 20px; }
.bp-mark--lg { width: 40px; height: 40px; }
.bp-mark--lg .bp-sparkle { width: 20px; height: 20px; }

.bp-face { width: 24px; height: 24px; border-radius: 50%; flex: none; display: inline-grid; place-items: center; overflow: hidden; font: 600 10px/1 var(--bp-sans); letter-spacing: 0; color: #fff; background: var(--bp-inset); }
.bp-face img { width: 100%; height: 100%; object-fit: cover; }
.bp-face--16 { width: 16px; height: 16px; font-size: 7px; }
.bp-face--20 { width: 20px; height: 20px; font-size: 9px; }
.bp-face--32 { width: 32px; height: 32px; font-size: 12px; }
.bp-face--40 { width: 40px; height: 40px; font-size: 14px; }
.bp-faces { display: inline-flex; vertical-align: middle; }
.bp-faces .bp-face { box-shadow: 0 0 0 2px var(--bp-canvas); }
/* r2 R11: stacked faces keep their initials (no blank colour discs) */
.bp-faces .bp-face--20 { font-size: 8px; }
.bp-faces .bp-face--24 { font-size: 9px; }
.bp-faces .bp-face + .bp-face { margin-left: -5px; }

.bp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 36px; padding: 0 16px; border: 0; border-radius: 999px; font: 500 15px/1 var(--bp-sans); white-space: nowrap; cursor: pointer; background: none; color: var(--bp-text); transition: background-color 120ms var(--bp-ease), transform 120ms var(--bp-ease), opacity 120ms var(--bp-ease); }
.bp-btn:active { transform: scale(0.98); }
.bp-btn--primary { background: var(--bp-action); color: var(--bp-on-action); }
/* one secondary token in both themes: the kit's text wash reads on the canvas and on a card */
.bp-btn--secondary { background: var(--btn-secondary, color-mix(in srgb, var(--bp-text) 8%, transparent)); color: var(--bp-text); }
.bp-btn--secondary:hover { background: var(--btn-secondary-hover, color-mix(in srgb, var(--bp-text) 13%, transparent)); }
.bp-btn--ghost { color: var(--bp-text2); }
.bp-btn--ghost:hover { color: var(--bp-text); }
.bp-btn--sm { height: 30px; padding: 0 12px; font-size: 14px; }
.bp-btn--xs { height: 24px; padding: 0 8px; font-size: 13px; }
.bp-btn .bp-i { width: 12px; height: 12px; fill: currentColor; stroke: none; }
.bp-icon-btn { width: 32px; height: 32px; border: 0; border-radius: 50%; display: grid; place-items: center; color: var(--bp-text2); background: none; cursor: pointer; transition: background-color 120ms var(--bp-ease), color 120ms var(--bp-ease); }
.bp-icon-btn:hover { background: var(--bp-inset); color: var(--bp-text); }
.bp-icon-btn .bp-i { width: 18px; height: 18px; stroke-width: 1.8; }
:is(.bp-btn, .bp-icon-btn, .bp-chip, .bp-ts, .bp-check, .bp-follow__pill, .bp-th, .bp-nrow__open, .bp-nudge__body, .bp-seg__opt, .bp-recap-card__toggle, .bp-answer__full, .bp-menu__item, .bp-tx__at, .bp-error__retry):focus-visible { outline: 2px solid var(--stride-color-focus, #FF7A40); outline-offset: 2px; }
@media (pointer: coarse) { .bp-btn--sm { height: 36px; } .bp-icon-btn { width: 40px; height: 40px; } }

.bp-sl { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; font: 600 13px/1.4 var(--bp-sans); letter-spacing: 0.005em; color: var(--bp-text3); }
.bp-sl__count { font-weight: 500; }
.bp-section { display: flex; flex-direction: column; gap: 6px; }
.bp-rows { display: flex; flex-direction: column; }

/* shared meta line: face · name · due · ▶ time */
.bp-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 6px; font: 400 13px/1.4 var(--bp-sans); color: var(--bp-text2); }
.bp-meta__sep { color: var(--bp-text3); }
.bp-meta__you { color: var(--bp-text); }
.bp-meta__none { color: var(--bp-text3); }
.bp-meta__state { color: var(--bp-text3); font-weight: 500; }

/* ---------- P3 · source chip ---------- */
.bp-chips { display: flex; flex-wrap: wrap; gap: 6px; overflow: visible; min-height: 28px; flex: none; }
.bp-chip { display: inline-flex; align-items: center; gap: 6px; height: 28px; max-width: 100%; padding: 0 10px 0 6px; border: 0; border-radius: 999px; background: var(--bp-inset); color: var(--bp-text); font: 500 12px/1 var(--bp-sans); letter-spacing: 0.01em; white-space: nowrap; cursor: pointer; transition: background-color 120ms var(--bp-ease), color 120ms var(--bp-ease); }
.bp-chip:hover { background: var(--bp-selected); }
.bp-chip__k { width: 16px; height: 16px; border-radius: 50%; display: grid; place-items: center; flex: none; color: var(--bp-text2); }
.bp-chip__k .bp-i { width: 12px; height: 12px; }
.bp-chip__title { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.bp-chip__when { color: var(--bp-text3); }
.bp-chip__n { margin-right: -2px; font: 500 11px/1 var(--bp-mono); color: var(--bp-text3); }
/* a hovered superscript draws its chip inverted: neutral, never ember */
.bp-chip.is-active { background: var(--bp-text); color: var(--bp-canvas); }
.bp-chip.is-active :is(.bp-chip__when, .bp-chip__n) { color: color-mix(in srgb, var(--bp-canvas) 62%, var(--bp-text)); }
.bp-chip.is-active .bp-chip__k { color: var(--bp-canvas); }
.bp-chip--more { padding: 0 10px; color: var(--bp-text2); }
.bp-chip--slot { cursor: default; animation: bp-pulse 1.6s var(--bp-ease) infinite; }
.bp-preview { position: fixed; z-index: 2147483000; padding: 12px 14px; border-radius: 12px; background: var(--bp-pop); -webkit-backdrop-filter: blur(24px) saturate(1.4); backdrop-filter: blur(24px) saturate(1.4); box-shadow: var(--bp-shadow-float); pointer-events: none; animation: bp-fade 120ms var(--bp-ease) both; }
.bp-preview__quote { margin: 0; font: 400 14px/1.45 var(--bp-sans); color: var(--bp-text); }
.bp-preview__quote q { quotes: "\201C" "\201D"; }
.bp-preview__who { margin: 6px 0 0; font: 500 12px/1.4 var(--bp-sans); color: var(--bp-text3); }

/* ---------- timestamp pill (machine fact → mono) ---------- */
.bp-ts { display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 8px; border: 0; border-radius: 999px; background: var(--bp-inset); color: var(--bp-text2); font: 500 11px/1 var(--bp-mono); letter-spacing: 0; cursor: pointer; transition: background-color 120ms var(--bp-ease), color 120ms var(--bp-ease); }
.bp-ts:hover { background: var(--bp-selected); color: var(--bp-text); }
.bp-ts .bp-i { width: 10px; height: 10px; fill: currentColor; stroke: none; }

/* ---------- P1 · brief ---------- */
.bp-brief { display: flex; flex-direction: column; gap: 14px; }
.bp-brief__kicker { display: flex; align-items: center; gap: 8px; }
.bp-brief__headline { margin: 0; font: 600 22px/1.28 var(--bp-sans); letter-spacing: -0.018em; color: var(--bp-text); text-wrap: balance; }
.bp-brief__bullets { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.bp-brief__bullets li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: start; font: 400 16px/1.45 var(--bp-sans); color: var(--bp-text); }
.bp-brief__bullets b { font-weight: 600; }
.bp-brief__dot { width: 20px; height: 20px; display: grid; place-items: center; margin-top: 1px; }
.bp-brief__dot::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--bp-text3); }
.bp-brief__why { margin: 0; font: 400 15px/1.45 var(--bp-sans); color: var(--bp-text2); }
.bp-brief__why b { color: var(--bp-text); font-weight: 600; }

/* ---------- P4 · moment ---------- */
.bp-moment { display: grid; grid-template-columns: 32px 1fr; gap: 12px; align-items: start; }
.bp-moment__quote { margin: 0; font: 400 16px/1.5 var(--bp-sans); color: var(--bp-text); }
.bp-moment__quote q { quotes: "\201C" "\201D"; }
.bp-moment__who { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 6px; font: 400 13px/1.4 var(--bp-sans); color: var(--bp-text2); }
.bp-moment__who b { font-weight: 600; color: var(--bp-text); }
.bp-moments { display: flex; flex-direction: column; gap: 18px; }

/* ---------- P5 · decision (milestone glyph, never a checkbox) ---------- */
.bp-decision { display: grid; grid-template-columns: 24px 1fr; gap: 12px; padding: 10px 0; align-items: start; }
.bp-decision__g { width: 22px; height: 22px; display: grid; place-items: center; margin-top: 1px; }
.bp-decision__g::before { content: ""; width: 8px; height: 8px; border-radius: 2px; background: var(--bp-text2); transform: rotate(45deg); }
.bp-decision__text { margin: 0; font: 500 16px/1.4 var(--bp-sans); color: var(--bp-text); }
.bp-decision .bp-meta { margin-top: 4px; color: var(--bp-text3); }
.bp-decision[data-status="reversed"] .bp-decision__text { color: var(--bp-text2); }

/* ---------- P6 · action item ---------- */
.bp-action { display: grid; grid-template-columns: 24px 1fr auto; gap: 12px; align-items: start; padding: 12px 0; overflow: hidden; }
.bp-action + .bp-action { box-shadow: 0 -1px 0 var(--bp-hair); }
.bp-check { width: 22px; height: 22px; margin-top: 1px; padding: 0; border: 0; border-radius: 50%; background: none; box-shadow: inset 0 0 0 1.75px var(--bp-text3); display: grid; place-items: center; cursor: pointer; transition: box-shadow 120ms var(--bp-ease), background-color 120ms var(--bp-ease); }
.bp-check:hover { box-shadow: inset 0 0 0 1.75px var(--bp-text2); }
.bp-check .bp-i { width: 12px; height: 12px; stroke: var(--bp-canvas); stroke-width: 3; opacity: 0; }
.bp-action.is-done .bp-check, .bp-nudge.is-done .bp-check { background: var(--bp-success); box-shadow: none; }
.bp-action.is-done .bp-check .bp-i, .bp-nudge.is-done .bp-check .bp-i { opacity: 1; }
.bp-action.is-ticking .bp-check { animation: bp-pop 320ms var(--bp-pop-spring) both; }
.bp-action__text { margin: 0; font: 400 16px/1.4 var(--bp-sans); color: var(--bp-text); background: linear-gradient(var(--bp-text3), var(--bp-text3)) no-repeat 0 55% / 0 1px; transition: color 220ms var(--bp-ease), background-size 220ms var(--bp-ease); }
.bp-action.is-done .bp-action__text { color: var(--bp-text3); background-size: 100% 1px; }
.bp-action__right { display: flex; align-items: center; gap: 6px; }
.bp-action.is-collapsing { transition: height 220ms var(--bp-ease), opacity 220ms var(--bp-ease), padding 220ms var(--bp-ease); opacity: 0; padding-block: 0; }
.bp-due { font-weight: 400; color: var(--bp-text2); }
/* one due weight: ember marks the viewer's due-soon item; every other date is plain */
.bp-due.is-soon { color: var(--bp-text2); }
.bp-due.is-you { font-weight: 500; color: var(--bp-ember); }

.bp-menu { position: fixed; z-index: 2147483000; width: 200px; padding: 6px; border-radius: 14px; background: var(--bp-pop); -webkit-backdrop-filter: blur(24px) saturate(1.4); backdrop-filter: blur(24px) saturate(1.4); box-shadow: var(--bp-shadow-float); display: flex; flex-direction: column; animation: bp-menu-in 220ms var(--bp-ease) both; }
.bp-menu__item { height: 36px; padding: 0 10px; border: 0; border-radius: 8px; background: none; text-align: left; font: 500 14px/1 var(--bp-sans); color: var(--bp-text); cursor: pointer; }
.bp-menu__item:hover, .bp-menu__item:focus-visible { background: var(--bp-inset); outline: none; }
.bp-menu__picker { position: absolute; opacity: 0; width: 1px; height: 1px; }

.bp-toast { position: fixed; left: 50%; bottom: max(24px, env(safe-area-inset-bottom)); z-index: 2147483000; transform: translateX(-50%); display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 8px 0 16px; border-radius: 999px; background: var(--bp-text); color: var(--bp-canvas); font: 500 14px/1 var(--bp-sans); box-shadow: var(--bp-shadow-float); animation: bp-toast-in 220ms var(--bp-ease) both; }
.bp-toast__action { height: 32px; padding: 0 12px; border: 0; border-radius: 999px; background: color-mix(in srgb, var(--bp-canvas) 14%, transparent); color: inherit; font: 600 14px/1 var(--bp-sans); cursor: pointer; }

/* ---------- P2 · answer ---------- */
.bp-answer { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.bp-answer__lead { margin: 0; font: 500 19px/1.42 var(--bp-sans); letter-spacing: -0.01em; color: var(--bp-text); text-wrap: pretty; }
.bp-answer__detail { margin: 0; font: 400 16px/1.55 var(--bp-sans); color: var(--bp-text2); }
.bp-answer__detail b { color: var(--bp-text); font-weight: 600; }
.bp-sup { margin-left: 1px; font: 600 11px/0 var(--bp-sans); color: var(--bp-text3); vertical-align: super; cursor: default; }
.bp-evidence { display: flex; flex-direction: column; padding: 4px 16px; border-radius: 12px; background: var(--bp-surface); overflow: hidden; }
.bp-evidence > * { padding-block: 12px; }
.bp-evidence > * + * { box-shadow: 0 -1px 0 var(--bp-hair); }
.bp-answer__full { align-self: flex-start; display: inline-flex; align-items: center; gap: 4px; height: 30px; padding: 0 8px 0 0; border: 0; background: none; font: 500 14px/1 var(--bp-sans); color: var(--bp-text2); cursor: pointer; }
.bp-answer__full:hover { color: var(--bp-text); }
.bp-answer__full .bp-i { width: 14px; height: 14px; }
.bp-coverage { display: inline-flex; align-items: center; gap: 6px; font: 500 12px/1.4 var(--bp-sans); color: var(--bp-text3); }
.bp-coverage i { width: 6px; height: 6px; border-radius: 50%; background: var(--bp-text3); flex: none; }
/* a partial answer's dot is the one warning signal; complete stays neutral */
.bp-coverage--partial i { background: var(--bp-warning); }
/* the answer surface inside a chat message body */
.scout-chat-text.bp-host { white-space: normal; }

/* ---------- P9 · follow-ups ---------- */
.bp-follow { display: flex; flex-wrap: wrap; gap: 8px; }
.bp-follow__pill { height: 34px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--bp-text) 14%, transparent); font: 500 14px/1 var(--bp-sans); color: var(--bp-text); cursor: pointer; transition: background-color 120ms var(--bp-ease); }
.bp-follow__pill:hover { background: var(--bp-inset); }

/* ---------- P10 · gaps, errors, empty ---------- */
.bp-gap { padding: 10px 12px; border-radius: 12px; background: var(--bp-warning-s); font: 400 14px/1.4 var(--bp-sans); color: var(--bp-text); }
.bp-gap p { margin: 0; }
.bp-gap p + p { margin-top: 4px; }
.bp-gap b { color: var(--bp-warning); font-weight: 600; }
.bp-error { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font: 400 14px/1.4 var(--bp-sans); color: var(--bp-text2); }
.bp-error > i { width: 8px; height: 8px; border-radius: 50%; background: var(--bp-danger); flex: none; }
.bp-error__retry { height: 30px; padding: 0 6px; border: 0; background: none; font: 500 14px/1 var(--bp-sans); color: var(--bp-text); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.bp-error__detail { flex-basis: 100%; margin: 0 0 0 18px; color: var(--bp-text3); font-size: 13px; }
.bp-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 24px 0; text-align: center; }
.bp-empty__line { margin: 0; font: 400 16px/1.45 var(--bp-sans); color: var(--bp-text2); }
.bp-empty .bp-follow { justify-content: center; }

/* ---------- P11 · thinking, streaming, landing ---------- */
.bp-live { display: flex; flex-direction: column; gap: 16px; }
.bp-thinking { display: flex; flex-direction: column; gap: 10px; }
.bp-step { display: flex; align-items: center; gap: 10px; font: 400 14px/1.4 var(--bp-sans); color: var(--bp-text2); animation: bp-fade 220ms var(--bp-ease) both; }
.bp-step.is-now { color: var(--bp-text); }
.bp-step__tick { width: 16px; height: 16px; border-radius: 50%; background: var(--bp-inset); display: grid; place-items: center; flex: none; }
.bp-step__tick .bp-i { width: 9px; height: 9px; stroke: var(--bp-text2); stroke-width: 3; }
.bp-step__tick--now { box-shadow: 0 0 0 5px color-mix(in srgb, var(--bp-text) 6%, transparent); animation: bp-breathe 2.4s ease-in-out infinite; }
.bp-shimmer { background: linear-gradient(90deg, var(--bp-text3) 0%, var(--bp-text) 45%, var(--bp-text3) 90%) 0 0 / 200% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: bp-shimmer 1.8s linear infinite; }
.bp-caret { display: inline-block; width: 2px; height: 16px; margin-left: 2px; vertical-align: -2px; background: var(--bp-text); animation: bp-blink 1s steps(2, start) infinite; transition: opacity 120ms var(--bp-ease); }
.bp-caret.is-fading { opacity: 0; animation: none; }
.bp-skel-group { display: flex; flex-direction: column; gap: 8px; }
.bp-skel { height: 12px; border-radius: 999px; background: var(--bp-inset); animation: bp-pulse 1.6s var(--bp-ease) infinite; }
.bp-enter-fade { animation: bp-fade 220ms var(--bp-ease) both; }
.bp-enter-chip { animation: bp-chip-in 320ms var(--bp-snappy) both; }
.bp-enter-reveal { animation: bp-reveal 220ms var(--bp-ease) both; }
.scout-chat-msg .bp-mark.is-breathing, .bp-mark.is-breathing { box-shadow: 0 0 0 6px color-mix(in srgb, var(--bp-text) 6%, transparent); animation: bp-breathe 2.4s ease-in-out infinite; }

/* ---------- P7 · nudge + reminder sheet ---------- */
.bp-nudge { position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 12px 12px 12px 14px; border-radius: 12px; background: var(--bp-pop); -webkit-backdrop-filter: blur(24px) saturate(1.4); backdrop-filter: blur(24px) saturate(1.4); box-shadow: var(--bp-shadow-float); animation: bp-nudge-in 220ms var(--bp-ease) both; }
.bp-nudge .bp-check { width: 24px; height: 24px; margin: 0; }
.bp-nudge__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 0; border: 0; background: none; text-align: left; cursor: pointer; }
.bp-nudge__line { font: 500 15px/1.35 var(--bp-sans); color: var(--bp-text); }
.bp-nudge__ctx { font: 400 13px/1.35 var(--bp-sans); color: var(--bp-text3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bp-nudge.is-done { opacity: 0.6; transition: opacity 220ms var(--bp-ease); }
.bp-overlay { position: fixed; inset: 0; z-index: 2147482000; display: flex; align-items: flex-end; background: var(--bp-scrim); animation: bp-fade 220ms var(--bp-ease) both; }
.bp-sheet { width: 100%; max-height: 92dvh; overflow: auto; padding: 8px 20px max(34px, env(safe-area-inset-bottom)); border-radius: 20px 20px 0 0; background: var(--bp-surface); box-shadow: var(--bp-shadow-float); outline: none; animation: bp-sheet-in 320ms var(--bp-ease) both; }
.bp-sheet__grab { width: 36px; height: 5px; margin: 0 auto 16px; border-radius: 3px; background: color-mix(in srgb, var(--bp-text3) 40%, transparent); }
.bp-overlay.is-closing { opacity: 0; transition: opacity 200ms var(--bp-ease); }
.bp-reminder__title { margin: 6px 0 0; font: 600 22px/1.25 var(--bp-sans); letter-spacing: -0.015em; color: var(--bp-text); }
.bp-reminder__ctx { display: flex; flex-direction: column; gap: 14px; margin-top: 14px; }
.bp-reminder__opts { display: flex; flex-direction: column; gap: 8px; margin-top: 18px; }
.bp-reminder__opts .bp-btn { height: 48px; font-size: 16px; }
@media (min-width: 601px) {
  .bp-reminder__opts { flex-direction: row; flex-wrap: wrap; }
  .bp-reminder__opts .bp-btn { flex: 1 1 auto; height: 36px; font-size: 15px; }
}
@media (min-width: 1024px) {
  .bp-overlay { align-items: center; justify-content: center; }
  .bp-sheet { width: 560px; padding: 24px; border-radius: 20px; animation-name: bp-dialog-in; }
  .bp-sheet__grab { display: none; }
}

/* ---------- P8 · Scout noticed ---------- */
.bp-alert { display: flex; flex-direction: column; gap: 14px; padding: 16px; border-radius: 16px; background: var(--bp-surface); box-shadow: var(--bp-shadow-1); }
.bp-alert__hd { display: flex; align-items: center; gap: 8px; }
.bp-why { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px; border-radius: 999px; background: var(--bp-inset); color: var(--bp-text2); font: 600 12px/1 var(--bp-sans); }
.bp-why.is-now { background: var(--bp-mention); color: var(--bp-mention-text); }
.bp-why i { width: 6px; height: 6px; border-radius: 50%; background: var(--bp-signal); }
.bp-alert__headline { margin: 0; font: 600 17px/1.35 var(--bp-sans); letter-spacing: -0.005em; color: var(--bp-text); }
.bp-alert__detail { margin: 0; font: 400 15px/1.45 var(--bp-sans); color: var(--bp-text2); }
.bp-alert__row { display: flex; flex-wrap: nowrap; align-items: center; gap: 8px; }
.bp-alert__row .bp-btn { flex: none; }
.bp-alert.is-dismissed { opacity: 0.55; }
.bp-alert.is-dismissed .bp-alert__row { display: none; }

/* ---------- exact-moment side panel / sheet ---------- */
.bp-panel { position: fixed; z-index: 2147481000; left: 0; right: 0; bottom: 0; max-height: 86dvh; overflow: auto; padding: 20px 20px max(24px, env(safe-area-inset-bottom)); border-radius: 20px 20px 0 0; background: var(--bp-surface); box-shadow: var(--bp-shadow-float); outline: none; animation: bp-sheet-in 320ms var(--bp-ease) both; }
.bp-panel.is-closing { opacity: 0; transform: translateY(12px); transition: opacity 200ms var(--bp-ease), transform 200ms var(--bp-ease); }
@media (min-width: 1024px) {
  .bp-panel { left: auto; top: 8px; right: 8px; bottom: 8px; width: 400px; max-height: none; border-radius: 20px; background: var(--bp-pop); -webkit-backdrop-filter: blur(24px) saturate(1.4); backdrop-filter: blur(24px) saturate(1.4); animation-name: bp-panel-in; }
  .bp-panel.is-closing { transform: translateX(12px); }
}
.bp-panel__hd { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.bp-panel__glyph { width: 32px; height: 32px; border-radius: 50%; background: var(--bp-inset); display: grid; place-items: center; flex: none; color: var(--bp-text); }
.bp-panel__title { flex: 1; min-width: 0; font: 600 17px/1.3 var(--bp-sans); color: var(--bp-text); }
.bp-panel__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font: 400 14px/1.4 var(--bp-sans); color: var(--bp-text2); }
.bp-player { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding: 10px 12px; border-radius: 12px; background: var(--bp-inset); }
.bp-player__pp { width: 32px; height: 32px; padding: 0; border: 0; border-radius: 50%; background: var(--bp-action); color: var(--bp-on-action); display: grid; place-items: center; cursor: pointer; flex: none; }
.bp-player__pp:disabled { opacity: 0.4; cursor: default; }
.bp-player__pp .bp-i { width: 12px; height: 12px; fill: currentColor; stroke: none; }
.bp-player__now { font: 500 12px/1 var(--bp-mono); color: var(--bp-text2); }
.bp-player__total { font: 500 12px/1 var(--bp-mono); color: var(--bp-text3); }
.bp-player__bar { flex: 1; height: 4px; border-radius: 4px; background: color-mix(in srgb, var(--bp-text) 14%, transparent); overflow: hidden; cursor: pointer; }
.bp-player__bar i { display: block; height: 100%; background: var(--bp-text); transform-origin: 0 50%; transform: scaleX(0); }
.bp-tx { display: flex; flex-direction: column; gap: 14px; margin-top: 18px; }
.bp-tx__ln { position: relative; isolation: isolate; display: grid; grid-template-columns: 24px 1fr; gap: 10px; font: 400 15px/1.5 var(--bp-sans); color: var(--bp-text2); }
.bp-tx__ln.is-hit { color: var(--bp-text); }
.bp-tx__ln.is-hit::before { content: ""; position: absolute; inset: -8px -10px; z-index: -1; border-radius: 12px; background: var(--bp-inset); }
.bp-tx__nm { display: flex; align-items: baseline; gap: 8px; font: 600 13px/1.4 var(--bp-sans); color: var(--bp-text); }
.bp-tx__at { padding: 0; border: 0; background: none; font: 500 11px/1 var(--bp-mono); color: var(--bp-text3); cursor: pointer; }
.bp-tx__at:hover { color: var(--bp-text); }
.bp-panel__foot { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.bp-panel__loading, .bp-panel__error { margin-top: 18px; font: 400 14px/1.4 var(--bp-sans); color: var(--bp-text3); }
.bp-report { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; font: 400 16px/1.55 var(--bp-sans); color: var(--bp-text); }
.bp-report__h { margin: 8px 0 0; font: 600 17px/1.35 var(--bp-sans); }
.bp-report__p { margin: 0; }
.bp-report__list { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; }
.bp-table { overflow-x: auto; padding: 4px; border-radius: 12px; background: var(--bp-surface); }
.bp-table table { border-collapse: collapse; font-size: 14px; min-width: 100%; }
.bp-table :is(th, td) { padding: 8px 10px; text-align: left; white-space: nowrap; }
.bp-table th { font-weight: 600; color: var(--bp-text2); }
.bp-table tr + tr td { box-shadow: 0 -1px 0 var(--bp-hair); }

/* ---------- recap: card (conversation) + page (record) ---------- */
.bp-recap-card { overflow-anchor: none; display: flex; flex-direction: column; gap: 12px; max-width: 640px; width: 100%; padding: 16px; border-radius: 16px; background: var(--bp-surface); }
.bp-recap-card__title { margin: -4px 0 0; font: 600 17px/1.35 var(--bp-sans); letter-spacing: -0.005em; color: var(--bp-text); }
.bp-recap-card .bp-brief__headline { font-size: 19px; }
.bp-recap-card .bp-brief__bullets li { font-size: 15px; }
.bp-recap-card__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.bp-recap-card__toggle { display: inline-flex; align-items: center; gap: 4px; height: 30px; padding: 0; border: 0; background: none; font: 500 13px/1 var(--bp-sans); color: var(--bp-text2); cursor: pointer; }
.bp-recap-card__toggle:hover { color: var(--bp-text); }
.bp-recap-card__toggle .bp-i { width: 14px; height: 14px; transition: transform 220ms var(--bp-ease); }
.bp-recap-card.is-open .bp-recap-card__toggle .bp-i { transform: rotate(90deg); }
.bp-recap-card__detail { display: flex; flex-direction: column; gap: 20px; padding-top: 4px; }
.bp-recap-card__detail > div { display: flex; flex-direction: column; gap: 20px; }
.bp-recap-wrap { container-type: inline-size; width: 100%; }
.bp-recap { display: grid; grid-template-columns: 1fr; gap: 32px; max-width: 1120px; }
.bp-recap__head { display: flex; flex-direction: column; gap: 10px; }
.bp-recap__title { margin: 0; font: 500 32px/1.18 var(--bp-sans); letter-spacing: -0.03em; color: var(--bp-text); }
.bp-recap__people { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font: 400 14px/1.4 var(--bp-sans); color: var(--bp-text2); }
.bp-recap__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.bp-recap__main { display: flex; flex-direction: column; gap: 36px; min-width: 0; }
.bp-recap__side { display: flex; flex-direction: column; gap: 32px; min-width: 0; }
.bp-recap__side:empty { display: none; }
.bp-open { list-style: none; margin: 0; padding: 0; }
.bp-open li { padding: 6px 0; font: 400 15px/1.45 var(--bp-sans); color: var(--bp-text2); }
.bp-writing { display: flex; flex-direction: column; gap: 10px; padding: 4px 0; }
/* two columns when the recap itself has room (≥ 880 wide), wherever it sits */
@container (min-width: 880px) {
  .bp-recap { grid-template-columns: minmax(0, 1fr) 360px; gap: 48px; align-items: start; }
  .bp-recap__head { grid-column: 1 / -1; }
  .bp-recap__side { position: sticky; top: 80px; }
}

/* ---------- catch-me-up (Home) ---------- */
.bp-catchup { display: flex; flex-direction: column; gap: 36px; width: 100%; max-width: 720px; container-type: inline-size; }
.bp-catchup__top { display: flex; flex-direction: column; gap: 18px; }
.bp-seg { display: inline-flex; align-self: flex-start; padding: 2px; border-radius: 999px; background: var(--bp-inset); }
.bp-seg__opt { height: 30px; padding: 0 12px; border: 0; border-radius: 999px; background: none; font: 500 14px/1 var(--bp-sans); color: var(--bp-text2); cursor: pointer; transition: background-color 220ms var(--bp-ease), color 220ms var(--bp-ease); }
.bp-seg__opt.is-on { background: var(--bp-own); color: var(--bp-text); box-shadow: var(--bp-shadow-1); }
html:not([data-theme="dark"]) .bp-seg__opt.is-on { background: var(--bp-surface); }
.bp-catchup__greet { margin: 0; font: 500 32px/1.15 var(--bp-sans); letter-spacing: -0.03em; color: var(--bp-text); }
.bp-catchup__greet small { display: block; margin-top: 8px; font: 400 15px/1.45 var(--bp-sans); letter-spacing: 0; color: var(--bp-text2); }
.bp-catchup__cols { display: grid; grid-template-columns: 1fr; gap: 36px; }
.bp-catchup__left { display: flex; flex-direction: column; gap: 36px; min-width: 0; }
.bp-catchup__quiet { margin: 0; font: 400 16px/1.45 var(--bp-sans); color: var(--bp-text2); }
.bp-catchup .bp-section { gap: 4px; }
.bp-th { display: grid; grid-template-columns: 40px 1fr; gap: 12px; align-items: start; width: 100%; padding: 12px 0; border: 0; background: none; text-align: left; cursor: pointer; color: inherit; }
.bp-th + .bp-th { box-shadow: 0 -1px 0 var(--bp-hair); }
.bp-th__ic { width: 40px; height: 40px; border-radius: 12px; background: var(--bp-inset); display: grid; place-items: center; color: var(--bp-text2); }
.bp-th__ic .bp-i { width: 20px; height: 20px; stroke-width: 1.75; }
.bp-th__copy { display: flex; flex-direction: column; min-width: 0; }
.bp-th__t { display: flex; align-items: center; gap: 8px; font: 600 16px/1.35 var(--bp-sans); color: var(--bp-text); }
.bp-th__l { margin-top: 2px; font: 400 15px/1.42 var(--bp-sans); color: var(--bp-text2); }
.bp-th__tm { margin-top: 3px; font: 500 12px/1.4 var(--bp-sans); color: var(--bp-text3); }
.bp-th:hover .bp-th__t { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--bp-text3); }
@media (min-width: 1024px) {
  .bp-catchup:not(.bp-catchup--stacked) { max-width: 1080px; }
}
@container (min-width: 880px) {
  .bp-catchup:not(.bp-catchup--stacked) .bp-catchup__cols { grid-template-columns: minmax(0, 1fr) 380px; gap: 56px; align-items: start; }
}

/* ---------- host mounts (index.html) ---------- */
.home-brain-nudge { width: 100%; max-width: 720px; margin: 8px auto 32px; }
.home-brain-nudge[hidden], .home-brain[hidden] { display: none; }
.home-brain { width: 100%; max-width: 1080px; margin: 40px auto 0; padding: 0; }
.home-brain .bp-catchup { margin: 0 auto; }
.bsheet .bp-catchup--stacked { margin-bottom: 24px; }
.scout-chat-msg--brain .scout-chat-text.bp-host { max-width: 720px; }
.scout-chat-msg--recap .bp-recap-card { margin-top: 2px; }
.notification-item__brain-actions { grid-column: 2 / -1; margin: 0 0 4px; }

/* ---------- Activity row (Notification v2) ---------- */
.bp-nrow { display: grid; grid-template-columns: 40px 1fr 8px; gap: 12px; align-items: start; padding: 12px 8px; border-radius: 12px; }
.bp-nrow:hover { background: color-mix(in srgb, var(--bp-text) 4%, transparent); }
.bp-nrow__body { min-width: 0; }
.bp-nrow__open { display: flex; flex-direction: column; width: 100%; padding: 0; border: 0; background: none; text-align: left; cursor: pointer; }
.bp-nrow__tx { font: 400 14px/1.4 var(--bp-sans); color: var(--bp-text2); }
.bp-nrow__tx b { font-weight: 600; color: var(--bp-text); }
.bp-nrow__tm { margin-top: 3px; font: 500 12px/1.4 var(--bp-sans); color: var(--bp-text3); }
.bp-nrow__mini { display: flex; gap: 6px; margin-top: 8px; }
.bp-nrow__dot { width: 8px; height: 8px; margin-top: 6px; border-radius: 50%; }
.bp-nrow.is-unread .bp-nrow__dot { background: var(--bp-signal); }

/* ---------- motion ---------- */
@keyframes bp-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes bp-chip-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes bp-reveal { from { opacity: 0; clip-path: inset(0 0 100% 0 round 12px); } to { opacity: 1; clip-path: inset(0 0 0 0 round 12px); } }
@keyframes bp-nudge-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@keyframes bp-menu-in { from { opacity: 0; transform: translateY(-4px) scale(0.98); } to { opacity: 1; transform: none; } }
@keyframes bp-toast-in { from { opacity: 0; transform: translate(-50%, 8px); } to { opacity: 1; transform: translate(-50%, 0); } }
@keyframes bp-sheet-in { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes bp-dialog-in { from { transform: scale(0.97); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes bp-panel-in { from { transform: translateX(16px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes bp-pop { 0% { transform: scale(0.7); } 100% { transform: scale(1); } }
@keyframes bp-breathe { 0%, 100% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--bp-text) 6%, transparent); } 50% { box-shadow: 0 0 0 7px color-mix(in srgb, var(--bp-text) 6%, transparent); } }
@keyframes bp-shimmer { from { background-position: 100% 0; } to { background-position: -100% 0; } }
@keyframes bp-blink { to { visibility: hidden; } }
@keyframes bp-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.55; } }

/* Reduce Motion: opacity only, no stagger, no travel, no loops */
@media (prefers-reduced-motion: reduce) {
  .bp-enter-chip, .bp-enter-reveal, .bp-nudge, .bp-sheet, .bp-panel, .bp-menu, .bp-toast, .bp-step, .bp-preview { animation: bp-fade 120ms linear both !important; animation-delay: 0ms !important; }
  .bp-toast { transform: translateX(-50%); }
  .bp-shimmer { animation: none; color: var(--bp-text); background: none; }
  .bp-caret, .bp-skel, .bp-chip--slot, .bp-step__tick--now, .bp-mark.is-breathing { animation: none; }
  .bp-action.is-ticking .bp-check { animation: none; }
  .bp-action.is-collapsing, .bp-action__text, .bp-recap-card__toggle .bp-i, .bp-panel.is-closing { transition-duration: 0ms; }
}
/* expanded card: the full action list replaces the "On you" preview */
.bp-recap-card.is-open .bp-recap-card__mine { display: none; }
.bp-moment--anon { grid-template-columns: 1fr; }
.bp-catchup__stats { margin: 0; font: 400 15px/1.45 var(--bp-sans); color: var(--bp-text2); }

/* Home offline: the composer stays a composer (typeable, Send gated); the
   state is one quiet line inside it (its placeholder), never a second bar */
.stride-operating-home .home-scout-composer[data-scout-state="offline"] .home-scout-composer__input::placeholder { color: var(--bp-text3); }
/* offline offers nothing to dictate into: the mic steps aside (critic r3 #10) */
#homeScoutComposer[data-scout-state="offline"] .stride-dictation-mic:not(#k) { display: none; }
/* the brain's Done/Undo toast rides above the composer band, clear of the
   rows and chips it confirms */
.toast-region.is-brain-toast { bottom: calc(104px + env(safe-area-inset-bottom)); }
@media (max-width: 640px) { .toast-region.is-brain-toast { bottom: calc(120px + env(safe-area-inset-bottom)); } }

/* ---------- SPEC P10: the ONE failed-Scout line, app-wide ----------
   (index.html scoutFailedLineNode + the failed reply lifecycle row share the
   kit's .bp-error anatomy: danger dot, "Scout couldn't finish.", Retry text) */
.scout-failed-line { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 10px; font: 400 14px/1.4 var(--bp-sans); color: var(--bp-text2); }
.scout-failed-line__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--bp-danger); flex: none; }
:is(.scout-failed-line__retry, .scout-chat-reply-state[data-state="failed"] .scout-chat-reply-state__retry):not(#k) {
  height: 30px; min-height: 0; padding: 0 6px; border: 0; border-radius: 6px; background: none; box-shadow: none;
  font: 500 14px/1 var(--bp-sans); color: var(--bp-text); text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
.scout-chat-msg--failed .scout-chat-text:not(#k) { background: none; padding-inline: 0; }
.scout-chat-reply-state[data-state="failed"]:not(#k) { display: inline-flex; align-items: center; gap: 10px; font: 400 14px/1.4 var(--bp-sans); color: var(--bp-text2); }
.scout-chat-reply-state[data-state="failed"]::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--bp-danger); flex: none; }

/* ---------- one composer everywhere ----------
   The thread pane reply composer wears the main #scoutChatForm anatomy:
   the same glass fill and lift, "+" at the start, the mic that swaps to a
   36 round Send only while there is text (never a persistent disabled Send). */
html #appShell.is-authed #chatTool .chat-context-reply .chat-context-reply__composer:not(#k) {
  background: var(--composer-fill, var(--bp-surface)); box-shadow: var(--composer-shadow, var(--bp-shadow-1));
  border-radius: 24px; min-height: 52px; padding: 8px; gap: 4px;
}
html #appShell.is-authed #chatTool .chat-context-reply :is(#chatContextReplyAttach, .stride-dictation-mic, #chatContextReplySend):not(#k) {
  width: 36px; height: 36px; min-width: 36px; min-height: 36px; padding: 0; display: inline-grid; place-items: center; flex: none;
  border: 0; border-radius: 50%; box-shadow: none; background: transparent; color: var(--text-2, var(--bp-text2));
}
html #appShell.is-authed #chatTool .chat-context-reply #chatContextReplySend:not(#k) { background: var(--accent, var(--bp-action)); color: var(--on-accent, var(--bp-on-action)); }
html #appShell.is-authed #chatTool .chat-context-reply:not(.has-text) #chatContextReplySend:not(#k) { display: none; }
html #appShell.is-authed #chatTool .chat-context-reply.has-text .stride-dictation-mic:not(#k) { display: none; }

/* critic r1 #14: cards own the column on phones; one title per card */
@media (max-width: 640px) {
  .bp-recap-card, .bp-alert { max-width: none; width: 100%; }
  :is(.scout-chat-msg--recap, .scout-chat-msg--brain) .scout-chat-msg__stack { max-width: none; width: 100%; }
}
.bp-recap-card__kicker { color: var(--bp-text2); font-weight: 500; }
/* #13: a meta separator travels with the item after it */
.bp-meta__item { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
