/* Todd Shriber footer: market close on the trading terminal. Session status header,
   the links as a row of function keys, the 18+ notice as a disclosures box, status bar below */
.ts-foot{
  --t-bg:#0B0E14; --t-bg-2:#10141c; --t-ink:#D1D5DB; --t-bright:#f2f4f7; --t-faint:#8d96a6;
  --t-green:#00C853; --t-red:#FF5a2a; --t-accent:#7B61FF; --t-accent-2:#9f8fff; --t-line:rgba(209,213,219,.14);
  --t-mono:'Fira Code','Courier New',monospace; --t-body:'Roboto',-apple-system,"Segoe UI",sans-serif;
  background:var(--t-bg); color:var(--t-ink); font-family:var(--t-body); line-height:1.6; text-align:left;
  padding:40px 0 56px; border-top:1px solid var(--t-line);
}
.ts-foot *{box-sizing:border-box;}
.ts-foot .wrap{max-width:1100px; margin:0 auto; padding:0 24px;}
.ts-foot p{margin:0;}
.ts-foot a:focus-visible,.ts-foot .kc-link:focus-visible{outline:2px solid var(--t-accent-2); outline-offset:3px;}
.ts-term{border:1px solid rgba(255,255,255,.1); border-radius:12px; background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.015)); overflow:hidden;}
.ts-head{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px 16px; padding:14px 18px;
  border-bottom:1px solid var(--t-line); background:var(--t-bg-2); font-family:var(--t-mono);}
.ts-sym{font-weight:700; font-size:1.1rem; color:var(--t-bright);}
.ts-sym b{color:var(--t-accent-2);}
.ts-closed{display:inline-flex; align-items:center; gap:8px; font-size:.74rem; letter-spacing:.06em; color:var(--t-red);
  border:1px solid rgba(255,90,42,.4); background:rgba(255,61,0,.08); padding:5px 11px; border-radius:999px;}
.ts-dot{width:7px; height:7px; border-radius:50%; background:var(--t-red);}

/* function keys */
.ts-keys{list-style:none; margin:0; padding:18px; display:grid; grid-template-columns:repeat(6,1fr); gap:10px;}
.ts-key{display:flex; flex-direction:column; justify-content:space-between; gap:6px; min-height:64px; padding:9px 12px 10px;
  text-decoration:none; color:var(--t-bright); font-family:var(--t-mono); border-radius:7px;
  background:linear-gradient(180deg, #1b2130, #141925); border:1px solid rgba(255,255,255,.12); border-bottom:4px solid #070a0f;
  transition:transform .12s ease, border-color .15s ease;}
.ts-fn{font-size:.68rem; font-weight:700; color:var(--t-accent-2); letter-spacing:.04em;}
.ts-lbl{font-size:.82rem; font-weight:600; line-height:1.2;}
.ts-key:hover{border-color:var(--t-accent-2); border-bottom-color:#070a0f;}
.ts-key:active{transform:translateY(3px); border-bottom-width:1px; margin-bottom:3px;}
.ts-key[aria-current="page"]{background:linear-gradient(180deg, #2a2257, #1d1840); border-color:var(--t-accent);}
.ts-key[aria-current="page"] .ts-fn{color:var(--t-green);}

/* disclosures */
.ts-disc{margin:0 18px 18px; padding:14px 16px; border-left:3px solid var(--t-accent); background:rgba(123,97,255,.06); border-radius:0 8px 8px 0;}
.ts-disc-k{font-family:var(--t-mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--t-accent-2); font-weight:700; margin-bottom:4px !important;}
.ts-disc-t{font-size:.86rem; color:var(--t-ink);}

/* status bar */
.ts-status{display:flex; flex-wrap:wrap; gap:4px 24px; padding:10px 18px; border-top:1px solid var(--t-line); background:var(--t-bg-2);
  font-family:var(--t-mono); font-size:.74rem; color:var(--t-faint);}
.ts-status span + span::before{content:"| "; color:var(--t-line);}
.ts-foot .kc-foot{max-width:1100px; margin:10px auto 0; padding:0 24px; font-family:var(--t-mono); font-size:.76rem; color:var(--t-faint);}
.ts-foot .kc-link{color:var(--t-ink);}
@media (max-width:900px){ .ts-keys{grid-template-columns:repeat(3,1fr);} }
@media (max-width:480px){ .ts-keys{grid-template-columns:repeat(2,1fr); padding:14px;} .ts-disc{margin:0 14px 14px;} .ts-status span + span::before{content:none;} }
@media (prefers-reduced-motion:reduce){ .ts-key{transition:none;} .ts-key:active{transform:none;} }
/* the 404 page centres its content in a flex row: stack the footer under it */
body:has(> footer.ts-foot):not(:has(.topnav)){flex-direction:column; align-items:stretch;}
body:has(> footer.ts-foot):not(:has(.topnav)) > .wrap{margin-left:auto; margin-right:auto;}
