/* Advisor Copilot — aurora glass console
   Palette is a trading desk at night: ink base, aurora wash, mint/coral for
   direction, amber reserved exclusively for synthetic data so a fictional
   number can never be mistaken for a real one. */
:root{
  --ink-900:#070b14; --ink-800:#0b1120; --ink-700:#111a2e;
  --line:rgba(148,178,255,.14); --line-strong:rgba(148,178,255,.28);
  --text:#e8eefc; --text-dim:#8fa3c4; --text-faint:#5f7396;
  --mint:#5eead4; --mint-deep:#14b8a6;
  --coral:#fb7185; --amber:#fbbf24; --violet:#a78bfa; --azure:#60a5fa;
  --glass:rgba(19,28,48,.55); --glass-hi:rgba(30,42,70,.72);
  --shadow:0 24px 60px -20px rgba(0,0,0,.75);
  --display:"Instrument Serif",Georgia,serif;
  --sans:"Inter Tight","Inter",-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --r:16px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;background:radial-gradient(120% 90% at 50% 0%,#0d1526,var(--ink-900) 62%);color:var(--text);
  font:15px/1.6 var(--sans);-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
/* aurora: three slow-drifting gradient blooms behind frosted panels */
body::before{
  content:"";position:fixed;inset:-25%;z-index:-2;pointer-events:none;
  background:
    radial-gradient(46% 50% at 12% 6%,  rgba(45,212,191,.30), transparent 68%),
    radial-gradient(50% 52% at 88% 2%,  rgba(139,92,246,.32), transparent 70%),
    radial-gradient(56% 54% at 68% 92%, rgba(56,130,246,.26), transparent 70%),
    radial-gradient(40% 40% at 34% 62%, rgba(236,72,153,.13), transparent 72%);
  filter:blur(34px);animation:drift 44s ease-in-out infinite alternate;
}
body::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(148,178,255,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(148,178,255,.05) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(70% 60% at 50% 0%,#000,transparent 85%);
}
@keyframes drift{to{transform:translate3d(-3%,2%,0) scale(1.08)}}
@media (prefers-reduced-motion:reduce){
  body::before{animation:none}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ---------------------------------------------------------------- chrome */
.bar{
  position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:20px;
  padding:12px 22px;background:rgba(7,11,20,.72);
  backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}
.mark{
  width:30px;height:30px;border-radius:9px;display:grid;place-items:center;
  background:linear-gradient(145deg,var(--mint),var(--azure) 55%,var(--violet));
  color:#04121a;font:700 15px/1 var(--sans);
  box-shadow:0 0 24px -4px rgba(94,234,212,.55);
}
.brand b{font:500 17px/1 var(--display);letter-spacing:.01em}
.brand span{font:11px/1 var(--mono);color:var(--text-dim);letter-spacing:.14em;text-transform:uppercase}
nav{display:flex;gap:2px;margin-left:8px}
nav a{
  padding:7px 13px;border-radius:9px;text-decoration:none;color:var(--text-dim);
  font:13px/1 var(--sans);letter-spacing:.01em;transition:.18s;white-space:nowrap;
}
nav a:hover{color:var(--text);background:rgba(148,178,255,.08)}
nav a.on{color:var(--ink-900);background:linear-gradient(140deg,var(--mint),#7dd3fc);font-weight:600}
.bar .grow{flex:1}

.search{position:relative;display:flex;align-items:center}
.search input{
  width:190px;padding:9px 12px 9px 34px;border-radius:10px;border:1px solid var(--line);
  background:rgba(11,17,32,.85);color:var(--text);font:13px/1 var(--mono);
  letter-spacing:.12em;text-transform:uppercase;transition:.2s;
}
.search input:focus{outline:none;border-color:var(--mint);width:230px;
  box-shadow:0 0 0 4px rgba(94,234,212,.12)}
.search svg{position:absolute;left:11px;width:14px;height:14px;color:var(--text-dim)}
.kbd{
  position:absolute;right:9px;font:10px/1 var(--mono);color:var(--text-dim);
  border:1px solid var(--line);border-radius:5px;padding:3px 5px;pointer-events:none;
}

/* ---------------------------------------------------------------- tape */
.tape{
  display:flex;gap:0;overflow:hidden;border-bottom:1px solid var(--line);
  background:rgba(11,17,32,.5);backdrop-filter:blur(12px);
  position:sticky;top:55px;z-index:55;
}
.tape-track{display:flex;gap:0;animation:slide 62s linear infinite;will-change:transform}
.tape:hover .tape-track{animation-play-state:paused}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tick{
  display:flex;align-items:baseline;gap:8px;padding:9px 20px;white-space:nowrap;
  border-right:1px solid var(--line);cursor:pointer;font:12px/1 var(--mono);
}
.tick:hover{background:rgba(148,178,255,.07)}
.tick b{font-weight:600;letter-spacing:.08em}
.tick .px{color:var(--text)}
.tick .up{color:var(--mint)} .tick .dn{color:var(--coral)}
.tick.syn b{color:var(--amber)}
.tick .flash{animation:flash .9s ease-out}
@keyframes flash{0%{background:rgba(94,234,212,.25)}100%{background:transparent}}

/* ---------------------------------------------------------------- layout */
main{max-width:1280px;margin:0 auto;padding:26px 22px 120px}
.grid{display:grid;gap:18px}
.cols{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}
@media(max-width:1000px){.cols{grid-template-columns:1fr}}
.panel{
  position:relative;border:1px solid var(--line);border-radius:var(--r);
  background:linear-gradient(160deg,var(--glass-hi),var(--glass));
  backdrop-filter:blur(26px) saturate(150%);-webkit-backdrop-filter:blur(26px) saturate(150%);
  box-shadow:var(--shadow);padding:20px;
}
/* the glass edge: a hairline highlight along the top, like light catching a pane */
.panel::before{
  content:"";position:absolute;inset:0 0 auto;height:1px;border-radius:var(--r) var(--r) 0 0;
  background:linear-gradient(90deg,transparent,rgba(148,178,255,.5),transparent);
}
.panel h2{
  margin:0 0 3px;font:11px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;
  color:var(--text-dim);font-weight:500;
}
.panel .lede{margin:0 0 16px;color:var(--text-dim);font-size:13px}

/* ---------------------------------------------------------------- quote */
.quote-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.co{font:400 26px/1.15 var(--display);letter-spacing:.01em;margin:2px 0 4px}
.co-meta{font:11px/1.5 var(--mono);color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase}
.price{font:400 62px/1 var(--display);letter-spacing:-.02em;margin:16px 0 6px;
  font-variant-numeric:tabular-nums}
.delta{font:14px/1 var(--mono);display:flex;align-items:center;gap:9px}
.delta .chip{padding:4px 9px;border-radius:7px;font-size:12px}
.up-bg{background:rgba(94,234,212,.14);color:var(--mint)}
.dn-bg{background:rgba(251,113,133,.14);color:var(--coral)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:1px;
  margin-top:22px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.stat{background:rgba(11,17,32,.72);padding:11px 13px}
.stat dt{font:10px/1.4 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--text-dim)}
.stat dd{margin:5px 0 0;font:14px/1 var(--mono);font-variant-numeric:tabular-nums}
.badge{
  display:inline-flex;align-items:center;gap:6px;font:10px/1 var(--mono);
  letter-spacing:.13em;text-transform:uppercase;padding:5px 9px;border-radius:99px;
  border:1px solid currentColor;
}
.badge.live{color:var(--mint)} .badge.syn{color:var(--amber)}
.badge.live::before,.badge.syn::before{
  content:"";width:6px;height:6px;border-radius:50%;background:currentColor;
  box-shadow:0 0 8px currentColor;animation:pulse 2.4s ease-in-out infinite;
}
@keyframes pulse{50%{opacity:.35}}

/* ---------------------------------------------------------------- chat */
.research-col{display:flex;flex-direction:column;position:sticky;top:104px;
  max-height:calc(100vh - 132px)}
.chat{display:flex;flex-direction:column;gap:14px;flex:1;min-height:180px;
  overflow-y:auto;padding:0 6px 14px 0;scrollbar-width:thin;
  scrollbar-color:rgba(148,178,255,.25) transparent}
.chat::-webkit-scrollbar{width:6px}
.chat::-webkit-scrollbar-thumb{background:rgba(148,178,255,.22);border-radius:99px}
.rail-col{position:sticky;top:104px;max-height:calc(100vh - 132px);display:flex;flex-direction:column}
.rail{overflow-y:auto;padding-right:6px;scrollbar-width:thin;
  scrollbar-color:rgba(148,178,255,.25) transparent}
.rail::-webkit-scrollbar{width:6px}
.rail::-webkit-scrollbar-thumb{background:rgba(148,178,255,.22);border-radius:99px}
@media(max-width:1000px){.research-col,.rail-col{position:static;max-height:none}
  .chat{overflow:visible}}
.ev{animation:rise .3s cubic-bezier(.2,.7,.3,1) both}
.msg{display:flex;gap:12px;flex:0 0 auto;animation:rise .34s cubic-bezier(.2,.7,.3,1)}
@keyframes rise{from{opacity:0;transform:translateY(9px)}}
.msg .who{
  flex:0 0 28px;height:28px;border-radius:8px;display:grid;place-items:center;
  font:10px/1 var(--mono);letter-spacing:.06em;
}
.msg.you .who{background:rgba(148,178,255,.14);color:var(--text-dim)}
.msg.ai .who{background:linear-gradient(145deg,var(--mint),var(--violet));color:#04121a}
.bubble{flex:1;min-width:0}
.msg.you .bubble{color:var(--text-dim);font-size:14px;padding-top:5px}
.answer{white-space:pre-wrap;font-size:15px;line-height:1.72}
.answer strong{color:#fff}
.cchip{
  display:inline-block;font:10px/1 var(--mono);vertical-align:2px;margin:0 2px;
  padding:3px 6px;border-radius:6px;cursor:pointer;border:1px solid var(--line-strong);
  background:rgba(148,178,255,.1);color:var(--azure);transition:.16s;
}
.cchip:hover,.cchip.hot{background:var(--azure);color:var(--ink-900);border-color:var(--azure)}
.cchip.news{color:var(--amber);border-color:rgba(251,191,36,.4);background:rgba(251,191,36,.1)}
.cchip.news:hover,.cchip.news.hot{background:var(--amber);color:var(--ink-900)}

.composer{
  position:sticky;bottom:0;margin-top:16px;padding:14px;border-radius:14px;
  border:1px solid var(--line-strong);background:rgba(13,19,34,.86);
  backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);
  box-shadow:0 -12px 40px -18px rgba(0,0,0,.9);
}
.composer .row{display:flex;gap:10px;align-items:flex-end}
.composer textarea{
  flex:1;resize:none;border:0;background:transparent;color:var(--text);
  font:15px/1.5 var(--sans);padding:6px 2px;max-height:140px;
}
.composer textarea:focus{outline:none}
button{
  font:13px/1 var(--sans);font-weight:600;border:0;border-radius:10px;padding:11px 16px;
  cursor:pointer;color:#04121a;background:linear-gradient(140deg,var(--mint),#7dd3fc);
  transition:.18s;
}
button:hover{filter:brightness(1.08);transform:translateY(-1px)}
button:disabled{opacity:.45;cursor:default;transform:none;filter:none}
button.ghost{background:rgba(148,178,255,.08);color:var(--text-dim);
  border:1px solid var(--line);font-weight:400}
button.ghost:hover{color:var(--text);background:rgba(148,178,255,.14)}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.chips button{font:12px/1 var(--sans);padding:7px 11px}

/* ------------------------------------------------------- evidence rail */
.rail{display:flex;flex-direction:column;gap:10px}
.ev{
  flex:0 0 auto;
  border:1px solid var(--line);border-radius:12px;padding:12px 13px;
  background:rgba(11,17,32,.6);transition:.2s;position:relative;
}
.ev.hot{border-color:var(--azure);background:rgba(96,165,250,.09);
  box-shadow:0 0 0 3px rgba(96,165,250,.1)}
.ev-top{display:flex;align-items:center;gap:8px;margin-bottom:7px;flex-wrap:wrap}
.ev-tag{font:10px/1 var(--mono);padding:3px 6px;border-radius:5px;
  background:rgba(96,165,250,.16);color:var(--azure)}
.ev.news .ev-tag{background:rgba(251,191,36,.16);color:var(--amber)}
.ev-form{font:10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}
.ev a.ev-title{
  display:block;font-size:13.5px;color:var(--text);text-decoration:none;line-height:1.45;
  border-bottom:1px solid transparent;
}
.ev a.ev-title:hover{color:var(--mint);border-bottom-color:rgba(94,234,212,.4)}
.ev-prev{font-size:12px;color:var(--text-dim);margin:7px 0 0;line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.bars{display:grid;grid-template-columns:auto 1fr auto;gap:4px 8px;margin-top:10px;align-items:center}
.bars i{font:9px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);font-style:normal}
.bars u{height:3px;border-radius:2px;background:rgba(148,178,255,.12);text-decoration:none;display:block}
.bars u b{display:block;height:100%;border-radius:2px;background:linear-gradient(90deg,var(--azure),var(--mint))}
.bars s{font:10px/1 var(--mono);color:var(--text-dim);text-decoration:none;font-variant-numeric:tabular-nums}

/* ---------------------------------------------------------------- misc */
.trace{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.trace span{
  font:10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;
  padding:5px 9px;border-radius:7px;border:1px solid var(--line);color:var(--text-dim);
  display:flex;gap:7px;align-items:center;
}
.trace span em{font-style:normal;color:var(--mint)}
.trace span.run{border-color:var(--mint);color:var(--mint)}
.trace span.run::before{content:"";width:5px;height:5px;border-radius:50%;
  background:var(--mint);animation:pulse 1s infinite}
.list{display:flex;flex-direction:column;gap:9px}
.item{
  display:flex;gap:13px;align-items:flex-start;padding:12px 13px;border-radius:12px;
  border:1px solid var(--line);background:rgba(11,17,32,.5);text-decoration:none;color:inherit;
  transition:.18s;
}
.item:hover{border-color:var(--line-strong);background:rgba(19,28,48,.7);transform:translateX(2px)}
.item .form{
  flex:0 0 54px;text-align:center;font:10px/1 var(--mono);letter-spacing:.06em;padding:6px 0;
  border-radius:7px;background:rgba(96,165,250,.14);color:var(--azure);
}
.item.n .form{background:rgba(251,191,36,.14);color:var(--amber)}
.item h4{margin:0 0 3px;font:500 14px/1.45 var(--sans)}
.item p{margin:0;font:11px/1.5 var(--mono);color:var(--text-dim);letter-spacing:.04em}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px}
.metric{border:1px solid var(--line);border-radius:13px;padding:15px;background:rgba(11,17,32,.55)}
.metric b{display:block;font:400 34px/1 var(--display);margin-bottom:6px;font-variant-numeric:tabular-nums}
.metric i{font:10px/1.4 var(--mono);letter-spacing:.13em;text-transform:uppercase;
  color:var(--text-dim);font-style:normal}
.metric.good b{color:var(--mint)}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font:10px/1 var(--mono);letter-spacing:.13em;text-transform:uppercase;
  color:var(--text-dim);font-weight:500;padding:9px 10px;border-bottom:1px solid var(--line)}
td{padding:10px;border-bottom:1px solid rgba(148,178,255,.07);vertical-align:top}
td.mono{font:12px/1.5 var(--mono);color:var(--text-dim)}
.pass{color:var(--mint)} .fail{color:var(--coral)}
.doc{max-width:760px}
.doc h3{font:400 21px/1.3 var(--display);margin:26px 0 10px;color:#fff;scroll-margin-top:120px}
.doc section.hit{border-left:2px solid var(--mint);padding-left:16px;margin-left:-18px;
  background:linear-gradient(90deg,rgba(94,234,212,.07),transparent 60%);border-radius:0 10px 10px 0}
.doc section.hit h3{color:var(--mint)}
.doc pre{white-space:pre-wrap;font:12.5px/1.7 var(--mono);color:var(--text-dim);margin:0}
.spin{display:inline-flex;gap:6px;align-items:center;font:12px/1 var(--mono);color:var(--text-dim)}
.spin::before{content:"";width:11px;height:11px;border-radius:50%;
  border:2px solid rgba(148,178,255,.25);border-top-color:var(--mint);animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.err{color:var(--coral);font:12.5px/1.6 var(--mono)}
.note{font:11px/1.6 var(--mono);color:var(--text-dim);letter-spacing:.03em}
.hero-note{
  display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border-radius:11px;
  border:1px solid rgba(251,191,36,.3);background:rgba(251,191,36,.07);
  font-size:12.5px;color:#fcd9a0;margin-top:16px;
}
footer{max-width:1280px;margin:0 auto;padding:0 22px 40px;color:var(--text-dim);font-size:12px}
a{color:var(--mint)}
:focus-visible{outline:2px solid var(--mint);outline-offset:2px;border-radius:6px}
