/* Billionaires Digest: shared styles for the tool pages (calendar.html, flows.html).
   Loaded after assets/site.css. Uses only the site's color tokens, so both themes work. */

.tools{padding-bottom:48px}
.tsec{padding-top:28px}
.tsec > h2{margin:0;padding-bottom:10px;border-bottom:1px solid var(--line);font-style:italic;font-size:clamp(22px,3vw,28px);line-height:1.2}
.tsec > .tlead{margin:10px 0 0;font-size:14px;line-height:1.65;color:var(--soft);max-width:760px}
.tnote{margin:12px 0 0;font-size:11px;line-height:1.6;color:var(--muted);max-width:820px}
.tnote a{overflow-wrap:anywhere}
.tempty{padding:18px 0;font-size:13px;color:var(--muted);border-bottom:1px solid var(--line)}
.estflag{display:inline-block;font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;font-weight:500;font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;border:1px solid var(--line2);color:var(--muted);vertical-align:middle}

/* call-to-action row */
.tcta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:16px}
.tbtn{min-height:44px;display:inline-flex;align-items:center;padding:10px 16px;background:var(--text);color:var(--bg);border:1px solid var(--text);font-size:11px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none}
.tbtn:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.tbtn.ghost{background:transparent;color:var(--text);border-color:var(--line2)}
.tbtn.ghost:hover{background:var(--panel);color:var(--text);border-color:var(--text)}
.tcta .tsmall{font-size:12px;color:var(--muted)}

/* event / planned-sale rows */
.trows{list-style:none;margin:0;padding:0}
.trow{display:grid;grid-template-columns:92px minmax(0,1fr);gap:4px 18px;padding:14px 0;border-bottom:1px solid var(--line);align-items:start}
.tdate{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);line-height:1.4;padding-top:2px}
.tdate .approx{color:var(--muted)}
.tmain{min-width:0}
.ttitle{margin:0;font-size:15px;line-height:1.45;overflow-wrap:anywhere}
.tmeta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:8px;font-size:12px;color:var(--muted)}
.tperson{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin:-4px 0 0;color:var(--text);text-decoration:none}
a.tperson:hover .tpname{text-decoration:underline}
.tperson .av{color:var(--text)}
.tpname{font-weight:600;overflow-wrap:anywhere}
.tsrc{display:inline-flex;align-items:center;min-height:44px;margin:-6px 0;font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.ttype{font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;border:1px solid var(--line2)}
.tfig{font-variant-numeric:tabular-nums;color:var(--text)}
.tgroup{margin:22px 0 0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500;font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;padding-bottom:8px;border-bottom:1px solid var(--text)}
.tgroup .cnt{color:var(--accent);margin-left:6px}

/* headline stat */
.tstat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--text);border-bottom:1px solid var(--line);margin-top:18px}
.tstat > div{padding:16px 16px 14px 0}
.tstat > div + div{padding-left:16px;border-left:1px solid var(--line)}
.tstat .big{font-size:clamp(28px,4.4vw,44px);line-height:1.05;margin-top:6px;overflow-wrap:anywhere}
.tstat .sub{font-size:11px;color:var(--muted);margin-top:4px}

/* bar chart */
.tchart{margin-top:18px}
.tchart svg{display:block;width:100%;height:auto;overflow:visible}
.tchart .axis{stroke:var(--line2);stroke-width:1}
.tchart .grid{stroke:var(--line);stroke-width:1}
.tchart .bbuy{fill:var(--up)}
.tchart .bsell{fill:var(--down)}
.tchart text{fill:var(--muted);font-size:11px;font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif}
.tlegend{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;font-size:12px;color:var(--soft)}
.tlegend i{display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px}
.tlegend .lbuy{background:var(--up)} .tlegend .lsell{background:var(--down)}

/* tables */
.ttable-wrap{overflow-x:auto;margin-top:12px;max-width:100%}
.ttable{width:100%;border-collapse:collapse;font-size:13px}
.ttable caption{text-align:left;font-size:11px;color:var(--muted);padding-bottom:8px}
.ttable th,.ttable td{padding:9px 10px 9px 0;border-bottom:1px solid var(--line);text-align:right;vertical-align:top}
.ttable th:first-child,.ttable td:first-child{text-align:left}
.ttable thead th{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--muted);border-bottom-color:var(--text)}
.ttable td.up{color:var(--up)} .ttable td.down{color:var(--down)}
.tdetails{margin-top:12px}
.tdetails summary{display:inline-flex;align-items:center;min-height:44px;cursor:pointer;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.tdetails summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}

/* ranked lists (top sellers, leaderboards) */
.tcols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px}
.tboard h3{margin:22px 0 0;font-size:20px;line-height:1.2;padding-bottom:8px;border-bottom:1px solid var(--text)}
.tboard h3 .estflag{margin-left:8px}
.tboard .tnote{margin-top:8px}
.trank{list-style:none;margin:0;padding:0;counter-reset:r}
.trank > li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:4px 12px;align-items:start;padding:10px 0;border-bottom:1px solid var(--line);counter-increment:r}
.trank > li::before{content:counter(r);font-family:'DM Serif Display',Georgia,serif;font-size:20px;line-height:1.4;color:var(--muted)}
.trank .rmain{min-width:0}
.trank .rval{font-size:14px;font-weight:600;text-align:right;white-space:nowrap;padding-top:10px}
.trank .rsrc{display:flex;flex-wrap:wrap;gap:0 12px;margin-top:2px;font-size:11px;color:var(--muted)}
.trank .rsrc a{display:inline-flex;align-items:center;min-height:44px;margin:-10px 0 -12px;overflow-wrap:anywhere}

@media (max-width:900px){
  .tcols{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:600px){
  .trow{grid-template-columns:minmax(0,1fr)}
  .tstat{grid-template-columns:minmax(0,1fr)}
  .tstat > div + div{padding-left:0;border-left:none;border-top:1px solid var(--line)}
  .trank > li{grid-template-columns:24px minmax(0,1fr)}
  .trank .rval{grid-column:2;text-align:left;padding-top:0}
}
@media (prefers-reduced-motion: reduce){
  .tbtn{transition:none}
}
