/* LLO — Laden Labs Oracle · mystic-ops */
.oracle-page {
  min-height: 100vh;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(167,139,250,.14), transparent 45%),
    radial-gradient(ellipse at 80% 10%, rgba(0,229,255,.1), transparent 40%),
    var(--bg, #05070a);
}
.oracle-page::before {
  background-image:
    linear-gradient(rgba(167,139,250,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,229,255,.035) 1px, transparent 1px);
  background-size: 48px 48px;
}

.oracle-main { padding: var(--section-gap, 1rem) 1.25rem 3rem; position: relative; z-index: 1; }

.oracle-hero {
  display: grid;
  grid-template-columns: 1.4fr .8fr;
  gap: 1.5rem;
  align-items: center;
  margin-bottom: var(--section-gap, 1rem);
}
@media (max-width: 820px) {
  .oracle-hero { grid-template-columns: 1fr; }
  .oracle-orb { display: none; }
}

.oracle-title {
  font-family: Orbitron, sans-serif;
  font-size: clamp(1.7rem, 4vw, 2.45rem);
  letter-spacing: .04em;
  margin: .35rem 0 .65rem;
  text-shadow: 0 0 28px rgba(167,139,250,.35), 0 0 12px rgba(0,229,255,.2);
}
.oracle-title em {
  font-style: normal;
  background: linear-gradient(120deg, var(--cyan), var(--violet));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.oracle-tagline { max-width: 42rem; color: var(--muted); }
.oracle-sigils {
  display: flex; gap: .65rem; align-items: center;
  margin-top: 1rem;
  font-family: Orbitron, sans-serif;
  font-size: .72rem;
  letter-spacing: .28em;
  color: rgba(167,139,250,.75);
  text-shadow: 0 0 12px rgba(0,229,255,.35);
}

.oracle-orb {
  position: relative;
  width: 180px; height: 180px;
  margin: 0 auto;
  display: grid; place-items: center;
}
.oracle-orb .orb-ring {
  position: absolute; inset: 0;
  border-radius: 50%;
  border: 1px solid rgba(0,229,255,.35);
  box-shadow: 0 0 30px rgba(0,229,255,.15), inset 0 0 24px rgba(167,139,250,.12);
  animation: oracle-spin 18s linear infinite;
}
.oracle-orb .orb-ring.violet {
  inset: 14px;
  border-color: rgba(167,139,250,.45);
  animation-direction: reverse;
  animation-duration: 12s;
}
.oracle-orb .orb-core {
  font-family: Orbitron, sans-serif;
  letter-spacing: .2em;
  color: var(--cyan);
  text-shadow: 0 0 18px rgba(0,229,255,.55), 0 0 8px rgba(167,139,250,.4);
  z-index: 1;
}
@keyframes oracle-spin {
  to { transform: rotate(360deg); }
}

.oracle-console {
  border: 1px solid rgba(167,139,250,.28);
  background:
    linear-gradient(160deg, rgba(167,139,250,.07), rgba(0,229,255,.04) 40%, rgba(12,16,23,.95));
  box-shadow: 0 0 40px rgba(167,139,250,.08), 0 0 20px rgba(0,229,255,.05);
  padding: 1.15rem 1.2rem 1.05rem;
  border-radius: var(--radius, 14px);
}
.oracle-label {
  display: block;
  font-size: .72rem;
  color: rgba(0,229,255,.8);
  letter-spacing: .12em;
  margin-bottom: .45rem;
}
.oracle-row {
  display: flex; gap: .55rem; flex-wrap: wrap;
}
.oracle-input {
  flex: 1 1 220px;
  min-width: 0;
  background: rgba(5,7,10,.85);
  border: 1px solid rgba(0,229,255,.28);
  color: var(--text);
  padding: .7rem .9rem;
  border-radius: 10px;
  font-size: .95rem;
  box-shadow: inset 0 0 18px rgba(0,229,255,.04);
}
.oracle-input:focus {
  outline: none;
  border-color: rgba(167,139,250,.65);
  box-shadow: 0 0 0 2px rgba(167,139,250,.18), inset 0 0 18px rgba(0,229,255,.06);
}
.oracle-ask {
  white-space: nowrap;
  box-shadow: 0 0 18px rgba(0,255,157,.18);
}

.oracle-seg {
  display: inline-flex;
  margin-top: .85rem;
  border: 1px solid rgba(26,35,50,.95);
  border-radius: 999px;
  overflow: hidden;
  background: rgba(5,7,10,.55);
}
.oracle-seg-btn {
  font-family: Orbitron, sans-serif;
  font-size: .62rem;
  letter-spacing: .08em;
  padding: .42rem .85rem;
  background: transparent;
  color: var(--muted);
  border: 0;
  cursor: pointer;
}
.oracle-seg-btn:hover { color: var(--cyan); }
.oracle-seg-btn.active {
  color: var(--bg);
  background: linear-gradient(120deg, var(--cyan), var(--violet));
  box-shadow: 0 0 16px rgba(0,229,255,.25);
}

.oracle-suggest { margin-top: .9rem; }
.oracle-suggest .tiny { font-size: .68rem; display: block; margin-bottom: .4rem; }
.oracle-chips {
  display: flex; flex-wrap: wrap; gap: .4rem;
}
.oracle-chip {
  font-family: 'JetBrains Mono', monospace;
  font-size: .72rem;
  padding: .35rem .65rem;
  border-radius: 999px;
  border: 1px solid rgba(167,139,250,.3);
  background: rgba(167,139,250,.07);
  color: #d4c4ff;
  cursor: pointer;
  transition: .15s ease;
}
.oracle-chip:hover {
  border-color: rgba(0,229,255,.45);
  color: var(--cyan);
  box-shadow: 0 0 14px rgba(0,229,255,.15);
}
.oracle-chip.caleb-chip {
  border-color: rgba(0,255,157,.28);
  background: rgba(0,255,157,.05);
  color: #9dffd0;
}

.oracle-status {
  margin: 1rem 0 .75rem;
  font-size: .78rem;
  color: rgba(167,139,250,.85);
  min-height: 1.2em;
}
.oracle-status.err { color: var(--red, #ff4d6d); }
.oracle-status.ok { color: var(--cyan); }

.oracle-results {
  display: flex;
  flex-direction: column;
  gap: .7rem;
  margin-bottom: var(--section-gap, 1rem);
}
.oracle-card {
  border: 1px solid rgba(var(--genre-oracle-rgb, 167, 139, 250), .35);
  background: linear-gradient(145deg, rgba(var(--genre-oracle-rgb, 167, 139, 250), .08), rgba(8,12,18,.98));
  border-radius: 12px;
  padding: .9rem 1rem;
  transition: .15s ease;
  box-shadow: 0 0 0 1px rgba(var(--genre-oracle-rgb, 167, 139, 250), .08);
}
.oracle-card:hover {
  border-color: rgba(var(--genre-oracle-rgb, 167, 139, 250), .55);
  box-shadow: 0 0 24px rgba(var(--genre-oracle-rgb, 167, 139, 250), .14);
}
.oracle-card-top {
  display: flex; justify-content: space-between; gap: .75rem; flex-wrap: wrap;
  align-items: baseline;
}
.oracle-card h3 {
  font-family: Orbitron, sans-serif;
  font-size: .88rem;
  letter-spacing: .03em;
  color: var(--text);
  margin: 0;
}
.oracle-card h3 a { color: inherit; }
.oracle-card h3 a:hover { color: var(--cyan); }
.oracle-meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: .7rem;
  color: var(--muted);
  display: flex; flex-wrap: wrap; gap: .55rem;
  margin-top: .35rem;
}
.oracle-meta .repo { color: var(--violet); }
.oracle-meta .path { color: var(--cyan); }
.oracle-snippet {
  margin-top: .55rem;
  font-family: 'JetBrains Mono', monospace;
  font-size: .74rem;
  line-height: 1.45;
  color: #b8c7de;
  background: rgba(0,0,0,.35);
  border-left: 2px solid rgba(0,229,255,.35);
  padding: .55rem .7rem;
  white-space: pre-wrap;
  word-break: break-word;
  max-height: 9rem;
  overflow: auto;
}
.oracle-card-actions {
  display: flex; gap: .4rem; flex-wrap: wrap;
  margin-top: .65rem;
}
.oracle-card-actions .btn { font-size: .72rem; padding: .3rem .65rem; }

.oracle-empty, .oracle-error {
  border: 1px dashed rgba(167,139,250,.35);
  background: rgba(167,139,250,.04);
  padding: 1.4rem 1.1rem;
  text-align: center;
  border-radius: 12px;
}
.oracle-empty h3, .oracle-error h3 {
  font-family: Orbitron, sans-serif;
  font-size: 1rem;
  margin-bottom: .4rem;
}
.oracle-error {
  border-color: rgba(255,77,109,.4);
  background: rgba(255,77,109,.05);
}

.oracle-mentor {
  border: 1px solid rgba(0,255,157,.22);
  background: linear-gradient(160deg, rgba(0,255,157,.05), rgba(12,16,23,.92));
  padding: 1.1rem 1.2rem;
  border-radius: var(--radius, 14px);
}
.oracle-mentor-head {
  display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  align-items: flex-start;
  margin-bottom: .85rem;
}
.oracle-mentor h2 {
  font-family: Orbitron, sans-serif;
  font-size: 1.05rem;
  margin: .25rem 0 .4rem;
}
.oracle-mentor-actions { display: flex; gap: .45rem; flex-wrap: wrap; }
.oracle-mentor-chips { display: flex; flex-wrap: wrap; gap: .4rem; }

.oracle-loading {
  display: flex; align-items: center; gap: .6rem;
  font-family: 'JetBrains Mono', monospace;
  font-size: .78rem;
  color: var(--cyan);
}
.oracle-loading .pulse-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--violet);
  box-shadow: 0 0 10px rgba(167,139,250,.8);
  animation: oracle-pulse 1s ease-in-out infinite;
}
@keyframes oracle-pulse {
  0%, 100% { opacity: .35; transform: scale(.85); }
  50% { opacity: 1; transform: scale(1.15); }
}

/* Genre — Oracle = violet */
.oracle-page .oracle-hero h1 em,
.oracle-page .eyebrow { color: var(--genre-oracle, var(--violet)); }
.oracle-meta .repo { color: var(--genre-oracle, var(--violet)); }
