/* ══════════════════════════════════════════════════════════════════════════
   Blueprint window (BlueprintModal.razor)
   Tailwind-flavoured surface: slate-950 glass shell, 8px spacing scale, readable
   type, cards that never overflow. Modes: centered (default), maximized, docked.
   ══════════════════════════════════════════════════════════════════════════ */
.bpx-backdrop { position: fixed; inset: 0; z-index: 7010; background: rgba(2,6,23,.72); backdrop-filter: blur(6px); animation: bpxFade .25s ease-out; }
@keyframes bpxFade { from { opacity: 0; } to { opacity: 1; } }

.bpx-window {
  position: fixed; z-index: 7011; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: min(1080px, calc(100vw - 32px)); height: min(880px, calc(100vh - 32px));
  display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden;
  border-radius: 24px; background: linear-gradient(180deg, #0f172a 0%, #0b1120 100%);
  border: 1px solid rgba(148,163,184,.16); box-shadow: 0 40px 100px rgba(0,0,0,.65), inset 0 1px 0 rgba(255,255,255,.05);
  color: #e2e8f0; font-size: 15px; line-height: 1.55; animation: bpxIn .32s cubic-bezier(.2,.8,.2,1) both;
  transition: width .28s cubic-bezier(.2,.8,.2,1), height .28s cubic-bezier(.2,.8,.2,1), border-radius .28s;
}
.bpx-window.max { width: 100vw; height: 100vh; border-radius: 0; }
@keyframes bpxIn { from { opacity: 0; transform: translate(-50%, calc(-50% + 18px)) scale(.985); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
.bpx-window *, .bpx-window *::before, .bpx-window *::after { box-sizing: border-box; min-width: 0; }
.bpx-window p { margin: 0; overflow-wrap: anywhere; }
.bpx-window h2, .bpx-window h3 { margin: 0; overflow-wrap: anywhere; }

/* Header */
.bpx-head { display: flex; align-items: flex-start; gap: 16px 20px; flex-wrap: wrap; padding: 20px 26px 16px; border-bottom: 1px solid rgba(148,163,184,.12);
  background: radial-gradient(900px 160px at 0% 0%, color-mix(in srgb, var(--bp-primary) 22%, transparent), transparent 70%); }
.bpx-head-id { flex: 1 1 320px; min-width: 0; }
.bpx-badge { display: inline-flex; align-items: center; gap: 6px; font-size: .7rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px;
  background: color-mix(in srgb, var(--bp-accent) 22%, transparent); color: #fff; border: 1px solid color-mix(in srgb, var(--bp-accent) 45%, transparent); }
.bpx-title { font-size: clamp(1.35rem, 2.2vw, 1.8rem); font-weight: 800; letter-spacing: -.02em; margin-top: 10px; line-height: 1.15; }
.bpx-tagline { color: #94a3b8; font-size: .98rem; margin-top: 6px; }
.bpx-head-stats { display: flex; gap: 8px; flex: 0 0 auto; align-self: center; flex-wrap: wrap; order: 3; width: 100%; }
.bpx-head-stats span { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-width: 76px; min-height: 58px; padding: 8px 12px; border-radius: 14px; background: rgba(30,41,59,.55); border: 1px solid rgba(148,163,184,.12); font-size: .64rem; line-height: 1.2; text-transform: uppercase; letter-spacing: .06em; color: #94a3b8; white-space: nowrap; overflow: visible; }
.bpx-head-stats span.range { min-width: 132px; }
.bpx-head-stats span.range small { font-size: .58rem; letter-spacing: .02em; text-transform: none; color: #64748b; white-space: normal; text-align: center; line-height: 1.2; max-width: 140px; }
.bpx-head-stats b { display: block; font-size: 1.15rem; line-height: 1.2; color: #f1f5f9; letter-spacing: 0; font-weight: 800; }
.bpx-winctl { display: flex; gap: 6px; flex: 0 0 auto; margin-left: auto; }
@media (min-width: 961px) { .bpx-head-stats { order: 0; width: auto; } .bpx-winctl { margin-left: 0; } }
.bpx-winctl button { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; border: 1px solid rgba(148,163,184,.16); background: rgba(30,41,59,.5); color: #cbd5e1; cursor: pointer; transition: background .15s, color .15s, transform .15s; }
.bpx-winctl button svg { width: 16px; height: 16px; }
.bpx-winctl button:hover { background: rgba(51,65,85,.7); color: #fff; transform: translateY(-1px); }
.bpx-winctl button.close:hover { background: rgba(239,68,68,.22); color: #fecaca; border-color: rgba(239,68,68,.35); }

/* Body */
.bpx-body { overflow-y: auto; overflow-x: hidden; min-height: 0; padding: 22px 26px 28px; display: flex; flex-direction: column; gap: 24px; scrollbar-width: thin; scrollbar-color: rgba(148,163,184,.3) transparent; overscroll-behavior: contain; }
.bpx-body > * { flex-shrink: 0; }
.bpx-card { border-radius: 18px; padding: 18px 20px; background: rgba(30,41,59,.42); border: 1px solid rgba(148,163,184,.12); display: flex; flex-direction: column; gap: 10px; min-width: 0; overflow: hidden; }
.bpx-card h3, .bpx-h { font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: #a5b4fc; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.bpx-card h3.mt { margin-top: 10px; }
.bpx-card h3 em { font-style: normal; font-weight: 600; text-transform: none; letter-spacing: 0; color: #e2e8f0; font-size: .9rem; }
.bpx-h { margin-bottom: 14px; }
.bpx-count { font-size: .68rem; padding: 2px 8px; border-radius: 999px; background: rgba(129,140,248,.18); color: #e0e7ff; letter-spacing: 0; }
.bpx-lead { font-size: 1rem; line-height: 1.65; color: #e2e8f0; }
.bpx-kv-row { display: flex; gap: 10px; align-items: baseline; font-size: .92rem; color: #cbd5e1; padding-top: 10px; border-top: 1px dashed rgba(148,163,184,.18); }
.bpx-kv-k { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: #94a3b8; flex: 0 0 auto; }

/* Hero: layout preview + overview / art direction */
.bpx-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .95fr); gap: 20px; align-items: stretch; }
.bpx-hero-side { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.bpx-preview { border-radius: 18px; overflow: hidden; border: 1px solid rgba(148,163,184,.16); background: #020617; display: flex; flex-direction: column; min-width: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.03), 0 20px 50px rgba(0,0,0,.35); }
.bpx-preview-bar { display: flex; align-items: center; gap: 6px; padding: 10px 14px; background: rgba(15,23,42,.9); border-bottom: 1px solid rgba(148,163,184,.12); font-size: .74rem; color: #94a3b8; min-width: 0; }
.bpx-preview-bar i { flex: 0 0 auto; width: 10px; height: 10px; border-radius: 50%; background: #334155; }
.bpx-preview-bar i:nth-child(1) { background: #f87171; } .bpx-preview-bar i:nth-child(2) { background: #fbbf24; } .bpx-preview-bar i:nth-child(3) { background: #34d399; }
.bpx-preview-bar span { margin-left: 8px; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bpx-wire { width: 100%; height: auto; aspect-ratio: 640 / 400; max-height: 420px; display: block; flex: 1 1 auto; min-height: 0; object-fit: contain; background: #0b1120; }
.bpx-preview-glance { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px 18px; padding: 12px 14px 14px; border-top: 1px solid rgba(148,163,184,.12); background: rgba(15,23,42,.65); margin-top: auto; }
.bpx-glance-col { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.bpx-glance-list { margin: 0; padding: 0; list-style: none; font-size: .8rem; color: #e2e8f0; display: flex; flex-direction: column; gap: 3px; }
.bpx-glance-list li::before { content: "\2713"; color: #5eead4; margin-right: 6px; font-weight: 800; }
html.light-theme .bpx-preview-glance { background: #f1f5f9; border-top-color: rgba(148,163,184,.3); }
html.light-theme .bpx-glance-list { color: #1e293b; }
@media (max-width: 760px) { .bpx-preview-glance { display: none; } }

.bpx-palette { display: flex; flex-wrap: wrap; gap: 10px; }
.bpx-swatch { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.bpx-swatch i { display: block; width: 46px; height: 46px; border-radius: 14px; border: 1px solid rgba(255,255,255,.18); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 6px 14px rgba(0,0,0,.35); }
.bpx-swatch code { font-size: .66rem; color: #94a3b8; background: none; padding: 0; letter-spacing: .02em; }
.bpx-kv { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 8px 14px; font-size: .9rem; margin: 0; }
.bpx-kv dt { color: #94a3b8; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; padding-top: 3px; }
.bpx-kv dd { margin: 0; color: #e2e8f0; overflow-wrap: anywhere; }
.bpx-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.bpx-tags span { padding: 4px 10px; border-radius: 999px; font-size: .76rem; background: rgba(148,163,184,.1); border: 1px solid rgba(148,163,184,.2); color: #cbd5e1; overflow-wrap: anywhere; }
.bpx-tags.sm span { font-size: .7rem; padding: 3px 8px; }

/* Grids */
.bpx-grid { display: grid; gap: 14px; min-width: 0; }
.bpx-grid > * { min-width: 0; }
.bpx-grid.pages { grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); }
.bpx-grid.entities { grid-template-columns: repeat(auto-fill, minmax(min(230px, 100%), 1fr)); }
.bpx-page { gap: 8px; }
.bpx-page-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.bpx-page-top b { font-size: 1rem; color: #f8fafc; }
.bpx-page-top code { font-size: .74rem; padding: 2px 8px; border-radius: 8px; background: rgba(56,189,248,.12); color: #7dd3fc; border: 1px solid rgba(56,189,248,.22); overflow-wrap: anywhere; }
.bpx-page p { font-size: .9rem; color: #cbd5e1; }
.bpx-entity { background: rgba(14,165,233,.06); border-color: rgba(14,165,233,.2); gap: 6px; }
.bpx-entity b { font-size: .98rem; color: #bae6fd; }
.bpx-entity ul { margin: 0; padding-left: 18px; font-size: .86rem; color: #cbd5e1; display: flex; flex-direction: column; gap: 2px; }
.bpx-entity small { color: #94a3b8; font-size: .78rem; }

/* Features */
.bpx-features { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 10px; }
.bpx-feature { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 14px; background: rgba(30,41,59,.4); border: 1px solid rgba(148,163,184,.1); }
.bpx-feature-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.bpx-feature-text b { font-size: .95rem; color: #f1f5f9; }
.bpx-feature-text span { font-size: .86rem; color: #cbd5e1; overflow-wrap: anywhere; }
.bpx-prio { flex: 0 0 auto; margin-top: 2px; font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; padding: 3px 8px; border-radius: 999px; background: rgba(148,163,184,.15); color: #cbd5e1; }
.bpx-prio.must { background: rgba(239,68,68,.2); color: #fecaca; }
.bpx-prio.should { background: rgba(245,158,11,.2); color: #fde68a; }
.bpx-prio.could { background: rgba(34,197,94,.18); color: #bbf7d0; }

/* Milestones / notes */
.bpx-two { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; }
.bpx-milestones { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.bpx-milestones li { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 12px; align-items: start; font-size: .9rem; }
.bpx-milestones li div { display: flex; flex-direction: column; gap: 2px; }
.bpx-milestones li b { color: #f1f5f9; }
.bpx-milestones li span { color: #cbd5e1; font-size: .86rem; overflow-wrap: anywhere; }
.bpx-milestones li em { font-style: normal; font-size: .76rem; color: #a5b4fc; white-space: nowrap; padding-top: 2px; }
.bpx-step { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; font-size: .78rem; font-weight: 700; color: #fff; background: linear-gradient(135deg, var(--bp-primary), var(--bp-accent)); }
.bpx-total { margin-top: 4px; padding-top: 10px; border-top: 1px dashed rgba(148,163,184,.18); font-size: .86rem; color: #94a3b8; }
.bpx-total b { color: #f1f5f9; }
.bpx-total small { display: block; margin-top: 6px; font-size: .74rem; line-height: 1.45; color: #64748b; }
/* Collapsible technical deep-dive */
.bpx-tech summary small { margin-left: 8px; font-size: .72rem; font-weight: 500; color: #64748b; text-transform: none; letter-spacing: 0; }
.bpx-tech-body { display: flex; flex-direction: column; gap: 16px; padding-top: 14px; }
.bpx-endpoints { width: 100%; border-collapse: collapse; font-size: .88rem; }
.bpx-endpoints td { padding: 7px 10px 7px 0; border-top: 1px solid rgba(148,163,184,.1); vertical-align: top; color: #cbd5e1; }
.bpx-endpoints tr:first-child td { border-top: none; }
.bpx-filekind { margin: 14px 0 4px; font-size: .78rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #94a3b8; display: flex; align-items: center; gap: 8px; }
.bpx-muted { color: #94a3b8; }
.bpx-endpoints code { font-size: .8rem; color: #e2e8f0; }
.bpx-endpoints code.m { display: inline-block; min-width: 46px; padding: 1px 6px; border-radius: 6px; background: rgba(129,140,248,.18); color: #c7d2fe; font-weight: 700; text-align: center; }
.bpx-plain.num { list-style: decimal; padding-left: 20px; }
.bpx-plain { margin: 0; padding-left: 20px; font-size: .9rem; color: #cbd5e1; display: flex; flex-direction: column; gap: 6px; }
.bpx-plain li { overflow-wrap: anywhere; }
.bpx-plain.q li::marker { color: #fbbf24; }

.bpx-prompt { border-radius: 14px; border: 1px solid rgba(148,163,184,.12); background: rgba(2,6,23,.5); }
.bpx-prompt summary { cursor: pointer; padding: 12px 16px; font-size: .86rem; color: #a5b4fc; list-style: none; }
.bpx-prompt summary::before { content: "▸"; margin-right: 8px; display: inline-block; transition: transform .15s; }
.bpx-prompt[open] summary::before { transform: rotate(90deg); }
.bpx-prompt pre { margin: 0; padding: 0 16px 16px; white-space: pre-wrap; overflow-wrap: anywhere; font-size: .78rem; line-height: 1.55; color: #cbd5e1; max-height: 320px; overflow: auto; }

/* Footer */
.bpx-foot { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 12px 26px; border-top: 1px solid rgba(148,163,184,.12); background: rgba(2,6,23,.55); backdrop-filter: blur(10px); }
.bpx-spacer { flex: 1 1 auto; }
.bpx-note { font-size: .82rem; color: #94a3b8; width: 100%; }
.bpx-dl { display: inline-flex; align-items: center; gap: 2px; padding: 3px; border-radius: 12px; background: rgba(30,41,59,.6); border: 1px solid rgba(148,163,184,.14); }
.bpx-dl span { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: #94a3b8; padding: 0 8px 0 10px; }
.bpx-dl button { border: 0; background: transparent; color: #e2e8f0; font-size: .8rem; font-weight: 600; padding: 7px 11px; border-radius: 9px; cursor: pointer; transition: background .15s; }
.bpx-dl button:hover { background: rgba(99,102,241,.25); }
.bpx-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 12px; font-weight: 600; font-size: .9rem; cursor: pointer; border: 1px solid transparent; transition: transform .15s, box-shadow .15s, background .15s; }
.bpx-btn svg { width: 16px; height: 16px; }
.bpx-btn:disabled { opacity: .5; cursor: not-allowed; }
.bpx-btn.ghost { background: rgba(30,41,59,.6); border-color: rgba(148,163,184,.2); color: #e2e8f0; }
.bpx-btn.ghost:not(:disabled):hover { background: rgba(51,65,85,.75); }
.bpx-btn.primary { background: linear-gradient(135deg, #6366f1, #8b5cf6); color: #fff; box-shadow: 0 10px 24px rgba(99,102,241,.35); }
.bpx-btn.primary:not(:disabled):hover { transform: translateY(-1px); box-shadow: 0 14px 30px rgba(99,102,241,.45); }

/* Floating "Talk to Mira" control — bottom-right, glowing, animated */
.bpx-nady { position: relative; margin-left: auto; z-index: 5; display: inline-flex; align-items: center; gap: 12px; padding: 7px 20px 7px 7px; border-radius: 999px; cursor: pointer; font-family: inherit;
  background: linear-gradient(135deg, rgba(15,23,42,.95), rgba(30,27,75,.95)); border: 1px solid rgba(167,139,250,.4); color: #f5f3ff;
  box-shadow: 0 12px 30px rgba(0,0,0,.45), 0 0 0 0 rgba(167,139,250,.5); animation: bpxNadyGlow 2.8s ease-in-out infinite; transition: transform .2s; }
.bpx-nady:not(:disabled):hover { transform: translateY(-2px) scale(1.02); }
.bpx-nady.locked { animation: none; opacity: .6; cursor: not-allowed; filter: grayscale(.6); border-color: rgba(148,163,184,.3); }
.bpx-nady.locked .bpx-nady-ring { display: none; }
/* Landing-page launcher: same component, fixed bottom-right */
.bpx-nady.dns-home-nady { position: fixed; right: 22px; bottom: 22px; margin: 0; z-index: 6500; }
@media (max-width: 720px) { .bpx-nady.dns-home-nady { right: 12px; bottom: 12px; padding: 5px 12px 5px 5px; } .bpx-nady.dns-home-nady .bpx-nady-text small { display: none; } }
@keyframes bpxNadyGlow { 0%, 100% { box-shadow: 0 12px 30px rgba(0,0,0,.45), 0 0 0 0 rgba(167,139,250,.55); } 50% { box-shadow: 0 12px 30px rgba(0,0,0,.45), 0 0 0 10px rgba(167,139,250,0); } }
.bpx-nady-orb { position: relative; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: radial-gradient(circle at 30% 30%, #c4b5fd, #6d28d9 70%); color: #fff; animation: bpxNadyBob 3.2s ease-in-out infinite; }
.bpx-nady-orb svg { width: 20px; height: 20px; position: relative; z-index: 1; }
.bpx-nady-ring { position: absolute; inset: -4px; border-radius: 50%; border: 1.5px solid rgba(196,181,253,.7); animation: bpxNadyRing 2.4s ease-out infinite; }
.bpx-nady-ring.r2 { animation-delay: 1.2s; }
@keyframes bpxNadyRing { 0% { transform: scale(.85); opacity: .9; } 100% { transform: scale(1.6); opacity: 0; } }
@keyframes bpxNadyBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
.bpx-nady-text { display: flex; flex-direction: column; justify-content: center; gap: 2px; line-height: 1.2; text-align: left; padding-right: 2px; }
.bpx-nady-text small { font-size: .64rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: #c4b5fd; white-space: nowrap; }
.bpx-nady-text b { font-size: .875rem; font-weight: 700; white-space: nowrap; letter-spacing: 0; }

/* Docked pill (corner) */
.bpx-dock { position: fixed; right: 20px; bottom: 20px; z-index: 1211; display: flex; align-items: center; gap: 12px; padding: 10px 14px 10px 12px; border-radius: 16px; cursor: pointer;
  background: linear-gradient(180deg, #111827, #0b1120); border: 1px solid rgba(148,163,184,.2); color: #e2e8f0; box-shadow: 0 18px 40px rgba(0,0,0,.5); animation: bpxDockIn .3s cubic-bezier(.2,.8,.2,1) both; max-width: min(360px, calc(100vw - 40px)); }
@keyframes bpxDockIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.bpx-dock:hover { border-color: rgba(167,139,250,.45); }
.bpx-dock-swatches { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; width: 30px; height: 30px; flex: 0 0 auto; }
.bpx-dock-swatches i { border-radius: 5px; }
.bpx-dock-text { display: flex; flex-direction: column; min-width: 0; text-align: left; line-height: 1.2; }
.bpx-dock-text b { font-size: .9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bpx-dock-text small { font-size: .7rem; color: #94a3b8; }
.bpx-dock svg { width: 18px; height: 18px; color: #a5b4fc; flex: 0 0 auto; }

/* Responsive */
@media (max-width: 960px) {
  .bpx-hero { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .bpx-window { width: 100vw; height: 100vh; height: 100dvh; border-radius: 0; }
  .bpx-head { padding: 14px 16px 12px; gap: 10px; }
  .bpx-head-stats span { min-width: 64px; flex: 1 1 0; }
  .bpx-body { padding: 16px 16px 24px; gap: 20px; }
  .bpx-foot { padding: 10px 16px; }
  .bpx-nady { margin-left: 0; width: 100%; justify-content: center; }
  .bpx-nady-text b { font-size: .78rem; }
  .bpx-features, .bpx-two { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .bpx-nady, .bpx-nady-orb, .bpx-nady-ring, .bpx-window, .bpx-dock { animation: none; }
}
html.light-theme .bpx-nady { background: linear-gradient(135deg, #ffffff, #eef2ff); border-color: rgba(99,102,241,.35); color: #1e1b4b; box-shadow: 0 12px 30px -10px rgba(79,70,229,.35), 0 0 0 0 rgba(99,102,241,.4); animation-name: bpxNadyGlowLight; }
@keyframes bpxNadyGlowLight { 0%, 100% { box-shadow: 0 12px 30px -10px rgba(79,70,229,.35), 0 0 0 0 rgba(99,102,241,.45); } 50% { box-shadow: 0 12px 30px -10px rgba(79,70,229,.35), 0 0 0 10px rgba(99,102,241,0); } }
html.light-theme .bpx-nady-text small { color: #4f46e5; }
html.light-theme .bpx-nady-ring { border-color: rgba(99,102,241,.55); }
html.light-theme .bpx-nady.locked { border-color: #cbd5e1; }

/* ── Light theme: blueprint window ──────────────────────────────────────── */
html.light-theme .bpx-backdrop { background: rgba(15,23,42,.38); }
html.light-theme .bpx-window { background: linear-gradient(180deg, #ffffff 0%, #f5f7fb 100%); border-color: rgba(99,102,241,.18); color: #1e293b; box-shadow: 0 40px 100px rgba(30,41,59,.28), inset 0 1px 0 #fff; }
html.light-theme .bpx-head { background: linear-gradient(180deg, #f8fafc, #ffffff); border-bottom-color: rgba(148,163,184,.25); }
html.light-theme .bpx-title { color: #0f172a; }
html.light-theme .bpx-tagline, html.light-theme .bpx-muted, html.light-theme .bpx-note, html.light-theme .bpx-kv-k, html.light-theme .bpx-kv dt, html.light-theme .bpx-filekind, html.light-theme .bpx-entity small, html.light-theme .bpx-dock-text small, html.light-theme .bpx-swatch code { color: #64748b; }
html.light-theme .bpx-head-stats span { background: #fff; border-color: rgba(148,163,184,.3); color: #64748b; box-shadow: 0 2px 8px rgba(15,23,42,.05); }
html.light-theme .bpx-head-stats b { color: #0f172a; }
html.light-theme .bpx-winctl button { background: #fff; border-color: rgba(148,163,184,.35); color: #475569; }
html.light-theme .bpx-winctl button:hover { background: #eef2ff; color: #1e1b4b; }
html.light-theme .bpx-winctl button.close:hover { background: #fee2e2; color: #b91c1c; border-color: #fecaca; }
html.light-theme .bpx-body { scrollbar-color: rgba(100,116,139,.4) transparent; }
html.light-theme .bpx-card { background: #fff; border-color: rgba(148,163,184,.28); box-shadow: 0 1px 2px rgba(15,23,42,.04); }
html.light-theme .bpx-card h3, html.light-theme .bpx-h { color: #4f46e5; }
html.light-theme .bpx-card h3 em, html.light-theme .bpx-lead, html.light-theme .bpx-kv dd, html.light-theme .bpx-page-top b, html.light-theme .bpx-feature-text b, html.light-theme .bpx-milestones li b, html.light-theme .bpx-endpoints code { color: #0f172a; }
html.light-theme .bpx-count { background: #e0e7ff; color: #3730a3; }
html.light-theme .bpx-kv-row { color: #334155; border-top-color: rgba(148,163,184,.3); }
html.light-theme .bpx-preview { background: #e2e8f0; border-color: rgba(148,163,184,.35); box-shadow: 0 20px 50px rgba(30,41,59,.15); }
html.light-theme .bpx-preview-bar { background: #f1f5f9; border-bottom-color: rgba(148,163,184,.3); color: #64748b; }
html.light-theme .bpx-preview-bar i { background: #cbd5e1; }
html.light-theme .bpx-swatch i { border-color: rgba(15,23,42,.08); box-shadow: 0 6px 14px rgba(15,23,42,.12); }
html.light-theme .bpx-tags span { background: #f1f5f9; border-color: #e2e8f0; color: #334155; }
html.light-theme .bpx-page p, html.light-theme .bpx-entity ul, html.light-theme .bpx-feature-text span, html.light-theme .bpx-milestones li span, html.light-theme .bpx-plain, html.light-theme .bpx-endpoints td, html.light-theme .bpx-prompt pre { color: #334155; }
html.light-theme .bpx-page-top code { background: #e0f2fe; color: #0369a1; border-color: #bae6fd; }
html.light-theme .bpx-entity { background: #f0f9ff; border-color: #bae6fd; }
html.light-theme .bpx-entity b { color: #075985; }
html.light-theme .bpx-feature { background: #f8fafc; border-color: #e2e8f0; }
html.light-theme .bpx-prio { background: #e2e8f0; color: #334155; }
html.light-theme .bpx-prio.must { background: #fee2e2; color: #991b1b; }
html.light-theme .bpx-prio.should { background: #fef3c7; color: #92400e; }
html.light-theme .bpx-prio.could { background: #dcfce7; color: #166534; }
html.light-theme .bpx-milestones li em { color: #4f46e5; }
html.light-theme .bpx-endpoints td { border-top-color: #e2e8f0; }
html.light-theme .bpx-endpoints code.m { background: #e0e7ff; color: #3730a3; }
html.light-theme .bpx-plain.q li::marker { color: #d97706; }
html.light-theme .bpx-prompt { background: #f8fafc; border-color: #e2e8f0; }
html.light-theme .bpx-prompt summary { color: #4f46e5; }
html.light-theme .bpx-tech summary small { color: #64748b; }
html.light-theme .bpx-foot { background: rgba(248,250,252,.92); border-top-color: rgba(148,163,184,.3); }
html.light-theme .bpx-dl { background: #fff; border-color: #e2e8f0; }
html.light-theme .bpx-dl span { color: #64748b; }
html.light-theme .bpx-dl button { color: #1e293b; }
html.light-theme .bpx-dl button:hover { background: #e0e7ff; }
html.light-theme .bpx-btn.ghost { background: #fff; border-color: #cbd5e1; color: #1e293b; }
html.light-theme .bpx-btn.ghost:not(:disabled):hover { background: #f1f5f9; }
html.light-theme .bpx-dock { background: linear-gradient(180deg, #ffffff, #f1f5f9); border-color: rgba(99,102,241,.25); color: #1e293b; box-shadow: 0 18px 40px rgba(30,41,59,.22); }
html.light-theme .bpx-dock svg { color: #4f46e5; }
