/* Meridian Labs — Bloomberg-terminal-meets-modern-fintech */
:root{
  --bg:#070b12; --bg2:#0b111c; --panel:#0d1420; --panel2:#101927;
  --line:#1b2638; --line2:#243349;
  --txt:#dbe4f0; --mut:#7d8ca3; --dim:#4d5b73;
  --green:#3fd68c; --red:#ff6b6b; --gold:#e8b64c; --blue:#5aa9ff;
  --mono:ui-monospace,"SF Mono","Cascadia Code",Menlo,Consolas,monospace;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
body{background:var(--bg);color:var(--txt);
  font-family:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:13px;line-height:1.45;}
.hidden{display:none!important;}
.mono{font-family:var(--mono);}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;}
.pos{color:var(--green);} .neg{color:var(--red);}

#app{max-width:1480px;margin:0 auto;padding:0 14px 40px;}

/* ---------- top bar ---------- */
#topbar{display:flex;align-items:center;gap:18px;padding:14px 4px;border-bottom:1px solid var(--line);
  position:sticky;top:0;background:rgba(7,11,18,.94);backdrop-filter:blur(8px);z-index:20;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto;}
.logo{font-size:26px;color:var(--gold);}
.brand-name{font-weight:800;letter-spacing:3px;font-size:15px;}
.brand-sub{font-size:9.5px;letter-spacing:2px;color:var(--mut);}
.topstats{display:flex;gap:18px;flex-wrap:wrap;}
.tstat label{display:block;font-size:9px;letter-spacing:1.5px;color:var(--dim);font-weight:700;}
.tstat b{font-family:var(--mono);font-size:14px;font-weight:600;}
.actions{display:flex;gap:8px;}
.btn{background:var(--panel2);border:1px solid var(--line2);color:var(--txt);border-radius:8px;
  padding:9px 14px;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;}
.btn:hover{border-color:var(--gold);}
.btn:active{transform:scale(.97);}
.btn.primary{background:var(--gold);border-color:var(--gold);color:#231a05;}
.btn.ghost{background:transparent;}
.btn:disabled{opacity:.45;cursor:default;}
.regime{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:800;letter-spacing:1px;}
.regime.bull{background:rgba(63,214,140,.14);color:var(--green);}
.regime.bear{background:rgba(255,107,107,.14);color:var(--red);}
.regime.chop{background:rgba(255,180,84,.14);color:#ffb454;}

/* ---------- main grid ---------- */
#grid{display:grid;grid-template-columns:264px minmax(0,1fr) 348px;gap:14px;margin-top:14px;align-items:start;}
.col-head{font-size:10.5px;font-weight:800;letter-spacing:2px;color:var(--mut);margin:2px 2px 8px;
  display:flex;align-items:center;gap:8px;}
.live{color:var(--red);font-size:10px;animation:blink 1s infinite;}
@keyframes blink{50%{opacity:.25;}}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;}
.footnote{font-size:10.5px;color:var(--dim);margin:8px 2px;line-height:1.5;}

/* ---------- agents ---------- */
.acard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;
  cursor:pointer;transition:border-color .15s;}
.acard:hover{border-color:var(--line2);}
.acard.open{border-color:var(--gold);}
.arow1{display:flex;align-items:center;gap:9px;}
.aicon{font-size:19px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  background:var(--panel2);border-radius:8px;flex:none;}
.aname{font-weight:700;font-size:12.5px;}
.arole{font-size:10px;color:var(--mut);letter-spacing:.4px;}
.arep{margin-left:auto;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--gold);
  background:rgba(232,182,76,.1);padding:2px 7px;border-radius:12px;white-space:nowrap;}
.astats{display:flex;gap:12px;margin-top:8px;font-size:10.5px;color:var(--mut);}
.astats b{font-family:var(--mono);color:var(--txt);font-weight:600;}
.adetail{margin-top:10px;border-top:1px dashed var(--line2);padding-top:10px;}
.adetail h5{margin:0 0 6px;font-size:10px;letter-spacing:1.5px;color:var(--mut);}
.regbar{display:flex;align-items:center;gap:8px;margin:3px 0;font-size:10.5px;}
.regbar .rl{width:44px;color:var(--mut);}
.regbar .track{flex:1;height:6px;background:var(--bg2);border-radius:3px;overflow:hidden;}
.regbar .fill{height:100%;border-radius:3px;}
.regbar .rv{font-family:var(--mono);width:64px;text-align:right;}
.arecent{font-size:11px;color:var(--mut);margin-top:8px;}
.arecent div{padding:3px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;}

/* ---------- feed ---------- */
#feed{display:flex;flex-direction:column;gap:8px;max-height:78vh;overflow-y:auto;padding-right:2px;}
.fitem{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;
  animation:fadein .3s ease;}
@keyframes fadein{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.fhead{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:11px;}
.fdot{width:8px;height:8px;border-radius:50%;flex:none;}
.fagent{font-weight:700;}
.frole{color:var(--dim);}
.ftime{margin-left:auto;color:var(--dim);font-family:var(--mono);font-size:10.5px;}
.fthesis .tick{font-family:var(--mono);font-weight:800;font-size:13px;}
.dir{font-size:10px;font-weight:800;letter-spacing:1px;padding:2px 7px;border-radius:5px;}
.dir.long{background:rgba(63,214,140,.14);color:var(--green);}
.dir.short{background:rgba(255,107,107,.14);color:var(--red);}
.confbar{display:flex;align-items:center;gap:8px;margin:7px 0 4px;font-size:10.5px;color:var(--mut);}
.confbar .track{flex:1;height:5px;background:var(--bg2);border-radius:3px;overflow:hidden;}
.confbar .fill{height:100%;background:var(--blue);border-radius:3px;}
.ftext{font-size:12.5px;line-height:1.55;color:var(--txt);}
.fitem.rebuttal{margin-left:22px;border-color:#3a3f4d;background:#0e1420;border-left:3px solid var(--dim);}
.fitem.risk{border-color:rgba(255,180,84,.4);}
.fitem.pm{border-color:rgba(232,182,76,.55);background:#100e07;}
.fitem.resolve{padding:7px 12px;font-size:11.5px;background:var(--bg2);}
.fitem.system{padding:7px 12px;color:var(--dim);font-size:11.5px;background:transparent;border-style:dashed;}
.rebut-tag{font-size:10px;color:var(--dim);letter-spacing:1px;font-weight:700;}

/* ---------- portfolio ---------- */
#equity-chart{width:100%;display:block;}
.pf-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;}
.pfstat label{font-size:9px;letter-spacing:1.2px;color:var(--dim);display:block;font-weight:700;}
.pfstat b{font-family:var(--mono);font-size:13px;}
#positions .prow{display:flex;align-items:center;gap:8px;padding:8px 2px;border-top:1px solid var(--line);font-size:12px;}
#positions .prow:first-child{border-top:none;}
.prow .pt{font-family:var(--mono);font-weight:800;width:48px;}
.prow .pw{margin-left:auto;font-family:var(--mono);}
.prow .pp{font-family:var(--mono);width:74px;text-align:right;}
.pempty{color:var(--dim);font-size:12px;padding:8px 2px;}

/* ---------- tabs ---------- */
#tabs-sec{margin-top:18px;}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;}
.tab{background:none;border:none;color:var(--mut);font-size:12.5px;font-weight:700;padding:10px 14px;cursor:pointer;
  border-bottom:2px solid transparent;white-space:nowrap;letter-spacing:.3px;}
.tab.sel{color:var(--gold);border-bottom-color:var(--gold);}
.tabpanel{padding:14px 2px;overflow-x:auto;}
table.data{width:100%;border-collapse:collapse;font-size:12px;min-width:640px;}
table.data th{text-align:left;font-size:9.5px;letter-spacing:1.2px;color:var(--dim);padding:8px 10px;
  border-bottom:1px solid var(--line2);font-weight:700;white-space:nowrap;}
table.data td{padding:8px 10px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11.5px;white-space:nowrap;}
table.data td.l,table.data th.l{text-align:left;}
table.data tr:hover td{background:rgba(255,255,255,.02);}
.badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:10px;font-weight:800;}
.badge.hit{background:rgba(63,214,140,.14);color:var(--green);}
.badge.miss{background:rgba(255,107,107,.14);color:var(--red);}
.badge.open{background:rgba(90,169,255,.14);color:var(--blue);}
.calib-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;}
.calib-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px;}
.calib-card h5{margin:0 0 6px;font-size:11px;}
.calib-card canvas{width:100%;display:block;}
#ticker-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.tbtn{background:var(--panel2);border:1px solid var(--line2);color:var(--mut);border-radius:7px;
  padding:6px 11px;font-family:var(--mono);font-size:11.5px;font-weight:700;cursor:pointer;}
.tbtn.sel{color:var(--gold);border-color:var(--gold);}
#price-chart{width:100%;display:block;background:var(--panel);border:1px solid var(--line);border-radius:12px;}
.mkt-stats{display:flex;gap:20px;flex-wrap:wrap;margin:10px 2px;font-size:12px;}
.mkt-stats label{font-size:9px;letter-spacing:1.2px;color:var(--dim);display:block;font-weight:700;}
.mkt-stats b{font-family:var(--mono);font-size:13.5px;}
.about{max-width:760px;font-size:13px;line-height:1.65;}
.about h3{margin:0 0 8px;font-size:15px;letter-spacing:1px;}
.about ul{padding-left:18px;}
.about li{margin:6px 0;}
.sim-note{background:rgba(255,180,84,.08);border:1px solid rgba(255,180,84,.35);border-radius:10px;
  padding:10px 12px;font-size:12px;margin-top:12px;}
footer{margin-top:26px;padding-top:14px;border-top:1px solid var(--line);color:var(--dim);
  font-size:10.5px;letter-spacing:1px;text-align:center;}

@media (max-width:1080px){
  #grid{grid-template-columns:1fr;}
  #agents{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;}
  .acard{margin-bottom:0;}
  #feed{max-height:none;}
  #topbar{gap:10px;}
  .topstats{gap:12px;}
}
