*{margin:0;padding:0;box-sizing:border-box;}

body{background:var(--lbf-bg);color:var(--lbf-fg);font-family:var(--lbf-font-mono);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;}
a{color:var(--lbf-accent);text-decoration:none;cursor:pointer;white-space:nowrap;border-bottom:1px dotted transparent;transition:border-color .12s;}
a:hover{border-bottom-color:var(--lbf-accent);}
button{background:transparent;border:1px solid var(--lbf-line-strong);color:var(--lbf-fg-mute);border-radius:2px;cursor:pointer;font-family:var(--lbf-font-mono);font-size:10px;letter-spacing:0.12em;padding:5px 10px;line-height:1;}
button:hover{background:var(--lbf-surface-2);color:var(--lbf-fg);}
button.active{color:var(--lbf-bg);background:var(--lbf-fg);border-color:var(--lbf-fg);font-weight:600;}
table{width:100%;border-collapse:collapse;font-family:var(--lbf-font-mono);}
th{padding:8px 6px;font-weight:500;color:var(--lbf-fg-mute);text-align:left;font-size:10px;white-space:nowrap;letter-spacing:0.08em;text-transform:uppercase;}
td{padding:8px 6px;font-size:12px;border-bottom:1px solid var(--lbf-line);font-variant-numeric:tabular-nums;}
thead tr{border-bottom:1px solid var(--lbf-line-strong);}
tbody tr{cursor:pointer;transition:background .1s;}
tbody tr:hover{background:var(--lbf-surface-2);}

select{font-family:var(--lbf-font-mono);font-size:12px;padding:5px 8px;background:var(--lbf-surface);color:var(--lbf-fg);border:1px solid var(--lbf-line-strong);border-radius:2px;cursor:pointer;}
select option{background:var(--lbf-surface);color:var(--lbf-fg);}

/* Completed tab — chevron click cue. */
.comp-chevron{color:var(--lbf-fg-dim);transition:color .1s;}
tbody tr:hover .comp-chevron{color:var(--lbf-fg);}

.tip{position:relative;cursor:help;border-bottom:1px dotted var(--lbf-fg-dim);}
.tip .tt{display:none;position:absolute;left:0;top:calc(100% + 4px);background:var(--lbf-surface);border:1px solid var(--lbf-line);border-radius:6px;padding:8px 10px;font-size:11px;font-weight:400;color:var(--lbf-fg);width:240px;z-index:50;line-height:1.5;font-family:var(--lbf-font-mono);white-space:normal;text-align:left;text-transform:none;letter-spacing:0;box-shadow:0 12px 32px rgba(0,0,0,0.35);}.tt-left{left:auto;right:0;}
.tip:hover .tt,.tip.tip-open .tt{display:block;}
.tip .tt b{color:var(--lbf-fg);font-weight:600;}
.star{cursor:pointer;font-size:13px;user-select:none;}

.nav{display:flex;gap:0;border-bottom:1px solid var(--lbf-line);margin-bottom:14px;}
.nav-item{padding:10px 16px;font-size:11px;font-family:var(--lbf-font-mono);letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;color:var(--lbf-fg-mute);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;}
.nav-item.active{color:var(--lbf-fg);font-weight:500;border-bottom-color:var(--lbf-accent);}
.nav-item:hover{color:var(--lbf-fg);}

.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.hdr{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin-bottom:14px;}
.hdr h1{font-size:22px;font-weight:900;font-family:var(--lbf-font-display);letter-spacing:0.05em;color:var(--lbf-fg);text-transform:uppercase;}
.hdr .sub{font-size:11px;color:var(--lbf-fg-mute);font-family:var(--lbf-font-mono);letter-spacing:0.06em;}
.hdr .actions{margin-left:auto;display:flex;gap:8px;font-size:11px;flex-shrink:0;font-family:var(--lbf-font-mono);letter-spacing:0.06em;align-items:center;}

/* Header action buttons — match topbar button visual treatment.
   .hdr-btn: filled accent (SHARE). .hdr-btn-ghost: outlined (HOW SCORES WORK). */
.hdr-btn{background:var(--lbf-accent);border:1px solid var(--lbf-accent);color:#ffffff;font-family:var(--lbf-font-mono);font-size:10px;letter-spacing:0.14em;padding:5px 10px;border-radius:2px;cursor:pointer;line-height:1;font-weight:600;}
.hdr-btn:hover{filter:brightness(1.08);background:var(--lbf-accent);color:#ffffff;}
.hdr-btn-ghost{background:transparent;border:1px solid var(--lbf-line-strong);color:var(--lbf-fg-mute);font-family:var(--lbf-font-mono);font-size:10px;letter-spacing:0.14em;padding:5px 10px;border-radius:2px;cursor:pointer;line-height:1;}
.hdr-btn-ghost:hover{background:var(--lbf-surface-2);color:var(--lbf-fg);border-color:var(--lbf-fg-mute);}

/* Legacy hdr action link style — kept for any tabs not yet migrated. */
.hdr .actions a{color:var(--lbf-accent);text-decoration:none;font-family:var(--lbf-font-mono);font-size:11px;letter-spacing:0.06em;cursor:pointer;border-bottom:1px dotted transparent;transition:border-color .12s;}
.hdr .actions a:hover{border-bottom-color:var(--lbf-accent);}

.method{margin-bottom:16px;padding:14px 16px;border:1px solid var(--lbf-line);border-radius:4px;font-family:var(--lbf-font-mono);font-size:12px;line-height:1.6;color:var(--lbf-fg-mute);background:var(--lbf-surface);}
.method h2{font-size:12px;font-weight:600;color:var(--lbf-fg);margin-bottom:8px;letter-spacing:0.06em;text-transform:uppercase;}
.method table{margin:8px 0;}
.method td{padding:4px 0;border-bottom:1px solid var(--lbf-line);font-size:12px;}
.method td:first-child{font-weight:500;width:130px;color:var(--lbf-fg);}

.sc{background:var(--lbf-surface);border-radius:6px;padding:20px 24px;max-width:440px;margin-bottom:12px;font-family:var(--lbf-font-mono);}
.sc-logo{height:32px;margin-bottom:10px;filter:invert(1);opacity:0.85;}
.sc-brand{font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:var(--lbf-fg-mute);margin-bottom:6px;}
.sc-matchup{font-size:24px;font-weight:900;font-family:var(--lbf-font-display);letter-spacing:0.01em;margin-bottom:2px;color:var(--lbf-fg);}
.sc-div{border:none;border-top:1px solid var(--lbf-line);margin:12px 0;}
.sc-row{display:flex;justify-content:space-between;font-size:12px;padding:3px 0;}
.sc-lbl{color:var(--lbf-fg-mute);}
.sc-val{font-weight:500;color:var(--lbf-fg);}
.sc-footer{margin-top:14px;font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--lbf-fg-dim);border-top:1px solid var(--lbf-line);padding-top:10px;display:flex;align-items:center;gap:8px;}
.sc-footer img{height:16px;filter:invert(1);opacity:0.6;}
.sc-plyr{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:4px 0;border-bottom:1px solid var(--lbf-line);}
.sc-plyr:last-child{border-bottom:none;}
.share-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
/* Floating share overlay — replaces the old inline expansion. */
.lbf-share-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.55);display:flex;align-items:flex-start;justify-content:center;padding:24px 16px;z-index:1000;overflow-y:auto;}
.lbf-share-modal{position:relative;background:var(--lbf-bg);border:1px solid var(--lbf-line-strong);border-radius:4px;width:100%;max-width:480px;padding:16px;box-shadow:0 12px 40px rgba(0,0,0,0.5);}
.lbf-share-modal .sc{margin-bottom:0;}
.lbf-share-close{position:absolute;top:6px;right:8px;background:transparent;border:none;color:var(--lbf-fg-mute);font-size:22px;line-height:1;cursor:pointer;padding:6px 10px;font-family:var(--lbf-font-mono);}
.lbf-share-close:hover{color:var(--lbf-fg);}
@media(max-width:520px){.lbf-share-overlay{padding:12px;}.lbf-share-modal{padding:12px;}}
.empty{padding:24px;text-align:center;color:var(--lbf-fg-mute);font-family:var(--lbf-font-mono);font-size:12px;}
.wrap{max-width:980px;margin:0 auto;padding:12px 16px 40px;}
@media(max-width:700px){th,td{padding:4px 4px;font-size:11px;}.wrap{padding:8px 10px 30px;}.sc{padding:14px 16px;max-width:100%;}.hdr{flex-direction:column;gap:4px;}.hdr h1{font-size:18px;}.hdr .actions{margin-left:0;}.filters{gap:4px;}.filters button{font-size:10px;padding:4px 8px;}.nav-item{padding:8px 10px;font-size:10px;}}
.show-mobile{display:none;}
@media(max-width:520px){.hide-mobile{display:none!important;}.show-mobile{display:block;}}
@media(max-width:520px){
  table.mobile-stack{display:block;border:0;}
  table.mobile-stack thead{display:none;}
  table.mobile-stack tbody,table.mobile-stack tr,table.mobile-stack td{display:block;width:auto;}
  table.mobile-stack tr{border:1px solid var(--lbf-line);border-radius:4px;padding:6px 8px;margin-bottom:6px;}
  table.mobile-stack td{border:none;padding:2px 0;text-align:left!important;white-space:normal;}
  table.mobile-stack td[data-label]::before{content:attr(data-label);color:var(--lbf-fg-mute);font-size:9px;text-transform:uppercase;letter-spacing:0.1em;margin-right:6px;display:inline-block;min-width:60px;}
}
@media(max-width:600px){
  .game-card{background:var(--lbf-surface);border:1px solid var(--lbf-line);border-radius:4px;padding:12px 14px;margin-bottom:6px;cursor:pointer;transition:background .1s;font-family:var(--lbf-font-mono);}
  .game-card:hover{background:var(--lbf-surface-2);}
  /* Chug Log mobile card — player name + trigger label on top, team
     matchup + stat line stacked below, star icon in the top-right
     corner. Favorited (roster-member) rows get an accent-tinted bg
     + 3px left rail so the user's team reads at a glance. */
  .lbf-chug-card{background:var(--lbf-surface);border:1px solid var(--lbf-line);border-radius:4px;padding:10px 12px;margin-bottom:6px;font-family:var(--lbf-font-mono);}
  .lbf-chug-card-fav{background:color-mix(in srgb,var(--lbf-accent) 8%,var(--lbf-surface));border-left:3px solid var(--lbf-accent);padding-left:9px;}
  .lbf-chug-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:4px;}
  .lbf-chug-head-right{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;}
  .lbf-chug-name{font-family:var(--lbf-font-display);font-size:16px;color:var(--lbf-fg);letter-spacing:0.01em;line-height:1.1;min-width:0;}
  .lbf-chug-trigger{font-size:10px;color:var(--lbf-accent);font-weight:600;text-transform:uppercase;letter-spacing:0.14em;white-space:nowrap;}
  .lbf-chug-meta{font-size:10px;color:var(--lbf-fg-dim);letter-spacing:0.04em;}
  .lbf-chug-stat{font-size:11px;color:var(--lbf-fg-mute);margin-top:2px;}
  /* Completed-tab mobile card — mirrors desktop game_table.js completed
     row: stacked matchup on the left, CLASS pill + LBS badge stacked on
     the right, chevron in the far right gutter. */
  .game-card.gc-comp{display:flex;align-items:center;gap:10px;padding:10px 12px;}
  .gc-comp-matchup{flex:1 1 auto;min-width:0;line-height:1.4;}
  .gc-comp-team{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
  .gc-comp-team-abbr{font-family:var(--lbf-font-mono);letter-spacing:0.04em;font-size:13px;}
  .gc-comp-team-score{font-size:15px;font-variant-numeric:tabular-nums;font-weight:inherit;}
  .gc-comp-stadium{font-size:10px;color:var(--lbf-fg-dim);margin-top:2px;letter-spacing:0.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .gc-comp-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0;}
  .gc-comp-lbs{display:inline-flex;}
  .gc-comp-chev{color:var(--lbf-fg-dim);font-size:18px;line-height:1;flex-shrink:0;padding-left:2px;}
  .game-card.gc-comp:hover .gc-comp-chev{color:var(--lbf-fg);}
  .cards-section{margin-bottom:4px;}
  .cards-hdr{display:flex;align-items:baseline;gap:8px;margin-bottom:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--lbf-line);}
  .cards-hdr h2{font-size:16px;font-weight:900;font-family:var(--lbf-font-display);letter-spacing:0.01em;color:var(--lbf-fg);text-transform:uppercase;}
  .cards-hdr .sub{font-size:10px;color:var(--lbf-fg-mute);letter-spacing:0.06em;}
}

.ticker-wrap{overflow:hidden;background:var(--lbf-surface);border-top:1px solid var(--lbf-line);border-bottom:1px solid var(--lbf-line);margin-bottom:16px;position:relative;}
.ticker{display:flex;animation:tickerScroll var(--ticker-dur,30s) linear infinite;white-space:nowrap;}
.ticker:hover{animation-play-state:paused;}
@keyframes tickerScroll{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
.ticker-item{display:inline-flex;align-items:center;gap:8px;padding:8px 24px;font-size:11px;font-family:var(--lbf-font-mono);letter-spacing:0.06em;border-right:1px solid var(--lbf-line);flex-shrink:0;color:var(--lbf-fg);}
.ticker-item.hot{background:linear-gradient(90deg,rgba(232,80,42,0.10),rgba(232,80,42,0.04));}
.ticker-hot-border{border-top:2px solid var(--lbf-accent);border-bottom:2px solid var(--lbf-accent);}

.odds-cell{display:inline-flex;flex-direction:column;align-items:center;background:var(--lbf-surface);border:1px solid var(--lbf-line);border-radius:3px;padding:4px 8px;min-width:44px;line-height:1.2;font-family:var(--lbf-font-mono);}
.odds-cell .odds-label{font-size:8px;color:var(--lbf-fg-mute);text-transform:uppercase;letter-spacing:0.12em;}
.odds-cell .odds-line{font-size:12px;font-weight:600;color:var(--lbf-fg);font-variant-numeric:tabular-nums;}
.odds-cell .odds-val{font-size:10px;color:var(--lbf-fg-mute);}
.odds-cell.soon{border-style:dashed;opacity:0.6;}
.odds-cell.soon .odds-line{font-size:9px;font-style:italic;font-weight:400;color:var(--lbf-fg-mute);}
.odds-pair{display:inline-flex;gap:3px;font-family:var(--lbf-font-mono);}
.odds-pair .odds-side{display:flex;flex-direction:column;align-items:center;background:var(--lbf-surface);border:1px solid var(--lbf-line);border-radius:3px;padding:3px 6px;min-width:38px;line-height:1.2;}
.odds-pair .odds-side .side-lbl{font-size:8px;color:var(--lbf-fg-mute);text-transform:uppercase;letter-spacing:0.1em;}
.odds-pair .odds-side .side-val{font-size:11px;font-weight:600;color:var(--lbf-fg);font-variant-numeric:tabular-nums;}
.hr-odds-inline{display:inline-flex;gap:4px;margin-left:6px;font-family:var(--lbf-font-mono);}
.hr-odds-inline .hr-book{display:flex;flex-direction:column;align-items:center;background:var(--lbf-surface);border:1px solid var(--lbf-line);border-radius:2px;padding:2px 5px;line-height:1.1;}
.hr-odds-inline .hr-book .bk-name{font-size:7px;color:var(--lbf-fg-mute);text-transform:uppercase;letter-spacing:0.1em;}
.hr-odds-inline .hr-book .bk-odds{font-size:10px;font-weight:600;color:var(--lbf-fg);font-variant-numeric:tabular-nums;}

.hm-wrap{background:var(--lbf-surface);border:1px solid var(--lbf-line);border-radius:4px;padding:16px;margin-bottom:16px;}
.hm-title{font-size:10px;font-weight:600;color:var(--lbf-fg-mute);text-transform:uppercase;letter-spacing:0.14em;margin-bottom:12px;font-family:var(--lbf-font-mono);}
.hm-cols{display:flex;gap:16px;flex-wrap:wrap;}
.hm-side{flex:1;min-width:200px;}
@media(max-width:600px){.hm-cols{flex-direction:column;gap:20px;}.hm-side{min-width:0;}}
.hm-pitcher-lbl{font-size:13px;font-weight:600;color:var(--lbf-fg);margin-bottom:8px;font-family:var(--lbf-font-mono);letter-spacing:0.02em;}
.hm-filters{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px;}
.hm-filters button{font-size:10px;padding:3px 8px;display:flex;align-items:center;gap:4px;font-family:var(--lbf-font-mono);letter-spacing:0.06em;background:transparent;border:1px solid var(--lbf-line-strong);color:var(--lbf-fg-mute);border-radius:2px;cursor:pointer;}
.hm-filters button:hover{color:var(--lbf-fg);background:var(--lbf-surface-2);}
.hm-filters button .hmdot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0;}
.hm-filters button.active{background:var(--lbf-fg);color:var(--lbf-bg);border-color:var(--lbf-fg);}
.hm-canvas-wrap{position:relative;display:inline-block;background:#2e2e2e;border-radius:3px;padding:4px;}
.hm-canvas-wrap canvas{display:block;}
.hm-legend{margin-top:8px;display:flex;align-items:center;gap:6px;font-size:10px;color:var(--lbf-fg-dim);font-family:var(--lbf-font-mono);letter-spacing:0.04em;}
.hm-legend-bar{height:8px;width:110px;border-radius:2px;background:linear-gradient(to right,rgba(20,20,210,0.15) 0%,rgba(20,20,210,0.65) 40%,rgba(210,175,20,0.80) 58%,rgba(220,80,0,0.90) 72%,rgba(230,20,0,0.97) 100%);}
.hm-stat{margin-top:8px;display:flex;gap:12px;flex-wrap:wrap;}
.hm-stat-item{font-size:10px;color:var(--lbf-fg-dim);font-family:var(--lbf-font-mono);letter-spacing:0.04em;}
.hm-stat-item span{color:var(--lbf-fg);font-weight:500;}

:root{
  --lbf-accent:#E8502A;
  --lbf-live:#3ec46d;
  --lbf-cool-accent:#5b9cd6;
  --lbf-warm-bg:#FAEEDA; --lbf-warm-fg:#633806;
  --lbf-cool-bg:#E6F1FB; --lbf-cool-fg:#0C447C;
  --lbf-font-display:Impact,"Arial Narrow","Haettenschweiler","Oswald",sans-serif;
  --lbf-font-mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
:root, :root[data-theme="dark"]{
  --lbf-bg:#0e0e0e;--lbf-surface:#141414;--lbf-surface-2:#1a1a1a;
  --lbf-line:rgba(255,255,255,0.08);--lbf-line-strong:rgba(255,255,255,0.16);
  --lbf-fg:#f0f0f0;--lbf-fg-mute:rgba(240,240,240,0.62);--lbf-fg-dim:rgba(240,240,240,0.42);
}
:root[data-theme="light"]{
  --lbf-bg:#f5f5f3;--lbf-surface:#ffffff;--lbf-surface-2:#fafaf8;
  --lbf-line:rgba(0,0,0,0.08);--lbf-line-strong:rgba(0,0,0,0.18);
  --lbf-fg:#111111;--lbf-fg-mute:rgba(17,17,17,0.62);--lbf-fg-dim:rgba(17,17,17,0.42);
}

.lbf-wm{font-family:var(--lbf-font-display);font-weight:900;letter-spacing:0.06em;line-height:1;white-space:nowrap;display:inline-flex;align-items:baseline;}
.lbf-wm .lbf-wm-name{color:var(--lbf-fg);}
.lbf-wm .lbf-wm-slash{color:var(--lbf-accent);opacity:0.6;padding:0 0.18em;}
.lbf-wm .lbf-wm-tag{color:var(--lbf-accent);}

.lbf-info{position:relative;display:inline-flex;align-items:center;}
.lbf-info-glyph{width:13px;height:13px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--lbf-font-mono);font-size:9px;font-weight:700;border:1px solid var(--lbf-fg-mute);color:var(--lbf-fg-mute);cursor:help;line-height:1;font-style:italic;}
.lbf-info-tt{display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--lbf-surface);color:var(--lbf-fg);border:1px solid var(--lbf-line);border-radius:6px;padding:8px 10px;width:240px;font-size:11px;line-height:1.45;font-family:var(--lbf-font-mono);box-shadow:0 12px 32px rgba(0,0,0,0.35);z-index:50;white-space:normal;text-align:left;letter-spacing:0;text-transform:none;font-weight:400;}
.lbf-info:hover .lbf-info-tt,.lbf-info:focus-within .lbf-info-tt{display:block;}

.lbf-badge{font-family:var(--lbf-font-mono);font-weight:600;font-size:13px;line-height:1;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:4px;border-radius:4px;padding:3px 8px;white-space:nowrap;}
.lbf-badge.lbf-badge-pos{background:var(--lbf-warm-bg);color:var(--lbf-warm-fg);}
.lbf-badge.lbf-badge-neg{background:var(--lbf-cool-bg);color:var(--lbf-cool-fg);}
.lbf-badge.lbf-badge-outlined{background:transparent;box-shadow:inset 0 0 0 1.5px currentColor;}
.lbf-badge.lbf-badge-numeric{background:transparent;padding:0;}
.lbf-badge.lbf-badge-chip{border-radius:999px;padding:3px 12px;}
.lbf-badge.lbf-badge-chip .lbf-badge-dot{width:6px;height:6px;border-radius:999px;background:currentColor;display:inline-block;flex-shrink:0;}
.lbf-badge.lbf-badge-sm{font-size:11px;padding:2px 6px;}
.lbf-badge.lbf-badge-lg{font-size:18px;padding:6px 12px;}

.lbf-ribbon{position:relative;background:var(--lbf-line);border-radius:1px;}
.lbf-ribbon-center{position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--lbf-line-strong);}
.lbf-ribbon-fill{position:absolute;top:0;bottom:0;opacity:0.85;}
.lbf-ribbon-fill.pos{background:var(--lbf-accent);}
.lbf-ribbon-fill.neg{background:var(--lbf-cool-fg);}
.lbf-ribbon-marker{position:absolute;top:-3px;width:2px;background:var(--lbf-fg);transform:translateX(-1px);}
.lbf-ribbon-end{position:absolute;font-family:var(--lbf-font-mono);font-size:9px;color:var(--lbf-fg-dim);letter-spacing:0;text-transform:none;}
.lbf-ribbon-end.lo{left:0;}
.lbf-ribbon-end.hi{right:0;}

.lbf-topbar{display:flex;align-items:center;gap:14px;padding:14px 4px 14px 0;margin-bottom:14px;border-bottom:1px solid var(--lbf-line);font-family:var(--lbf-font-mono);font-size:10px;letter-spacing:0.12em;color:var(--lbf-fg-mute);flex-wrap:wrap;}
.lbf-tb-brand{display:inline-flex;align-items:center;gap:12px;color:var(--lbf-fg);flex-shrink:0;}
.lbf-tb-spacer{flex:1 1 auto;}
.lbf-tb-meta{white-space:nowrap;}
.lbf-tb-sep{color:var(--lbf-fg-dim);}
.lbf-tb-refresh{color:var(--lbf-fg-dim);}
.lbf-tb-live{display:inline-flex;align-items:center;gap:6px;color:var(--lbf-fg);}
.lbf-tb-livedot{width:6px;height:6px;border-radius:999px;background:var(--lbf-live);display:inline-block;}
.lbf-tb-themetoggle{background:transparent;border:1px solid var(--lbf-line-strong);color:var(--lbf-fg);font-family:var(--lbf-font-mono);font-size:10px;letter-spacing:0.14em;padding:4px 8px;border-radius:2px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;line-height:1;margin-left:6px;}
.lbf-tb-themetoggle:hover{background:var(--lbf-surface-2);}
.lbf-tb-swatch{width:8px;height:8px;border-radius:999px;border:1px solid var(--lbf-line-strong);background:var(--lbf-fg);display:inline-block;}
:root[data-theme="light"] .lbf-tb-swatch{background:var(--lbf-bg);}
@media(max-width:700px){.lbf-topbar{font-size:9px;gap:10px;padding:10px 0;}.lbf-tb-meta.lbf-tb-refresh{display:none;}}

/* Trust strip — thin secondary band below the topbar showing model
   version, data freshness, and season accuracy. Lives between the
   topbar's bottom border and the tab nav, so it visually reads as
   metadata about the topbar rather than its own component. Type scale
   matches the topbar (10px mono, 0.10em tracking). */
.lbf-trust-strip{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:6px 4px 8px 0;margin-top:-10px;margin-bottom:10px;
  border-bottom:1px solid var(--lbf-line);
  font-family:var(--lbf-font-mono);font-size:10px;letter-spacing:0.10em;
  color:var(--lbf-fg-dim);
}
.lbf-trust-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:var(--lbf-fg-mute);}
.lbf-trust-sep{color:var(--lbf-fg-dim);opacity:0.6;}
.lbf-trust-num{color:var(--lbf-fg);font-weight:600;font-variant-numeric:tabular-nums;}
/* The trust-strip InfoDot is a notch smaller than the inline .lbf-info
   glyph used inside detail panels — the topbar runs at 10px and a 13px
   circle next to it reads as too heavy. */
.lbf-trust-info .lbf-info-glyph{
  width:11px;height:11px;font-size:8px;cursor:pointer;
}
.lbf-trust-info .lbf-info-glyph:hover{
  color:var(--lbf-fg);border-color:var(--lbf-fg);
}
@media(max-width:700px){.lbf-trust-strip{font-size:9px;gap:8px;padding:4px 0 6px 0;}}

.lbf-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.lbf-chip{background:transparent;border:1px solid var(--lbf-line-strong);color:var(--lbf-fg-mute);font-family:var(--lbf-font-mono);font-size:10px;letter-spacing:0.12em;padding:6px 12px;border-radius:2px;cursor:pointer;line-height:1;}
.lbf-chip:hover{background:var(--lbf-surface-2);color:var(--lbf-fg);}
.lbf-chip-on,.lbf-chip.active{background:var(--lbf-fg);color:var(--lbf-bg);border-color:var(--lbf-fg);}
.lbf-chip-on:hover,.lbf-chip.active:hover{background:var(--lbf-fg);color:var(--lbf-bg);}

.lbf-table-wrap{font-family:var(--lbf-font-mono);overflow:visible;}
.lbf-table{min-width:max-content;font-size:13px;color:var(--lbf-fg);font-variant-numeric:tabular-nums;}
.lbf-thead{display:flex;align-items:stretch;height:32px;border-top:1px solid var(--lbf-line-strong);border-bottom:1px solid var(--lbf-line-strong);background:var(--lbf-surface);}
.lbf-th{font-size:10px;letter-spacing:0.08em;color:var(--lbf-fg-mute);display:flex;align-items:center;justify-content:flex-start;padding:0 8px;border-left:1px solid var(--lbf-line);user-select:none;gap:4px;text-align:left;}
.lbf-th:first-child{border-left:none;}
.lbf-th[data-a]{cursor:pointer;}
.lbf-th[data-a]:hover{color:var(--lbf-fg);}
.lbf-th-active{color:var(--lbf-accent);}
.lbf-th-arrow{opacity:0.85;}
.lbf-row{display:flex;align-items:stretch;height:52px;border-bottom:1px solid var(--lbf-line);background:var(--lbf-bg);cursor:pointer;position:relative;}
.lbf-row:nth-child(even){background:var(--lbf-surface);}
.lbf-row:hover{background:var(--lbf-surface-2);}
.lbf-row:hover::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--lbf-accent);}
.lbf-td{display:flex;align-items:center;justify-content:flex-start;padding:0 8px;border-left:1px solid var(--lbf-line);overflow:hidden;white-space:nowrap;gap:6px;text-align:left;}
.lbf-td:first-child{border-left:none;color:var(--lbf-fg-dim);font-size:12px;}
.lbf-mu-team{color:var(--lbf-fg);font-weight:500;}
.lbf-mu-at{color:var(--lbf-fg-dim);}
.lbf-mu-score{color:var(--lbf-fg);font-weight:700;font-size:13px;font-variant-numeric:tabular-nums;}
.lbf-time-live{color:var(--lbf-live);font-weight:500;}
.lbf-time-sched{color:var(--lbf-fg-mute);}
.lbf-stadium-name{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;}
.lbf-stadium-pill{flex:0 0 auto;margin-left:auto;}
.lbf-pill{font-family:var(--lbf-font-mono);font-size:9px;letter-spacing:0.1em;padding:2px 6px;border-radius:2px;border:1px solid;flex-shrink:0;display:inline-block;}
.lbf-pill-closed{color:var(--lbf-fg-mute);border-color:var(--lbf-line);}
.lbf-pill-live{color:var(--lbf-live);border-color:color-mix(in srgb, var(--lbf-live) 30%, transparent);}
.lbf-class-pill{font-family:var(--lbf-font-mono);font-size:10px;font-weight:600;letter-spacing:0.06em;padding:3px 8px;border-radius:2px;line-height:1;display:inline-block;flex-shrink:0;}
.lbf-class-pill.lbf-class-crush{background:var(--lbf-accent);color:#ffffff;}
.lbf-class-pill.lbf-class-batter{background:var(--lbf-warm-bg);color:var(--lbf-warm-fg);}
.lbf-class-pill.lbf-class-standard{background:transparent;color:var(--lbf-fg-mute);box-shadow:inset 0 0 0 1px var(--lbf-line-strong);}
.lbf-class-pill.lbf-class-pitcher{background:var(--lbf-cool-bg);color:var(--lbf-cool-fg);}
.lbf-class-pill.lbf-class-lockdown{background:var(--lbf-cool-fg);color:var(--lbf-cool-bg);}
.lbf-lbs-cell{display:inline-flex;align-items:center;gap:10px;}
.lbf-lbs-ribbon{display:inline-block;}
.lbf-num-dim{color:var(--lbf-fg-dim);}

.lbf-chips-mobile{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:2px;}
.lbf-chips-mobile::-webkit-scrollbar{display:none;}
.lbf-chips-mobile .lbf-chip{flex-shrink:0;font-size:10px;padding:5px 10px;}

.lbf-slate-card{padding:12px 14px;border-bottom:1px solid var(--lbf-line);background:var(--lbf-bg);cursor:pointer;font-family:var(--lbf-font-mono);position:relative;}
.lbf-slate-card:nth-child(even){background:var(--lbf-surface);}
.lbf-slate-card:hover{background:var(--lbf-surface-2);}
.lbf-sc-top{display:flex;align-items:baseline;gap:8px;margin-bottom:6px;}
.lbf-sc-rank{color:var(--lbf-fg-dim);font-size:10px;font-variant-numeric:tabular-nums;flex-shrink:0;}
.lbf-sc-matchup{font-family:var(--lbf-font-display);font-size:20px;letter-spacing:0.01em;color:var(--lbf-fg);line-height:1.0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;}
.lbf-sc-spacer{flex:1 1 auto;}
.lbf-sc-meta{font-size:10px;letter-spacing:0.04em;color:var(--lbf-fg-mute);margin-bottom:8px;line-height:1.5;display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
.lbf-sc-meta .lbf-sc-dot{color:var(--lbf-fg-dim);}
.lbf-sc-live{color:var(--lbf-live);font-weight:500;}
.lbf-sc-ribbon{}

.lbf-bc{display:flex;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid var(--lbf-line);margin-bottom:18px;font-family:var(--lbf-font-mono);font-size:10px;letter-spacing:0.16em;color:var(--lbf-fg-mute);flex-wrap:wrap;}
.lbf-bc-chev{color:var(--lbf-fg-dim);}
.lbf-bc-slate{cursor:pointer;text-decoration:none;color:var(--lbf-fg-mute);}
.lbf-bc-slate:hover{color:var(--lbf-fg);}
.lbf-bc-matchup{color:var(--lbf-fg);}
.lbf-bc-spacer{flex:1;}
.lbf-bc-actions{display:inline-flex;gap:6px;align-items:center;margin-left:10px;}
.lbf-bc-btn{font-family:var(--lbf-font-mono);font-size:10px;letter-spacing:0.14em;padding:5px 10px;border-radius:2px;cursor:pointer;line-height:1;border:1px solid var(--lbf-accent);background:var(--lbf-accent);color:#ffffff;}
.lbf-bc-btn:hover{filter:brightness(1.06);}
.lbf-bc-btn-ghost{background:transparent;color:var(--lbf-accent);border-color:var(--lbf-accent);}
.lbf-bc-btn-ghost:hover{background:rgba(232,80,42,0.08);}
.lbf-hero2{display:grid;grid-template-columns:1.3fr 1fr;gap:32px;padding:18px 0 22px;border-bottom:1px solid var(--lbf-line-strong);margin-bottom:18px;align-items:stretch;}
.lbf-hero2-left{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:8px;}
.lbf-hero2-right{padding-left:32px;border-left:1px solid var(--lbf-line);min-width:0;display:flex;flex-direction:column;justify-content:center;gap:6px;}
.lbf-hero2-eyebrow{font-family:var(--lbf-font-mono);font-size:10px;letter-spacing:0.18em;color:var(--lbf-fg-mute);display:inline-flex;align-items:center;gap:6px;}
.lbf-hero2-matchup{font-family:var(--lbf-font-display);font-size:56px;line-height:1.0;letter-spacing:0.01em;color:var(--lbf-fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lbf-hero2-at{color:var(--lbf-fg-mute);padding:0 0.18em;}
.lbf-hero2-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-family:var(--lbf-font-mono);font-size:11px;letter-spacing:0.08em;color:var(--lbf-fg-mute);}
.lbf-hero2-dot{color:var(--lbf-fg-dim);}
.lbf-hero2-score{font-family:var(--lbf-font-display);font-size:84px;line-height:1.0;letter-spacing:0.005em;}
.lbf-hero2-class{font-family:var(--lbf-font-mono);font-size:11px;letter-spacing:0.08em;color:var(--lbf-fg-mute);}
.lbf-hero2-ribbon{margin-top:6px;}
@media(max-width:900px){
  .lbf-hero2{grid-template-columns:1fr;gap:16px;padding:14px 0 18px;}
  .lbf-hero2-right{padding-left:0;border-left:none;border-top:1px solid var(--lbf-line);padding-top:16px;}
  .lbf-hero2-matchup{font-size:40px;}
  .lbf-hero2-score{font-size:60px;}
}
.lbf-detail-section-head{display:flex;align-items:baseline;gap:10px;padding:0 0 10px;border-bottom:1px solid var(--lbf-line);margin-bottom:12px;}
.lbf-detail-section-title{font-family:var(--lbf-font-display);font-size:18px;letter-spacing:0.01em;color:var(--lbf-fg);}
.lbf-detail-section-sub{font-family:var(--lbf-font-mono);font-size:10px;letter-spacing:0.14em;color:var(--lbf-fg-mute);}
.lbf-detail-h{font-family:var(--lbf-font-mono);font-size:10px;letter-spacing:0.16em;color:var(--lbf-fg-mute);}
.lbf-stub{font-size:9px;color:var(--lbf-fg-dim);letter-spacing:0.12em;margin-left:6px;}
.lbf-fg{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid var(--lbf-line);margin-bottom:18px;}
.lbf-fc{padding:10px 12px;border-left:1px solid var(--lbf-line);min-width:0;}
.lbf-fc:first-child{border-left:none;}
.lbf-fc-label{font-family:var(--lbf-font-mono);font-size:9px;letter-spacing:0.14em;color:var(--lbf-fg-mute);}
.lbf-fc-row{display:flex;align-items:baseline;justify-content:space-between;margin-top:4px;gap:6px;}
.lbf-fc-value{font-family:var(--lbf-font-display);font-size:22px;line-height:1.0;letter-spacing:0.01em;color:var(--lbf-fg);}
.lbf-fc-delta{font-family:var(--lbf-font-mono);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;}
.lbf-fc-sub{font-family:var(--lbf-font-mono);font-size:9px;letter-spacing:0.04em;color:var(--lbf-fg-mute);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lbf-fc-bar{display:none;}
@media(max-width:900px){
  .lbf-fg{grid-template-columns:repeat(3,1fr);}
  .lbf-fc:nth-child(3n+1){border-left:none;}
  .lbf-fc:nth-child(n+4){border-top:1px solid var(--lbf-line);}
  .lbf-fc:nth-child(n+4):not(:nth-child(3n+1)){border-left:1px solid var(--lbf-line);}
}
@media(max-width:520px){
  .lbf-fg{grid-template-columns:repeat(2,1fr);}
  .lbf-fc:nth-child(n){border-left:1px solid var(--lbf-line);border-top:1px solid var(--lbf-line);}
  .lbf-fc:nth-child(2n+1){border-left:none;}
  .lbf-fc:nth-child(-n+2){border-top:none;}
}
.lbf-detail-twocol{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding-bottom:18px;border-bottom:1px solid var(--lbf-line);margin-bottom:18px;align-items:start;}
.lbf-detail-twocol--solo{grid-template-columns:1fr;}
.lbf-detail-rightcol{display:flex;flex-direction:column;gap:4px;min-width:0;}
.lbf-detail-rightcol > *:last-child{margin-bottom:0;}
@media(max-width:700px){.lbf-detail-twocol{grid-template-columns:1fr;gap:18px;}}
.lbf-wind-row{display:flex;align-items:center;gap:20px;margin-top:14px;flex-wrap:wrap;}
.lbf-wind-svg{flex-shrink:0;}
.lbf-wind-big{font-family:var(--lbf-font-display);font-size:44px;letter-spacing:0.01em;color:var(--lbf-fg);line-height:1;}
.lbf-wind-sub{font-family:var(--lbf-font-mono);font-size:12px;color:var(--lbf-fg-mute);margin-top:4px;}
.lbf-wind-carry{font-family:var(--lbf-font-mono);font-size:11px;color:var(--lbf-fg-dim);margin-top:10px;line-height:1.5;}
.lbf-wind-carry-v{color:var(--lbf-fg);font-size:14px;}
.lbf-hourly-chart{max-width:380px;margin-top:12px;}
.lbf-hourly-axis-x{font-family:var(--lbf-font-mono);font-size:9px;letter-spacing:0.14em;color:var(--lbf-fg-dim);text-align:center;margin-top:4px;}

.lbf-proj-table{min-width:0;width:100%;}
.lbf-proj-table .lbf-thead,.lbf-proj-table .lbf-tbody{width:100%;}
.lbf-proj-row{height:42px;}
.lbf-proj-name{color:var(--lbf-fg);font-weight:500;}
.lbf-proj-meta{color:var(--lbf-fg-mute);}
.lbf-proj-headline{color:var(--lbf-fg);font-weight:700;}
.lbf-proj-table .lbf-td{font-variant-numeric:tabular-nums;overflow:visible;}

.lbf-name-badge{margin-left:6px;font-family:var(--lbf-font-mono);font-size:9px;font-weight:600;letter-spacing:0.06em;padding:1px 4px;border-radius:2px;cursor:help;display:inline-block;}
.lbf-name-badge-warm{color:var(--lbf-warm-fg);background:var(--lbf-warm-bg);}
.lbf-name-badge-cool{color:var(--lbf-cool-fg);background:var(--lbf-cool-bg);}
.lbf-name-badge-good{color:#1f6b1f;background:rgba(99,153,34,0.16);}
:root[data-theme="light"] .lbf-name-badge-good{color:#3a7a1f;}

.lbf-hr-inline{display:inline-flex;gap:3px;}
.lbf-hr-book{display:inline-flex;flex-direction:column;align-items:center;background:var(--lbf-surface);border:1px solid var(--lbf-line);border-radius:2px;padding:2px 5px;line-height:1.1;text-decoration:none;color:inherit;}
.lbf-hr-book:hover{background:var(--lbf-surface-2);}
.lbf-hr-bk{font-size:8px;color:var(--lbf-fg-dim);letter-spacing:0.05em;text-transform:uppercase;}
.lbf-hr-val{font-size:11px;font-weight:600;color:var(--lbf-fg);font-variant-numeric:tabular-nums;}
