/* ── FONT STACK — no external requests ── */
/* DM Mono → system monospace */
/* Syne → system UI sans */
/* Roboto → system UI sans */
@font-face{font-family:'Syne';src:local('PingFang SC'),local('Microsoft YaHei'),local('Segoe UI'),local('Arial');font-weight:400 800}
@font-face{font-family:'DM Mono';src:local('SF Mono'),local('Consolas'),local('Menlo'),local('Courier New');font-weight:400 500}
@font-face{font-family:'Roboto';src:local('SF Pro Text'),local('Segoe UI'),local('Arial');font-weight:400 700}
/* ═══ TOKENS ══════════════════════════════════════════════ */
:root{
  --bg:#f3f2ee;--surf:#fff;--surf2:#eceae4;--surf3:#e3e1d9;
  --bd:#dad8cd;--bd2:#c2c0b3;
  --tx:#17160e;--tx2:#38372e;--mu:#88867b;--mu2:#65635a;
  --ac:#1a6b3c;--acbg:#e6f4eb;
  --sh:0 1px 3px rgba(0,0,0,.06),0 4px 14px rgba(0,0,0,.05);
  --sh-sm:0 1px 2px rgba(0,0,0,.06);
  --sh-md:0 8px 32px rgba(0,0,0,.13);
  --sh-sheet:0 -4px 24px rgba(0,0,0,.12);
  --focus:0 0 0 3px rgba(26,107,60,.16);
  --r:10px;--rsm:7px;--rlg:14px;
  --hdr:52px;--bot-nav:54px;
  /* color-mode: green-up */
  --up:#157832;--upbg:#e3f5ea;
  --dn:#b82e1e;--dnbg:#fce9e7;
  --bl:#1947a3;--blbg:#e5edf9;
  --or:#a85400;--orbg:#fef1e2;
  --yl:#7a5f00;--ylbg:#fdf4d8;
}
[data-theme="dark"]{
  --bg:#0c0c11;--surf:#131318;--surf2:#1a1a22;--surf3:#22222c;
  --bd:#26263a;--bd2:#343450;
  --tx:#e6e5f0;--tx2:#a6a5ba;--mu:#505068;--mu2:#707088;
  --ac:#6eddaa;--acbg:#182a20;
  --sh:0 1px 4px rgba(0,0,0,.4),0 4px 20px rgba(0,0,0,.3);
  --sh-sm:0 1px 3px rgba(0,0,0,.3);
  --sh-md:0 8px 32px rgba(0,0,0,.5);
  --sh-sheet:0 -4px 32px rgba(0,0,0,.5);
  --focus:0 0 0 3px rgba(110,221,170,.18);
  --up:#4cda84;--upbg:#132018;
  --dn:#ff5f50;--dnbg:#28140f;
  --bl:#6699ff;--blbg:#141a30;
  --or:#ffaa44;--orbg:#2a1c08;
  --yl:#ffcc44;--ylbg:#261e08;
}
/* red-up mode overrides */
[data-color-mode="red-up"] { --up:#b82e1e;--upbg:#fce9e7;--dn:#157832;--dnbg:#e3f5ea; }
[data-color-mode="red-up"][data-theme="dark"] { --up:#ff5f50;--upbg:#28140f;--dn:#4cda84;--dnbg:#132018; }
[data-safe-mode="on"]{
  --up:#777;--dn:#777;
  --upbg:#ececec;--dnbg:#ececec;
}
[data-safe-mode="on"][data-theme="dark"]{
  --up:#8b8b8b;--dn:#8b8b8b;
  --upbg:#202026;--dnbg:#202026;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
.body,.view,.col-main{min-height:0;min-width:0}
body{background:var(--bg);color:var(--tx);font-family:'Syne','PingFang SC','Microsoft YaHei','Segoe UI',system-ui,sans-serif;overflow:hidden;transition:background .2s,color .2s;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--focus)}

/* ── HEADER ── */
.hdr{height:var(--hdr);display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--bd);background:var(--surf);position:relative;z-index:100;flex-shrink:0;box-shadow:var(--sh-sm)}
.logo{font-size:17px;font-weight:800;letter-spacing:-.5px}
.logo em{font-style:normal;color:var(--ac)}.logo sup{font-size:9px;color:var(--mu);font-weight:600;vertical-align:super}
.back-btn{display:none;align-items:center;gap:5px;background:none;border:none;color:var(--ac);font-family:'Syne',sans-serif;font-size:13px;font-weight:700;cursor:pointer;padding:4px 0}.back-btn.on{display:flex}
.hdr-nav{display:flex;gap:2px;background:var(--surf2);border:1px solid var(--bd);border-radius:9px;padding:3px}
.ntab{padding:4px 14px;border-radius:6px;font-size:12px;font-weight:700;cursor:pointer;color:var(--mu2);border:none;background:none;font-family:'Syne',sans-serif;transition:all .15s;position:relative;white-space:nowrap}
.ntab:hover{color:var(--tx)}.ntab.active{background:var(--surf);color:var(--ac);box-shadow:var(--sh-sm)}
.ndot{position:absolute;top:4px;right:5px;width:5px;height:5px;background:var(--dn);border-radius:50%;display:none}.ndot.on{display:block}
.hdr-r{display:flex;align-items:center;gap:6px}
.live{display:flex;align-items:center;gap:5px;font-family:'DM Mono',monospace;font-size:10px;color:var(--mu);white-space:nowrap}
.ldot{width:5px;height:5px;border-radius:50%;background:var(--up);flex-shrink:0}.ldot.off{background:var(--mu)}
.tbtn{width:30px;height:30px;border-radius:var(--rsm);border:1px solid var(--bd);background:var(--surf2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;transition:background .15s}.tbtn:hover{background:var(--surf3)}
.tbtn.safe-on{background:var(--surf3);color:var(--mu2)}
.logout-btn{font-size:11px;font-weight:700;color:var(--mu);background:none;border:none;cursor:pointer;font-family:'Syne',sans-serif;padding:4px 8px;border-radius:var(--rsm);transition:all .15s}.logout-btn:hover{color:var(--dn);background:var(--dnbg)}

/* ── SHELL ── */
.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}
.body{flex:1;overflow:hidden;display:flex;flex-direction:column}
.view{display:none;flex:1;overflow:hidden}.view.on{display:flex;flex-direction:column}
#vWatch.on{flex-direction:row}
#vTrades.on,#vIntel.on,#vStats.on,#vFollow.on,#vAdmin.on,#vLeaderboard.on,#vResearch.on,#vUserdetail.on{overflow-y:auto;padding:16px 20px;gap:12px;background:var(--bg);max-width:1000px;margin:0 auto;width:100%;box-sizing:border-box}#vUserdetail .poscard .pc-prices{grid-template-columns:repeat(4,1fr)}#vUserdetail .poscard .pc-times{flex-wrap:wrap}@media(min-width:769px){#vUserdetail .poscard{display:flex;flex-direction:row;gap:12px;width:100%;align-items:center}#vUserdetail .poscard .pc-left{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}#vUserdetail .poscard>div[style*="margin-top:4px"]{flex:0 0 200px;max-width:200px}}#vUserdetail .poscard>div[style*="margin-top:4px"]{width:100%}#vUserdetail .ud-wrap{max-width:1000px;margin:0 auto}.spk-row{display:flex;flex-direction:column;gap:12px}@media(min-width:769px){.spk-row{flex-direction:row!important}.spk-row>div{flex:1}}

/* ── SIDEBAR ── */
.col-sb{width:248px;flex-shrink:0;border-right:1px solid var(--bd);display:flex;flex-direction:column;overflow:hidden;background:var(--surf)}
.sb-top{padding:10px 12px 9px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.slbl{font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--mu)}
.badd{background:var(--ac);color:#fff;border:none;border-radius:var(--rsm);padding:3px 10px;font-family:'Syne',sans-serif;font-size:11px;font-weight:700;cursor:pointer;transition:opacity .15s}.badd:hover{opacity:.82}
.alist{flex:1;overflow-y:auto;padding:4px}
.aitem{display:flex;align-items:center;gap:8px;padding:9px 8px;border-radius:var(--r);cursor:pointer;border:1px solid transparent;margin-bottom:2px;transition:background .12s,border-color .12s;user-select:none}
.aitem:hover{background:var(--surf2)}.aitem.sel{background:var(--acbg);border-color:var(--ac)}
.aitem.dragging{opacity:.3}.aitem.dover{border-color:var(--ac);background:var(--acbg)}
.dh{width:10px;height:14px;display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;cursor:grab;flex-shrink:0;opacity:.12;transition:opacity .15s}.dh:active{cursor:grabbing}.aitem:hover .dh{opacity:.35}
.dh span{display:block;width:8px;height:1.5px;background:var(--mu);border-radius:1px}
.aico{width:28px;height:28px;border-radius:var(--rsm);display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:800;font-family:'DM Mono',monospace;flex-shrink:0}
.aico.crypto{background:var(--acbg);color:var(--ac)}.aico.stock{background:var(--blbg);color:var(--bl)}.aico.cn{background:var(--dnbg);color:var(--dn)}.aico.hk{background:var(--orbg);color:var(--or)}
.ameta{flex:1;min-width:0}.asym{font-size:12px;font-weight:700}.afull{font-size:9.5px;color:var(--mu);font-family:'DM Mono',monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.aprice{text-align:right;flex-shrink:0}.pval{font-family:'DM Mono',monospace;font-size:11px;font-weight:500}.pchg{font-family:'DM Mono',monospace;font-size:10px;margin-top:1px}
.market-title{font-size:9px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--mu);padding:10px 8px 4px}
.lookup-status{font-size:10px;color:var(--mu);min-height:14px;margin-top:-4px}.lookup-list{display:flex;flex-direction:column;gap:5px;max-height:180px;overflow:auto}.lookup-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--bd);border-radius:var(--rsm);cursor:pointer;background:var(--surf);transition:all .15s}.lookup-item:hover,.lookup-item.sel{border-color:var(--ac);background:var(--acbg)}.lookup-main{min-width:0}.lookup-sym{font-family:'DM Mono',monospace;font-size:12px;font-weight:700}.lookup-name{font-size:10px;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lookup-price{text-align:right;font-family:'DM Mono',monospace;font-size:10px;flex-shrink:0}.lookup-exists{font-size:9px;color:var(--dn);font-weight:700}
.up{color:var(--up)}.dn{color:var(--dn)}.nil{color:var(--mu)}
.pips{display:flex;gap:2px;margin-top:2px;justify-content:flex-end}.pip{width:5px;height:5px;border-radius:50%}
.pip.long{background:var(--up)}.pip.short{background:var(--dn)}.pip.pending{opacity:.3}.pip.open{animation:blink .9s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.12}}

/* ── DETAIL ── */
.col-main{flex:1;overflow-y:auto;padding:16px;background:var(--bg);display:flex;flex-direction:column;gap:12px}

/* ── HERO ── */
.hero-card{background:var(--surf);border:1px solid var(--bd);border-radius:var(--rlg);padding:14px 16px;box-shadow:var(--sh-sm)}
.hero-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.hero-left{display:flex;align-items:center;gap:10px}
.hero-ico{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;font-family:'DM Mono',monospace;flex-shrink:0}
.hero-ico.crypto{background:var(--acbg);color:var(--ac)}.hero-ico.stock{background:var(--blbg);color:var(--bl)}.hero-ico.cn{background:var(--dnbg);color:var(--dn)}.hero-ico.hk{background:var(--orbg);color:var(--or)}
.hero-sym{font-size:18px;font-weight:800;letter-spacing:-.5px}.hero-name{font-size:10px;color:var(--mu);font-family:'DM Mono',monospace;margin-top:1px}
.hero-right{text-align:right}.hero-price{font-family:'DM Mono',monospace;font-size:22px;font-weight:500;letter-spacing:-.5px}
.hero-chg{font-family:'DM Mono',monospace;font-size:12px;margin-top:3px}.hero-ts{font-family:'DM Mono',monospace;font-size:9px;color:var(--mu);margin-top:2px}
/* ── DASHBOARD STRIP ── */
.dash-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.dash-card{background:var(--surf);border:1px solid var(--bd);border-radius:var(--r);padding:10px 12px;box-shadow:var(--sh-sm)}
.dash-lbl{font-size:8px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--mu);margin-bottom:3px}
.dash-val{font-family:'Roboto',sans-serif;font-size:16px;font-weight:700;letter-spacing:-.3px;line-height:1}
.dash-val.up{color:var(--up)}.dash-val.dn{color:var(--dn)}.dash-val.mu{color:var(--mu2)}

/* ── FILTER BAR ── */
.filter-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:2px 0}
.filter-grp{display:flex;gap:3px}
.fpill{padding:4px 10px;border-radius:20px;font-size:10px;font-weight:700;cursor:pointer;border:1px solid var(--bd);background:var(--surf);color:var(--mu2);font-family:'Syne',sans-serif;transition:all .15s;white-space:nowrap}
.fpill:hover{border-color:var(--ac);color:var(--ac)}.fpill.active{background:var(--acbg);border-color:var(--ac);color:var(--ac)}
.fsel{width:auto;padding:5px 28px 5px 10px;font-family:'Syne',sans-serif;font-size:11px;font-weight:700;color:var(--mu2);background:var(--surf);border:1px solid var(--bd);border-radius:20px;cursor:pointer;transition:border-color .15s;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}
.fsel:hover,.fsel:focus{border-color:var(--ac)}
.filter-sep{width:1px;height:18px;background:var(--bd);flex-shrink:0;align-self:center}

/* ── SEC HEADER ── */
.sec-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sec-title{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--mu)}
.sec-count{font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;font-family:'DM Mono',monospace;background:var(--surf2);color:var(--mu)}

/* ── DATE GROUP ── */
.date-group{display:flex;flex-direction:column;gap:6px}
.dg-hd{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;padding:2px 0}
.dg-lbl{font-size:10px;font-weight:700;color:var(--mu2);font-family:'DM Mono',monospace}
.dg-count{font-size:9px;padding:1px 6px;border-radius:20px;background:var(--surf2);color:var(--mu);font-family:'DM Mono',monospace}
.dg-chevron{font-size:14px;color:var(--mu);transition:transform .18s;margin-left:auto;line-height:1}.dg-chevron.collapsed{transform:rotate(-90deg)}
.dg-body{display:flex;flex-direction:column;gap:6px}.dg-body.collapsed{display:none}

/* ── POSITION CARD ── */
.poscard{background:var(--surf);border:1px solid var(--bd);border-radius:var(--r);padding:12px 13px;box-shadow:var(--sh-sm)}
.poscard.open{border-left:3px solid var(--ac)}.poscard.pending{border-left:3px solid var(--bl)}.poscard.expired{border-left:3px solid var(--mu);opacity:.75}
.pc-top{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.pc-dir{font-size:12px;font-weight:700}.pc-asset{display:flex;flex-direction:column;gap:1px;margin-right:4px;min-width:0}.pc-sym{font-weight:700;font-size:12px;color:var(--tx);line-height:1.15}.pc-name{font-size:9.5px;color:var(--mu);font-family:'DM Mono',monospace;line-height:1.15;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcs{font-size:9px;font-weight:700;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}
.pcs.open{background:var(--acbg);color:var(--ac)}.pcs.pending{background:var(--blbg);color:var(--bl)}.pcs.expired{background:var(--surf3);color:var(--mu)}
.otyp{font-size:9px;font-weight:700;padding:2px 7px;border-radius:20px;text-transform:uppercase;letter-spacing:.4px}
.otyp.breakout{background:var(--orbg);color:var(--or)}.otyp.chase{background:var(--dnbg);color:var(--dn)}.otyp.limit{background:var(--surf2);color:var(--mu)}.otyp.market{background:var(--surf2);color:var(--mu)}
.expb{font-size:9px;padding:2px 7px;border-radius:20px;font-family:'DM Mono',monospace;font-weight:600}
.expb.short{background:var(--ylbg);color:var(--yl)}.expb.long{background:var(--blbg);color:var(--bl)}.expb.forever{background:var(--surf2);color:var(--mu)}
.pc-unr{font-family:'DM Mono',monospace;font-size:12px;margin-left:auto}
.pc-prices{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:8px}
.pc-p{background:var(--surf2);border:1px solid var(--bd);border-radius:var(--rsm);padding:5px 7px;text-align:center}
.pc-pl{font-size:8px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--mu);margin-bottom:2px}
.pc-pv{font-family:'DM Mono',monospace;font-size:11px}
.pc-times{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:7px;font-family:'DM Mono',monospace;font-size:10px;color:var(--mu2)}
.pc-time-item{display:flex;align-items:center;gap:4px}.pc-tl{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--mu)}
.pc-tags{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:6px}.pc-note{font-size:11px;color:var(--mu2);line-height:1.4;margin-bottom:6px}
.pc-act{display:flex;gap:5px;flex-wrap:wrap}

/* ── LEGAL ── */
#vUserdetail .poscard .pc-detail-meta{width:100%;flex:1 0 100%;order:3;margin-top:6px}
#vUserdetail .poscard .pc-detail-spk{width:100%}
@media(min-width:769px){#vUserdetail .poscard{flex-wrap:wrap;align-items:flex-start!important}#vUserdetail .poscard .pc-detail-spk{flex:0 0 200px;max-width:200px;order:2;margin-top:0!important}#vUserdetail .poscard .pc-left{order:1}#vUserdetail .poscard .pc-detail-meta{padding-left:0}}
.ud-summary-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0}.ud-summary-row .stat-card{border:1px solid var(--bd);border-radius:var(--rsm);background:var(--surf2);padding:10px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:58px}.ud-summary-row .sv,.ud-summary-row .stat-val{font-size:14px;font-weight:700;line-height:1.1}.ud-summary-row .sl{font-size:9px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--mu);margin-top:5px}@media(max-width:560px){.ud-summary-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
#vUserdetail .ud-wrap,#vUserdetail .kol-detail-wrap{width:100%;max-width:1000px;margin:0 auto}
#vUserdetail .admin-card{width:100%}
#vUserdetail .detail-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
#vUserdetail .detail-table-wrap .admin-table{width:100%}
@media(max-width:768px){#vUserdetail .detail-table-wrap .admin-table{display:table;table-layout:fixed;white-space:normal;min-width:0}#vUserdetail .detail-table-wrap .admin-table th,#vUserdetail .detail-table-wrap .admin-table td{padding:7px 5px;font-size:10px;word-break:break-word}#vUserdetail .detail-table-wrap .admin-table .cmono{font-size:10px!important}}
.legal-disclaimer{text-align:center;font-size:9px;color:var(--mu);opacity:.45;padding:20px 12px 12px;line-height:1.4;max-width:800px;margin:0 auto}

/* ── BUTTONS ── */
.bsm{background:none;border:1px solid var(--bd);border-radius:6px;padding:4px 10px;font-family:'Syne',sans-serif;font-size:11px;font-weight:600;color:var(--mu2);cursor:pointer;transition:all .15s;white-space:nowrap}
.bsm:hover{border-color:var(--ac);color:var(--ac)}.bsm.danger:hover{border-color:var(--dn);color:var(--dn)}
.bsm.warn{border-color:var(--bl);color:var(--bl)}
.bsm.ghost{opacity:.72}
.bsm:disabled{opacity:.45;cursor:not-allowed}.bsm:disabled:hover{border-color:var(--bd);color:var(--mu2)}
.ios-switch{width:42px;height:24px;border-radius:999px;border:none;background:var(--bd2);padding:2px;cursor:pointer;transition:background .18s;flex-shrink:0}
.ios-switch::after{content:'';display:block;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transform:translateX(0);transition:transform .18s}
.ios-switch.on{background:var(--ac)}
.ios-switch.on::after{transform:translateX(18px)}
.bico{background:none;border:1px solid var(--bd);color:var(--mu);border-radius:6px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:11px;flex-shrink:0;transition:all .15s}.bico:hover{border-color:var(--dn);color:var(--dn)}.bico.danger{border-color:var(--dn);color:var(--dn)}
.bfull{width:100%;background:var(--ac);color:#fff;border:none;border-radius:var(--rsm);padding:10px;font-family:'Syne',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:opacity .15s;margin-top:2px}.bfull:hover{opacity:.87}.bfull:disabled{opacity:.45;cursor:not-allowed}
.bcancel{background:none;border:1px solid var(--bd);color:var(--tx);border-radius:var(--rsm);padding:9px 16px;font-family:'Syne',sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s}.bcancel:hover{border-color:var(--ac)}
.del-lnk{font-size:11px;color:var(--mu);cursor:pointer;text-decoration:underline;text-underline-offset:2px;background:none;border:none;font-family:'Syne',sans-serif;transition:color .15s}.del-lnk:hover{color:var(--dn)}

/* ── FAB ── */
.fab{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom));right:20px;background:var(--ac);color:#fff;border:none;border-radius:28px;padding:0 20px;height:48px;font-family:'Syne',sans-serif;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 4px 16px rgba(26,107,60,.38);display:none;align-items:center;gap:8px;z-index:210;transition:transform .15s,opacity .2s}
.fab.on{display:flex}.fab:hover{transform:translateY(-1px)}.fab:active{transform:scale(.97)}

/* ── SHEET ── */
.sheet-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(3px);z-index:300;opacity:0;pointer-events:none;transition:opacity .22s;touch-action:manipulation}.sheet-overlay.on{opacity:1;pointer-events:auto}
.sheet{position:fixed;left:0;right:0;bottom:0;background:var(--surf);border-radius:20px 20px 0 0;box-shadow:var(--sh-sheet);z-index:310;max-height:92vh;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .28s cubic-bezier(.32,1,.5,1);overscroll-behavior:contain;touch-action:pan-y pinch-zoom}.sheet.on{transform:translateY(0)}
@media(min-width:769px){.sheet{left:50%;right:auto;bottom:40px;width:500px;transform:translateX(-50%) translateY(calc(100% + 60px));border-radius:var(--rlg)}.sheet.on{transform:translateX(-50%) translateY(0)}.sheet-drag{display:none}}
.sheet-drag{width:36px;height:4px;background:var(--bd2);border-radius:2px;margin:10px auto 0;flex-shrink:0}
.sheet-hd{padding:14px 18px 10px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.sheet-title{font-size:15px;font-weight:800;letter-spacing:-.3px}.sheet-price{font-size:13px;font-weight:600;color:var(--ac);font-family:'Roboto',sans-serif}
.sheet-close{background:none;border:none;cursor:pointer;color:var(--mu);font-size:18px;line-height:1;padding:2px 4px;border-radius:6px;transition:background .15s}.sheet-close:hover{background:var(--surf2)}
.sheet-body{overflow-y:auto;padding:14px 18px;display:flex;flex-direction:column;gap:9px;-webkit-overflow-scrolling:touch}

/* ── FORM ── */
.fg{margin-bottom:0}
label{display:block;font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--mu);margin-bottom:3px}
input,select,textarea{width:100%;background:var(--surf);border:1px solid var(--bd);border-radius:var(--rsm);padding:8px 10px;color:var(--tx);font-family:'DM Mono',monospace;font-size:12px;outline:none;transition:border-color .15s;-webkit-appearance:none;appearance:none}
input:focus,select:focus,textarea:focus{border-color:var(--ac)}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;padding-right:26px;cursor:pointer}
select option{background:var(--surf2);color:var(--tx)}
textarea{resize:none;font-family:'Syne',sans-serif;font-size:12px;line-height:1.5;height:46px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pinp{position:relative;display:flex}.pinp input{padding-right:26px;-moz-appearance:textfield;appearance:textfield}.pinp input::-webkit-outer-spin-button,.pinp input::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}
.psa{position:absolute;right:0;top:0;bottom:0;width:25px;display:flex;flex-direction:column}
.psb{flex:1;background:none;border:none;border-left:1px solid var(--bd);cursor:pointer;color:var(--mu);font-size:9px;display:flex;align-items:center;justify-content:center;transition:background .1s;user-select:none;-webkit-user-select:none}.psb:first-child{border-radius:0 var(--rsm) 0 0;border-bottom:1px solid var(--bd)}.psb:last-child{border-radius:0 0 var(--rsm) 0}.psb:hover{background:var(--surf3);color:var(--tx)}
.tpsl-grp{display:flex;flex-direction:column;gap:3px}.tpsl-row{display:grid;grid-template-columns:70px 1fr;gap:6px}.tpsl-hint{font-family:'DM Mono',monospace;font-size:10px;color:var(--ac);min-height:14px;padding-left:2px}
.size-hint{font-family:'DM Mono',monospace;font-size:10px;color:var(--ac);min-height:14px;padding-left:2px;margin-top:3px}
.dtog{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--rsm);overflow:hidden;border:1px solid var(--bd)}.dtbtn{padding:8px;font-family:'Syne',sans-serif;font-size:12px;font-weight:700;cursor:pointer;border:none;background:var(--surf);color:var(--mu2);transition:all .15s;text-align:center}.dtbtn:first-child{border-right:1px solid var(--bd)}.dtbtn.long{background:var(--upbg);color:var(--up)}.dtbtn.short{background:var(--dnbg);color:var(--dn)}
.oflag{display:flex;align-items:flex-start;gap:8px;padding:9px 11px;border-radius:var(--rsm);background:var(--surf);border:1px solid var(--bd);cursor:pointer;transition:all .15s;user-select:none}.oflag.on{background:var(--acbg);border-color:var(--ac)}
.ofcb{width:16px;height:16px;border-radius:4px;border:2px solid var(--bd2);display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;margin-top:1px;transition:all .15s}.oflag.on .ofcb{background:var(--ac);border-color:var(--ac);color:#fff}
.oftx{font-size:12px;font-weight:700;margin-bottom:1px}.ofsb{font-size:10px;color:var(--mu);line-height:1.4}
.rrmeter{padding:8px 11px;border-radius:var(--rsm);border:1px solid var(--bd);align-items:center;gap:10px;display:none}
.rrmeter.good{background:var(--upbg);border-color:var(--up);display:flex}.rrmeter.warn{background:var(--ylbg);border-color:var(--yl);display:flex}.rrmeter.bad{background:var(--dnbg);border-color:var(--dn);display:flex}
.rrv{font-family:'DM Mono',monospace;font-size:14px;font-weight:500;flex-shrink:0}.rrv.good{color:var(--up)}.rrv.warn{color:var(--yl)}.rrv.bad{color:var(--dn)}
.rrm{font-size:11px}.rrm.good{color:var(--up)}.rrm.warn{color:var(--yl)}.rrm.bad{color:var(--dn)}
.otype-hint{font-size:11px;padding:7px 10px;border-radius:var(--rsm);border:1px solid var(--bd);display:none}
.otype-hint.breakout{background:var(--orbg);border-color:var(--or);color:var(--or);display:block}
.otype-hint.chase{background:var(--dnbg);border-color:var(--dn);color:var(--dn);display:block}
.twrap{display:flex;flex-wrap:wrap;gap:4px;min-height:32px;padding:4px 8px;background:var(--surf);border:1px solid var(--bd);border-radius:var(--rsm);cursor:text;align-items:center;transition:border-color .15s}.twrap:focus-within{border-color:var(--ac)}
.tchip{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:20px;font-size:11px;font-weight:600;flex-shrink:0}.tchip button{background:none;border:none;cursor:pointer;color:inherit;opacity:.5;font-size:12px;padding:0;line-height:1}.tchip button:hover{opacity:1}
.tinput{border:none;outline:none;background:none;font-family:'Syne',sans-serif;font-size:12px;color:var(--tx);min-width:70px;flex:1}
.tdrop{position:absolute;z-index:400;background:var(--surf);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh-md);max-height:160px;overflow-y:auto;min-width:190px;margin-top:2px}
.topt{padding:8px 12px;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background .1s}.topt:hover{background:var(--surf2)}.topt-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.topt.new{color:var(--ac);font-weight:700}

/* ── RECORD TABLE ── */
.tcard{background:var(--surf);border:1px solid var(--bd);border-radius:var(--rlg);overflow:hidden;box-shadow:var(--sh-sm)}
.thd{padding:10px 14px;border-bottom:1px solid var(--bd);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ttl{font-size:13px;font-weight:700}
.cpill{font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;font-family:'DM Mono',monospace;background:var(--surf2);color:var(--mu)}
.emsg{padding:22px;text-align:center;color:var(--mu);font-size:13px;line-height:1.6}
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;border-top:1px solid var(--bd)}
.rec-tbl{width:100%;border-collapse:collapse;font-size:11px;min-width:680px}
.rec-tbl thead tr{background:var(--surf2)}
.rec-tbl th{position:sticky;top:0;z-index:2;padding:7px 10px;font-size:8px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--mu);text-align:left;white-space:nowrap;border-bottom:1px solid var(--bd);background:var(--surf2)}
.rec-tbl td{padding:8px 10px;border-bottom:1px solid var(--bd);vertical-align:middle}
.rec-tbl tr:last-child td{border-bottom:none}
.rec-tbl tbody tr{transition:background .1s}
.rec-tbl tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--surf2) 42%,transparent)}
.rec-tbl tbody tr:hover td{background:var(--surf2)}
.td-note{font-size:10px;color:var(--mu2);word-break:break-word;min-width:90px;max-width:180px;line-height:1.5}
.cmono{font-family:'DM Mono',monospace;color:var(--tx2)}
.cmono.up{color:var(--up)!important}.cmono.dn{color:var(--dn)!important}
.vrd{display:inline-flex;align-items:center;font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;white-space:nowrap}
.vrd.tp{background:var(--upbg);color:var(--up)}.vrd.sl{background:var(--dnbg);color:var(--dn)}.vrd.manual{background:var(--surf3);color:var(--mu2)}.vrd.expired{background:var(--surf3);color:var(--mu)}

/* ── STATS ── */
.srow{display:grid;gap:8px;grid-template-columns:repeat(5,1fr)}
.scard{background:var(--surf);border:1px solid var(--bd);border-radius:var(--rlg);padding:12px 14px;box-shadow:var(--sh-sm);cursor:default}
.scard.clickable{cursor:pointer;transition:border-color .15s}.scard.clickable:hover{border-color:var(--ac)}
.slb{font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--mu);margin-bottom:4px}
.svl{font-size:24px;font-weight:700;letter-spacing:-.3px;font-family:'Roboto',sans-serif;line-height:1}
.svl.a{color:var(--ac)}.svl.g{color:var(--up)}.svl.r{color:var(--dn)}
.ssub{font-size:10px;color:var(--mu);margin-top:3px;font-family:'DM Mono',monospace}
.ssub2{font-size:10px;color:var(--mu2);margin-top:2px;font-family:'DM Mono',monospace;border-top:1px solid var(--bd);padding-top:4px;margin-top:5px}
.tsg{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:8px}
.tscard{background:var(--surf);border:1px solid var(--bd);border-radius:var(--rlg);padding:12px 14px;box-shadow:var(--sh-sm);cursor:pointer;transition:border-color .15s}.tscard:hover{border-color:var(--ac)}
.tsname{font-size:12px;font-weight:700;margin-bottom:7px;display:flex;align-items:center;gap:6px}
.tsnums{display:grid;grid-template-columns:1fr 1fr;gap:5px}.tsn{font-family:'DM Mono',monospace;font-size:11px}.tsnl{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.6px;margin-bottom:1px}
.hmap-scroll{overflow-x:auto}
/* ── KOL GRADE BADGE ── */
.kol-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;font-size:9px;font-weight:800;flex-shrink:0;letter-spacing:0}
.kol-badge.S{background:#ff6b00;color:#fff}
.kol-badge.A{background:#7c3aed;color:#fff}
.kol-badge.B{background:#3b82f6;color:#fff}
.kol-badge.C{background:#555;color:#aaa}
.kol-badge.N{background:#10b981;color:#fff}
.kol-weight{font-family:'DM Mono',monospace;font-size:9px;color:var(--mu);margin-left:2px}
/* ── KOL SIGNAL PANEL ── */
.kol-panel{background:var(--surf);border:1px solid var(--bd);border-radius:var(--rlg);overflow:hidden;box-shadow:var(--sh-sm)}
.kol-panel-hd{padding:10px 14px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px}
.kol-panel-title{font-size:13px;font-weight:700}
.kol-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1px;background:var(--bd)}
.kol-item{background:var(--surf);padding:10px 13px;display:flex;flex-direction:column;gap:5px}
.kol-item-top{display:flex;align-items:center;gap:6px}
.kol-item-price{font-family:'DM Mono',monospace;font-size:15px;font-weight:700;letter-spacing:-.5px}
.kol-item-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.kol-item-sub{font-family:'DM Mono',monospace;font-size:9px;color:var(--mu)}



/* ── MODAL ── */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.42);backdrop-filter:blur(6px);z-index:500;display:flex;align-items:center;justify-content:center;padding:16px;touch-action:manipulation}
.modal{background:var(--surf);border:1px solid var(--bd);border-radius:var(--rlg);padding:20px;width:100%;max-width:440px;box-shadow:var(--sh-md);max-height:90vh;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;animation:mIn .18s cubic-bezier(.2,.8,.3,1)}
@keyframes mIn{from{transform:translateY(8px);opacity:.72}to{transform:translateY(0);opacity:1}}
.mtitle{font-size:15px;font-weight:800;margin-bottom:12px;letter-spacing:-.3px}
.minfo{font-size:11px;color:var(--mu2);margin-bottom:11px;font-family:'DM Mono',monospace;line-height:1.8;padding:8px 10px;background:var(--surf2);border-radius:var(--rsm);border:1px solid var(--bd)}
.macts{display:flex;gap:8px;margin-top:12px;align-items:center}.macts .bcancel,.macts .bfull{min-height:38px}
.divider{height:1px;background:var(--bd);margin:6px 0}

/* ── TOAST ── */
.ntray{position:fixed;bottom:16px;right:16px;z-index:999;display:flex;flex-direction:column;gap:6px;max-width:276px;pointer-events:none}
.notif{background:var(--surf);border:1px solid var(--bd);border-radius:var(--r);padding:10px 13px;box-shadow:var(--sh-md);animation:nIn .2s cubic-bezier(.2,.8,.3,1)}
.notif.ok{border-color:var(--up)}.notif.err{border-color:var(--dn)}.notif.info{border-color:var(--bl)}
@keyframes nIn{from{transform:translateX(112%);opacity:0}to{transform:translateX(0);opacity:1}}
.n-t{font-size:12px;font-weight:700;margin-bottom:2px}.notif.ok .n-t{color:var(--up)}.notif.err .n-t{color:var(--dn)}.notif.info .n-t{color:var(--bl)}.n-b{font-family:'DM Mono',monospace;font-size:10px;color:var(--mu2);line-height:1.4}
.hint{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:120px;gap:9px;color:var(--mu)}.hint-ico{width:42px;height:42px;border-radius:14px;background:var(--surf2);border:1px solid var(--bd);display:flex;align-items:center;justify-content:center;font-size:22px;opacity:.72}.hint-txt{font-size:12px;text-align:center;line-height:1.7}
.empty{display:flex;flex-direction:column;align-items:center;padding:30px 16px;gap:9px;color:var(--mu)}.empty-ico{width:44px;height:44px;border-radius:14px;background:var(--surf2);border:1px solid var(--bd);display:flex;align-items:center;justify-content:center;font-size:22px;opacity:.72}.empty-txt{font-size:12px;text-align:center;line-height:1.7}
::-webkit-scrollbar{width:3px;height:3px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:2px}


/* ── SPARKLINE ── */
.sparkline-wrap{margin-top:8px;border-top:1px solid var(--bd);padding-top:8px}
.sparkline-lbl{font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--mu);margin-bottom:4px}
.sparkline-svg{width:100%;height:52px;display:block;overflow:hidden}
/* ── TABS (for open/pending switch) ── */
.pos-tabs{display:flex;gap:2px;background:var(--surf2);border:1px solid var(--bd);border-radius:9px;padding:3px;margin-bottom:10px;flex-shrink:0}
.pos-tab{flex:1;padding:5px 8px;border-radius:6px;font-size:11px;font-weight:700;cursor:pointer;color:var(--mu2);border:none;background:none;font-family:'Syne',sans-serif;transition:all .15s;text-align:center}
.pos-tab.active{background:var(--surf);color:var(--ac);box-shadow:var(--sh-sm)}
/* ── PNL CHART CARD (stats) ── */
.pnl-chart-card{background:var(--surf);border:1px solid var(--bd);border-radius:var(--rlg);padding:12px 14px;box-shadow:var(--sh-sm)}
.pnl-chart-tabs{display:flex;gap:3px;margin-bottom:10px}
.pnl-chart-tab{padding:3px 10px;border-radius:20px;font-size:10px;font-weight:700;cursor:pointer;border:1px solid var(--bd);background:var(--surf);color:var(--mu2);font-family:'Syne',sans-serif;transition:all .15s}
.pnl-chart-tab.active{background:var(--acbg);border-color:var(--ac);color:var(--ac)}
/* ── MOBILE TRADE CARDS ── */
.trade-cards{display:none;flex-direction:column;gap:8px;padding:0}
.tc{background:var(--surf);border:1px solid var(--bd);border-radius:var(--r);padding:12px 13px;box-shadow:var(--sh-sm);position:relative}
.tc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}
.tc-sym{font-size:14px;font-weight:800;letter-spacing:-.3px}
.tc-pnl{font-family:'Roboto',sans-serif;font-size:15px;font-weight:700;letter-spacing:-.3px}
.tc-row{display:flex;gap:0;margin-bottom:5px}
.tc-cell{flex:1;min-width:0}
.tc-lbl{font-size:9px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--mu);margin-bottom:2px}
.tc-val{font-family:'DM Mono',monospace;font-size:11px;font-weight:500;color:var(--tx2)}
.tc-mid{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:8px}
.tc-tags{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:6px}
.tc-footer{display:flex;align-items:center;justify-content:space-between;padding-top:5px;border-top:1px solid var(--bd)}
.tc-meta{font-family:'DM Mono',monospace;font-size:9px;color:var(--mu);line-height:1.6}
.tc-acts{display:flex;gap:5px}
.tc-spk{margin-bottom:6px}
.tc-iv{font-size:10px;font-family:'DM Mono',monospace;padding:3px 7px;border-radius:8px;background:var(--surf3);display:inline-flex;align-items:center;gap:4px;margin-top:3px}
@media(max-width:768px){
  .trade-cards{display:flex}
  #vTrades .tbl-wrap{display:none}
}
.mob-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:calc(var(--bot-nav) + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surf) 94%,transparent);backdrop-filter:blur(14px);border-top:1px solid var(--bd);box-shadow:0 -8px 24px rgba(0,0,0,.08);z-index:200;padding-bottom:env(safe-area-inset-bottom)}
.mob-nav-inner{display:flex;height:var(--bot-nav)}
.mntab{flex:1;border:none;background:none;font-family:'Syne',sans-serif;font-size:11px;font-weight:700;color:var(--mu2);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:color .15s;position:relative}
.mntab.active{color:var(--ac)}.mntab.active::before{content:"";position:absolute;top:0;left:50%;width:22px;height:2px;border-radius:2px;background:var(--ac);transform:translateX(-50%)}.mntab-ico{width:26px;height:24px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;line-height:1;transition:background .15s}.mntab .nav-ico{width:18px;height:18px;flex:0 0 18px;border-radius:0;opacity:.82;-webkit-mask-size:18px 18px;mask-size:18px 18px}.mntab.active .mntab-ico{background:var(--acbg)}.mntab.active .mntab-ico.nav-ico{background:currentColor;opacity:1}.mntab .ndot{top:4px;right:calc(50% - 17px)}

@media(max-width:768px){
  body{overflow-y:auto;height:auto;padding-bottom:calc(var(--bot-nav) + env(safe-area-inset-bottom))}.app{height:auto;min-height:100dvh}.body{overflow:visible;flex:none}
  .view.on{display:flex;flex-direction:column;height:auto;overflow:visible}.hdr-nav{display:none}.live{display:none}.mob-nav{display:block}
  #vWatch.on{flex-direction:column}.col-sb,.col-main{width:100%;border:none}.col-main{padding:12px;border-right:none}
  .fab.on{bottom:calc(var(--bot-nav) + 14px + env(safe-area-inset-bottom))}.ntray{bottom:calc(var(--bot-nav) + 12px);left:12px;right:12px;max-width:none}  #vTrades.on,#vIntel.on,#vStats.on,#vFollow.on,#vAdmin.on,#vLeaderboard.on,#vResearch.on,#vUserdetail.on{padding:12px}.admin-table{display:block;overflow-x:auto;white-space:nowrap}#vLeaderboard .admin-table{white-space:normal}#vLeaderboard .admin-table tr{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:8px 0;border-bottom:1px solid var(--bd)}#vLeaderboard .admin-table th,#vLeaderboard .admin-table td{padding:2px 0;border:none}#vLeaderboard .admin-table th:not(:nth-child(8)){font-size:10px}#vLeaderboard .admin-table th:nth-child(1),#vLeaderboard .admin-table td:nth-child(1){width:36px;text-align:center}#vLeaderboard .admin-table th:nth-child(2),#vLeaderboard .admin-table td:nth-child(2){flex:1}#vLeaderboard .admin-table th:nth-child(3),#vLeaderboard .admin-table td:nth-child(3){font-family:'DM Mono',monospace;font-size:12px}#vLeaderboard .admin-table th:nth-child(4),#vLeaderboard .admin-table td:nth-child(4),#vLeaderboard .admin-table th:nth-child(5),#vLeaderboard .admin-table td:nth-child(5),#vLeaderboard .admin-table th:nth-child(6),#vLeaderboard .admin-table td:nth-child(6),#vLeaderboard .admin-table th:nth-child(7),#vLeaderboard .admin-table td:nth-child(7){font-size:10px}#vLeaderboard .admin-table th:nth-child(8),#vLeaderboard .admin-table td:nth-child(8){width:100%;order:99;padding-top:4px;flex:1 1 100%}#vLeaderboard .admin-table td:nth-child(8) svg{width:100%!important;height:28px!important}#vStats .rec-tbl{min-width:0;width:100%}.srow{grid-template-columns:repeat(2,1fr)}.dash-strip{grid-template-columns:repeat(3,1fr)!important}.dash-strip{grid-template-columns:repeat(3,1fr)}.logout-btn{font-size:10px;padding:2px 6px}
}
@media(max-width:480px){.hdr{padding:0 13px}.logo sup{display:none}.modal{padding:15px}.macts{flex-direction:column-reverse}.macts .bcancel,.macts .bfull{width:100%;margin-top:0}}

/* ── ADMIN PAGE ── */
.admin-card{background:var(--surf);border:1px solid var(--bd);border-radius:var(--rlg);padding:14px 16px;box-shadow:var(--sh-sm);margin-bottom:12px}
.admin-card-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.system-health-header{align-items:flex-start;gap:16px}.system-health-header-actions{display:flex;align-items:center;gap:12px;color:var(--mu);font-size:11px}.system-health-status{display:inline-flex;align-items:center;gap:6px;color:var(--health-dot-color);font-size:11px;white-space:nowrap}.system-health-dot{display:inline-block;width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:var(--health-dot-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--health-dot-color) 18%,transparent)}
.system-health-overview{display:flex;align-items:center;gap:20px;padding:18px 20px;border:1px solid var(--bd);border-radius:var(--rlg);background:var(--surf2)}.system-health-overview-copy{flex:1;min-width:0}.system-health-overview h2{display:flex;align-items:center;gap:10px;margin:0;font-size:20px;line-height:1.35}.system-health-overview h2 .system-health-dot{width:11px;height:11px;flex:0 0 11px}.system-health-overview p{margin:5px 0 12px;color:var(--mu);font-size:12px}.system-health-strip{display:flex;gap:4px}.system-health-strip i{flex:1;height:8px;min-width:3px;border-radius:3px;background:var(--health-dot-color)}.system-health-counts{display:grid;grid-template-columns:repeat(4,minmax(54px,1fr));gap:7px;min-width:min(100%,280px)}.system-health-count{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:7px 5px;border:1px solid var(--bd);border-radius:8px;background:var(--surf)}.system-health-count strong{color:var(--health-dot-color);font-size:18px}.system-health-count span{color:var(--mu);font-size:10px}
.system-health-body{display:grid;grid-template-columns:minmax(205px,26%) minmax(0,1fr);gap:14px;margin-top:14px}.system-health-sidebar,.system-health-groups{display:flex;flex-direction:column;gap:12px;min-width:0}.system-health-side-panel{padding:13px;border:1px solid var(--bd);border-radius:9px}.system-health-side-panel h3,.system-health-group-heading h3{margin:0;font-size:12px}.system-health-side-panel h3{display:flex;justify-content:space-between;gap:8px}.system-health-side-panel h3 span{color:var(--mu);font-weight:500}.system-health-attention-item{padding:10px 0;border-bottom:1px solid var(--bd)}.system-health-attention-item:last-child{padding-bottom:0;border-bottom:0}.system-health-attention-item>div{display:flex;align-items:center;justify-content:space-between;gap:6px}.system-health-attention-item strong{font-size:11px}.system-health-attention-item p,.system-health-empty,.system-health-note{margin:4px 0 0;color:var(--mu);font-size:10px;line-height:1.5;overflow-wrap:anywhere}.system-health-distribution{background:var(--surf2)}.system-health-legend-row,.system-health-legend-row span{display:flex;align-items:center}.system-health-legend-row{justify-content:space-between;margin-top:9px;font-size:11px}.system-health-legend-row span{gap:8px;color:var(--mu)}.system-health-legend-row .system-health-dot{width:7px;height:7px}.system-health-group-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.system-health-group-heading span{color:var(--mu);font-size:10px}.system-health-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.system-health-service{display:flex;align-items:flex-start;gap:9px;min-width:0;padding:10px;border:1px solid var(--bd);border-radius:8px;background:var(--surf)}.system-health-service>.system-health-dot{width:7px;height:7px;flex:0 0 7px;margin-top:4px}.system-health-service-copy{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.system-health-service-copy strong{font-size:11px;line-height:1.3}.system-health-service-copy span,.system-health-service-copy small{color:var(--mu);font-size:10px;line-height:1.4;overflow-wrap:anywhere}.system-health-service-copy small{font-size:9px}.system-health-service .system-health-status{font-size:10px}.system-health-service .system-health-status .system-health-dot{width:6px;height:6px;flex:0 0 6px}
@media(max-width:900px){.system-health-body{grid-template-columns:1fr}.system-health-sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.system-health-sidebar .system-health-side-panel:last-child{grid-column:1/-1}}
@media(max-width:640px){.system-health-overview{flex-direction:column;align-items:stretch;padding:14px}.system-health-header{flex-direction:column}.system-health-header-actions{width:100%;justify-content:space-between}.system-health-sidebar,.system-health-group-grid{grid-template-columns:1fr}.system-health-sidebar .system-health-side-panel:last-child{grid-column:auto}.system-health-service .system-health-status{margin-left:auto}}
.admin-card-title{font-size:14px;font-weight:800}
.admin-card-sub{font-size:10px;color:var(--mu);margin-top:2px}
.admin-table{width:100%;border-collapse:collapse;font-size:12px}
.admin-table th{position:sticky;top:0;z-index:1;text-align:left;padding:8px 8px;font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--mu);border-bottom:1px solid var(--bd);background:var(--surf)}
.admin-table td{padding:8px 8px;border-bottom:1px solid var(--surf2);font-size:11px}
.admin-table tr:nth-child(even) td{background:color-mix(in srgb,var(--surf2) 35%,transparent)}
.admin-table tr:hover td{background:var(--surf2)}
.admin-code{font-family:'DM Mono',monospace;font-size:12px;font-weight:700;color:var(--ac)}
.admin-badge{display:inline-block;padding:2px 7px;border-radius:10px;font-size:9px;font-weight:700}
.admin-badge.used{background:var(--surf3);color:var(--mu)}
.admin-badge.active{background:var(--acbg);color:var(--ac)}
.admin-badge.admin-role{background:var(--orbg);color:var(--or)}
.admin-badge.user-role{background:var(--blbg);color:var(--bl)}
.intel-shell{width:100%;display:block;min-height:calc(100vh - var(--hdr) - 64px)}
.intel-tabs{display:flex;gap:3px;background:var(--surf2);border:1px solid var(--bd);border-radius:8px;padding:2px;margin-bottom:10px}
.intel-tab{flex:1;border:none;background:transparent;color:var(--mu2);border-radius:6px;padding:5px 8px;font-size:11px;font-weight:800;cursor:pointer;font-family:'Syne',sans-serif}
.intel-tab.active{background:var(--surf);color:var(--ac);box-shadow:var(--sh-sm)}
.oc-signal{background:var(--surf);border:1px solid var(--bd);border-radius:var(--rlg);box-shadow:var(--sh-sm);padding:14px 16px;margin-bottom:10px}
.oc-signal.short{border-left:3px solid var(--dn)}.oc-signal.long{border-left:3px solid var(--up)}
.oc-sig-top{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:5px;padding:4px 0 8px;margin-bottom:10px}
.oc-sig-symbol{font-family:'DM Mono',monospace;font-size:12px;font-weight:800;letter-spacing:1.8px;color:var(--mu);line-height:1}
.oc-sig-title{font-size:23px;font-weight:900;line-height:1.15;letter-spacing:0}.oc-sig-title.short{color:var(--dn)}.oc-sig-title.long{color:var(--up)}
.oc-sig-raw{background:var(--surf2);border:1px solid var(--bd);border-radius:var(--rsm);padding:10px 12px;margin-top:10px;white-space:pre-wrap;font-size:12px;line-height:1.65;color:var(--tx2);font-family:'Syne','PingFang SC','Microsoft YaHei','Segoe UI',system-ui,sans-serif}
.intel-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.intel-item{border:1px solid var(--bd);background:var(--surf);border-radius:var(--rsm);padding:10px 11px;cursor:pointer;transition:border-color .15s,background .15s}
.intel-item:hover,.intel-item.active{border-color:var(--ac);background:var(--acbg)}
.intel-title{font-size:12px;font-weight:800;line-height:1.35;color:var(--tx)}
.intel-meta{font-family:'DM Mono',monospace;font-size:9px;color:var(--mu);margin-top:5px}
.intel-doc{background:var(--surf);border:1px solid var(--bd);border-radius:var(--rlg);box-shadow:var(--sh-sm);padding:18px 20px;min-height:360px}
.intel-docbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.intel-doc h1{font-size:22px;line-height:1.25;margin:0 0 14px}.intel-doc h2{font-size:17px;margin:18px 0 8px}.intel-doc h3{font-size:14px;margin:14px 0 7px}.intel-doc p{font-size:13px;line-height:1.7;margin:8px 0;color:var(--tx2)}.intel-doc ul,.intel-doc ol{padding-left:20px;margin:8px 0}.intel-doc li{font-size:13px;line-height:1.7;margin:3px 0}.intel-doc code{font-family:'DM Mono',monospace;background:var(--surf2);border:1px solid var(--bd);border-radius:5px;padding:1px 4px;font-size:11px}.intel-doc pre{background:var(--surf2);border:1px solid var(--bd);border-radius:var(--rsm);padding:10px;overflow:auto}.intel-doc blockquote{border-left:3px solid var(--ac);padding-left:10px;color:var(--mu2);margin:10px 0}.intel-doc hr{border:none;border-top:1px solid var(--bd);margin:16px 0}.intel-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:10px 0}.intel-doc table{width:100%;border-collapse:collapse;font-size:12px;min-width:0;table-layout:fixed}.intel-doc th,.intel-doc td{border:1px solid var(--bd);padding:7px 9px;text-align:left;vertical-align:top;line-height:1.5;word-break:break-word;white-space:normal}.intel-doc th{background:var(--surf2);font-size:10px;font-weight:800;color:var(--mu2)}.intel-empty{display:flex;align-items:center;justify-content:center;min-height:240px;color:var(--mu);font-size:12px;text-align:center}
.review-panel{margin-bottom:12px;display:flex;flex-direction:column;gap:10px}.review-summary{background:var(--surf);border:1px solid var(--bd);border-radius:var(--rlg);box-shadow:var(--sh-sm);padding:13px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px}.review-summary-title{font-size:14px;font-weight:800}.review-summary-sub{font-size:10px;color:var(--mu);margin-top:3px}.review-summary-state{flex:0 0 auto}.review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--surf);border:1px solid var(--bd);border-radius:var(--r);padding:9px 12px}.review-select-all,.review-select-cell{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;cursor:pointer;min-height:30px;position:relative}.review-select-cell{padding:4px 5px;border-radius:6px;white-space:nowrap}.review-select-cell:hover{background:var(--acbg)}.review-select-all input,.review-select-cell input{position:absolute;opacity:0;width:1px!important;height:1px!important;pointer-events:none}.review-checkmark{width:19px;height:19px;flex:0 0 19px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--bd2);border-radius:6px;background:var(--surf);color:transparent;font-family:Arial,sans-serif;font-size:13px;line-height:1;transition:background .12s,border-color .12s,color .12s}.review-select-all input:checked+.review-checkmark,.review-select-cell input:checked+.review-checkmark{background:var(--ac);border-color:var(--ac);color:#fff}.review-select-all input:focus-visible+.review-checkmark,.review-select-cell input:focus-visible+.review-checkmark{outline:2px solid var(--ac);outline-offset:2px}.review-select-all.disabled,.review-select-cell.disabled{cursor:not-allowed;color:var(--mu)}.review-select-all.partial .review-checkmark{background:var(--acbg);border-color:var(--ac);color:var(--ac);font-size:0}.review-select-all.partial .review-checkmark:after{content:'−';font-size:15px;line-height:1}.review-select-count{font-size:10px;color:var(--mu2);margin-left:2px}.review-submit-bar{display:flex;justify-content:flex-end;position:sticky;bottom:12px;z-index:4;padding-top:2px}.review-submit-bar .bfull{width:auto;margin-top:0;box-shadow:var(--sh-md)}.review-table-wrap{width:100%;overflow:visible;background:var(--surf);border:1px solid var(--bd);border-radius:var(--rlg);box-shadow:var(--sh-sm)}.review-table{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed;font-size:11px}.review-table th,.review-table td{border-bottom:1px solid var(--bd);padding:10px 8px;text-align:left;vertical-align:top;line-height:1.5;word-break:break-word;overflow-wrap:anywhere}.review-table th{background:var(--surf2);font-size:9px;letter-spacing:.45px;color:var(--mu2)}.review-table th:nth-child(1){width:62px}.review-table th:nth-child(2){width:15%}.review-table th:nth-child(3){width:7%}.review-table th:nth-child(4){width:6%}.review-table th:nth-child(5),.review-table th:nth-child(6),.review-table th:nth-child(7){width:9%}.review-table th:nth-child(8){width:9%}.review-table th:nth-child(9){width:20%}.review-table th:nth-child(10){width:10%}.review-mobile-summary{display:none}.review-complete .review-table th:first-child,.review-complete .review-table td:first-child{display:none}.review-table tr:last-child td{border-bottom:none}.review-table tr.review-readonly{background:color-mix(in srgb,var(--surf2) 55%,transparent)}.review-table tr.review-selected{background:color-mix(in srgb,var(--ac) 8%,transparent)}.review-chapter{font-weight:800}.review-dir{font-weight:800;white-space:nowrap}.review-dir.long{color:var(--up)}.review-dir.short{color:var(--dn)}.review-price{font-family:'DM Mono',monospace;font-size:10px;white-space:normal}.review-default{color:var(--mu);font-family:'Syne',sans-serif;font-size:10px}.review-evidence a,.review-position-link{color:var(--bl);font-weight:700;text-decoration:none}.review-evidence a:hover,.review-position-link:hover{text-decoration:underline}.review-audit{color:var(--tx2)}.review-status{display:inline-block;font-size:9px;font-weight:800;padding:3px 7px;border-radius:20px;white-space:nowrap}.review-status.confirmed{color:var(--up);background:var(--upbg)}.review-status.rejected{color:var(--dn);background:var(--dnbg)}.review-status.pending_review{color:var(--or);background:var(--orbg)}.review-status-action{border:0;cursor:pointer;font-family:'Syne',sans-serif}.review-status-action:hover{filter:brightness(.95)}.review-error{background:var(--dnbg);border:1px solid color-mix(in srgb,var(--dn) 35%,var(--bd));color:var(--dn);border-radius:var(--rsm);padding:10px 12px;font-size:11px;line-height:1.5}.review-confirm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin:10px 0}.review-confirm-item{padding:8px 9px;background:var(--surf2);border:1px solid var(--bd);border-radius:var(--rsm)}.review-confirm-item span{display:block;font-size:9px;color:var(--mu);margin-bottom:3px}.review-confirm-item b{display:block;font-family:'DM Mono',monospace;font-size:11px;word-break:break-word}.review-batch-list{max-height:260px;overflow:auto;padding-right:2px}.review-batch-item{border-top:1px solid var(--bd);padding:9px 0}.review-batch-item:first-child{border-top:none}.review-batch-item-title{font-size:11px;font-weight:800;margin-bottom:5px}.review-batch-values{display:flex;gap:8px;flex-wrap:wrap;font-family:'DM Mono',monospace;font-size:10px;color:var(--tx2)}.review-batch-values span{padding:3px 5px;background:var(--surf2);border-radius:4px}.poscard.review-focus{animation:reviewFocus 1.8s ease-out}@keyframes reviewFocus{0%,35%{border-color:var(--ac);box-shadow:0 0 0 4px var(--acbg)}100%{box-shadow:var(--sh-sm)}}
.review-duplicate{margin-top:7px;padding:7px 8px;border-radius:6px;background:var(--orbg);color:var(--or);font-size:10px;line-height:1.5}.review-duplicate.open{background:var(--dnbg);color:var(--dn)}.review-duplicate-add{display:flex;align-items:flex-start;gap:7px;margin-top:6px;color:var(--tx);font-weight:700;cursor:pointer}.review-duplicate-add input{margin-top:2px}
@media(max-width:768px){.intel-shell{min-height:0}.oc-sig-title{font-size:21px}.intel-doc{padding:14px 13px}.intel-doc h1{font-size:19px}.intel-list{display:flex;flex-direction:column}.intel-docbar{align-items:flex-start;flex-direction:column}.review-toolbar{align-items:flex-start;flex-direction:column}.review-confirm-grid{grid-template-columns:1fr}.review-submit-bar{bottom:calc(var(--bot-nav) + 10px + env(safe-area-inset-bottom));padding:8px 0;background:linear-gradient(to bottom,transparent,var(--bg) 26%)}.review-submit-bar .bfull{width:100%;margin-top:0}.review-table-wrap{border:0;box-shadow:none;background:transparent}.review-table,.review-table tbody,.review-table tr,.review-table td{display:block;width:100%}.review-table thead{display:none}.review-table tr{margin-bottom:8px;border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;background:var(--surf)}.review-table tr.review-readonly{background:var(--surf2)}.review-table td{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;border:none;padding:7px 10px}.review-table td:before{content:attr(data-label);font-size:9px;font-weight:800;color:var(--mu);padding-top:1px}.review-table td[data-label="选择"]{display:flex;align-items:center}.review-table td[data-label="选择"]:before,.review-table td.review-mobile-summary:before{display:none}.review-table td[data-label="章节"],.review-table td[data-label="审计说明"]{grid-template-columns:72px minmax(0,1fr)}.review-table td[data-label="章节"]{font-size:12px}.review-table td[data-label="审计说明"]{padding-bottom:10px}.review-table td[data-label="KOL"],.review-table td[data-label="方向"],.review-table td[data-label="入场"],.review-table td[data-label="TP"],.review-table td[data-label="SL"],.review-table td[data-label="视频证据"]{display:none}.review-table td.review-mobile-summary{display:block;padding:8px 10px;background:var(--surf2)}.review-mobile-fields{display:flex;align-items:center;gap:5px;min-width:0;white-space:nowrap;font-size:10px;color:var(--tx2)}.review-mobile-fields span{flex:0 0 auto}.review-mobile-kol{max-width:72px;overflow:hidden;text-overflow:ellipsis;font-weight:800;color:var(--tx)}.review-mobile-dir.long{color:var(--up);font-weight:800}.review-mobile-dir.short{color:var(--dn);font-weight:800}.review-mobile-fields a{margin-left:auto;color:var(--bl);font-weight:800;text-decoration:none}.review-mobile-fields .review-default{font-size:10px}}
@media(max-width:768px){
  .review-table td[data-label="来源 / 章节"]{font-size:12px}
  .review-table tr.review-readonly,
  .review-table tr.review-selected{background:var(--surf)}
  .review-table td.review-mobile-summary{background:transparent;border-bottom:1px solid var(--bd);padding:8px 10px}
  .review-mobile-fields{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:center;gap:0;width:100%;text-align:center}
  .review-mobile-fields span,
  .review-mobile-fields a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 3px}
  .review-mobile-kol{max-width:none}
  .review-mobile-fields a{margin-left:0}
}

/* ── V6 VISUAL REFINEMENT — Vintsy reference system; presentation only ── */
:root{
  --bg:#fafafa;--surf:#fff;--surf2:#f5f5f5;--surf3:#eaeaea;
  --bd:#e7e7f0;--bd2:#d6d6e2;
  --tx:#0b0b0b;--tx2:#4a5565;--mu:#9ca3af;--mu2:#666;
  --ac:#7c3aed;--acbg:#f1edff;
  --sh:0 1px 3px rgba(11,11,11,.10);--sh-sm:0 1px 3px rgba(11,11,11,.08);
  --sh-md:0 8px 32px rgba(11,11,11,.15);--sh-sheet:0 -4px 24px rgba(11,11,11,.12);
  --focus:0 0 0 3px rgba(124,58,237,.18);
  --r:12px;--rsm:8px;--rlg:16px;--hdr:64px;
  --up:#009966;--upbg:#e5f7ef;--dn:#dc4a4a;--dnbg:#fff0f0;
  --bl:#2563eb;--blbg:#eff6ff;--or:#d97706;--orbg:#fff7e8;--yl:#8a6500;--ylbg:#fff8df;
}
[data-theme="dark"]{
  --bg:#0a0a0f;--surf:#1a1a28;--surf2:#222232;--surf3:#303044;
  --bd:#34344a;--bd2:#4a4a62;
  --tx:#fafafa;--tx2:#c0c0d0;--mu:#737373;--mu2:#a1a1b5;
  --ac:#8b5cf6;--acbg:#292143;
  --sh:0 2px 8px rgba(0,0,0,.35);--sh-sm:0 1px 3px rgba(0,0,0,.32);
  --sh-md:0 8px 32px rgba(0,0,0,.5);--sh-sheet:0 -4px 28px rgba(0,0,0,.5);
  --focus:0 0 0 3px rgba(139,92,246,.28);
  --up:#2af07a;--upbg:#103725;--dn:#ff7777;--dnbg:#3a161d;
  --bl:#7aa2ff;--blbg:#17223f;--or:#ffbb55;--orbg:#34270f;--yl:#ffd45c;--ylbg:#372d10;
}
[data-color-mode="red-up"]{--up:#dc4a4a;--upbg:#fff0f0;--dn:#009966;--dnbg:#e5f7ef}
[data-color-mode="red-up"][data-theme="dark"]{--up:#ff7777;--upbg:#3a161d;--dn:#2af07a;--dnbg:#103725}
[data-safe-mode="on"]{--up:#737373;--dn:#737373;--upbg:#f0f0f0;--dnbg:#f0f0f0}
[data-safe-mode="on"][data-theme="dark"]{--up:#8b8b8b;--dn:#8b8b8b;--upbg:#25252f;--dnbg:#25252f}
.hdr{padding:0 24px;background:color-mix(in srgb,var(--surf) 96%,transparent);backdrop-filter:blur(16px);box-shadow:none}
.logo{font-size:18px;letter-spacing:-.65px}.logo em{color:var(--ac)}
.hdr-nav{gap:3px;border-radius:12px;padding:3px;background:var(--surf2)}
.ntab{min-height:34px;padding:6px 14px;border-radius:8px;color:var(--mu2)}
.ntab.active{color:var(--ac);box-shadow:0 1px 3px rgba(11,11,11,.10)}
.tbtn{width:36px;height:36px;border-radius:10px;background:transparent;border-color:transparent}.tbtn:hover{background:var(--surf2)}
.logout-btn{padding:7px 10px;border:1px solid var(--bd);border-radius:10px;color:var(--mu2)}
.logout-btn:hover{border-color:color-mix(in srgb,var(--dn) 35%,var(--bd));background:var(--dnbg)}
#vTrades.on,#vIntel.on,#vStats.on,#vFollow.on,#vAdmin.on,#vLeaderboard.on,#vUserdetail.on{max-width:1240px;padding:24px}
.col-sb{width:240px;background:var(--surf)}.sb-top{min-height:58px;padding:12px 16px}.alist{padding:8px}
.slbl,.market-title{font-size:10px;letter-spacing:1.1px;color:var(--mu);font-weight:700}.badd{min-width:30px;min-height:30px;padding:0 9px;border-radius:9px;box-shadow:0 2px 6px rgba(124,58,237,.20)}
.aitem{min-height:44px;padding:8px;border-radius:10px}.aitem.sel{border-color:transparent;background:var(--acbg);box-shadow:inset 3px 0 0 var(--ac)}
.aico{border-radius:9px}.col-main{padding:24px;gap:16px}
.hero-card,.dash-card,.poscard,.scard,.tscard,.admin-card,.tcard,.pnl-chart-card,.oc-signal,.intel-doc,.review-summary,.review-table-wrap{border-color:var(--bd);box-shadow:var(--sh-sm)}
.hero-card,.admin-card,.intel-doc{border-radius:20px}.hero-card{padding:18px 20px}.hero-sym{font-size:20px}.hero-price{font-size:24px}
.dash-strip,.srow{gap:12px}.dash-card{border-radius:16px;padding:15px 16px}.dash-lbl,.slb,.sec-title{font-size:9px;letter-spacing:1px}.dash-val{font-size:19px}
.filter-bar{gap:8px}.fpill,.pnl-chart-tab{min-height:32px;padding:6px 12px;border-radius:20px}.fpill.active,.pnl-chart-tab.active{background:var(--acbg);border-color:transparent;color:var(--ac)}
.fsel{min-height:34px;border-radius:10px;background-color:var(--surf)}
.poscard,.tc{border-radius:16px;padding:14px 16px}.poscard.open,.oc-signal.long{border-left-color:var(--up)}.poscard.pending{border-left-color:var(--bl)}
.pc-p{border-color:transparent;background:var(--surf2);border-radius:10px;padding:7px 8px}.pc-pl,.tc-lbl{letter-spacing:.8px}.pcs,.otyp,.expb,.vrd,.cpill,.sec-count,.dg-count{border-radius:999px}
.bsm,.bico{min-height:32px;border-radius:10px;border-color:var(--bd);padding:5px 11px}.bsm:hover{background:var(--acbg);border-color:var(--ac)}
.bfull{min-height:44px;border-radius:12px;background:var(--ac);box-shadow:0 2px 6px rgba(124,58,237,.20)}.bfull:hover{filter:brightness(.96)}
.bcancel{min-height:44px;border-radius:12px}.ios-switch.on{background:var(--ac)}
input,select,textarea,.twrap{min-height:44px;border-radius:12px;border-color:var(--bd);background:var(--surf);padding:10px 12px}.twrap{padding:5px 10px}input:focus,select:focus,textarea:focus,.twrap:focus-within{border-color:var(--ac);box-shadow:var(--focus)}
.dtog{border-radius:12px}.dtbtn{padding:10px}.oflag,.rrmeter,.otype-hint,.minfo{border-radius:12px}.oflag.on{border-color:var(--ac)}
.tcard{border-radius:20px}.thd,.kol-panel-hd{padding:14px 16px}.rec-tbl th,.admin-table th,.review-table th{background:var(--surf2);color:var(--mu2)}.rec-tbl td,.admin-table td,.review-table td{border-color:var(--bd)}
.scard,.tscard{border-radius:16px;padding:16px}.svl{font-size:26px}.kol-panel{border-radius:20px}.kol-grid{background:var(--bd)}.kol-item{padding:14px}
.intel-tabs,.pos-tabs{border-radius:12px;padding:3px}.intel-tab,.pos-tab{min-height:34px;border-radius:8px}.intel-tab.active,.pos-tab.active{color:var(--ac);box-shadow:0 1px 3px rgba(11,11,11,.10)}
.intel-item{border-radius:12px;padding:13px}.intel-item:hover,.intel-item.active{border-color:var(--ac);background:var(--acbg)}
.review-toolbar{border-radius:14px;padding:11px 14px}.review-checkmark{border-radius:5px}.review-submit-bar .bfull{box-shadow:0 4px 12px rgba(124,58,237,.25)}
.modal{border-radius:20px;box-shadow:var(--sh-md)}.sheet{border-radius:20px 20px 0 0}.overlay{background:rgba(10,10,15,.52)}

/* Keep dialogs inside the visible viewport when a mobile keyboard is open. */
.overlay{top:var(--dialog-top,0px);bottom:auto;height:var(--dialog-height,100dvh);box-sizing:border-box;overscroll-behavior:contain}
.modal{max-height:calc(var(--dialog-height,100dvh) - 32px);scroll-padding-block:16px}
.modal .macts{position:sticky;bottom:-20px;background:var(--surf);padding-block:10px;margin-bottom:-10px;z-index:1}
.admin-form-result{display:flex;flex-direction:column;gap:8px;font-size:12px}
.admin-form-result textarea{width:100%;box-sizing:border-box;resize:vertical;padding:10px;border:1px solid var(--bd);border-radius:var(--rsm);color:var(--tx);background:var(--surf2);font-family:monospace}
.action-feedback button{min-height:40px}
@media(max-width:768px){
  .modal input,.modal select,.modal textarea,.sheet input,.sheet select,.sheet textarea{font-size:16px;min-height:44px}
  .modal button:not(.psb),.sheet button:not(.psb){min-height:44px}
  .sheet{max-height:calc(var(--dialog-height,100dvh) - 12px);bottom:max(0px,calc(100dvh - var(--dialog-height,100dvh) - var(--dialog-top,0px)))}
}
.notif{border-radius:14px}.hint-ico,.empty-ico{border-radius:16px;background:var(--acbg);border-color:transparent}
@media(max-width:768px){
  .hdr{height:56px;padding:0 16px}.col-main{padding:14px;gap:12px}
  #vTrades.on,#vIntel.on,#vStats.on,#vFollow.on,#vAdmin.on,#vLeaderboard.on,#vUserdetail.on{padding:14px}
  .col-sb{width:100%;max-width:100%;flex:none;overflow:visible;background:transparent}.sb-top{width:100%;min-height:52px;padding:9px 14px;background:var(--surf);border-bottom:1px solid var(--bd)}.alist{width:100%;max-width:100%;padding:6px 8px 16px;display:block;overflow:visible;flex:none}.market-title{display:block;padding:12px 4px 5px}.aitem{width:100%;min-width:0;margin:0 0 2px;padding:8px 6px;background:transparent;border-color:transparent}
  .hero-card{padding:15px 16px;border-radius:16px}.dash-strip,.srow{gap:8px}.dash-card{padding:12px;border-radius:12px}.poscard,.tc{border-radius:14px;padding:12px}
  #vTrades .tcard{overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}
  #vTrades .thd{padding:14px 16px;border:1px solid var(--bd);border-radius:16px;background:var(--surf);box-shadow:var(--sh-sm)}
  #vTrades .filter-bar{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px!important;width:100%}
  #vTrades .filter-bar .fsel{width:100%;min-width:0;padding:5px 22px 5px 7px;font-size:10px;background-position:right 7px center}
  #vTrades .trade-cards{gap:10px;margin-top:10px}
  #vTrades .tc{padding:14px;border-radius:16px}
  #vTrades .tc-top{align-items:flex-start;gap:10px}
  #vTrades .tc-top>div:first-child{min-width:0;flex:1;flex-wrap:wrap!important}
  #vTrades .tc-top>div:last-child{flex:0 0 auto}
  #vTrades .tc-spk svg{width:100%!important;max-width:100%}
  #vTrades .tc-footer{align-items:flex-end;gap:10px;padding-top:8px}
  #vTrades .tc-meta{min-width:0;flex:1;overflow-wrap:anywhere}
  #vTrades .tc-acts{flex:0 0 auto}
  #vTrades .tcard>.emsg{margin-top:10px;border:1px solid var(--bd);border-radius:16px;background:var(--surf);box-shadow:var(--sh-sm)}
  #vAdmin .user-admin-table{display:table;width:100%;min-width:0;table-layout:fixed;overflow:visible;white-space:normal}
  #vAdmin .user-admin-table th,#vAdmin .user-admin-table td{padding:8px 4px;font-size:10px;word-break:break-word;overflow-wrap:anywhere}
  #vAdmin .user-admin-table th:nth-child(1),#vAdmin .user-admin-table td:nth-child(1){width:31%}
  #vAdmin .user-admin-table th:nth-child(2),#vAdmin .user-admin-table td:nth-child(2){width:22%}
  #vAdmin .user-admin-table th:nth-child(3),#vAdmin .user-admin-table td:nth-child(3){width:29%}
  #vAdmin .user-admin-table th:nth-child(4),#vAdmin .user-admin-table td:nth-child(4){width:18%;text-align:right}
  #vAdmin .user-admin-table .admin-badge{max-width:100%;padding:2px 5px;white-space:nowrap}
  .mob-nav{background:color-mix(in srgb,var(--surf) 92%,transparent);border-color:var(--bd)}.mntab.active::before{background:var(--ac)}.mntab.active .mntab-ico{background:var(--acbg)}
  .admin-card,.intel-doc,.review-summary{border-radius:16px}.review-table tr{border-radius:14px}
}

/* ═══ PC NAVIGATION SHELL — Figma ModernSidebar / ModernTopbar ═══ */
.nav-spacer,.nav-label{display:none}
.nav-sections,.nav-section{display:flex;align-items:center;gap:3px}
.nav-ico{width:16px;height:16px;flex:0 0 16px;display:block;background:currentColor;opacity:.82;-webkit-mask:var(--nav-icon) center/16px 16px no-repeat;mask:var(--nav-icon) center/16px 16px no-repeat;transition:opacity .15s}
.ico-research{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 2h5l3 3v9H4zM9 2v3h3M6 11l1.5-1.5L9 11l2-2' stroke='%23737373' stroke-width='1.33' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.ico-watch{--nav-icon:url('data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGlkPSJJY29uIj4KPHBhdGggaWQ9IlZlY3RvciIgZD0iTTIgMlYxMi42NjY3QzIgMTMuMDIwMyAyLjE0MDQ4IDEzLjM1OTQgMi4zOTA1MiAxMy42MDk1QzIuNjQwNTcgMTMuODU5NSAyLjk3OTcxIDE0IDMuMzMzMzMgMTRIMTQiIHN0cm9rZT0iIzdDM0FFRCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggaWQ9IlZlY3Rvcl8yIiBkPSJNMTIuNjY2NyA2TDkuMzMzMzMgOS4zMzMzM0w2LjY2NjY3IDYuNjY2NjdMNC42NjY2NyA4LjY2NjY3IiBzdHJva2U9IiM3QzNBRUQiIHN0cm9rZS13aWR0aD0iMS4zMzMzMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjwvZz4KPC9zdmc+Cg==')}.ico-intel{--nav-icon:url('data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGlkPSJJY29uIj4KPHBhdGggaWQ9IlZlY3RvciIgZD0iTTYuODQ1MzMgMTRDNi45NjIzNiAxNC4yMDI3IDcuMTMwNjggMTQuMzcxIDcuMzMzMzYgMTQuNDg4QzcuNTM2MDUgMTQuNjA1IDcuNzY1OTYgMTQuNjY2NiA4IDE0LjY2NjZDOC4yMzQwNCAxNC42NjY2IDguNDYzOTUgMTQuNjA1IDguNjY2NjQgMTQuNDg4QzguODY5MzIgMTQuMzcxIDkuMDM3NjQgMTQuMjAyNyA5LjE1NDY3IDE0IiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMS4zMzMzMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGlkPSJWZWN0b3JfMiIgZD0iTTIuMTc0NjcgMTAuMjE3M0MyLjA4NzU4IDEwLjMxMjggMi4wMzAxIDEwLjQzMTUgMi4wMDkyNCAxMC41NTlDMS45ODgzNyAxMC42ODY1IDIuMDA1MDEgMTAuODE3NCAyLjA1NzE0IDEwLjkzNTZDMi4xMDkyNiAxMS4wNTM4IDIuMTk0NjIgMTEuMTU0NCAyLjMwMjg0IDExLjIyNUMyLjQxMTA1IDExLjI5NTYgMi41Mzc0NSAxMS4zMzMyIDIuNjY2NjcgMTEuMzMzM0gxMy4zMzMzQzEzLjQ2MjUgMTEuMzMzNCAxMy41ODkgMTEuMjk1OSAxMy42OTcyIDExLjIyNTRDMTMuODA1NSAxMS4xNTQ5IDEzLjg5MSAxMS4wNTQ1IDEzLjk0MzMgMTAuOTM2M0MxMy45OTU1IDEwLjgxODIgMTQuMDEyMyAxMC42ODc0IDEzLjk5MTYgMTAuNTU5OUMxMy45NzA5IDEwLjQzMjMgMTMuOTEzNiAxMC4zMTM2IDEzLjgyNjcgMTAuMjE4QzEyLjk0IDkuMzA0IDEyIDguMzMyNjcgMTIgNS4zMzMzM0MxMiA0LjI3MjQ3IDExLjU3ODYgMy4yNTUwNSAxMC44Mjg0IDIuNTA0OTFDMTAuMDc4MyAxLjc1NDc2IDkuMDYwODcgMS4zMzMzMyA4IDEuMzMzMzNDNi45MzkxMyAxLjMzMzMzIDUuOTIxNzIgMS43NTQ3NiA1LjE3MTU3IDIuNTA0OTFDNC40MjE0MyAzLjI1NTA1IDQgNC4yNzI0NyA0IDUuMzMzMzNDNCA4LjMzMjY3IDMuMDU5MzMgOS4zMDQgMi4xNzQ2NyAxMC4yMTczWiIgc3Ryb2tlPSIjNzM3MzczIiBzdHJva2Utd2lkdGg9IjEuMzMzMzMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L2c+Cjwvc3ZnPgo=')}.ico-trades{--nav-icon:url('data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGlkPSJJY29uIj4KPHBhdGggaWQ9IlZlY3RvciIgZD0iTTcuMzMzMzMgMTQuNDg2N0M3LjUzNjAzIDE0LjYwMzcgNy43NjU5NSAxNC42NjUzIDggMTQuNjY1M0M4LjIzNDA1IDE0LjY2NTMgOC40NjM5NyAxNC42MDM3IDguNjY2NjcgMTQuNDg2N0wxMy4zMzMzIDExLjgyQzEzLjUzNTggMTEuNzAzMSAxMy43MDQgMTEuNTM1IDEzLjgyMSAxMS4zMzI2QzEzLjkzOCAxMS4xMzAxIDEzLjk5OTggMTAuOTAwNSAxNCAxMC42NjY3VjUuMzMzMzNDMTMuOTk5OCA1LjA5OTUyIDEzLjkzOCA0Ljg2OTg3IDEzLjgyMSA0LjY2NzQ0QzEzLjcwNCA0LjQ2NTAxIDEzLjUzNTggNC4yOTY5MSAxMy4zMzMzIDQuMThMOC42NjY2NyAxLjUxMzMzQzguNDYzOTcgMS4zOTYzMSA4LjIzNDA1IDEuMzM0NyA4IDEuMzM0N0M3Ljc2NTk1IDEuMzM0NyA3LjUzNjAzIDEuMzk2MzEgNy4zMzMzMyAxLjUxMzMzTDIuNjY2NjcgNC4xOEMyLjQ2NDE3IDQuMjk2OTEgMi4yOTU5OSA0LjQ2NTAxIDIuMTc4OTcgNC42Njc0NEMyLjA2MTk2IDQuODY5ODcgMi4wMDAyNCA1LjA5OTUyIDIgNS4zMzMzM1YxMC42NjY3QzIuMDAwMjQgMTAuOTAwNSAyLjA2MTk2IDExLjEzMDEgMi4xNzg5NyAxMS4zMzI2QzIuMjk1OTkgMTEuNTM1IDIuNDY0MTcgMTEuNzAzMSAyLjY2NjY3IDExLjgyTDcuMzMzMzMgMTQuNDg2N1oiIHN0cm9rZT0iIzczNzM3MyIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggaWQ9IlZlY3Rvcl8yIiBkPSJNOCAxNC42NjY3VjgiIHN0cm9rZT0iIzczNzM3MyIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggaWQ9IlZlY3Rvcl8zIiBkPSJNMi4xOTMzMyA0LjY2NjY3TDggOEwxMy44MDY3IDQuNjY2NjciIHN0cm9rZT0iIzczNzM3MyIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggaWQ9IlZlY3Rvcl80IiBkPSJNNSAyLjg0NjY3TDExIDYuMjgiIHN0cm9rZT0iIzczNzM3MyIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8L3N2Zz4K')}.ico-stats{--nav-icon:url('data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGlkPSJJY29uIj4KPHBhdGggaWQ9IlZlY3RvciIgZD0iTTE0LjY2NjcgNC42NjY2N0w5IDEwLjMzMzNMNS42NjY2NyA3TDEuMzMzMzMgMTEuMzMzMyIgc3Ryb2tlPSIjNzM3MzczIiBzdHJva2Utd2lkdGg9IjEuMzMzMzMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBpZD0iVmVjdG9yXzIiIGQ9Ik0xMC42NjY3IDQuNjY2NjdIMTQuNjY2N1Y4LjY2NjY3IiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMS4zMzMzMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjwvZz4KPC9zdmc+Cg==')}.ico-leaderboard{--nav-icon:url('data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGlkPSJJY29uIj4KPHBhdGggaWQ9IlZlY3RvciIgZD0iTTEwLjY2NjcgMTRWMTIuNjY2N0MxMC42NjY3IDExLjk1OTQgMTAuMzg1NyAxMS4yODExIDkuODg1NjIgMTAuNzgxQzkuMzg1NTIgMTAuMjgxIDguNzA3MjQgMTAgOCAxMEg0QzMuMjkyNzYgMTAgMi42MTQ0OCAxMC4yODEgMi4xMTQzOCAxMC43ODFDMS42MTQyOCAxMS4yODExIDEuMzMzMzMgMTEuOTU5NCAxLjMzMzMzIDEyLjY2NjdWMTQiIHN0cm9rZT0iIzczNzM3MyIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggaWQ9IlZlY3Rvcl8yIiBkPSJNNiA3LjMzMzMzQzcuNDcyNzYgNy4zMzMzMyA4LjY2NjY3IDYuMTM5NDMgOC42NjY2NyA0LjY2NjY3QzguNjY2NjcgMy4xOTM5MSA3LjQ3Mjc2IDIgNiAyQzQuNTI3MjQgMiAzLjMzMzMzIDMuMTkzOTEgMy4zMzMzMyA0LjY2NjY3QzMuMzMzMzMgNi4xMzk0MyA0LjUyNzI0IDcuMzMzMzMgNiA3LjMzMzMzWiIgc3Ryb2tlPSIjNzM3MzczIiBzdHJva2Utd2lkdGg9IjEuMzMzMzMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBpZD0iVmVjdG9yXzMiIGQ9Ik0xNC42NjY3IDE0VjEyLjY2NjdDMTQuNjY2MiAxMi4wNzU4IDE0LjQ2OTYgMTEuNTAxOCAxNC4xMDc2IDExLjAzNDlDMTMuNzQ1NiAxMC41Njc5IDEzLjIzODggMTAuMjM0NCAxMi42NjY3IDEwLjA4NjciIHN0cm9rZT0iIzczNzM3MyIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggaWQ9IlZlY3Rvcl80IiBkPSJNMTAuNjY2NyAyLjA4NjY3QzExLjI0MDMgMi4yMzM1MyAxMS43NDg3IDIuNTY3MTMgMTIuMTExOCAzLjAzNDg3QzEyLjQ3NDggMy41MDI2MSAxMi42NzE5IDQuMDc3ODkgMTIuNjcxOSA0LjY3QzEyLjY3MTkgNS4yNjIxMSAxMi40NzQ4IDUuODM3MzkgMTIuMTExOCA2LjMwNTEzQzExLjc0ODcgNi43NzI4NyAxMS4yNDAzIDcuMTA2NDcgMTAuNjY2NyA3LjI1MzMzIiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMS4zMzMzMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjwvZz4KPC9zdmc+Cg==')}.ico-follow{--nav-icon:url('data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGlkPSJJY29uIiBjbGlwLXBhdGg9InVybCgjY2xpcDBfMF8yNCkiPgo8cGF0aCBpZD0iVmVjdG9yIiBkPSJNMTMuNTg2NyAyLjMwNjY3TDEwLjY2NjcgMS4zMzMzM0MxMC42NjY3IDIuMDQwNTggMTAuMzg1NyAyLjcxODg1IDkuODg1NjIgMy4yMTg5NUM5LjM4NTUyIDMuNzE5MDUgOC43MDcyNCA0IDggNEM3LjI5Mjc2IDQgNi42MTQ0OCAzLjcxOTA1IDYuMTE0MzggMy4yMTg5NUM1LjYxNDI4IDIuNzE4ODUgNS4zMzMzMyAyLjA0MDU4IDUuMzMzMzMgMS4zMzMzM0wyLjQxMzMzIDIuMzA2NjdDMi4xMTE1OSAyLjQwNzIgMS44NTU3MiAyLjYxMjI4IDEuNjkxOSAyLjg4NDlDMS41MjgwOSAzLjE1NzUxIDEuNDY3MTIgMy40Nzk3MSAxLjUyIDMuNzkzMzNMMS45MDY2NyA2LjEwNjY3QzEuOTMyMDUgNi4yNjMyOCAyLjAxMjQ1IDYuNDA1NyAyLjEzMzQzIDYuNTA4MzRDMi4yNTQ0IDYuNjEwOTkgMi40MDgwMSA2LjY2NzEyIDIuNTY2NjcgNi42NjY2N0g0VjEzLjMzMzNDNCAxNC4wNjY3IDQuNiAxNC42NjY3IDUuMzMzMzMgMTQuNjY2N0gxMC42NjY3QzExLjAyMDMgMTQuNjY2NyAxMS4zNTk0IDE0LjUyNjIgMTEuNjA5NSAxNC4yNzYxQzExLjg1OTUgMTQuMDI2MSAxMiAxMy42ODcgMTIgMTMuMzMzM1Y2LjY2NjY3SDEzLjQzMzNDMTMuNTkyIDYuNjY3MTIgMTMuNzQ1NiA2LjYxMDk5IDEzLjg2NjYgNi41MDgzNEMxMy45ODc1IDYuNDA1NyAxNC4wNjc5IDYuMjYzMjggMTQuMDkzMyA2LjEwNjY3TDE0LjQ4IDMuNzkzMzNDMTQuNTMyOSAzLjQ3OTcxIDE0LjQ3MTkgMy4xNTc1MSAxNC4zMDgxIDIuODg0OUMxNC4xNDQzIDIuNjEyMjggMTMuODg4NCAyLjQwNzIgMTMuNTg2NyAyLjMwNjY3WiIgc3Ryb2tlPSIjNzM3MzczIiBzdHJva2Utd2lkdGg9IjEuMzMzMzMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzBfMjQiPjxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiLz48L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=')}.ico-admin{--nav-icon:url('data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGlkPSJJY29uIj4KPHBhdGggaWQ9IlZlY3RvciIgZD0iTTguMTQ2NjcgMS4zMzMzM0g3Ljg1MzMzQzcuNDk5NzEgMS4zMzMzMyA3LjE2MDU3IDEuNDczODEgNi45MTA1MiAxLjcyMzg2QzYuNjYwNDggMS45NzM5MSA2LjUyIDIuMzEzMDQgNi41MiAyLjY2NjY3VjIuNzg2NjdDNi41MTk3NiAzLjAyMDQ4IDYuNDU4MDQgMy4yNTAxMyA2LjM0MTAzIDMuNDUyNTZDNi4yMjQwMSAzLjY1NDk5IDYuMDU1ODIgMy44MjMwOSA1Ljg1MzMzIDMuOTRMNS41NjY2NyA0LjEwNjY3QzUuMzYzOTcgNC4yMjM2OSA1LjEzNDA1IDQuMjg1MyA0LjkgNC4yODUzQzQuNjY1OTUgNC4yODUzIDQuNDM2MDMgNC4yMjM2OSA0LjIzMzMzIDQuMTA2NjdMNC4xMzMzMyA0LjA1MzMzQzMuODI3MzggMy44NzY4NCAzLjQ2Mzg5IDMuODI4OTYgMy4xMjI2NyAzLjkyMDIxQzIuNzgxNDQgNC4wMTE0NSAyLjQ5MDM3IDQuMjM0MzYgMi4zMTMzMyA0LjU0TDIuMTY2NjcgNC43OTMzM0MxLjk5MDE4IDUuMDk5MjkgMS45NDIzIDUuNDYyNzggMi4wMzM1NCA1LjgwNEMyLjEyNDc4IDYuMTQ1MjIgMi4zNDc2OSA2LjQzNjMgMi42NTMzMyA2LjYxMzMzTDIuNzUzMzMgNi42OEMyLjk1NDg1IDYuNzk2MzQgMy4xMjI0MSA2Ljk2MzM5IDMuMjM5MzcgNy4xNjQ1NUMzLjM1NjMyIDcuMzY1NzIgMy40MTg2IDcuNTkzOTggMy40MiA3LjgyNjY3VjguMTY2NjdDMy40MjA5MyA4LjQwMTYxIDMuMzU5NzcgOC42MzI2NCAzLjI0MjcgOC44MzYzNEMzLjEyNTYyIDkuMDQwMDQgMi45NTY4MSA5LjIwOTE5IDIuNzUzMzMgOS4zMjY2N0wyLjY1MzMzIDkuMzg2NjdDMi4zNDc2OSA5LjU2MzcgMi4xMjQ3OCA5Ljg1NDc4IDIuMDMzNTQgMTAuMTk2QzEuOTQyMyAxMC41MzcyIDEuOTkwMTggMTAuOTAwNyAyLjE2NjY3IDExLjIwNjdMMi4zMTMzMyAxMS40NkMyLjQ5MDM3IDExLjc2NTYgMi43ODE0NCAxMS45ODg2IDMuMTIyNjcgMTIuMDc5OEMzLjQ2Mzg5IDEyLjE3MSAzLjgyNzM4IDEyLjEyMzIgNC4xMzMzMyAxMS45NDY3TDQuMjMzMzMgMTEuODkzM0M0LjQzNjAzIDExLjc3NjMgNC42NjU5NSAxMS43MTQ3IDQuOSAxMS43MTQ3QzUuMTM0MDUgMTEuNzE0NyA1LjM2Mzk3IDExLjc3NjMgNS41NjY2NyAxMS44OTMzTDUuODUzMzMgMTIuMDZDNi4wNTU4MiAxMi4xNzY5IDYuMjI0MDEgMTIuMzQ1IDYuMzQxMDMgMTIuNTQ3NEM2LjQ1ODA0IDEyLjc0OTkgNi41MTk3NiAxMi45Nzk1IDYuNTIgMTMuMjEzM1YxMy4zMzMzQzYuNTIgMTMuNjg3IDYuNjYwNDggMTQuMDI2MSA2LjkxMDUyIDE0LjI3NjFDNy4xNjA1NyAxNC41MjYyIDcuNDk5NzEgMTQuNjY2NyA3Ljg1MzMzIDE0LjY2NjdIOC4xNDY2N0M4LjUwMDI5IDE0LjY2NjcgOC44Mzk0MyAxNC41MjYyIDkuMDg5NDggMTQuMjc2MUM5LjMzOTUyIDE0LjAyNjEgOS40OCAxMy42ODcgOS40OCAxMy4zMzMzVjEzLjIxMzNDOS40ODAyNCAxMi45Nzk1IDkuNTQxOTYgMTIuNzQ5OSA5LjY1ODk3IDEyLjU0NzRDOS43NzU5OSAxMi4zNDUgOS45NDQxOCAxMi4xNzY5IDEwLjE0NjcgMTIuMDZMMTAuNDMzMyAxMS44OTMzQzEwLjYzNiAxMS43NzYzIDEwLjg2NiAxMS43MTQ3IDExLjEgMTEuNzE0N0MxMS4zMzQgMTEuNzE0NyAxMS41NjQgMTEuNzc2MyAxMS43NjY3IDExLjg5MzNMMTEuODY2NyAxMS45NDY3QzEyLjE3MjYgMTIuMTIzMiAxMi41MzYxIDEyLjE3MSAxMi44NzczIDEyLjA3OThDMTMuMjE4NiAxMS45ODg2IDEzLjUwOTYgMTEuNzY1NiAxMy42ODY3IDExLjQ2TDEzLjgzMzMgMTEuMkMxNC4wMDk4IDEwLjg5NCAxNC4wNTc3IDEwLjUzMDYgMTMuOTY2NSAxMC4xODkzQzEzLjg3NTIgOS44NDgxMSAxMy42NTIzIDkuNTU3MDMgMTMuMzQ2NyA5LjM4TDEzLjI0NjcgOS4zMjY2N0MxMy4wNDMyIDkuMjA5MTkgMTIuODc0NCA5LjA0MDA0IDEyLjc1NzMgOC44MzYzNEMxMi42NDAyIDguNjMyNjQgMTIuNTc5MSA4LjQwMTYxIDEyLjU4IDguMTY2NjdWNy44MzMzM0MxMi41NzkxIDcuNTk4MzkgMTIuNjQwMiA3LjM2NzM2IDEyLjc1NzMgNy4xNjM2NkMxMi44NzQ0IDYuOTU5OTYgMTMuMDQzMiA2Ljc5MDgxIDEzLjI0NjcgNi42NzMzM0wxMy4zNDY3IDYuNjEzMzNDMTMuNjUyMyA2LjQzNjMgMTMuODc1MiA2LjE0NTIyIDEzLjk2NjUgNS44MDRDMTQuMDU3NyA1LjQ2Mjc4IDE0LjAwOTggNS4wOTkyOSAxMy44MzMzIDQuNzkzMzNMMTMuNjg2NyA0LjU0QzEzLjUwOTYgNC4yMzQzNiAxMy4yMTg2IDQuMDExNDUgMTIuODc3MyAzLjkyMDIxQzEyLjUzNjEgMy44Mjg5NiAxMi4xNzI2IDMuODc2ODQgMTEuODY2NyA0LjA1MzMzTDExLjc2NjcgNC4xMDY2N0MxMS41NjQgNC4yMjM2OSAxMS4zMzQgNC4yODUzIDExLjEgNC4yODUzQzEwLjg2NiA0LjI4NTMgMTAuNjM2IDQuMjIzNjkgMTAuNDMzMyA0LjEwNjY3TDEwLjE0NjcgMy45NEM5Ljk0NDE4IDMuODIzMDkgOS43NzU5OSAzLjY1NDk5IDkuNjU4OTcgMy40NTI1NkM5LjU0MTk2IDMuMjUwMTMgOS40OCAzLjAyMDQ4IDkuNDggMi43ODY2N1YyLjY2NjY3QzkuNDggMi4zMTMwNCA5LjMzOTUyIDEuOTczOTEgOS4wODk0OCAxLjcyMzg2QzguODM5NDMgMS40NzM4MSA4LjUwMDI5IDEuMzMzMzMgOC4xNDY2NyAxLjMzMzMzWiIgc3Ryb2tlPSIjNzM3MzczIiBzdHJva2Utd2lkdGg9IjEuMzMzMzMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBpZD0iVmVjdG9yXzIiIGQ9Ik04IDEwQzkuMTA0NTcgMTAgMTAgOS4xMDQ1NyAxMCA4QzEwIDYuODk1NDMgOS4xMDQ1NyA2IDggNkM2Ljg5NTQzIDYgNiA2Ljg5NTQzIDYgOEM2IDkuMTA0NTcgNi44OTU0MyAxMCA4IDEwWiIgc3Ryb2tlPSIjNzM3MzczIiBzdHJva2Utd2lkdGg9IjEuMzMzMzMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L2c+Cjwvc3ZnPgo=')}
.ntab{display:flex;align-items:center;justify-content:center;gap:7px}
.ntab:hover .nav-ico,.ntab.active .nav-ico{opacity:1}
.logo{display:flex;align-items:center;gap:10px}
.logo-mark{display:none;width:36px;height:36px;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#a78bfa);box-shadow:0 0 15px rgba(139,92,246,.32);color:#fff;font-size:15px;font-weight:800;letter-spacing:0}
.logo-word{display:inline-flex;align-items:flex-start}
.user-pill{font-size:11px;color:var(--mu);font-weight:600;white-space:nowrap}

@media(min-width:769px) and (max-width:1023px){
  .hdr{padding:0 16px}
  .hdr-nav{position:fixed;z-index:160;top:7px;left:50%;transform:translateX(-50%);gap:2px;padding:3px;border-radius:10px}
  .nav-sections,.nav-section{gap:2px}
  .nav-ico{display:none}
  .ntab{min-height:32px;padding:5px 9px;border-radius:7px;font-size:11px;gap:0}
  .hdr-r{gap:3px}.tbtn{width:32px;height:32px}.logout-btn{padding:5px 7px}
  .live{display:none}
}

@media(min-width:1024px){
  :root{--pc-nav-w:72px}
  .app{padding-left:var(--pc-nav-w)}
  .hdr{height:64px;min-height:64px;padding:0 24px;background:linear-gradient(90deg,color-mix(in srgb,var(--surf) 96%,transparent),color-mix(in srgb,var(--surf2) 42%,transparent));backdrop-filter:blur(24px);box-shadow:0 1px 3px rgba(0,0,0,.05)}
  .logo-mark{display:flex}
  .hdr-nav{position:fixed;z-index:180;inset:0 auto 0 0;width:var(--pc-nav-w);height:100dvh;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0 12px 16px;border:0;border-right:1px solid var(--bd);border-radius:0;background:linear-gradient(180deg,color-mix(in srgb,var(--surf) 98%,var(--bg)) 0%,color-mix(in srgb,var(--surf) 92%,var(--bg)) 100%);box-shadow:2px 0 12px rgba(0,0,0,.06);overflow:hidden;transition:none}
  [data-theme="dark"] .hdr-nav{background:linear-gradient(180deg,color-mix(in srgb,var(--surf) 96%,#11111a) 0%,color-mix(in srgb,var(--surf2) 88%,#0a0a0f) 100%);box-shadow:2px 0 16px rgba(0,0,0,.24)}
  .nav-spacer{display:block;height:64px;min-height:64px;margin:0 -12px;border-bottom:1px solid color-mix(in srgb,var(--bd) 72%,transparent)}
  .nav-sections{flex:1;min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:16px;padding-top:18px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}
  .nav-sections::-webkit-scrollbar{display:none}
  .nav-section{display:flex;flex-direction:column;align-items:stretch;gap:3px}
  .ntab{width:48px;height:40px;min-height:40px;justify-content:center;gap:0;padding:0;border:1px solid transparent;border-radius:20px;font-size:13px;color:var(--mu2);box-shadow:none}
  .ntab:hover{background:color-mix(in srgb,var(--surf2) 70%,transparent);color:var(--tx)}
  .ntab.active{background:color-mix(in srgb,var(--ac) 11%,transparent);border-color:color-mix(in srgb,var(--ac) 30%,transparent);color:var(--ac);box-shadow:none}
  .nav-text{display:none}
  .nav-ico{width:18px;height:18px;flex-basis:18px}
  .ntab .ndot{top:7px;right:7px;width:6px;height:6px;box-shadow:0 0 0 2px var(--surf)}
  .user-pill{min-height:36px;display:flex;align-items:center;padding:0 11px;border-radius:20px;background:var(--acbg);color:var(--ac)!important}
}

@media(min-width:1280px){
  :root{--pc-nav-w:240px}
  .hdr-nav{padding-left:12px;padding-right:12px}
  .nav-label{display:block;padding:0 12px 6px;color:var(--ac);font-size:10px;font-weight:800;line-height:14px;letter-spacing:.6px;text-transform:uppercase;opacity:.92}
  .nav-section{gap:2px}
  .ntab{width:100%;height:38px;min-height:38px;justify-content:flex-start;gap:12px;padding:0 12px;border-radius:20px;font-size:14px;font-weight:650}
  .nav-text{display:inline;min-width:0;overflow:hidden;text-overflow:ellipsis}
  .ntab .ndot{top:50%;right:14px;transform:translateY(-50%)}
}
@media(max-width:768px){.portfolio-vob-grid{grid-template-columns:1fr!important}}

/* Read-only cost-stop research */
#researchChart{touch-action:pan-y;cursor:grab;user-select:none}#researchChart.research-dragging,#researchChart.research-dragging *{cursor:grabbing!important}
#researchContent{min-width:0}.research-hero{border-top:3px solid var(--ac)}
.research-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.research-muted{font-size:12px;line-height:1.7;color:var(--mu2)}.research-badge{background:var(--acbg);color:var(--ac);padding:5px 10px;border-radius:20px;font-size:11px}
.research-headline{display:flex;align-items:center;gap:32px;margin:18px 0}.research-headline p{font-size:13px;color:var(--tx2);line-height:1.8}
.research-candidate{font-size:42px;font-weight:700;color:var(--ac);line-height:1.3}.research-candidate small{font-size:24px;margin-left:4px}
#researchContent button{border:1px solid var(--bd);background:var(--surf);color:var(--tx2);padding:7px 10px;border-radius:7px;font-size:12px;cursor:pointer}
#researchContent button:disabled{opacity:.4;cursor:default}#researchContent button:hover:not(:disabled){background:var(--surf2)}
#researchContent button:focus-visible,#researchContent input:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.research-threshold{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px;background:var(--surf2);border-radius:10px;font-size:13px}
.research-threshold input[type=range]{appearance:auto;-webkit-appearance:auto;flex:1;width:auto;min-width:100px;min-height:28px;height:28px;padding:0;border:0;border-radius:0;background:transparent;accent-color:var(--ac)}.research-number{display:flex;align-items:center;gap:4px}.research-number input{width:72px;padding:6px;border:1px solid var(--bd);border-radius:6px;color:var(--tx);background:var(--surf);font:inherit}
#researchPending{min-height:24px;padding-top:4px}.research-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:8px 0 18px}
.research-metrics>div{display:flex;flex-direction:column;gap:8px;padding:12px 0}.research-metrics span,.research-metrics small{font-size:12px;color:var(--mu2)}
.research-metrics strong{font:700 26px 'DM Mono',monospace;color:var(--tx)}.research-metrics b{font-size:12px;color:var(--ac);font-weight:400}
.research-notice{background:var(--acbg);padding:10px 12px;border-radius:8px;color:var(--ac);font-size:12px;line-height:1.7}
.research-segments{display:flex;gap:4px}#researchContent [aria-pressed=true]{background:var(--acbg);border-color:var(--ac);color:var(--ac)}
.research-range{margin:14px 0}.research-range>div{display:flex;gap:5px}.research-layers{display:flex;gap:10px 16px;flex-wrap:wrap;margin:12px 0 18px}
.research-layers label{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--tx2);cursor:pointer}.research-layers input{appearance:auto;-webkit-appearance:auto;accent-color:var(--ac);width:16px;height:16px;min-height:16px;min-width:16px;padding:0;border:0;border-radius:0;flex:0 0 16px}.research-layers label{white-space:nowrap;min-height:28px}.research-layers i{width:8px;height:8px;border-radius:50%}
.research-axis{fill:var(--mu2);font-size:10px}.research-hover{min-height:40px;font-size:11px;line-height:1.7;color:var(--mu2);font-variant-numeric:tabular-nums}
.research-order-details{max-height:240px;overflow:auto;border:1px solid var(--bd);padding:10px;border-radius:8px;font-size:12px}.research-event{font-size:12px;line-height:1.7;padding:8px 0;border-bottom:1px solid var(--bd);overflow-wrap:anywhere}
.research-details summary{cursor:pointer;font-size:14px;font-weight:600}.research-details summary span{margin-left:10px;font-weight:400}.research-details h3{font-size:14px;margin:24px 0 10px}
.research-settings{margin-top:20px;align-items:flex-end}.research-settings label{display:flex;flex-direction:column;gap:8px;font-size:12px;flex:1;min-width:160px}.research-settings .form-input{width:100%;box-sizing:border-box}
.research-table{overflow:auto;max-height:420px;margin:12px 0}.research-selected-row{background:var(--acbg)}
.ma200-card{border-top:3px solid var(--bl)}.ma200-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.ma200-grid>div{background:var(--surf2);padding:12px;border-radius:9px;min-width:0}.ma200-grid span{display:block;color:var(--mu2);font-size:11px;margin-bottom:7px}.ma200-grid strong{font:650 17px 'DM Mono',monospace;overflow-wrap:anywhere}.ma200-events{display:grid;gap:6px;margin-top:12px}.ma200-event{display:grid;grid-template-columns:minmax(110px,1fr) minmax(130px,2fr);gap:10px;padding:8px 0;border-top:1px solid var(--bd);font-size:11px}.ma200-status{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:12px;background:var(--surf2);font-size:11px}.ma200-status.ok{background:var(--acbg);color:var(--ac)}.ma200-status.warn{background:var(--orbg);color:var(--or)}
.ma200-history-card{border-top:3px solid var(--ac)}.ma200-history-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0}.ma200-history-summary>div{background:var(--surf2);padding:10px 12px;border-radius:8px}.ma200-history-summary span{display:block;color:var(--mu2);font-size:10px;margin-bottom:5px}.ma200-history-summary strong{font:650 15px 'DM Mono',monospace}.ma200-history-chart svg{display:block;max-width:100%}.ma200-history-hover{min-height:26px;padding-top:6px}.ma200-signal-counts{display:flex;gap:8px 14px;flex-wrap:wrap;font-size:11px;color:var(--mu2)}
.ma200-history-chart{overflow-x:auto;overscroll-behavior-x:contain;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}.ma200-history-chart svg{max-width:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}
.twitter-opinions-section{position:relative}.twitter-opinion-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--bd);background:var(--surf);border-radius:9px}.twitter-opinion-toolbar button,.twitter-opinion-watchlist-form button,.twitter-opinion-remove{border:1px solid var(--bd);border-radius:7px;background:var(--surf2);color:var(--tx);padding:7px 11px;cursor:pointer}.twitter-opinion-watchlist-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border:1px solid var(--bd);border-top:0;background:var(--surf2)}.twitter-opinion-watchlist-form label{font-size:11px;color:var(--mu2)}.twitter-opinion-watchlist-form input{min-width:180px;padding:8px 10px;border:1px solid var(--bd);border-radius:7px;background:var(--surf);color:var(--tx)}.twitter-opinion-watchlist{padding:8px 14px;border:1px solid var(--bd);border-top:0;background:var(--surf2);font-size:11px}.twitter-opinion-watchlist summary{cursor:pointer;color:var(--tx2)}.twitter-opinion-watchlist ul{display:flex;gap:7px;flex-wrap:wrap;list-style:none;margin:9px 0 2px;padding:0}.twitter-opinion-watchlist li{display:flex;align-items:center;gap:7px;padding:4px 7px;border:1px solid var(--bd);border-radius:7px;background:var(--surf)}.twitter-opinion-watchlist li label{display:flex;align-items:center;gap:5px}.twitter-opinion-watchlist input{accent-color:var(--up)}.twitter-opinion-remove{padding:3px 7px;font-size:10px}.twitter-opinion-actions{margin-top:8px}.twitter-opinion-hovercard{position:fixed;z-index:9999;width:min(340px,calc(100vw - 24px));max-height:45vh;overflow:auto;padding:12px 14px;border:1px solid var(--bd);border-radius:9px;background:var(--surf);box-shadow:0 12px 36px #0008;color:var(--tx);font-size:12px}.twitter-opinion-hovercard[hidden]{display:none}.twitter-opinion-hovercard strong,.twitter-opinion-hovercard time{display:block}.twitter-opinion-hovercard time{margin-top:4px;color:var(--mu2);font-size:10px}.twitter-opinion-hovercard p{margin:9px 0;white-space:pre-wrap;overflow-wrap:anywhere}.twitter-opinion-hovercard .twitter-opinion-thesis{color:var(--tx2)}.twitter-opinion-hovercard a{color:var(--ac)}.twitter-opinion-marker{cursor:pointer}.twitter-opinion-marker:focus{outline:none}.twitter-opinion-marker:focus circle{stroke-width:3}
@media(max-width:640px){.twitter-opinion-toolbar{align-items:flex-start;flex-direction:column}.twitter-opinion-watchlist-form input{flex:1;min-width:120px}}
.ma200-candidate{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:16px 0;padding:14px;background:var(--acbg);border-radius:10px}.ma200-candidate strong{color:var(--ac);font:700 20px 'DM Mono',monospace}.ma200-parameters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}.ma200-parameter{display:grid;grid-template-columns:1fr 76px;align-items:center;gap:6px 10px;padding:12px;background:var(--surf2);border-radius:9px}.ma200-parameter label{grid-column:1/-1;font-size:11px;color:var(--tx2)}.ma200-parameter input[type=range]{appearance:auto;-webkit-appearance:auto;width:100%;accent-color:var(--ac)}.ma200-parameter input[type=number]{width:100%;box-sizing:border-box;padding:6px;border:1px solid var(--bd);border-radius:6px;color:var(--tx);background:var(--surf)}.ma200-split{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.ma200-split>div{padding:12px;border:1px solid var(--bd);border-radius:9px}.ma200-split h4{margin:0 0 8px;font-size:12px}.ma200-split p{margin:0}.ma200-history-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ma200-analysis{margin:18px 0}.ma200-analysis h3{font-size:14px;margin:0 0 6px}.ma200-analysis .research-table{max-height:320px}.ma200-analysis .admin-table{min-width:720px;font-size:11px}.ma200-analysis .admin-table th,.ma200-analysis .admin-table td{padding:8px 7px;white-space:nowrap}.ma200-validation{display:inline-flex;align-items:center;padding:3px 7px;border-radius:12px;font-size:10px;font-weight:800}.ma200-validation.passed{color:var(--up);background:var(--upbg)}.ma200-validation.failed{color:var(--dn);background:var(--dnbg)}.ma200-validation.insufficient{color:var(--or);background:var(--orbg)}.ma200-trade-detail{margin:10px 0 16px;padding:13px;border:1px solid var(--bd);border-radius:9px;background:var(--surf2)}.ma200-trade-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.ma200-trade-timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.ma200-trade-step{padding:9px;background:var(--surf);border:1px solid var(--bd);border-radius:7px;min-width:0}.ma200-trade-step span{display:block;font-size:10px;color:var(--mu2);margin-bottom:5px}.ma200-trade-step strong{display:block;font:650 11px 'DM Mono',monospace;overflow-wrap:anywhere}.ma200-trade-result{font:700 12px 'DM Mono',monospace}.ma200-trade-result.win{color:var(--up)}.ma200-trade-result.loss{color:var(--dn)}
@media(max-width:600px){.research-headline{gap:20px}.research-candidate{font-size:34px}.research-headline p{font-size:11px}.research-threshold{gap:8px}.research-threshold>label{width:100%}.research-metrics{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.research-metrics>div:last-child{grid-column:1/-1;flex-direction:row;align-items:center;flex-wrap:wrap;border-top:1px solid var(--bd)}.research-metrics strong{font-size:22px}.research-metrics>div:last-child strong{font-size:20px}.research-metrics b{font-size:11px}.research-details summary span{display:block;margin:4px 0 0}.research-range{gap:8px}}
@media(max-width:600px){.ma200-grid,.ma200-history-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ma200-parameters,.ma200-split{grid-template-columns:1fr}.ma200-event{grid-template-columns:1fr}.ma200-trade-timeline{grid-template-columns:1fr 1fr}}


.dash-val .dash-leverage{font-size:10px;font-weight:400;letter-spacing:0;opacity:.7}
.vob-history{min-width:0}
.vob-history-row{display:grid;grid-template-columns:16px minmax(100px,1fr) 82px 72px 58px;gap:6px;align-items:center;padding:10px 0;border-top:1px solid var(--bd);font:10px 'DM Mono',monospace;font-variant-numeric:tabular-nums;list-style:none}
.vob-history-row::-webkit-details-marker{display:none}
summary.vob-history-row{cursor:pointer}
.vob-history-row>span:nth-child(n+3){text-align:right;white-space:nowrap}
.vob-history-source{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vob-history-drawer{background:var(--surf2);padding:0 8px;border-left:2px solid var(--ac)}
.vob-history-drawer .vob-history-row{grid-template-columns:16px minmax(92px,1fr) 82px 72px 58px}
.vob-history details[open]>summary .vob-chevron{display:inline-block;transform:rotate(180deg)}
@media(min-width:769px){#vStats.on,#vLeaderboard.on{max-width:none;margin:0;padding:24px}}
@media(max-width:600px){
  #mVobAudit .modal{max-width:calc(100vw - 20px)!important}
  #vobAuditModalContent{padding:0 10px!important}
  .vob-history-row,.vob-history-drawer .vob-history-row{grid-template-columns:12px minmax(70px,1fr) 66px 62px 50px;gap:4px;font-size:9px;padding:9px 0}
  .vob-history-drawer{padding:0 5px}
}
.twitter-opinions-section{margin-bottom:14px}.twitter-opinion-toolbar{padding:14px 16px;border:1px solid var(--bd);border-radius:10px 10px 0 0;background:var(--surf)}.twitter-opinion-toolbar button,.twitter-opinion-actions button{border:1px solid var(--bd);border-radius:7px;background:var(--surf2);color:var(--tx);padding:7px 12px;cursor:pointer}.twitter-opinion-select-label{display:block;padding:12px 16px;background:var(--surf2);border:1px solid var(--bd);border-top:0;color:var(--mu2);font-size:11px}.twitter-opinion-select-label select{display:block;width:100%;margin-top:6px;padding:9px;border:1px solid var(--bd);border-radius:7px;background:var(--surf);color:var(--tx)}.twitter-opinion-detail{border-top:0;border-radius:0 0 10px 10px}.twitter-opinion-raw{margin:10px 0 14px;padding:12px 14px;border-left:3px solid var(--ac);border-radius:0 7px 7px 0;background:var(--surf2);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--tx)}.twitter-opinion-detail a{color:var(--ac)}.twitter-opinion-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.twitter-opinion-facts>div{padding:9px;background:var(--surf2);border:1px solid var(--bd);border-radius:7px;min-width:0}.twitter-opinion-facts span,.twitter-opinion-facts strong{display:block}.twitter-opinion-facts span{font-size:10px;color:var(--mu2);margin-bottom:5px}.twitter-opinion-facts strong{font-size:12px;overflow-wrap:anywhere}.twitter-opinion-reason{margin:12px 0;padding:10px 12px;border-radius:7px;background:var(--surf2);font-size:12px;overflow-wrap:anywhere}.twitter-opinion-chart{width:100%;overflow-x:auto;border:1px solid var(--bd);border-radius:8px;background:var(--surf2)}.twitter-opinion-chart svg{display:block;width:100%;min-width:0;height:auto}.twitter-opinion-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.twitter-opinion-actions .research-muted{font-size:10px}@media(max-width:640px){.twitter-opinion-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.twitter-opinion-detail{padding:12px}.twitter-opinion-toolbar{padding:12px}}
/* Spark summaries are video-level records shared by the orders below. */
.review-spark-reports{display:grid;gap:12px;margin:14px 0}
.review-spark-report{border:1px solid var(--bd);border-radius:10px;padding:12px;background:var(--surf2)}
.review-spark-report summary{cursor:pointer;line-height:1.5}
.review-spark-meta{margin:10px 0;color:var(--mu);font-size:12px}
.review-spark-text{white-space:pre-wrap;line-height:1.7;font-size:13px;max-height:360px;overflow:auto}
.review-spark-excluded{margin-top:12px;font-size:12px;color:var(--mu2)}
.review-spark-excluded ul{margin:6px 0 0;padding-left:20px}

/* Opinion detail stays in document flow, outside the market plot. */
.twitter-opinion-hovercard{position:relative;left:auto;top:auto;width:auto;max-height:420px;margin-top:10px;box-shadow:none;z-index:auto}.twitter-opinion-entry{padding:12px 0;border-bottom:1px solid var(--bd)}.twitter-opinion-entry summary{cursor:pointer;color:var(--ac);padding:6px 0}

/* Twitter Opinion opens as a compact, keyboard-dismissible modal. */
.twitter-opinion-hovercard[hidden]{display:none}.twitter-opinion-hovercard{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px;background:transparent}.twitter-opinion-dialog{width:min(560px,calc(100vw - 32px));max-height:min(70vh,560px);overflow:auto;padding:16px;border:1px solid var(--bd);border-radius:12px;background:var(--surf);box-shadow:0 18px 56px #0008;color:var(--tx)}.twitter-opinion-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.twitter-opinion-dialog-head button{width:32px;height:32px;border:1px solid var(--bd);border-radius:8px;background:var(--surf2);color:var(--tx);font-size:20px;cursor:pointer}.twitter-opinion-dialog-rows{display:grid}.twitter-opinion-row{display:flex;align-items:center;gap:12px;min-width:0;padding:10px 0;border-top:1px solid var(--bd)}.twitter-opinion-summary{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.twitter-opinion-source{position:relative;flex:none;color:var(--ac);text-decoration:none}.twitter-opinion-translation-tooltip{position:fixed;z-index:10002;display:block;width:max-content;max-width:min(380px,calc(100vw - 32px));max-height:min(60vh,420px);overflow:auto;padding:10px 12px;border:1px solid var(--bd);border-radius:8px;background:var(--surf2);box-shadow:0 8px 28px #0005;color:var(--tx);font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:auto}

/* One market surface, with mode-specific results beneath it. */
.research-market-shell{margin-bottom:14px}.research-modes{margin:4px 0 16px}.research-modes button{padding:9px 16px;font-weight:700}.research-market-shell [aria-pressed="true"]{background:var(--ac);color:var(--bg);border-color:var(--ac)}
#researchContent [hidden]{display:none!important}.research-secondary,.research-strategy-details{padding:14px 0}.research-secondary summary,.research-strategy-details summary{cursor:pointer;color:var(--tx2);font-size:12px}.research-market-shell .admin-card{padding:0;border:0;box-shadow:none}.research-market-shell .twitter-opinion-toolbar{border:0;padding:8px 0}.twitter-opinion-filter{display:flex;gap:10px;align-items:center;margin:8px 0;font-size:12px}.twitter-opinion-filter select{padding:8px 12px;background:var(--surf2);color:var(--tx);border:1px solid var(--bd);border-radius:7px}.research-market-shell .twitter-opinion-watchlist{margin:4px 0}.research-market-shell .twitter-opinion-actions{margin:4px 0 12px}
.twitter-opinion-hovercard{inset:auto;display:block;width:min(360px,calc(100vw - 16px));max-height:calc(100dvh - 16px);padding:0;margin:0;border:0;background:transparent;box-shadow:none;overflow:visible}.twitter-opinion-dialog{width:100%;box-sizing:border-box;max-height:min(64dvh,480px);padding:12px;box-shadow:0 8px 28px #0005}.twitter-opinion-dialog-head{font-size:12px}.twitter-opinion-row{display:block;font-size:12px;line-height:1.6}.twitter-opinion-row-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.twitter-opinion-row time,.twitter-opinion-row small{display:block;color:var(--mu2);font-size:10px}.twitter-opinion-summary{white-space:normal;overflow-wrap:anywhere;margin:6px 0}.twitter-opinion-row details{margin:8px 0}.twitter-opinion-row details p{max-height:160px;overflow:auto}.twitter-opinion-directions{display:flex;gap:5px}.twitter-opinion-directions button{padding:6px 10px;border:1px solid var(--bd);border-radius:6px;background:var(--surf2);cursor:pointer;min-height:32px}.twitter-opinion-directions .long{color:var(--up)}.twitter-opinion-directions .short{color:var(--dn)}.twitter-opinion-directions button[aria-pressed="true"]{border-color:currentColor;background:var(--surf2)}.twitter-opinion-validation{padding:8px;border-radius:6px;background:var(--surf2);margin:8px 0;color:var(--tx2)}.twitter-opinion-validation.correct strong{color:var(--up)}.twitter-opinion-validation.incorrect strong{color:var(--dn)}.twitter-opinion-validation.invalidated strong{color:var(--or)}
@media(max-width:640px){.research-modes{display:flex;width:100%}.research-modes button{flex:1;padding:10px 6px}.research-market-shell{padding:12px}.twitter-opinion-directions button{min-height:40px}.research-market-controls .research-toolbar{gap:8px}.research-market-controls .research-range>div{display:flex;flex-wrap:wrap;gap:4px}}

.research-market-shell #twitterOpinionsSection{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 12px;margin-bottom:10px}.research-market-shell .twitter-opinion-filter{grid-column:2;grid-row:1}.research-market-shell .twitter-opinion-filter select{width:auto;min-width:150px}.twitter-opinion-tools{grid-column:1/-1;font-size:11px;color:var(--mu2)}.twitter-opinion-tools>summary{padding:5px 0;cursor:pointer}.research-market-shell .twitter-opinion-toolbar p{margin:4px 0;font-size:10px}.research-market-shell .research-modes{margin-bottom:8px}@media(max-width:640px){.research-market-shell #twitterOpinionsSection{grid-template-columns:1fr}.research-market-shell .twitter-opinion-filter{grid-column:1;grid-row:2;margin:2px 0}.research-market-shell .twitter-opinion-filter select{flex:1}}

/* Safe Mode: quiet analysis graphics, with readable labels and unchanged hit targets.
   Keep these overrides scoped: navigation, controls and non-market UI retain color. */
[data-safe-mode="on"] svg[data-spk],[data-safe-mode="on"] .safe-mini-chart{display:none!important}
[data-safe-mode="on"] .hint-ico{font-size:0}
[data-safe-mode="on"] .hint-ico::after{content:'▤';font-size:40px;color:var(--mu2)}
[data-safe-mode="on"] .financial-emoji{filter:grayscale(1)}
[data-safe-mode="on"] :is(#ma200HistorySvg,#researchSvg){
  --ac:color-mix(in srgb,var(--mu2) 70%,#8b5cf6);
  --bl:color-mix(in srgb,var(--mu2) 70%,#3b82f6);
  --or:color-mix(in srgb,var(--mu2) 70%,#d97706);
}
/* Normal market ink inherits the previous Safe Mode weight and neutral colors.
   Safe Mode lowers only price decoration further; geometry and markers stay intact. */
:is(#ma200HistorySvg,#researchSvg){--market-ink:#737373}
[data-theme="dark"] :is(#ma200HistorySvg,#researchSvg){--market-ink:#8b8b8b}
:is(#ma200HistorySvg,#researchSvg) .research-price-line{stroke-width:.9;stroke-opacity:.7}
:is(#ma200HistorySvg,#researchSvg) .research-candle-wick{stroke:var(--market-ink);stroke-width:.5;stroke-opacity:.65}
#researchSvg .research-candle-wick{stroke-width:1}
:is(#ma200HistorySvg,#researchSvg) .research-candle-body{fill:var(--market-ink);fill-opacity:.65}
[data-safe-mode="on"] :is(#ma200HistorySvg,#researchSvg) .research-price-line{stroke-width:.6;stroke-opacity:.35}
[data-safe-mode="on"] :is(#ma200HistorySvg,#researchSvg) :is(.research-ma-line,.research-equity-line){stroke-width:.9;stroke-opacity:.7}
[data-safe-mode="on"] :is(#ma200HistorySvg,#researchSvg) .research-zone{opacity:.04}
[data-safe-mode="on"] :is(#ma200HistorySvg,#researchSvg) .research-candle-wick{stroke-width:.4;stroke-opacity:.3}
[data-safe-mode="on"] :is(#ma200HistorySvg,#researchSvg) .research-candle-body{fill-opacity:.28}
[data-safe-mode="on"] :is(#ma200HistorySvg,#researchSvg) :is(.twitter-opinion-marker,.research-event-marker) circle{stroke-width:.85}
[data-safe-mode="on"] #ma200HistorySvg .ma200-signal-marker circle[pointer-events="none"]{fill-opacity:.6;stroke-width:.75}
/* Hover/focus provides local emphasis without shrinking or disabling a marker. */
[data-safe-mode="on"] :is(#ma200HistorySvg,#researchSvg) :is(.twitter-opinion-marker,.research-event-marker):is(:hover,:focus-visible) circle{stroke-width:1.5;stroke-opacity:1}
[data-safe-mode="on"] #ma200HistorySvg .ma200-signal-marker:is(:hover,:focus-visible) circle[pointer-events="none"]{fill-opacity:1}

/* Financial summaries read like workstation rows instead of headline counters. */
[data-safe-mode="on"] :is(.svl,.dash-val,.hero-price,.research-metrics strong,.ma200-candidate strong){font-size:17px;font-weight:500;letter-spacing:0;line-height:1.35;font-variant-numeric:tabular-nums}
[data-safe-mode="on"] .safe-metric{font-size:14px!important;font-weight:500!important;line-height:1.4}
[data-safe-mode="on"] :is(.scard,.dash-card,.hero-card,.tscard,.poscard,.research-market-shell){box-shadow:none}
[data-safe-mode="on"] #leaderboardContent .admin-card{box-shadow:none}
[data-safe-mode="on"] #leaderboardContent .admin-table td.cmono{font-weight:500!important}
[data-safe-mode="on"] :is(.poscard.open,.poscard.pending){border-left-width:1px;border-left-color:var(--bd2)}
[data-safe-mode="on"] :is(.pcs,.otyp,.expb,.vrd){background:var(--surf2);font-weight:500;border-radius:4px}
[data-safe-mode="on"] :is(.research-hero,.ma200-card,.ma200-history-card){border-top-width:1px;border-top-color:var(--bd)}
[data-safe-mode="on"] .ma200-candidate{background:var(--surf2)}
[data-safe-mode="on"] .research-metrics{background:transparent}
/* Keep identifiers/counts and original hit regions; quiet only marker decoration. */
[data-safe-mode="on"] :is(#ma200HistorySvg,#researchSvg) :is(.twitter-opinion-marker,.research-event-marker) circle{stroke-opacity:.25}
[data-safe-mode="on"] :is(#ma200HistorySvg,#researchSvg) :is(.twitter-opinion-marker,.research-event-marker) text{fill:var(--mu2);font-weight:400}
[data-safe-mode="on"] #ma200HistorySvg .ma200-signal-marker circle[pointer-events="none"]{r:3px;fill-opacity:.5}
[data-safe-mode="on"] :is(#ma200HistorySvg,#researchSvg) :is(.twitter-opinion-marker,.research-event-marker):is(:hover,:focus-visible) circle{stroke-opacity:1}
[data-safe-mode="on"] #ma200HistorySvg .ma200-signal-marker:is(:hover,:focus-visible) circle[pointer-events="none"]{r:6px;fill-opacity:1}
@media(max-width:640px){
  :is(#ma200HistorySvg,#researchSvg) .research-candle-body{fill-opacity:.35}
  [data-safe-mode="on"] :is(#ma200HistorySvg,#researchSvg) .research-candle-body{fill-opacity:.2}
}

.twitter-opinion-dialog-head{position:sticky;top:-12px;margin:-12px -12px 8px;padding:10px 12px;background:var(--surf);z-index:1;border-bottom:1px solid var(--bd)}

/* First UX quality pass: preserve the existing tokens and visual language. */
#statsContent{display:flex;flex-direction:column;gap:12px}
#adminContent,#followContent{flex-shrink:0}
.leader-table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.leader-user-link{border:0;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer;text-align:left;padding:6px 0}
[role="button"]:focus-visible,.leader-table-scroll:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.settings-save-feedback{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--mu2)}
.settings-save-feedback:has(#settingsSaveStatus:empty){display:none}
.review-submit-bar{flex-wrap:wrap;align-items:center;gap:10px;background:var(--bg);padding:10px 0}
.review-batch-effect{flex:1;min-width:180px;font-size:11px;color:var(--mu2);line-height:1.6}
.review-submit-bar .bfull{white-space:normal}
@media(max-width:768px){
  .app{overflow:visible}
  .pc-meta-chart{flex-direction:column;align-items:stretch!important}
  .pc-meta-chart>div:last-child{flex:0 0 auto!important;max-width:100%}
  .pc-meta-chart svg{max-width:100%}
  #vTrades .filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}
  #vTrades .filter-bar .fsel,.fpill,.bsm,.bico,.badd,.tbtn,.logout-btn,.back-btn{min-height:40px}
  .bico,.badd,.tbtn{min-width:40px}
  .hdr{padding:0 10px}.hdr-r{gap:4px}.user-pill{max-width:120px;overflow:hidden;text-overflow:ellipsis}
  .kol-ranking-header{align-items:flex-start;flex-wrap:wrap;gap:10px}
  .kol-ranking-header>div:last-child{width:100%;display:flex;flex-wrap:wrap}
  .kol-ranking-header button{flex:1;min-height:40px;white-space:nowrap}
  #vLeaderboard .leader-table-scroll .admin-table{display:table;min-width:720px;white-space:nowrap}
  #vLeaderboard .leader-table-scroll .admin-table tr{display:table-row}
  #vLeaderboard .leader-table-scroll .admin-table th,#vLeaderboard .leader-table-scroll .admin-table td{display:table-cell;width:auto;padding:10px 8px;border-bottom:1px solid var(--bd);font-size:11px}
  #vLeaderboard .leader-table-scroll .admin-table td:nth-child(8) svg{width:80px!important}
  .review-submit-bar{bottom:calc(var(--bot-nav) + 10px + env(safe-area-inset-bottom));padding:10px 0}
  .review-batch-effect{flex-basis:100%}
  .review-select-cell,.review-select-all{min-height:40px;min-width:40px}
  .intel-doc table{min-width:720px;table-layout:auto}
  .intel-doc th,.intel-doc td{min-width:80px;max-width:260px}
}
/* Second UX pass: existing tokens, clearer hierarchy. */
.action-feedback{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;line-height:1.6;border-radius:10px;margin-bottom:12px}.action-feedback:empty{display:none}.action-feedback:not(:empty){padding:10px 12px;border:1px solid var(--bd);background:var(--surf2)}.action-feedback.pending{color:var(--ac)}.action-feedback.failed{color:var(--dn)}.action-feedback.success{color:var(--up)}
button[aria-busy="true"]{cursor:progress;opacity:.6}button:disabled{cursor:default;opacity:.5}button:not(:disabled):active{transform:translateY(1px)}
.market-updated{color:var(--mu2);font-size:11px;white-space:nowrap;border-left:1px solid var(--bd);padding-left:10px}.market-updated.stale{color:var(--or)}.hdr-r .live{font-size:11px;white-space:nowrap}
#tradesContent .filter-bar{align-items:center;width:100%}#tradesContent .fsel{min-width:132px}.rec-tbl th{background:var(--surf2);color:var(--mu2);font-size:11px}.rec-tbl td{font-variant-numeric:tabular-nums}.rec-tbl tbody tr:nth-child(even),.leader-table-scroll tr:nth-child(odd):not(:first-child){background:color-mix(in srgb,var(--surf2) 45%,transparent)}.rec-tbl tbody tr:hover,.leader-table-scroll tr:hover{background:var(--acbg)}.emsg strong{display:block;color:var(--tx2);font-size:14px;margin-bottom:6px}.emsg .bsm{margin-top:12px}
.stats-overview{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.stats-overview>.scard{padding:18px;min-height:112px}.stats-overview>.pnl-chart-card{grid-column:1/-1!important}.stats-overview .slb{font-size:11px;color:var(--mu2);letter-spacing:.3px;margin-bottom:9px}.stats-overview .ssub{margin-top:8px}
.kol-metric-card .tsname{min-height:30px;gap:8px}.kol-metric-card .tsnums{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.kol-metric-card .tsnl{font-size:11px;letter-spacing:0;color:var(--mu2)}.kol-metric-card .tsn{font-size:12px;font-variant-numeric:tabular-nums}.kol-metric-card .kol-primary{grid-row:1;padding:9px 0 10px;border-bottom:1px solid var(--bd)}.kol-metric-card .kol-primary .tsn{font-size:18px;font-weight:600;margin-top:5px}.kol-metric-card .kol-average{grid-column:2}.kol-metric-card .kol-win-rate{grid-row:2}
.admin-card-sub{line-height:1.6;font-size:11px;color:var(--mu2)}.admin-card-hd{gap:12px}.admin-card-hd>div{min-width:0}.system-health-attention-item{border-left:2px solid var(--bd);padding-left:10px;margin-top:10px}.system-health-attention-item[data-health-status="degraded"]{border-color:var(--dn)}.system-health-attention-item[data-health-status="stale"]{border-color:var(--or)}.system-health-attention-item p,.system-health-service-copy span{font-size:12px;line-height:1.6;color:var(--mu2)}.system-health-attention-item strong,.system-health-service-copy strong{font-size:12px}.system-health-service[data-health-status="degraded"]{border-color:color-mix(in srgb,var(--dn) 45%,var(--bd));background:color-mix(in srgb,var(--dn) 3%,var(--surf))}.system-health-service[data-health-status="stale"]{border-color:color-mix(in srgb,var(--or) 35%,var(--bd))}.system-health-side-panel summary{cursor:pointer;font-size:12px;min-height:28px}.system-health-note,.system-health-empty{font-size:11px}.system-health-service-copy small{font-size:10px}
.intel-history-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px;margin:0 0 12px;border:1px solid var(--bd);border-radius:12px;background:var(--surf)}.intel-history-nav label{display:flex;align-items:center;gap:8px;flex:1;min-width:160px;font-size:11px;color:var(--mu2)}.intel-history-nav select{min-width:0;width:100%;max-width:500px}.intel-meta{font-size:11px;color:var(--mu2)}.intel-item .intel-title{line-height:1.5;margin-bottom:8px}
.research-intervals{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin:14px 0 6px}.research-intervals button{min-width:42px;min-height:36px}.research-intervals button[aria-pressed="true"]{background:var(--acbg);color:var(--ac);border-color:var(--ac)}.research-period-note{font-size:11px;line-height:1.6;max-width:850px;margin:4px 0 12px}.research-range{border-top:1px solid var(--bd);padding-top:12px;gap:12px}.research-range label{font-size:11px;color:var(--mu2)}select{font:inherit;color:var(--tx2);background:var(--surf);border:1px solid var(--bd);border-radius:8px;padding:8px;min-height:36px}
#researchChart,#ma200HistoryChart{touch-action:none;overscroll-behavior:contain;cursor:grab;user-select:none;overflow:hidden}#researchChart.research-dragging,#ma200HistoryChart.research-dragging{cursor:grabbing}.ma200-history-hover,.research-hover{font-size:11px;line-height:1.6;min-height:40px}
@media(min-width:1100px){.stats-overview{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(330px,1.7fr);align-items:stretch}.stats-overview>.pnl-chart-card{grid-column:4!important;grid-row:1}.stats-overview>.scard{align-self:center}}
@media(max-width:768px){.hdr-r{flex-wrap:wrap;justify-content:flex-end}.market-updated{font-size:10px;padding-left:6px}.hdr-r .live{font-size:10px}#tradesContent .filter-bar .fsel{min-width:0;width:100%}.stats-overview{gap:8px}.stats-overview>.scard{padding:12px;min-height:100px}.stats-overview .svl{font-size:20px}.stats-overview .slb{font-size:10px}.stats-overview .ssub{font-size:10px;line-height:1.6;overflow-wrap:anywhere}.stats-overview>.pnl-chart-card{grid-column:1/-1!important}.intel-history-nav label{order:-1;flex-basis:100%}.intel-history-nav>button{flex:1}.intel-history-nav select{max-width:100%}.research-intervals button,.research-range button,.research-range select{min-height:40px}.ma200-history-actions{width:100%;display:flex;flex-wrap:wrap;gap:6px}.ma200-history-actions label{width:100%}.ma200-history-actions label select{margin-left:5px}.system-health-overview h2{font-size:18px}.system-health-counts{grid-template-columns:repeat(4,minmax(0,1fr));min-width:0}}
@media(prefers-reduced-motion:reduce){button,.tscard,.intel-item{transition:none!important}}
@media(max-width:768px){
  .hdr{height:auto;min-height:74px;display:grid;grid-template-columns:minmax(80px,1fr) auto auto auto auto;grid-template-rows:40px 20px;padding:6px 12px;gap:2px 4px}
  .hdr>div:first-child{grid-column:1;grid-row:1}.hdr-r{display:contents}.hdr-r .tbtn{grid-row:1;width:34px;min-width:34px;min-height:36px;height:36px}
  .hdr-r #tbtn{grid-column:2}.hdr-r #safeBtn{grid-column:3}.hdr-r .user-pill{grid-column:4;grid-row:1;display:block;max-width:76px;font-size:10px;overflow:hidden;text-overflow:ellipsis}.hdr-r .logout-btn{grid-column:5;grid-row:1;display:block;min-height:36px;padding:5px}
  .hdr-r .live{display:flex;grid-column:1/3;grid-row:2;align-self:center;font-size:10px}.hdr-r .market-updated{grid-column:3/6;grid-row:2;font-size:10px;border:0;padding:0;align-self:center;text-align:right}
  .stats-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-overview>.scard:nth-child(3){grid-column:1/-1;min-height:86px}
}
#adminActionStatus:not(:empty),#followActionStatus:not(:empty){position:sticky;top:0;z-index:20;background:var(--surf);box-shadow:var(--sh-sm)}
.research-period-note summary{cursor:pointer;color:var(--mu2);font-size:11px;line-height:1.6}.research-period-note p{margin:6px 0}
@media(max-width:640px){.research-market-shell .twitter-opinion-toolbar:not(.twitter-opinion-actions){flex-direction:row;align-items:center;gap:8px}.research-market-shell .twitter-opinion-toolbar>div{min-width:0}.research-market-shell .twitter-opinion-toolbar>button{flex-shrink:0;min-height:40px}.research-market-shell .twitter-opinion-toolbar .research-muted{font-size:10px;line-height:1.5}.research-market-shell .research-range{margin-top:8px;padding-top:8px}}

/* Closed analysis panels keep all content, but do not create hidden table layouts. */
#researchContent details:not([open])>:not(summary){display:none}
