:root {
  --night: #111522;
  --panel: #1c2233;
  --panel-light: #242c41;
  --ink: #eef0f6;
  --muted: #a5adbd;
  --grid: #353d53;
  --cyan: #65dfd2;
  --purple: #a58cff;
  --orange: #ffaf64;
  --red: #ff6f78;
}

* { box-sizing: border-box; }
body { min-width: 320px; margin: 0; color: var(--ink); background: var(--night); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button, select { font: inherit; }
.topbar { display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: center; padding: 20px max(24px, calc((100vw - 1240px) / 2)); border-bottom: 1px solid #2c3347; background: rgba(17,21,34,.94); }
.brand { display: grid; place-items: center; width: 48px; height: 48px; color: var(--night); background: var(--cyan); font-family: Georgia, serif; font-size: 1.2rem; font-weight: 700; text-decoration: none; }
.topbar-copy p, .topbar-copy h1, .kicker, .control-copy, .legend, .explanation p { margin: 0; }
.topbar-copy p, .kicker { color: var(--cyan); font-size: .67rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.topbar-copy h1 { margin-top: 4px; font-size: 1.22rem; letter-spacing: -.03em; }
.topbar-copy h1 span { color: var(--muted); font-weight: 400; }
.engine-chip { padding: 9px 12px; border: 1px solid var(--grid); color: var(--muted); font-size: .73rem; white-space: nowrap; }
.engine-chip span { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 12px var(--cyan); }

.page { width: min(1240px, calc(100% - 48px)); margin: 0 auto; padding: 48px 0; }
.control-strip { display: flex; justify-content: space-between; gap: 38px; padding: 25px 0 31px; border-bottom: 1px solid var(--grid); }
.control-strip > div:first-child { max-width: 660px; }
.control-copy { margin-top: 9px; color: var(--muted); font-size: .96rem; line-height: 1.55; }
.control-actions { display: grid; justify-items: end; align-content: space-between; gap: 20px; }
#evidence-probability { margin: 0; color: var(--orange); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78rem; }
button { padding: 10px 13px; border: 1px solid var(--cyan); color: var(--cyan); background: transparent; cursor: pointer; transition: .18s ease; }
button:hover { color: var(--night); background: var(--cyan); }

.network-wrap { min-width: 0; padding: 42px 0 46px; }
.network-title-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; }
h2 { margin: 5px 0 0; font-size: clamp(1.7rem, 3.8vw, 2.6rem); letter-spacing: -.05em; }
.legend { color: var(--muted); font-size: .73rem; }
.legend-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; }
.evidence-dot { background: var(--cyan); }.target-dot { background: var(--orange); }

.network-stage { position: relative; display: grid; min-width: 0; max-width: 100%; grid-template-columns: repeat(5, minmax(160px, 1fr)); gap: 14px; margin-top: 30px; padding: 22px; border: 1px solid var(--grid); background-color: #161b2a; background-image: linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px); background-size: 32px 32px; overflow-x: auto; }
.node-card { position: relative; z-index: 1; min-width: 160px; min-height: 390px; padding: 16px; border: 1px solid #3c465f; background: linear-gradient(145deg, rgba(36,44,65,.98), rgba(23,29,44,.98)); box-shadow: 0 15px 26px rgba(0,0,0,.18); }
.node-card::after { position: absolute; top: 45px; left: 100%; z-index: -1; width: 15px; height: 1px; content: ""; background: var(--purple); }
.node-card::before { position: absolute; top: 41px; left: calc(100% + 10px); z-index: -1; content: "›"; color: var(--purple); font-size: 1rem; }
.node-card:last-child::after, .node-card:last-child::before { display: none; }
.node-card.evidence { border-color: var(--cyan); box-shadow: 0 0 0 1px var(--cyan), 0 15px 26px rgba(0,0,0,.18); }
.node-card.target { border-color: var(--orange); }
.node-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.node-heading h3 { margin: 0; font-size: 1rem; letter-spacing: -.02em; }
.node-heading span { max-width: 82px; color: var(--muted); font-family: ui-monospace, monospace; font-size: .58rem; line-height: 1.25; text-align: right; }
.node-card label { display: block; margin: 19px 0 6px; color: var(--muted); font-size: .63rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.node-card select { width: 100%; padding: 8px; border: 1px solid #4d5872; border-radius: 0; color: var(--ink); background: var(--night); font-size: .74rem; }
.node-card select:focus { outline: 2px solid var(--cyan); outline-offset: 2px; }
.belief-list { display: grid; gap: 9px; margin-top: 21px; }
.belief { display: grid; grid-template-columns: 1fr auto; gap: 6px 7px; align-items: end; }
.belief-label { overflow: hidden; color: #d9deeb; font-size: .69rem; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.belief-value { color: var(--ink); font-family: ui-monospace, monospace; font-size: .68rem; }
.belief-bar { grid-column: 1 / -1; height: 5px; background: #111522; }
.belief-fill { height: 100%; background: var(--purple); transition: width .2s ease; }
.node-card.evidence .belief-fill { background: var(--cyan); }.node-card.target .belief-fill { background: var(--orange); }
.more-states { margin: 13px 0 0; color: var(--muted); font-size: .67rem; }

.explanation { display: grid; grid-template-columns: .75fr 1.25fr; gap: 60px; padding: 40px 0; border-top: 1px solid var(--grid); }
.explanation > div { min-width: 0; }
.explanation p { color: var(--muted); line-height: 1.6; }
.explanation code { display: block; max-width: 100%; margin-top: 17px; padding: 13px; overflow-x: auto; border-left: 3px solid var(--purple); color: #d9d3ff; background: #171c2a; font-size: .75rem; white-space: nowrap; }
.disclaimer { padding: 19px 21px; border: 1px solid #414a61; color: var(--muted); background: #191e2d; font-size: .82rem; line-height: 1.5; }.disclaimer strong { color: var(--ink); }

@media (max-width: 820px) {
  .topbar { grid-template-columns: auto 1fr; padding: 16px 20px; }.engine-chip { display: none; }
  .page { width: min(100% - 28px, 1240px); padding: 30px 0; }.control-strip, .network-title-row { display: grid; }.control-actions { justify-items: start; }
  .network-stage { grid-template-columns: repeat(5, 180px); }.explanation { grid-template-columns: 1fr; gap: 18px; }.legend { order: -1; }
}
