/* =========================================================
   NORVIX — Oracle Dashboard
   ========================================================= */
.dash-body{overflow:hidden;height:100vh}

/* ---------- PHANTOM WALLET GATE ---------- */
.wallet-gate{
  position:fixed;inset:0;z-index:500;display:grid;place-items:center;padding:24px;
  background:rgba(8,4,16,.82);backdrop-filter:blur(14px);
  transition:opacity .4s var(--ease),visibility .4s var(--ease);
}
.wallet-gate.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.wg-card{
  width:min(440px,100%);text-align:center;border:1px solid var(--line);border-radius:22px;
  background:linear-gradient(180deg,rgba(24,14,44,.9),rgba(12,7,22,.9));
  padding:40px 32px;box-shadow:0 0 60px rgba(138,92,255,.25);
  animation:gateIn .6s var(--ease) both;
}
@keyframes gateIn{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
.wg-logo{height:96px;width:auto;margin:0 auto 18px;display:block;
  filter:drop-shadow(0 0 24px rgba(141,255,60,.55));animation:logoFloat 6s ease-in-out infinite}
.wg-title{font-family:'Archivo Black';font-size:26px;letter-spacing:.02em;color:var(--neon);
  text-shadow:0 0 20px rgba(141,255,60,.4);margin-bottom:12px}
.wg-text{font-size:14px;line-height:1.6;color:var(--fg);margin-bottom:24px}
.wg-text b{color:var(--purple-2)}
.wg-btn{
  width:100%;border:none;cursor:pointer;font:inherit;font-weight:800;font-size:16px;letter-spacing:.04em;
  background:linear-gradient(90deg,#8a5cff,#a07bff);color:#fff;padding:16px;border-radius:40px;
  display:flex;align-items:center;justify-content:center;gap:10px;
  box-shadow:0 0 28px rgba(138,92,255,.5);transition:transform .2s,box-shadow .2s;
}
.wg-btn:hover{transform:translateY(-2px);box-shadow:0 0 40px rgba(138,92,255,.7)}
.wg-btn:disabled{opacity:.6;cursor:wait;transform:none}
.wg-ph{font-size:20px}
.wg-status{font-size:13px;color:var(--neon);margin-top:14px;min-height:18px;font-family:'Space Mono',monospace}
.wg-status.err{color:#ff6a5c}
.wg-install{display:inline-block;margin-top:10px;font-size:13px;color:var(--purple-2);text-decoration:underline}
.wg-disc{font-size:11px;color:var(--mut);line-height:1.5;margin-top:22px}
.wg-back{display:inline-block;margin-top:16px;font-size:12px;color:var(--mut);letter-spacing:.06em}
.wg-back:hover{color:var(--neon)}

/* connected wallet pill */
.wallet-pill{
  display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:30px;
  padding:8px 10px 8px 14px;background:rgba(141,255,60,.07);
}
.wp-dot{width:9px;height:9px;border-radius:50%;background:var(--neon);box-shadow:0 0 10px var(--neon);flex:0 0 auto}
.wp-addr{font-family:'Space Mono',monospace;font-size:13px;color:var(--neon);flex:1;letter-spacing:.02em}
.wp-disc{margin-left:auto;background:transparent;border:1px solid var(--line);color:var(--fg);
  width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:13px;transition:all .2s;flex:0 0 auto}
.wp-disc:hover{border-color:#ff6a5c;color:#ff6a5c}


.dash{
  position:relative;z-index:1;
  display:grid;grid-template-columns:330px 1fr;gap:18px;
  height:100vh;padding:92px var(--gut) 18px;max-width:1500px;margin:0 auto;
}

/* ---------- SIDEBAR PANEL ---------- */
.panel{
  border:1px solid var(--line);background:rgba(18,10,34,.55);backdrop-filter:blur(10px);
  border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:22px;overflow-y:auto;
}
.panel__brand{display:flex;flex-direction:column;gap:2px;border-bottom:1px solid var(--line);padding-bottom:16px}
.panel__logo{font-family:'Archivo Black';font-size:26px;color:var(--neon);text-shadow:0 0 16px rgba(141,255,60,.4);letter-spacing:-.02em}
.panel__tag{font-size:10px;font-weight:700;letter-spacing:.18em;color:var(--purple-2)}
.panel__h{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--mut);margin-bottom:12px}

.provider-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ptab{
  border:1px solid var(--line);background:transparent;color:var(--fg);
  font:inherit;font-weight:700;font-size:13px;padding:11px 8px;border-radius:10px;cursor:pointer;
  transition:all .2s var(--ease);
}
.ptab:hover{border-color:var(--purple)}
.ptab.is-active{background:var(--neon);color:#0a0613;border-color:var(--neon);box-shadow:0 0 18px rgba(141,255,60,.35)}

.model-list{display:flex;flex-direction:column;gap:8px}
.mcard{
  text-align:left;border:1px solid var(--line);background:rgba(138,92,255,.05);
  color:var(--fg);font:inherit;padding:12px 14px;border-radius:12px;cursor:pointer;
  transition:all .2s var(--ease);display:flex;flex-direction:column;gap:3px;
}
.mcard:hover{border-color:var(--purple);transform:translateX(3px)}
.mcard.is-active{border-color:var(--neon);background:rgba(141,255,60,.08);box-shadow:0 0 16px rgba(141,255,60,.18)}
.mcard__top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.mcard__name{font-weight:800;font-size:14px}
.mcard__badge{font-family:'Space Mono',monospace;font-size:9px;letter-spacing:.08em;color:#0a0613;background:var(--purple-2);padding:2px 7px;border-radius:20px;white-space:nowrap}
.mcard.is-active .mcard__badge{background:var(--neon)}
.mcard__desc{font-size:11px;color:var(--mut);font-family:'Space Mono',monospace;line-height:1.3}

.seg{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.seg button{flex:1;background:transparent;color:var(--fg);font:inherit;font-weight:700;font-size:12px;padding:10px 4px;cursor:pointer;border:none;transition:all .2s}
.seg button.is-active{background:var(--purple);color:#fff}

.panel__active{margin-top:auto;border-top:1px solid var(--line);padding-top:16px;display:flex;flex-direction:column;gap:6px}
.pa-k{font-size:10px;font-weight:800;letter-spacing:.14em;color:var(--mut)}
.pa-badge{font-family:'Space Mono',monospace;font-size:14px;font-weight:700;color:var(--neon)}
.panel__note{font-size:11px;line-height:1.5;color:var(--mut)}

/* ---------- CHAT ---------- */
.chat{
  border:1px solid var(--line);background:rgba(10,6,19,.55);backdrop-filter:blur(10px);
  border-radius:18px;display:flex;flex-direction:column;overflow:hidden;
}
.chat__head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}
.chat__title{font-family:'Archivo Black';font-size:15px;letter-spacing:.04em;color:var(--fg);display:flex;align-items:center;gap:10px}
.live-dot{width:9px;height:9px;border-radius:50%;background:var(--neon);box-shadow:0 0 10px var(--neon);animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.chat__model{font-family:'Space Mono',monospace;font-size:12px;color:var(--purple-2);letter-spacing:.04em}

.chat__scroll{flex:1;overflow-y:auto;padding:24px 22px;display:flex;flex-direction:column;gap:18px}
.msg{max-width:760px;display:flex;flex-direction:column;gap:6px}
.msg--ai{align-self:flex-start}
.msg--user{align-self:flex-end;align-items:flex-end}
.msg__who{font-size:10px;font-weight:800;letter-spacing:.14em;color:var(--mut)}
.msg--ai .msg__who{color:var(--neon)}
.msg__body{
  font-size:15px;line-height:1.6;padding:14px 18px;border-radius:14px;
  border:1px solid var(--line);
}
.msg--ai .msg__body{background:rgba(138,92,255,.07);border-bottom-left-radius:4px}
.msg--user .msg__body{background:var(--neon);color:#0a0613;font-weight:600;border-bottom-right-radius:4px}
.msg__body b{color:var(--neon-2)}
.msg--user .msg__body b{color:#0a0613}
.muted{color:var(--mut)}
.cursor::after{content:"▋";color:var(--neon);animation:pulse 1s steps(2) infinite}

.starters{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.starters button{
  border:1px solid var(--line);background:rgba(138,92,255,.06);color:var(--fg);
  font:inherit;font-size:13px;font-weight:600;padding:10px 16px;border-radius:30px;cursor:pointer;
  transition:all .2s var(--ease);
}
.starters button:hover{border-color:var(--neon);color:var(--neon);transform:translateY(-2px)}

.composer{display:flex;align-items:center;gap:10px;padding:16px 22px;border-top:1px solid var(--line)}
.composer__badge{font-family:'Space Mono',monospace;font-size:10px;color:#0a0613;background:var(--purple-2);padding:6px 10px;border-radius:20px;white-space:nowrap;font-weight:700}
.composer input{
  flex:1;background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--fg);
  font:inherit;font-size:15px;padding:14px 18px;border-radius:30px;outline:none;transition:border-color .2s;
}
.composer input:focus{border-color:var(--neon)}
.composer input::placeholder{color:var(--mut)}
.composer button{
  width:50px;height:50px;border-radius:50%;border:none;cursor:pointer;
  background:var(--neon);color:#0a0613;font-size:20px;font-weight:800;
  box-shadow:0 0 20px rgba(141,255,60,.4);transition:transform .2s;flex:0 0 auto;
}
.composer button:hover{transform:scale(1.08)}
.composer button:disabled{opacity:.5;cursor:not-allowed;transform:none}
.chat__disclaimer{text-align:center;font-size:11px;color:var(--mut);padding:0 22px 14px}

/* scrollbars */
.panel::-webkit-scrollbar,.chat__scroll::-webkit-scrollbar{width:8px}
.panel::-webkit-scrollbar-thumb,.chat__scroll::-webkit-scrollbar-thumb{background:rgba(138,92,255,.4);border-radius:8px}

/* ---------- responsive ---------- */
@media(max-width:860px){
  .dash-body{overflow:auto;height:auto}
  .dash{grid-template-columns:1fr;height:auto;min-height:100vh;gap:14px}
  .panel{order:2}
  .chat{order:1;height:70vh}
}
