:root{
  --page:#EEF1F6; --card:#FFFFFF; --ink:#14213D; --navy2:#0D1730; --muted:#5B6782;
  --rule:#D9DFEA; --gold:#FFB400; --goldtint:#FFF5D6; --up:#0E8A4F; --down:#C8322B; --warn:#9A6700;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--page);color:var(--ink);font-family:"Avenir Next","Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;min-height:100vh}
.num{font-variant-numeric:tabular-nums}
.up{color:var(--up)} .down{color:var(--down)}
button,input,textarea,select{font:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
a{color:inherit}

/* Masthead */
.mast{background:var(--ink);color:#fff;padding:18px 32px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.mark{width:48px;height:48px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;font-weight:900;font-size:26px;line-height:1}
.brand h1{font-size:30px;font-weight:800;letter-spacing:-.5px;line-height:1}
.brand p{color:#AEB9D3;font-size:14px;margin-top:5px}
.live{font-size:14px;color:#D6DDEC;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.live .pill{background:rgba(255,255,255,.08);padding:5px 11px;border-radius:6px;font-weight:600}
.live .pill.closed{color:#AEB9D3}
.live .pill.off{background:rgba(255,180,0,.15);color:var(--gold)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#3DDC84;margin-right:7px;animation:pulse 1.6s infinite}
.dot.still{background:#7C88A6;animation:none}
@keyframes pulse{50%{opacity:.25}}

/* Ticker tape */
.tape{background:var(--navy2);color:#fff;overflow:hidden;white-space:nowrap;border-top:1px solid #22305A;min-height:38px}
.tape-inner{display:inline-block;padding:9px 0;animation:scroll 80s linear infinite}
.tk{display:inline-block;margin:0 22px;font-size:15px}
.tk b{margin-right:8px}
.tk .up{color:#3DDC84} .tk .down{color:#FF6B63}
@keyframes scroll{to{transform:translateX(-50%)}}

/* Nav + layout */
nav{max-width:1320px;margin:0 auto;padding:18px 32px 0;display:flex;gap:4px}
nav button{background:none;border:none;border-bottom:3px solid transparent;color:var(--muted);font-size:16px;font-weight:600;padding:8px 14px;cursor:pointer}
nav button.active{color:var(--ink);border-bottom-color:var(--gold)}
main{max-width:1320px;margin:0 auto;padding:18px 32px 36px}
.summary{font-size:18px;line-height:1.5;margin-bottom:18px;max-width:78ch}
.summary strong{font-weight:700}
.banner{background:var(--goldtint);border:1px solid #F1D48A;border-radius:10px;padding:10px 14px;margin-bottom:16px;font-size:15px}

/* Leaderboard */
.board{background:var(--card);border-radius:14px;box-shadow:0 0 0 1px var(--rule);overflow:hidden}
.cols{display:grid;grid-template-columns:72px minmax(190px,1.7fr) 1.2fr .8fr .9fr .9fr 150px;align-items:center;gap:12px;padding:0 22px}
.board-head{height:44px;font-size:13px;color:var(--muted);font-weight:600;border-bottom:1px solid var(--rule)}
.board-head>div:nth-child(n+3),.row>div:nth-child(n+3){text-align:right}
#rows{position:relative}
.row{position:absolute;left:0;right:0;height:64px;border-bottom:1px solid var(--rule);cursor:pointer;background:var(--card);transition:top .9s cubic-bezier(.2,.8,.2,1)}
.row:hover{background:#F6F8FC}
.row.lead{background:var(--goldtint)}
.rank{display:flex;align-items:center;gap:8px}
.rk{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:17px;background:var(--page)}
.lead .rk{background:var(--gold)}
.mv{font-size:12px;font-weight:700}
.team{display:flex;align-items:center;gap:12px;min-width:0}
.sw{width:10px;height:38px;border-radius:3px;flex:none;display:inline-block}
.team b{font-size:17px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.team small{color:var(--muted);font-size:13px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.val{font-size:19px;font-weight:700;border-radius:6px;padding:4px 6px;margin-right:-6px}
.cell{font-size:16px;font-weight:600}
.flash-up{animation:fu 1s}
.flash-down{animation:fd 1s}
@keyframes fu{from{background:rgba(14,138,79,.22)}to{background:transparent}}
@keyframes fd{from{background:rgba(200,50,43,.22)}to{background:transparent}}
.spark svg{display:block;margin-left:auto}

/* Team page */
.back{background:none;border:none;color:var(--muted);cursor:pointer;font-size:15px;font-weight:600;margin-bottom:16px;padding:4px 0}
.back:hover{color:var(--ink)}
.team-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:18px;margin-bottom:18px}
.team-head h2{font-size:34px;font-weight:800;letter-spacing:-.5px;display:flex;align-items:center;gap:14px}
.team-head .members{color:var(--muted);margin-top:6px;font-size:15px}
.team-head .big{font-size:38px;font-weight:800;text-align:right;letter-spacing:-.5px}
.team-head .sub{color:var(--muted);font-size:15px;text-align:right;margin-top:2px}
.card{background:var(--card);border-radius:14px;box-shadow:0 0 0 1px var(--rule);padding:20px 22px;margin-bottom:18px}
.card h3{font-size:17px;font-weight:700;margin-bottom:12px;display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.legend{font-size:13px;font-weight:500;color:var(--muted);display:flex;gap:16px;flex-wrap:wrap}
.legend i{display:inline-block;width:18px;height:3px;vertical-align:middle;margin-right:6px;border-radius:2px}
.chart-wrap{position:relative}
.tip{position:absolute;top:6px;pointer-events:none;background:var(--ink);color:#fff;border-radius:8px;padding:8px 11px;font-size:13px;line-height:1.5;transform:translateX(-50%);white-space:nowrap;display:none}
.grid2{display:grid;grid-template-columns:1.55fr 1fr;gap:18px}
.empty{color:var(--muted);padding:12px 0}
table{width:100%;border-collapse:collapse;font-size:15px}
th{font-size:13px;color:var(--muted);font-weight:600;text-align:right;padding:8px 10px;border-bottom:1px solid var(--rule)}
td{padding:11px 10px;text-align:right;border-bottom:1px solid var(--rule);vertical-align:top}
th:first-child,td:first-child{text-align:left}
td small{color:var(--muted);display:block;font-size:12px;font-weight:400}
tr.total td{font-weight:700;border-bottom:none}
.buy{color:var(--up);font-weight:700}.sell{color:var(--down);font-weight:700}
.log-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
select,input[type=text],input[type=password],textarea{background:var(--card);color:var(--ink);border:1px solid var(--rule);border-radius:8px;padding:9px 12px;font-size:15px}
.tname{display:flex;align-items:center;gap:8px}
.tname .sw{height:18px;width:6px}

/* Trade Desk */
.narrow{max-width:460px}
.help{color:var(--muted);line-height:1.6;margin-bottom:12px;max-width:78ch}
code{background:var(--page);border-radius:5px;padding:1px 6px;font-size:14px;color:var(--ink);white-space:nowrap}
textarea{width:100%;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:16px;line-height:1.6}
.btns{display:flex;gap:10px;margin:12px 0;flex-wrap:wrap;align-items:center}
.btn{border:1px solid var(--rule);background:var(--card);color:var(--ink);font-weight:700;padding:10px 18px;border-radius:9px;cursor:pointer}
.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn.go{background:var(--up);color:#fff;border-color:var(--up)}
.btn.danger{color:var(--down);border-color:#EBC0BD}
.btn:disabled{opacity:.45;cursor:not-allowed}
.msg{font-size:15px;font-weight:600}
.msg.bad{color:var(--down)} .msg.good{color:var(--up)}
tr.err td{background:#FDF0EF}
tr.warn td{background:#FFF8E6}
.note{font-size:13px;display:block;margin-top:3px;text-align:left}
.note.bad{color:var(--down)} .note.warn{color:var(--warn)}
.team-edit{display:grid;grid-template-columns:18px 70px 1fr 1.6fr;gap:10px;align-items:center;margin-bottom:8px}
.team-edit .sw{height:26px;width:10px}
.team-edit label{color:var(--muted);font-size:14px}
.checks li{list-style:none;padding:12px 0;border-bottom:1px solid var(--rule);display:flex;gap:12px;align-items:baseline}
.checks .ic{font-weight:800;width:22px}
.checks small{color:var(--muted);display:block;margin-top:2px}

footer{max-width:1320px;margin:0 auto;color:var(--muted);font-size:14px;line-height:1.6;padding:0 32px 36px}

@media (max-width:900px){
  .cols{grid-template-columns:48px 1fr 1fr .8fr;padding:0 12px;gap:8px}
  .hide-sm{display:none}
  .grid2{grid-template-columns:1fr}
  .mast,nav,main,footer{padding-left:16px;padding-right:16px}
  .team-head .big,.team-head .sub{text-align:left}
  .team-edit{grid-template-columns:14px 1fr;}
  .team-edit label{display:none}
}
@media (prefers-reduced-motion:reduce){
  .tape-inner,.dot{animation:none}
  .row{transition:none}
  .flash-up,.flash-down{animation:none}
}
