/* Oracle */
.data-sources { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1.25rem; }
.source-card { min-height: 150px; padding: 1.15rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: linear-gradient(135deg, rgba(21,42,58,0.85), rgba(14,27,42,0.75)); box-shadow: var(--shadow-small); }
.source-card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.source-card__icon { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid rgba(63,169,224,0.3); border-radius: var(--radius-sm); background: var(--celeste-soft); color: var(--celeste-bright); }
.source-card__icon svg { width: 16px; height: 16px; }
.source-card h2 { margin: 1rem 0 0.25rem; font-size: 0.96rem; }
.source-card p { margin: 0; color: var(--muted); font-size: 0.74rem; }
.source-card__asset-list { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.7rem; }
.asset-chip { padding: 0.24rem 0.4rem; border: 1px solid var(--line); border-radius: 4px; color: var(--muted-strong); font-family: "IBM Plex Mono", monospace; font-size: 0.62rem; }

.pipeline-panel { margin-bottom: 1.25rem; overflow: hidden; }
.pipeline { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; padding: 1.25rem; }
.pipeline-step { position: relative; min-width: 0; padding-right: 1rem; }
.pipeline-step:not(:last-child)::after { position: absolute; top: 1rem; right: 0.25rem; width: calc(1rem - 4px); height: 1px; background: var(--line-strong); content: ""; }
.pipeline-step:not(:last-child)::before { position: absolute; top: calc(1rem - 3px); right: 0.2rem; border-top: 3px solid transparent; border-bottom: 3px solid transparent; border-left: 4px solid var(--line-strong); content: ""; }
.pipeline-step__index { display: grid; place-items: center; width: 30px; height: 30px; margin-bottom: 0.7rem; border: 1px solid var(--line-strong); border-radius: 50%; background: var(--navy-900); color: var(--celeste-bright); font-family: "IBM Plex Mono", monospace; font-size: 0.68rem; }
.pipeline-step__name { display: block; min-height: 2.3em; color: var(--ink); font-size: 0.73rem; font-weight: 800; line-height: 1.25; }
.pipeline-step__status { display: block; margin-top: 0.45rem; color: var(--muted); font-family: "IBM Plex Mono", monospace; font-size: 0.62rem; line-height: 1.35; }
.pipeline-step__status--positive { color: var(--green); }
.pipeline-step__status--warning { color: var(--yellow); }
.pipeline-step__status--negative { color: var(--red); }
.pipeline-step__timestamp { display: block; margin-top: 0.25rem; color: var(--muted); font-size: 0.62rem; }

.oracle-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(310px, 0.9fr); gap: 1.25rem; align-items: start; }
.oracle-stack { display: grid; gap: 1.25rem; }
.metrics-list { margin: 0; }
.metrics-list__row { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; padding: 0.77rem 1.25rem; border-bottom: 1px solid var(--line); }
.metrics-list__row:last-child { border-bottom: 0; }
.metrics-list__label { color: var(--muted); font-size: 0.75rem; }
.metrics-list__value { color: var(--muted-strong); font-family: "IBM Plex Mono", monospace; font-size: 0.74rem; text-align: right; }
.metrics-list__value--strong { color: var(--ink); }
.circuit-panel__body { display: grid; gap: 1.15rem; }
.circuit-state { display: flex; align-items: center; gap: 0.7rem; }
.circuit-state__icon { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid rgba(82,211,154,0.35); border-radius: 50%; background: var(--green-soft); color: var(--green); }
.circuit-state__icon--frozen { border-color: rgba(233,196,106,0.35); background: var(--yellow-soft); color: var(--yellow); }
.circuit-state__title { margin: 0; font-family: "IBM Plex Mono", monospace; font-size: 0.75rem; }
.circuit-state__description { margin: 0.2rem 0 0; color: var(--muted); font-size: 0.72rem; }
.circuit-bars { display: grid; gap: 0.85rem; }
.circuit-bar__head { display: flex; justify-content: space-between; margin-bottom: 0.38rem; color: var(--muted); font-family: "IBM Plex Mono", monospace; font-size: 0.62rem; }
.circuit-bar__head strong { color: var(--muted-strong); font-weight: 500; }
.circuit-bar__track { height: 5px; overflow: hidden; border-radius: 6px; background: rgba(255,255,255,0.08); }
.circuit-bar__fill { height: 100%; border-radius: inherit; background: var(--celeste); }
.circuit-bar__fill--green { background: var(--green); }
.ema-card { display: flex; align-items: center; gap: 1rem; padding: 1.25rem; border: 1px solid rgba(232,169,60,0.22); border-radius: var(--radius-md); background: linear-gradient(135deg, rgba(232,169,60,0.1), rgba(21,42,58,0.4)); }
.ema-card__icon { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(232,169,60,0.38); border-radius: var(--radius-sm); color: var(--amber); }
.ema-card__icon svg { width: 20px; height: 20px; }
.ema-card h2 { margin: 0; font-size: 0.92rem; }
.ema-card p { max-width: 360px; margin: 0.35rem 0 0; color: var(--muted); font-size: 0.73rem; }
.ema-card__value { margin-left: auto; color: var(--amber); font-family: "IBM Plex Mono", monospace; font-size: 1rem; white-space: nowrap; }

