/* estate-ui.css — generated by packages/estate-surface-framework/src/ui-css.mjs
 * (estateUiCss(); deterministic bytes — the same call, the same string).
 * PREREQUISITE: the canonical design sheet must be linked first, and this
 * file after it: <link rel="stylesheet" href="styles.css">
 * Every colour reads the sheet's tokens: channel triplets WRAPPED in rgb(),
 * complete colours BARE. No hex; the only colour literal is the glass border
 * rgba(255, 255, 255, 0.08) (colors_and_type.css:226 — no token holds 0.08). */

/* ---------- skip link: visually hidden until focus ---------- */
.aaas-ui-skip { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.aaas-ui-skip:focus { position: fixed; top: 1rem; left: 1rem; z-index: 100; width: auto; height: auto; margin: 0; padding: 0.75rem 1.25rem; overflow: visible; clip-path: none; background: var(--circuit-dim); color: rgb(var(--circuit-glow)); font-family: var(--font-jetbrains); font-weight: 500; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.15rem; text-decoration: none; border: 1px solid rgb(var(--circuit-glow) / 0.4); border-radius: var(--radius); }

/* ---------- chrome: fixed glass header, main column, footer, heartbeat bar ---------- */
/* glass border = colors_and_type.css:226 1px solid rgba(255, 255, 255, 0.08) (README.md:158). The light theme
 * keeps the token border (--border is black 0.08 there, colors_and_type.css:103), so the
 * white literal never lands on a light surface. */
.aaas-ui-glass { background: rgb(var(--basalt-surface) / 0.6); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: var(--shadow-glass); }
[data-theme="light"] .aaas-ui-glass, [data-theme="light"] .aaas-ui-header, [data-theme="light"] .aaas-ui-card--glass, [data-theme="light"] .aaas-ui-terminal, [data-theme="light"] .aaas-ui-dropdown-menu, [data-theme="light"] .aaas-ui-todaycard { border-color: var(--border); }
.aaas-ui-header { position: fixed; top: 0; left: 0; right: 0; z-index: 50; background: rgb(var(--basalt-surface) / 0.6); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border-bottom: 1px solid rgba(255, 255, 255, 0.08); box-shadow: var(--shadow-glass); }
.aaas-ui-header-inner { max-width: 1600px; margin: 0 auto; padding: 0 1.5rem; height: 4rem; display: flex; align-items: center; gap: 1.5rem; }
.aaas-ui-main { max-width: 1600px; margin: 0 auto; padding: 6.5rem 1.5rem 4rem; }
/* footer type = the stored Footer's label-overline (colors_and_type.css:170-176): mono 500, 0.65rem, uppercase, 0.15rem */
.aaas-ui-footer { border-top: 1px solid var(--border); padding: 2rem 1.5rem; color: var(--text-muted); font-family: var(--font-jetbrains); font-weight: 500; font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.15rem; }
.aaas-ui-footer-inner { max-width: 1600px; margin: 0 auto; }
.aaas-ui-heartbeat { position: relative; height: 1px; overflow: hidden; background: var(--border); }
.aaas-ui-heartbeat::after { content: ""; position: absolute; top: -1px; left: 0; width: 25%; height: 3px; border-radius: 9999px; background: rgb(var(--circuit-glow)); box-shadow: 0 0 12px rgb(var(--circuit-glow) / 0.8), 0 0 24px rgb(var(--accent-red) / 0.4); filter: blur(1px); animation: aaas-ui-sweep 4s linear infinite; }
.aaas-ui-heartbeat-chip { display: inline-flex; align-items: center; gap: 0.5rem; }

/* ---------- typography helpers scoped to the emitted markup ---------- */
.aaas-ui-overline { color: var(--text-muted); }
.aaas-ui-label { display: block; margin-bottom: 6px; color: var(--text-muted); }
.aaas-ui-hint, .aaas-ui-invalid { display: block; margin-top: 0.375rem; font-size: 0.75rem; line-height: 1.4; }
.aaas-ui-hint { color: var(--text-muted); }
.aaas-ui-invalid { color: rgb(var(--accent-red)); }

/* ---------- button: bedrock / outline / red / ghost, sm / default / lg ---------- */
/* button geometry = _ds_bundle.js Button 31370-31440 (sizes, outline/red/ghost); CT:195-198 type; README.md:164-175 states */
.aaas-ui-btn { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; font-family: var(--font-inter); font-weight: 700; text-transform: uppercase; letter-spacing: -0.03em; line-height: 1; border: 1px solid transparent; border-radius: var(--radius-btn); cursor: pointer; text-decoration: none; transition: background 300ms var(--liquid-ease), color 300ms var(--liquid-ease), border-color 300ms var(--liquid-ease), box-shadow 500ms var(--liquid-ease); }
.aaas-ui-btn:focus-visible { outline: none; box-shadow: 0 0 0 2px rgb(var(--circuit-glow) / 0.5); }
.aaas-ui-btn--sm { padding: 0 0.9rem; height: 36px; font-size: 0.7rem; }
.aaas-ui-btn--default { padding: 0 1.35rem; height: 44px; font-size: 0.78rem; }
.aaas-ui-btn--lg { padding: 0 1.75rem; height: 52px; font-size: 0.85rem; }
.aaas-ui-btn--bedrock { background: rgb(var(--circuit-glow)); border-color: rgb(var(--circuit-glow)); color: rgb(var(--ink-on-fill)); }
.aaas-ui-btn--bedrock:hover { border-color: rgb(var(--circuit-glow) / 0.6); box-shadow: 0 0 20px var(--circuit-dim); }
.aaas-ui-btn--bedrock:active { box-shadow: -4px 4px 0 rgb(var(--accent-red)); }
.aaas-ui-btn--outline { background: transparent; border-color: rgb(var(--circuit-glow) / 0.3); color: rgb(var(--circuit-glow)); }
.aaas-ui-btn--outline:hover { background: rgb(var(--circuit-glow) / 0.1); border-color: rgb(var(--circuit-glow) / 0.6); color: rgb(var(--circuit-glow)); }
.aaas-ui-btn--outline:active { border-color: rgb(var(--accent-red)); color: rgb(var(--accent-red)); box-shadow: -4px 4px 0 rgb(var(--accent-red)); }
.aaas-ui-btn--red { background: transparent; border-color: rgb(var(--accent-red) / 0.3); color: rgb(var(--accent-red)); }
.aaas-ui-btn--red:hover { background: rgb(var(--accent-red) / 0.1); border-color: rgb(var(--accent-red) / 0.6); box-shadow: 0 0 20px var(--accent-red-dim); }
.aaas-ui-btn--red:active { box-shadow: -4px 4px 0 rgb(var(--accent-red)); }
.aaas-ui-btn--ghost { background: transparent; border-color: transparent; color: var(--text-muted); }
.aaas-ui-btn--ghost:hover { color: rgb(var(--circuit-glow)); text-shadow: 0 0 12px rgb(var(--circuit-glow) / 0.6); }
.aaas-ui-btn--ghost:active { box-shadow: -4px 4px 0 rgb(var(--accent-red)); }
.aaas-ui-btn--disabled, .aaas-ui-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.aaas-ui-btn--disabled:active, .aaas-ui-btn:disabled:active { box-shadow: none; }

/* ---------- badge: pill, leads + supportive dims (_ds_bundle.js Badge 31475-31532: padding 0.3rem 0.7rem, border alpha 0.2, outline ink rgb(var(--text))) ---------- */
.aaas-ui-badge { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.3rem 0.7rem; border: 1px solid transparent; border-radius: 9999px; font-family: var(--font-jetbrains); font-weight: 500; font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.15rem; white-space: nowrap; }
.aaas-ui-badge--circuit { background: var(--circuit-dim); border-color: rgb(var(--circuit-glow) / 0.2); color: rgb(var(--circuit-glow)); }
.aaas-ui-badge--red { background: var(--accent-red-dim); border-color: rgb(var(--accent-red) / 0.2); color: rgb(var(--accent-red)); }
.aaas-ui-badge--outline { background: transparent; border-color: var(--border); color: rgb(var(--text)); }
.aaas-ui-badge--teal { background: var(--accent-teal-dim); border-color: rgb(var(--accent-teal) / 0.2); color: rgb(var(--accent-teal)); }
.aaas-ui-badge--lavender { background: color-mix(in srgb, rgb(var(--pastel-lavender)) 15%, transparent); border-color: rgb(var(--pastel-lavender) / 0.2); color: rgb(var(--pastel-lavender)); }
.aaas-ui-badge--gold { background: color-mix(in srgb, rgb(var(--pastel-gold)) 15%, transparent); border-color: rgb(var(--pastel-gold) / 0.2); color: rgb(var(--pastel-gold)); }

/* ---------- card: glass / default / bedrock + spotlight ---------- */
/* card = _ds_bundle.js Card 31551-31632 (default hover = 0.7, inside README.md:159 hover lifts to 0.65-0.75): padding 28, default 0.45 + blur(12px), bedrock basalt-bright, spotlight hairline 2px full-alpha glow; README.md:159 hover border = circuit dim */
.aaas-ui-card { position: relative; padding: 28px; border: 1px solid var(--border); border-radius: var(--radius); transition: transform 300ms var(--liquid-ease), box-shadow 300ms var(--liquid-ease), border-color 300ms var(--liquid-ease), background 300ms var(--liquid-ease); }
.aaas-ui-card--glass { background: rgb(var(--basalt-surface) / 0.6); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border-color: rgba(255, 255, 255, 0.08); box-shadow: var(--shadow-glass); }
.aaas-ui-card--glass:hover { border-color: var(--circuit-dim); }
.aaas-ui-card--default { background: rgb(var(--basalt-surface) / 0.45); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.aaas-ui-card--default:hover { background: rgb(var(--basalt-surface) / 0.7); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); }
.aaas-ui-card--bedrock { background: rgb(var(--basalt-bright)); }
.aaas-ui-card--spotlight::after { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: rgb(var(--circuit-glow)); box-shadow: 0 0 12px rgb(var(--circuit-glow)); opacity: 0; transition: opacity 300ms var(--liquid-ease); }
.aaas-ui-card--spotlight:hover { transform: translateY(-6px); box-shadow: var(--shadow-hover); border-color: var(--circuit-dim); }
.aaas-ui-card--spotlight:hover::after { opacity: 1; }
/* the heading is emitted as <h3>: the stored h3 is 600 / normal / 1.2 / 1.5rem (colors_and_type.css:141-147) */
.aaas-ui-card-heading { margin: 0 0 0.75rem; font-family: var(--font-inter); font-weight: 600; letter-spacing: normal; line-height: 1.2; font-size: 1.5rem; }

/* ---------- metric cell (_ds_bundle.js MetricCell 31645-31726) ---------- */
.aaas-ui-metriccell { display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius); background: rgb(var(--basalt-surface) / 0.55); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); box-shadow: var(--shadow-glass); }
.aaas-ui-metriccell-label { color: var(--text-muted); }
.aaas-ui-metriccell-delta { display: inline-flex; align-items: center; padding: 2px 7px; border: 1px solid transparent; border-radius: 9999px; font-family: var(--font-jetbrains); font-weight: 500; font-size: 10px; text-transform: uppercase; letter-spacing: 0.05em; }
.aaas-ui-metriccell-delta--up { background: var(--accent-teal-dim); border-color: rgb(var(--accent-teal) / 0.25); color: rgb(var(--accent-teal)); }
.aaas-ui-metriccell-delta--down { background: var(--accent-red-dim); border-color: rgb(var(--accent-red) / 0.25); color: rgb(var(--accent-red)); }
.aaas-ui-metriccell-value { font-family: var(--font-inter); font-weight: 900; font-size: 1.9rem; line-height: 1; color: rgb(var(--circuit-glow)); text-shadow: 0 0 12px rgb(var(--circuit-glow) / 0.6); }
.aaas-ui-metriccell-progress { display: block; width: 100%; height: 4px; border-radius: 9999px; background: rgb(var(--basalt-bright) / 0.6); overflow: hidden; }
.aaas-ui-metriccell-progress-fill { display: block; height: 100%; border-radius: 9999px; background: rgb(var(--circuit-glow)); box-shadow: 0 0 8px rgb(var(--circuit-glow) / 0.6); }

/* ---------- status dot: five states, five SHAPES, colour never the only cue ----------
 * glow = _ds_bundle.js StatusDot 31754 0 0 8px <colour> (every variant but muted; idle is the muted ring). The stuck
 * triangle is a clip-path, which clips its own box-shadow, so its glow is a filter drop-shadow of the same 0 0 8px. pulse = 31752/31768: 1.4s ease-in-out, opacity 1 -> 0.5. */
.aaas-ui-statusdot { position: relative; display: inline-block; width: 10px; height: 10px; flex: none; }
.aaas-ui-statusdot--needs { background: rgb(var(--status-needs)); border-radius: 2px; transform: rotate(45deg); box-shadow: 0 0 8px rgb(var(--status-needs)); }
.aaas-ui-statusdot--stuck { background: rgb(var(--status-stuck)); clip-path: polygon(50% 0%, 100% 100%, 0% 100%); filter: drop-shadow(0 0 8px rgb(var(--status-stuck))); }
.aaas-ui-statusdot--done { width: 12px; height: 12px; background: transparent; border: 2px solid rgb(var(--status-done)); border-radius: 50%; box-shadow: 0 0 8px rgb(var(--status-done)); }
.aaas-ui-statusdot--done::after { content: ""; position: absolute; left: 2px; top: 1px; width: 4px; height: 6px; border-right: 2px solid rgb(var(--status-done)); border-bottom: 2px solid rgb(var(--status-done)); transform: rotate(45deg); }
.aaas-ui-statusdot--running { background: rgb(var(--status-running)); border-radius: 50%; box-shadow: 0 0 8px rgb(var(--status-running)); animation: aaas-ui-pulse 1.4s ease-in-out infinite; }
.aaas-ui-statusdot--idle { background: transparent; border: 2px solid rgb(var(--status-idle) / 0.5); border-radius: 50%; }
.aaas-ui-statusdot--dual { width: 12px; height: 12px; background: transparent; }
.aaas-ui-statusdot--dual::before, .aaas-ui-statusdot--dual::after { content: ""; position: absolute; inset: 0; border-radius: 50%; animation: aaas-ui-heartbeat 3s var(--liquid-ease) infinite; }
.aaas-ui-statusdot--dual::before { background: rgb(var(--circuit-glow)); box-shadow: 0 0 8px rgb(var(--circuit-glow)); }
.aaas-ui-statusdot--dual::after { background: rgb(var(--accent-red)); box-shadow: 0 0 8px rgb(var(--accent-red)); animation-delay: -1.5s; }

/* ---------- terminal: glass log window (_ds_bundle.js Terminal 31800-31935) ---------- */
.aaas-ui-terminal { margin: 0; background: rgb(var(--basalt-surface) / 0.6); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: var(--radius); box-shadow: var(--shadow-glass); overflow: hidden; }
.aaas-ui-terminal-title { display: flex; align-items: center; gap: 10px; padding: 0.625rem 1rem; border-bottom: 1px solid var(--border); background: rgb(var(--basalt-deep) / 0.5); color: var(--text-muted); font-family: var(--font-jetbrains); font-weight: 500; font-size: 9px; text-transform: uppercase; letter-spacing: 0.15rem; }
.aaas-ui-terminal-live { width: 7px; height: 7px; margin-left: auto; border-radius: 50%; background: rgb(var(--circuit-glow)); box-shadow: 0 0 6px rgb(var(--circuit-glow)); animation: aaas-ui-pulse 1.4s ease-in-out infinite; }
.aaas-ui-terminal-body { display: flex; flex-direction: column; gap: 6px; min-height: 200px; margin: 0; padding: 1rem; font-family: var(--font-jetbrains); font-size: 12px; color: rgb(var(--text) / 0.85); overflow-x: auto; }
.aaas-ui-terminal-line { display: block; white-space: pre-wrap; }
.aaas-ui-terminal-prefix { margin-right: 0.75rem; font-weight: 500; }
.aaas-ui-terminal-prefix--circuit { color: rgb(var(--circuit-glow)); }
.aaas-ui-terminal-prefix--red { color: rgb(var(--accent-red)); }
.aaas-ui-terminal-prefix--teal { color: rgb(var(--accent-teal)); }
.aaas-ui-terminal-prefix--gold { color: rgb(var(--pastel-gold)); }
.aaas-ui-terminal-prefix--sys { color: var(--text-muted); }
.aaas-ui-terminal-cursor { display: inline-block; width: 0.5em; height: 1em; margin-left: 0.25rem; vertical-align: text-bottom; background: rgb(var(--circuit-glow)); animation: aaas-ui-blink 1.1s linear infinite; }

/* ---------- field + input: glass field, circuit focus ring, red invalid ----------
 * _ds_bundle.js Input 31951-32003: box-sizing border-box, padding 10px 14px, blur(12px), radius var(--radius) (colors_and_type.css:251),
 * 14px, all 0.3s var(--liquid-ease), invalid border accent-red/0.5 + ring 3px accent-red/0.1 whenever invalid. The focus ring stays
 * circuit/0.5 (README.md:175 outranks the bundle's 0.1). The plate field rules in door-controls.mjs carry the same values. */
.aaas-ui-field { position: relative; }
.aaas-ui-input { box-sizing: border-box; display: block; width: 100%; padding: 10px 14px; font-family: var(--font-inter); font-size: 14px; color: rgb(var(--text)); background: rgb(var(--basalt-surface) / 0.6); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid var(--border); border-radius: var(--radius); transition: all 0.3s var(--liquid-ease); }
.aaas-ui-input::placeholder { color: var(--text-muted); }
.aaas-ui-input:hover { border-color: rgb(var(--circuit-glow) / 0.3); }
.aaas-ui-input:focus { outline: none; border-color: rgb(var(--circuit-glow) / 0.5); box-shadow: 0 0 0 3px rgb(var(--circuit-glow) / 0.5); }
.aaas-ui-input:disabled { opacity: 0.5; cursor: not-allowed; }
.aaas-ui-input[aria-invalid="true"] { border-color: rgb(var(--accent-red) / 0.5); box-shadow: 0 0 0 3px rgb(var(--accent-red) / 0.1); }
.aaas-ui-input[aria-invalid="true"]:focus { box-shadow: 0 0 0 3px rgb(var(--accent-red) / 0.1); }
.aaas-ui-field--invalid .aaas-ui-input { border-color: rgb(var(--accent-red) / 0.5); }

/* ---------- dropdown: glass menu ALWAYS blurred, --shadow-menu elevation ---------- */
.aaas-ui-dropdown { position: relative; font-family: var(--font-inter); }
.aaas-ui-dropdown-toggle { box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; width: 100%; padding: 0.75rem 1rem; font-family: var(--font-inter); font-size: 0.9375rem; text-align: left; color: rgb(var(--text)); background: rgb(var(--basalt-surface) / 0.6); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid var(--border); border-radius: var(--radius); cursor: pointer; transition: border-color 300ms var(--liquid-ease), box-shadow 300ms var(--liquid-ease); }
.aaas-ui-dropdown-toggle:hover { border-color: rgb(var(--circuit-glow) / 0.5); }
.aaas-ui-dropdown-toggle:focus-visible { outline: none; box-shadow: 0 0 0 3px rgb(var(--circuit-glow) / 0.5); }
.aaas-ui-dropdown-toggle[disabled] { opacity: 0.5; cursor: not-allowed; }
.aaas-ui-dropdown-value { display: none; }
.aaas-ui-dropdown-menu { position: absolute; top: calc(100% + 0.25rem); left: 0; right: 0; z-index: 40; margin: 0; padding: 0.375rem; list-style: none; background: rgb(var(--basalt-surface) / 0.6); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: var(--radius); box-shadow: var(--shadow-menu); opacity: 0; transform: translateY(-4px); visibility: hidden; }
.aaas-ui-dropdown-menu[hidden] { display: none; }
.aaas-ui-dropdown-menu:not([hidden]) { opacity: 1; transform: translateY(0); visibility: visible; }
.aaas-ui-dropdown-option { padding: 0.5rem 0.75rem; border-radius: calc(var(--radius) - 0.375rem); color: rgb(var(--text)); font-size: 0.875rem; cursor: pointer; transition: background 200ms var(--liquid-ease), color 200ms var(--liquid-ease); }
.aaas-ui-dropdown-option:hover, .aaas-ui-dropdown-option.aaas-ui-option--active { background: var(--circuit-dim); }
.aaas-ui-dropdown-option[aria-selected="true"] { color: rgb(var(--circuit-glow)); }
.aaas-ui-dropdown-chevron { width: 0; height: 0; flex: none; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid var(--text-muted); transition: transform 200ms var(--liquid-ease); }
.aaas-ui-dropdown-toggle[aria-expanded="true"] .aaas-ui-dropdown-chevron { transform: rotate(180deg); }
.aaas-ui-dropdown--disabled { opacity: 0.5; }
.aaas-ui-dropdown--disabled .aaas-ui-dropdown-toggle { cursor: not-allowed; }

/* ---------- topic label: glowing rule, label, fading hairline sweep ----------
 * _ds_bundle.js TopicLabel 32053-32091: rule 24 x 2, glow 0 0 8px at 0.4 alpha = --accent-red-glow (colors_and_type.css:24),
 * hairline max-width 200, linear-gradient(90deg, <glow>, transparent). */
.aaas-ui-topiclabel { display: flex; align-items: center; gap: 0.75rem; font-family: var(--font-jetbrains); font-weight: 500; font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.15rem; color: rgb(var(--accent-red)); }
.aaas-ui-topiclabel-rule { width: 24px; height: 2px; flex: none; background: rgb(var(--accent-red)); box-shadow: 0 0 8px var(--accent-red-glow); }
.aaas-ui-topiclabel-hairline { position: relative; height: 1px; flex: 1; max-width: 200px; overflow: hidden; background: linear-gradient(90deg, var(--accent-red-glow), transparent); }
.aaas-ui-topiclabel-hairline::after { content: ""; position: absolute; top: -1px; left: -25%; width: 25%; height: 3px; border-radius: 9999px; background: rgb(var(--circuit-glow)); box-shadow: 0 0 12px rgb(var(--circuit-glow) / 0.8); filter: blur(1px); animation: aaas-ui-sweep 4s linear infinite; }

/* ---------- CTA strip: headline + CTAs left, 2-up stats right ----------
 * _ds_bundle.js CTAStrip 34086-34116: the markup carries the base aaas-ui-card (border + radius), border circuit-glow/0.2,
 * bg basalt-surface/0.5, 1.4fr 1fr at lg (Tailwind lg = 1024px), stats gap-3 = 0.75rem, tile bg basalt-deep/0.4, value Inter 900. */
.aaas-ui-ctastrip { display: grid; grid-template-columns: 1fr; gap: 2rem; padding: 2.5rem; border-color: rgb(var(--circuit-glow) / 0.2); background: rgb(var(--basalt-surface) / 0.5); }
.aaas-ui-ctastrip-headline { margin: 0 0 1.5rem; }
.aaas-ui-ctastrip-ctas { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.aaas-ui-ctastrip-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.aaas-ui-ctastrip-stat { display: flex; flex-direction: column; gap: 0.375rem; padding: 1rem; border: 1px solid var(--border); border-radius: var(--radius); background: rgb(var(--basalt-deep) / 0.4); }
.aaas-ui-ctastrip-stat-value { font-family: var(--font-inter); font-weight: 900; font-size: 1.5rem; line-height: 1; color: rgb(var(--text)); }
.aaas-ui-ctastrip-stat-label { color: var(--text-muted); }

/* ---------- today card: static presentational picks ---------- */
.aaas-ui-todaycard { overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: var(--radius); background: rgb(var(--basalt-surface) / 0.6); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); box-shadow: var(--shadow-glass); }
.aaas-ui-todaycard-head { padding: 1rem 1.25rem; border-bottom: 1px solid var(--border); }
.aaas-ui-todaycard-date { color: rgb(var(--circuit-glow)); }
.aaas-ui-todaycard-picks { margin: 0; padding: 0; list-style: none; }
.aaas-ui-todaycard-pick + .aaas-ui-todaycard-pick { border-top: 1px solid var(--border); }
.aaas-ui-todaycard-link { display: flex; flex-direction: column; gap: 0.25rem; padding: 0.875rem 1.25rem; text-decoration: none; transition: background 200ms var(--liquid-ease); }
.aaas-ui-todaycard-link:hover { background: var(--circuit-dim); }
.aaas-ui-todaycard-host { color: var(--text-muted); }
.aaas-ui-todaycard-title { color: rgb(var(--text)); font-size: 0.9375rem; line-height: 1.4; }
.aaas-ui-todaycard-link:hover .aaas-ui-todaycard-title { color: rgb(var(--circuit-glow)); }

/* ---------- responsive chrome ---------- */
@media (min-width: 768px) {
  .aaas-ui-header-inner { height: 5rem; }
}
@media (min-width: 1024px) {
  .aaas-ui-ctastrip { grid-template-columns: 1.4fr 1fr; align-items: center; }
}

/* ---------- motion ---------- */
@keyframes aaas-ui-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
@keyframes aaas-ui-heartbeat { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
@keyframes aaas-ui-blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
@keyframes aaas-ui-sweep { from { transform: translateX(0); } to { transform: translateX(500%); } }

@media (prefers-reduced-motion: reduce) {
  .aaas-ui-statusdot--running,
  .aaas-ui-statusdot--dual::before,
  .aaas-ui-statusdot--dual::after,
  .aaas-ui-terminal-live,
  .aaas-ui-terminal-cursor,
  .aaas-ui-topiclabel-hairline::after,
  .aaas-ui-heartbeat::after { animation: none; }
  .aaas-ui-btn,
  .aaas-ui-card,
  .aaas-ui-card--spotlight,
  .aaas-ui-card--spotlight::after,
  .aaas-ui-dropdown-toggle,
  .aaas-ui-dropdown-chevron,
  .aaas-ui-dropdown-option,
  .aaas-ui-input,
  .aaas-ui-todaycard-link { transition-duration: 150ms; }
}
