/* NFL admin stream presentation. Explicit admin opt-in (.sp-stream-mode on the page root,
   data-stream-tab = active tab). Table values, colors, inputs, filters, sorting and column
   order remain the application's. No browser zoom, no clipping, no hidden rows. */
.sp-stream-toggle[aria-pressed="true"]{background:#00aeef!important;color:#051521!important;border:1px solid #00aeef!important}

/* Chrome: compact site header, sticky readable nav, full-width main, no footer. */
.sp-stream-mode > header > .ct{padding-top:4px!important;padding-bottom:4px!important}
.sp-stream-mode > header .header-title{font-size:1rem!important;line-height:1.2}
.sp-stream-mode > header .btn{padding:3px 8px!important;font-size:.72rem!important}
.sp-stream-mode > nav{position:sticky;top:var(--stream-header-height,52px);z-index:49;background:#08111d;box-shadow:0 1px 0 rgba(255,255,255,.06)}
.sp-stream-mode > nav .nfl-nav-shell{padding:4px 0!important;gap:6px}
.sp-stream-mode > nav .nfl-nav-tab{height:38px;min-height:38px;font-size:clamp(16px,1vw,18px)!important;padding:0 12px!important}
.sp-stream-mode > nav .nfl-nav-tab .nfl-nav-icon{font-size:17px;width:19px}
.sp-stream-mode > nav .nfl-nav-rail{gap:6px}
.sp-stream-mode > nav .nfl-nav-rail .btn{padding:3px 8px!important;font-size:.78rem!important}
.sp-stream-mode > main.ct{max-width:none;width:100%;padding:8px 10px 12px!important}
.sp-stream-mode > footer{display:none}

/* Page heading and secondary type. */
body[data-sp-ui="nfl"] .sp-stream-mode > main .sp-page-title{font-size:clamp(28px,2.5vw,36px)!important;line-height:1.15!important;margin:0!important}
.sp-stream-mode > main .nfl-lineups-controls > h2{font-size:clamp(28px,2.5vw,36px)!important;line-height:1.15}
.sp-stream-mode > main > .fc{gap:8px}

/* Utility bars are subordinate: shrink type and spacing before they wrap onto more lines.
   Overflow stays visible so dropdown menus are never clipped. */
.sp-stream-mode > main :is(.nfl-page-slate-controls,.nfl-sims-controls,.nfl-lineups-controls,.nfl-pool-strip){gap:4px;overflow:visible;padding-block:2px}
.sp-stream-mode > main :is(.nfl-page-slate-controls,.nfl-sims-controls,.nfl-lineups-controls,.nfl-pool-strip) > :is(div,span.flex){flex-wrap:nowrap}
.sp-stream-mode > main :is(.nfl-page-slate-controls,.nfl-sims-controls,.nfl-lineups-controls,.nfl-pool-strip) :is(button,a,label,input,select,span){font-size:clamp(10px,.75vw,13px)!important;line-height:1.25!important}
.sp-stream-mode > main :is(.nfl-page-slate-controls,.nfl-sims-controls,.nfl-lineups-controls) :is(button,a.btn,label.btn){padding:3px 6px!important;min-height:26px}
.sp-stream-mode > main :is(.nfl-page-slate-controls,.nfl-sims-controls,.nfl-lineups-controls) :is(input:not([type=file]),select){padding:3px 4px!important}
.sp-stream-mode > main .nfl-lineups-controls .nfl-lu-show input{width:44px!important}
/* SPAGS toolbar (title row + search/copy/export) and its slate controls. */
.sp-stream-mode[data-stream-tab="spags"] > main > .fc > .flex.ac.jb.fw{gap:6px}
.sp-stream-mode[data-stream-tab="spags"] > main > .fc > .flex.ac.jb.fw :is(button,a,input,select){font-size:clamp(10px,.75vw,13px)!important;padding:3px 6px!important;min-height:26px}
.sp-stream-mode[data-stream-tab="spags"] > main > .fc > .flex.ac.jb.fw input{width:150px!important}

@media(min-width:1000px){
  /* SPAGS: a five-player broadcast view, not a density preset. Remaining players stay in
     the same table below; sorting and admin editing are intact. Detail rows (fewer cells)
     keep their own height. */
  .sp-stream-mode[data-stream-tab="spags"] > main table tbody tr:has(> td:nth-child(8)){height:var(--stream-player-row,96px)}
  .sp-stream-mode[data-stream-tab="spags"] > main table td{font-size:clamp(20px,1.7vw,32px)!important;padding:8px 6px!important;line-height:1.3;vertical-align:middle}
  .sp-stream-mode[data-stream-tab="spags"] > main table td:first-child{font-size:clamp(26px,2.2vw,40px)!important;white-space:normal;min-width:160px}
  .sp-stream-mode[data-stream-tab="spags"] > main table td .team-badge{font-size:clamp(14px,1.1vw,20px)!important}
  .sp-stream-mode[data-stream-tab="spags"] > main table td .edit-input{font-size:inherit!important;width:4.3em!important;max-width:100%;height:auto}
  .sp-stream-mode[data-stream-tab="spags"] > main table th{font-size:15px!important;padding:6px!important}
  /* Sims: same five-player focus on the results table; local scroll box sized to the
     viewport so the header/tab context stays put. Filters, sort, drawers and sim controls
     are untouched; legends and the summary strip are compacted. */
  .sp-stream-mode[data-stream-tab="simulator"] > main .gc.rx:has(> table){max-height:var(--stream-table-max,640px)!important}
  .sp-stream-mode[data-stream-tab="simulator"] > main .gc.rx > table{font-size:inherit!important}
  .sp-stream-mode[data-stream-tab="simulator"] > main .gc.rx > table > tbody > tr:has(> td:nth-child(8)){height:var(--stream-player-row,96px)}
  .sp-stream-mode[data-stream-tab="simulator"] > main .gc.rx > table > tbody > tr:has(> td:nth-child(8)) > td{font-size:clamp(20px,1.7vw,32px)!important;padding:8px 6px!important;line-height:1.3;vertical-align:middle}
  .sp-stream-mode[data-stream-tab="simulator"] > main .gc.rx > table > tbody > tr:has(> td:nth-child(8)) > td:first-child{font-size:clamp(26px,2.2vw,40px)!important;font-weight:600;white-space:normal;min-width:180px}
  .sp-stream-mode[data-stream-tab="simulator"] > main .gc.rx > table > tbody > tr:has(> td:nth-child(8)) > td:nth-child(2) > span{font-size:clamp(14px,1.1vw,20px)!important}
  .sp-stream-mode[data-stream-tab="simulator"] > main .gc.rx > table > tbody > tr:has(> td:nth-child(8)) > td .edit-input{font-size:inherit!important;width:4.3em!important;height:auto}
  .sp-stream-mode[data-stream-tab="simulator"] > main .gc.rx > table > thead th{font-size:15px!important;padding:6px!important}
  /* Legend card: compact. The win/cash/field summary strip (.gc.rx.p3.flex) is intentionally HIDDEN in Stream mode (Marina fix2). */
  .sp-stream-mode[data-stream-tab="simulator"] > main > .fc > .fc > .gl.rx.p6.mb4{padding:6px 12px!important;margin-bottom:4px!important}
  .sp-stream-mode[data-stream-tab="simulator"] > main > .fc > .fc > .gc.rx.p3.flex{display:none}
  .sp-stream-mode[data-stream-tab="simulator"] > main > .fc > .fc > .txs.ts5,
  .sp-stream-mode[data-stream-tab="simulator"] > main > .fc > .fc > .flex.txs.ts5{font-size:12px!important;line-height:1.2}
  /* Matrix: keep position grouping, labels, heat meanings and column order; scale the type
     and let each position card use the viewport instead of a fixed 280px. Cell widths
     grow with the type so heat chips keep their shape. */
  .sp-stream-mode[data-stream-tab="matrix"] > main .mc{height:auto!important;max-height:calc(100vh - var(--stream-header-height,52px) - var(--stream-nav-height,55px) - 120px)}
  .sp-stream-mode[data-stream-tab="matrix"] > main .mc > div:first-child .fd{font-size:clamp(20px,1.6vw,28px)!important}
  .sp-stream-mode[data-stream-tab="matrix"] > main .mc .flex.ac.g1{font-size:clamp(13px,1.05vw,17px)!important;padding:5px 6px!important}
  /* Numeric columns: header and body cells share ONE width per column, set in px/vw (never em,
     because header and body fonts differ). Column 1 is the name (div.f1 in rows, span.f1 in the header);
     column 2 is salary in both rows. */
  .sp-stream-mode[data-stream-tab="matrix"] > main .mc .flex.ac.g1 > :not(.f1){flex:0 0 var(--mx-col,clamp(40px,3vw,56px));width:var(--mx-col,clamp(40px,3vw,56px))!important;min-width:0!important;max-width:none!important;padding:0 2px!important;box-sizing:border-box}
  .sp-stream-mode[data-stream-tab="matrix"] > main .mc .flex.ac.g1 > :nth-child(2){flex-basis:var(--mx-sal,clamp(48px,3.6vw,66px));width:var(--mx-sal,clamp(48px,3.6vw,66px))!important}
  .sp-stream-mode[data-stream-tab="matrix"] > main .mc .flex.ac.g1:not(.tc) > :not(.f1){font-size:inherit!important}
  /* STOK ON adds Stok and Own (nine header cells): narrower shared columns + smaller numbers so the name keeps its width. */
  .sp-stream-mode[data-stream-tab="matrix"] > main .mc:has(.flex.ac.g1.tc.fm > span:nth-child(9)){--mx-col:clamp(35px,2.55vw,48px);--mx-sal:clamp(44px,3.2vw,60px)}
  .sp-stream-mode[data-stream-tab="matrix"] > main .mc:has(.flex.ac.g1.tc.fm > span:nth-child(9)) .flex.ac.g1:not(.tc){font-size:clamp(12px,.9vw,15px)!important}
  .sp-stream-mode[data-stream-tab="matrix"] > main .mc:has(.flex.ac.g1.tc.fm > span:nth-child(9)) .flex.ac.g1.tc.fm{font-size:clamp(10px,.75vw,12px)!important}
  .sp-stream-mode[data-stream-tab="matrix"] > main .mc .flex.ac.g1.tc.fm{font-size:clamp(11px,.85vw,13px)!important}
  /* Player identity carries the readable size (14–18px); the team/opponent context stays a step smaller. */
  .sp-stream-mode[data-stream-tab="matrix"] > main .mc .flex.ac.g1 > .f1{font-weight:600;font-size:clamp(14px,1.1vw,18px)!important;flex:1 1 7.5em;min-width:7.5em;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.15}
  .sp-stream-mode[data-stream-tab="matrix"] > main .mc .flex.ac.g1 > .f1 > span{font-size:clamp(11px,.85vw,14px)!important}
  /* Lineups (admin tab "lineups" and member tab "lineups2"): complete rosters and the model outcomes both stay legible. Names carry the
     larger type; the meta line and the rightmost result columns scale with the width. */
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-table-scroll{max-height:calc(100vh - var(--stream-header-height,52px) - var(--stream-nav-height,55px) - 150px)}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-table{font-size:clamp(12px,.95vw,15px)}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-table th{font-size:12px!important}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-table td{padding-top:7px!important;padding-bottom:7px!important}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-table td .nfl-lineup-name{font-size:clamp(15px,1.18vw,20px)!important;line-height:1.25!important}
  /* Rank and favorite stay narrow; the field-seat count / CON-HDG tag under the rank is normal-mode
     diagnostics and is hidden only while presenting. */
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-table :is(th,td):nth-child(-n+2){width:2.2em;min-width:0;padding-left:4px!important;padding-right:4px!important;white-space:nowrap}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-table td:first-child > div:first-child{font-size:13px!important}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-table td:first-child > div:nth-child(2){display:none}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-table td:nth-child(2){font-size:15px!important}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-table td > div > .flex span{font-size:11px!important}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-table td:nth-last-child(-n+4){font-size:clamp(13px,1.05vw,17px)!important;font-weight:600}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-exposure{max-height:calc(100vh - var(--stream-header-height,52px) - var(--stream-nav-height,55px) - 150px)}
}
/* Below ~1500px the lineups table (min 1080px) and the 380px exposure panel cannot share a
   row without hiding the result columns; stack the panel under the table so every roster
   column and the results stay on screen. Above that, both sit side by side as normal. */
@media(min-width:1000px) and (max-width:1499px){
  /* Lineups utility strip: every action stays; spacing, padding and select widths shrink
     first so the strip holds one line at 1280 instead of wrapping Load Entries. */
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-controls{gap:3px}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-controls > h2{font-size:30px!important}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-controls :is(button,a.btn,label.btn){padding:3px 4px!important}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-controls .nfl-lu-stacks select{max-width:74px}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-controls .nfl-lu-stacks{gap:3px}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-controls .nfl-browse-lanes{padding:2px!important;gap:2px}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-panels{flex-direction:column}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-left{width:100%}
  .sp-stream-mode:is([data-stream-tab="lineups"],[data-stream-tab="lineups2"]) > main .nfl-lineups-exposure{width:100%!important;max-height:360px}
  .sp-stream-mode[data-stream-tab="matrix"] > main .mgrid3{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:999px){
  .sp-stream-mode > header .header-title{font-size:.95rem!important}
}
