/* hs.css · niftisports Signal: Maine HS football + basketball page bodies (SIG_HS_A, L120 package d) · Sage 2026-10-29
   Loaded only on niftisports.com (the apps link it inside {% if _ice.sig_on() %}), after signal_components.css + sig-bridge.css.
   Uses only Signal tokens (light + dark come free). Display only: no number lives here. No left-border accents (rule 10-26),
   no glow / blur / text-shadow, 1 px lines, 8 px corners, whole card = the link, numbers in Roboto Mono (tabular). */

/* page frame: the HS bodies sit inside the app's <main class="gp-main hs-m"><div class="gp-content"> */
html.ns-sig main.hs-m{max-width:none!important;padding:0!important;margin:0!important;background:var(--bg);overflow-x:clip}
html.ns-sig main.hs-m>.gp-content{max-width:1120px;margin:0 auto!important;padding:0 32px 8px!important;box-sizing:border-box}
html.ns-sig main.hs-m .iq-crumbs{max-width:1120px;margin:14px auto 0!important;padding:0 32px!important;box-sizing:border-box}
html.ns-sig main.hs-m>.iq-note{max-width:1120px;margin:24px auto!important;box-sizing:border-box}
@media (max-width:600px){html.ns-sig main.hs-m>.gp-content{padding:0 16px 8px!important}html.ns-sig main.hs-m .iq-crumbs{padding:0 16px!important}html.ns-sig main.hs-m>.iq-note{margin:24px 16px!important}}

/* every HS Signal block: the component kit's .sig, reset against the old page CSS (Arena Ice / Graphite / pine) */
.sig.hs{background:transparent;color:var(--ink);font-family:var(--fb);font-size:14px;line-height:1.5}
.sig.hs a{color:inherit;text-decoration:none!important;background-image:none!important}
.sig.hs a:focus-visible,.sig.hs summary:focus-visible,.sig.hs button:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:var(--r)}
.sig.hs h1,.sig.hs h2,.sig.hs h3,.sig.hs p{margin:0;padding:0;border:0;text-shadow:none;background:none;letter-spacing:normal}
.sig.hs b,.sig.hs strong{font-weight:700}
.sig.hs img.sport-ic{display:block;flex:none;border-radius:22%}
.sig.hs .mono,.sig.hs .rc,.sig.hs .sc,.sig.hs .cb,.sig.hs .rk,.sig.hs .tk b,.sig.hs .rec .v,.sig.hs .duo .n,.sig.hs .fact .v,.sig.hs .hs-det b,.sig.hs .pc .v b,.sig.hs .hs-msc{font-family:var(--fn);font-variant-numeric:tabular-nums}
.sig.hs .in{max-width:1120px}
.gp-content>.sig.hs>.in{padding-inline:0}
.sig.hs .hs-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* hub header (above the section menu): 56 px sport icon + title + one line */
.sig.hs-hubw{background:var(--bg)}
.sig.hs-hubw .in{padding-inline:32px}
.sig.hs-hubw .crumb a{color:var(--dim)}
.sig.hs-hubw .crumb a:hover{color:var(--ink)}
.sig.hs-hubw .hubh img.sport-ic{width:56px;height:56px}
@container (max-width:600px){.sig.hs-hubw .in{padding-inline:16px}.sig.hs-hubw .hubh img.sport-ic{width:44px;height:44px}.sig.hs-hubw .hubh{gap:12px}}

/* page heads on standings / schedule (no hub icon: the section menu says where you are) */
.sig.hs .hs-sh{padding:18px 0 6px}
.sig.hs .hs-k{font-size:12px;font-weight:600;color:var(--dim)}
.sig.hs .hs-h1{font-family:var(--fh);font-weight:800;font-size:34px;letter-spacing:-.045em;line-height:1.08;margin-top:4px}
.sig.hs .hs-sub{color:var(--ink2);font-size:14px;margin-top:6px;max-width:72ch}
.sig.hs .hs-sub a{color:var(--acc);font-weight:600}
@container (max-width:600px){.sig.hs .hs-h1{font-size:26px}}
.sig.hs .hs-note{font-size:13px;color:var(--ink2);margin:-2px 0 10px}
.sig.hs .hs-hk{font-size:12px;color:var(--dim);font-weight:500}
.sig.hs .h2{margin-top:26px}
.sig.hs .hs-col>.h2:first-child,.sig.hs .hs-col>form:first-child+.h2{margin-top:0}
.sig.hs .hs-col>form:first-child{margin-bottom:22px}

/* hub / game grid */
.sig.hs .hs-g2{padding-top:22px;padding-bottom:30px;gap:36px}
.sig.hs .hs-col{min-width:0;display:block}
.sig.hs .rlist.hs-one{grid-template-columns:minmax(0,1fr)}
.sig.hs .rlist{align-items:start}

/* ticket cards (kit .g3): HS states + the card as one link */
.sig.hs a.g3{color:var(--ink);background:var(--card);transition:border-color .12s}
.sig.hs a.g3:hover{border-color:var(--ln2)}
.sig.hs a.g3[hidden],.sig.hs [data-hs-day][hidden]{display:none!important}
.sig.hs .g3 .tk{min-height:100%}
.sig.hs .g3 .tk.hs-on span{color:var(--ink);font-weight:600}
.sig.hs .g3 .nm .bd{font-family:var(--fn);font-weight:600;font-size:10.5px;color:var(--dim);min-width:30px;flex:none;letter-spacing:.02em}
.sig.hs .g3 .meta .tag{white-space:normal}
.sig.hs .g3 .hs-x{font-size:12px;color:var(--ink2);font-family:var(--fn)}
.sig.hs .g3 .ln.l .sc{color:var(--dim)}

/* row-card standings: the kit .srow, as <details> (tap = the numbers) or as a link (hub) */
.sig.hs .srows{gap:6px}
.sig.hs details.srow{display:block;padding:0}
.sig.hs details.srow>summary{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 10px;cursor:pointer;list-style:none}
.sig.hs details.srow.wide>summary{grid-template-columns:30px minmax(0,1fr) auto auto 92px}
.sig.hs details.srow>summary::-webkit-details-marker{display:none}
.sig.hs details.srow>summary::marker{content:""}
.sig.hs details.srow[open]{border-color:var(--ln2)}
.sig.hs a.srow{color:var(--ink);background:var(--card)}
.sig.hs a.srow:hover{border-color:var(--ln2)}
.sig.hs .srow.wide{grid-template-columns:30px minmax(0,1fr) auto auto 92px}
.sig.hs .srow .tag{justify-self:end}
.sig.hs .srow .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sig.hs .srow .hs-tie{font-size:11px;color:var(--dim);font-weight:500}
.sig.hs .hs-det{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 14px;padding:10px 12px 12px 50px;border-top:var(--lw) solid var(--ln);font-size:12.5px}
.sig.hs .hs-det span{display:grid;gap:1px;min-width:0}
.sig.hs .hs-det i{font-style:normal;color:var(--dim);font-size:11px;font-weight:600}
.sig.hs .hs-det b{font-weight:600;font-size:13px}
.sig.hs .hs-det a,.sig.hs .hs-det .hs-w{grid-column:1/-1}
.sig.hs .hs-det a{color:var(--acc);font-weight:600;font-size:13px}
@container (max-width:600px){
  .sig.hs details.srow.wide>summary,.sig.hs .srow.wide{grid-template-columns:28px minmax(0,1fr) auto auto}
  .sig.hs .srow.wide .cb{display:none}
  .sig.hs .hs-det{grid-template-columns:repeat(2,minmax(0,1fr));padding-left:12px}
}
.sig.hs .cutd{margin:2px 0}

/* chips (classes, weeks, filters): framed, no underline, current = ink frame */
.sig.hs .hs-chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px}
.sig.hs .hs-chips a,.sig.hs .hs-chips button{font:600 12.5px var(--fb);color:var(--ink2);background:var(--card);border:0;box-shadow:inset 0 0 0 var(--lw) var(--ln);border-radius:var(--r);padding:6px 10px;cursor:pointer;line-height:1.2;min-height:32px;display:inline-flex;align-items:center}
.sig.hs .hs-chips a[aria-current],.sig.hs .hs-chips button.on{color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.sig.hs .hs-chips a:hover,.sig.hs .hs-chips button:hover{color:var(--ink)}
@container (max-width:600px){.sig.hs .hs-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding-inline:16px}.sig.hs .hs-chips::-webkit-scrollbar{display:none}.sig.hs .hs-chips a,.sig.hs .hs-chips button{flex:none;min-height:36px}}

/* day groups (schedule) */
.sig.hs .hs-day .subh{margin-top:20px;font-size:13px;color:var(--ink);border-bottom:calc(var(--lw) * 2) solid var(--ln2);padding-bottom:6px;margin-bottom:10px}
.sig.hs .hs-pn{display:flex;gap:18px;margin:18px 0 6px;font-size:13px;font-weight:600}
.sig.hs .hs-pn a{color:var(--acc)}

/* find your team */
.sig.hs .hs-find{display:grid;gap:6px}
.sig.hs .hs-find label{font-family:var(--fh);font-weight:800;font-size:16px}
.sig.hs .hs-findr{display:flex;gap:8px}
.sig.hs .hs-find input{flex:1;min-width:0;font:400 14px var(--fb);color:var(--ink);background:var(--card);border:0;box-shadow:inset 0 0 0 var(--lw) var(--ln2);border-radius:var(--r);padding:9px 12px;min-height:40px}
.sig.hs .hs-find input::placeholder{color:var(--dim)}
.sig.hs .hs-find .hs-btn{min-height:40px}

/* boxes: Game of the week, win chance, paths, what-if */
.sig.hs a.box{color:var(--ink)}
.sig.hs a.box:hover{border-color:var(--ln2)}
.sig.hs .hs-gk{font-size:12px;color:var(--dim);font-weight:600}
.sig.hs .hs-gh{font-family:var(--fh);font-weight:800;font-size:20px;letter-spacing:-.025em;line-height:1.2}
.sig.hs .hs-gw{font-size:13px;color:var(--ink2)}
.sig.hs .hs-gl{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--acc);font-weight:600}
.sig.hs .hs-r{text-align:right}
.sig.hs .hs-bh{font-family:var(--fh);font-weight:800;font-size:16px;letter-spacing:-.01em}
.sig.hs .hs-wch,.sig.hs .hs-pkh{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.sig.hs .hs-wch{justify-content:flex-start}
.sig.hs .hs-sm{font-size:12.5px;color:var(--ink2)}
.sig.hs .hs-sm a,.sig.hs .hs-p a,.sig.hs .hs-miss a:not(.btn){color:var(--acc);font-weight:600}
.sig.hs .hs-p{font-size:13.5px;color:var(--ink2)}
.sig.hs .hs-p b{color:var(--ink)}
.sig.hs .hs-col>.box,.sig.hs .hs-col>a.box{margin-bottom:12px}
.sig.hs .box .hs-btn{justify-self:start}

/* game page: big ticket */
.sig.hs .hs-mh .tk img.sport-ic{width:36px;height:36px;margin-bottom:4px}
.sig.hs .hs-mh .tk .hs-ph{color:var(--ink);font-weight:600}
.sig.hs .hs-mh .bd2{gap:8px}
.sig.hs a.hs-tm{color:var(--ink);align-items:baseline}
.sig.hs a.hs-tm .bd{font-family:var(--fn);font-weight:600;font-size:11px;color:var(--dim);min-width:30px;align-self:center}
.sig.hs a.hs-tm:hover b{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.sig.hs a.hs-tm.hs-l b,.sig.hs a.hs-tm.hs-l .hs-msc{color:var(--ink2)}
.sig.hs .hs-msc{font-size:28px;font-weight:700;letter-spacing:-.02em}
.sig.hs .hs-venue{font-size:12.5px;color:var(--dim)}
.sig.hs .stakes .tag{flex:none}
.sig.hs .hs-share{margin:10px 0 0}
.sig.hs .hs-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.sig.hs .fact{border:var(--lw) solid var(--ln);border-radius:var(--r);padding:12px;display:grid;gap:3px;font-size:12.5px;color:var(--ink2)}
.sig.hs .fact .v{font-size:18px;font-weight:600;color:var(--ink);letter-spacing:-.02em}
.sig.hs .fact b{color:var(--ink);font-weight:600}
@container (max-width:600px){.sig.hs .hs-facts{grid-template-columns:minmax(0,1fr)}.sig.hs .hs-msc{font-size:22px}}
.sig.hs .hs-tl{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;font-weight:600;margin-top:4px}
.sig.hs .hs-tl a{color:var(--acc)}

/* hub link list (More football) */
.sig.hs .hs-links{display:grid;gap:6px}
.sig.hs .hs-links a{display:grid;gap:1px;border:var(--lw) solid var(--ln);border-radius:var(--r);padding:10px 12px;color:var(--ink)}
.sig.hs .hs-links a:hover{border-color:var(--ln2)}
.sig.hs .hs-links b{font-family:var(--fh);font-weight:800;font-size:14.5px;letter-spacing:-.01em}
.sig.hs .hs-links a.pz b{color:var(--acc)}
.sig.hs .hs-links span{font-size:12.5px;color:var(--ink2)}

/* full-width bands at the end of the hub (lane, ask) break out of the content column */
.sig.hs-hub>.hs-lane,.sig.hs-hub>.hs-ask{margin-inline:calc(50% - 50vw)}
.sig.hs-hub>.hs-lane .in,.sig.hs-hub>.hs-ask .in{max-width:1120px;padding-inline:32px}
@container (max-width:600px){.sig.hs-hub>.hs-lane .in,.sig.hs-hub>.hs-ask .in{padding-inline:16px}}
.sig.hs .hs-pl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@container (max-width:900px){.sig.hs .hs-pl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (max-width:600px){.sig.hs .hs-pl{grid-template-columns:minmax(0,1fr)}}
.sig.hs a.pc{color:var(--ink)}
.sig.hs a.pc:hover{border-color:var(--acc)}
.sig.hs .hs-askb{display:flex;gap:10px;flex-wrap:wrap}


/* the old standings matrix under the row cards keeps its own look; only the heading is Signal */
.sig.hs .hs-mxh{margin-top:30px}

/* resets against the old page kits inside the HS Signal blocks (found on the first look pass) */
.sig.hs h1,.sig.hs h2,.sig.hs h3,.sig.hs .hubh h1{text-transform:none!important;font-family:var(--fh)}
.sig.hs .tag{font-family:var(--fb)!important;text-transform:none!important;letter-spacing:0!important;font-size:11.5px!important;font-weight:600!important;padding:3px 8px!important;border:0!important;border-radius:6px!important;background:var(--card)!important;color:var(--c)!important;line-height:1.2!important}
/* framed buttons: own class (arena-ice.css paints every .btn with !important, same reason as sig-chrome's .ns-btn) */
.sig.hs .hs-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 14px/1.15 var(--fb);padding:9px 16px;white-space:nowrap;border:0;border-radius:var(--r);background:var(--card);color:var(--ink);box-shadow:inset 0 0 0 2px var(--c,var(--ink));cursor:pointer;text-decoration:none}
.sig.hs .hs-btn.sm{font-size:12.5px;padding:7px 12px}
.sig.hs .hs-btn.join{--c:var(--acc)}.sig.hs .hs-btn.plus{--c:var(--coral)}
.sig.hs .hs-btn.join::before,.sig.hs .hs-btn.plus::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c)}
.sig.hs .hs-btn.sec{box-shadow:inset 0 0 0 var(--lw) var(--ln2)}
.sig.hs .hs-btn:hover{box-shadow:inset 0 0 0 2px var(--c,var(--ink))}
.sig.hs .ask h3{color:var(--asktx)!important}
.sig.hs .ask p{color:var(--askp)!important}
.sig.hs .duo>span,.sig.hs .duo>div{display:grid;gap:2px}
.sig.hs .duo .nm{display:block}
.sig.hs p.cutn,.sig.hs .cutn{font-size:12px!important;line-height:1.5!important;color:var(--ink2)!important;margin-top:8px!important}
.sig.hs p.hs-note{font-size:13px!important}
.sig.hs p.hs-sub{font-size:14px!important}
.sig.hs .wu p,.sig.hs .hubh p{font-size:13px!important;line-height:1.45!important}
.sig.hs .hubh p{font-size:14px!important}

/* basketball (niftiLab bb_* pages): the hub header sits under the section menu (niftiLab base.html has no slot above it) */
html.ns-sig main.gp-main:has(> .sig.hs-bbh){max-width:none!important;padding:0!important;margin:0!important;overflow-x:clip}
html.ns-sig main.gp-main:has(> .sig.hs-bbh)>.iq-crumbs{display:none}
html.ns-sig main.gp-main:has(> .sig.hs-bbh)>.sig.hs-bb>.in{padding-inline:32px}
html.ns-sig main.gp-main:has(> .sig.hs-bbh)>article.hs-bbrest{max-width:1120px;margin:0 auto;padding:0 32px 24px;box-sizing:border-box}
@media (max-width:600px){html.ns-sig main.gp-main:has(> .sig.hs-bbh)>.sig.hs-bb>.in{padding-inline:16px}html.ns-sig main.gp-main:has(> .sig.hs-bbh)>article.hs-bbrest{padding:0 16px 24px}}
.sig.hs .hs-even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@container (max-width:600px){.sig.hs .hs-even{grid-template-columns:minmax(0,1fr)}}
.sig.hs .hs-regh{display:grid;grid-template-columns:minmax(0,1fr) 150px 150px;gap:10px;padding:0 10px;font-size:11px;font-weight:600;color:var(--dim)}
.sig.hs a.hs-reg{grid-template-columns:minmax(0,1fr) 150px 150px}
.sig.hs a.hs-reg .rc b{color:var(--ink);font-weight:600}
@container (max-width:600px){.sig.hs .hs-regh,.sig.hs a.hs-reg{grid-template-columns:minmax(0,1fr) 96px 96px}.sig.hs a.hs-reg .rc{font-size:11.5px}}
.sig.hs .hs-recs2{margin-top:8px}
.sig.hs .hs-recs2 .rec{flex:1;min-width:0}
.sig.hs .hs-recs2 .rec .v{font-size:16px;white-space:normal}
.sig.hs .hs-heal{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.sig.hs .hs-heal span{display:grid;gap:2px;border:var(--lw) solid var(--ln);border-radius:var(--r);padding:8px;text-align:center}
.sig.hs .hs-heal i{font-style:normal;font-size:10.5px;color:var(--dim);font-weight:600}
.sig.hs .hs-heal b{font-family:var(--fn);font-size:16px;font-weight:600}
.sig.hs .hs-tlist .srow{grid-template-columns:30px minmax(0,1fr)}
.sig.hs .hs-tlist .rk{background:transparent;color:var(--dim)}
.sig.hs .hs-all summary{cursor:pointer;font-weight:600;font-size:13.5px;padding:8px 0}
.sig.hs .hs-sch{list-style:none;padding:0;margin:6px 0 0;columns:2;column-gap:16px;font-size:13px}
.sig.hs .hs-sch li{padding:4px 0;break-inside:avoid}
.sig.hs .hs-sch a{color:var(--ink)}
.sig.hs .hs-sch a:hover{color:var(--acc)}
.sig.hs .hs-h2s{margin-top:18px}
.sig.hs .hs-pq{display:flex;gap:8px;align-items:center;margin:8px 0}
.sig.hs div.g3{color:var(--ink)}
.sig.hs-hub.hs-bb>.hs-ask{margin-inline:0}
html.ns-sig main.gp-main:has(> .sig.hs-bbh){background:var(--bg)!important}
html.ns-sig main.gp-main:has(> .sig.hs-bbh)>div:not(.sig){max-width:1120px;margin-inline:auto!important;padding-inline:32px;box-sizing:border-box}
@media (max-width:600px){html.ns-sig main.gp-main:has(> .sig.hs-bbh)>div:not(.sig){padding-inline:16px}}
html.ns-sig article.hs-bbrest h2{font:800 20px/1.2 var(--fh)!important;letter-spacing:-.02em!important;text-transform:none!important;margin:30px 0 10px!important;border-bottom:calc(var(--lw) * 2) solid var(--ln2);padding-bottom:8px}
html.ns-sig article.hs-bbrest p{max-width:72ch}
@container (max-width:1000px){.sig.hs .hs-g2 .rlist{grid-template-columns:minmax(0,1fr)}}
.sig.hs .g3 .ln>.nm{flex:1;min-width:0;overflow:hidden}
.sig.hs .g3 .ln>.sc,.sig.hs .g3 .ln>.rc{flex:none}

/* ---------------- r2 (Pixel LOOK SIG_HS_A 10-30) ---------------- */
/* MUST 1: ONE column for every block = the header's 72-1128 at 1200 (box 1120, 32 px gutters; 16 px on phones) */
html.ns-sig main.hs-m>.gp-content,html.ns-sig main.hs-m>.iq-note,html.ns-sig main.hs-m .iq-crumbs{max-width:1120px!important;width:auto!important;margin-inline:auto!important;padding-inline:32px!important;box-sizing:border-box!important}
html.ns-sig main.hs-m>.iq-note{margin-block:24px!important}
html.ns-sig main.gp-main:has(> .sig.hs-bbh)>.sig.hs-bb{max-width:1120px;margin-inline:auto;padding-inline:32px;box-sizing:border-box}
html.ns-sig main.gp-main:has(> .sig.hs-bbh)>.sig.hs-bb>.in,html.ns-sig main.hs-m .gp-content .sig.hs>.in,.sig.hs .sig.hs .in{max-width:none;padding-inline:0;margin-inline:0}
.sig.hs-hubw .in,.sig.hs-hub>.hs-lane .in,.sig.hs-hub>.hs-ask .in{max-width:1120px!important;padding-inline:32px!important;margin-inline:auto!important;box-sizing:border-box}
html.ns-sig main.gp-main:has(> .sig.hs-bbh)>.sig.hs-hub.hs-bb{max-width:none;padding-inline:0}
html.ns-sig main.gp-main:has(> .sig.hs-bbh)>.sig.hs-hub.hs-bb>.in{max-width:1120px;padding-inline:32px;margin-inline:auto}
html.ns-sig main.gp-main:has(> .sig.hs-bbh)>article.hs-bbrest,html.ns-sig main.gp-main:has(> .sig.hs-bbh)>div:not(.sig){max-width:1120px!important;padding-inline:32px!important;margin-inline:auto!important;box-sizing:border-box}
html.ns-sig body:is(:has(.sig.hs),:has(main.hs-m)) footer.ns-ft{max-width:none!important;margin-inline:0!important;padding-inline:0!important}
html.ns-sig body:is(:has(.sig.hs),:has(main.hs-m)) footer.ns-ft>.in{max-width:1120px!important;padding-inline:32px!important;margin-inline:auto!important;box-sizing:border-box}
@media (max-width:600px){
  html.ns-sig main.hs-m>.gp-content,html.ns-sig main.hs-m>.iq-note,html.ns-sig main.hs-m .iq-crumbs,html.ns-sig main.gp-main:has(> .sig.hs-bbh)>.sig.hs-bb,
  html.ns-sig main.gp-main:has(> .sig.hs-bbh)>article.hs-bbrest,html.ns-sig main.gp-main:has(> .sig.hs-bbh)>div:not(.sig),html.ns-sig main.gp-main:has(> .sig.hs-bbh)>.sig.hs-hub.hs-bb>.in,
  html.ns-sig body:is(:has(.sig.hs),:has(main.hs-m)) footer.ns-ft>.in{padding-inline:16px!important}
  .sig.hs-hubw .in,.sig.hs-hub>.hs-lane .in,.sig.hs-hub>.hs-ask .in{padding-inline:16px!important}
  html.ns-sig main.hs-m>.iq-note{margin-inline:16px!important;padding-inline:16px!important}
}
/* MUST 2: the game page's two "this season" tables share the width (stack under 900 px), scores never clipped */
html.ns-sig main.hs-m .gp-content>.grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
html.ns-sig main.hs-m .gp-content>.grid>section{min-width:0}
html.ns-sig main.hs-m .gm-sched td.num{width:7.2em!important}
html.ns-sig main.hs-m .gm-sched td:first-child{width:5.2em!important}
@media (max-width:900px){html.ns-sig main.hs-m .gp-content>.grid{grid-template-columns:minmax(0,1fr)!important}}
/* SHOULD 6: the ask band headline = pro (26 px, 22 on phones) */
.sig.hs .ask h3{font:800 26px/1.15 var(--fh)!important;letter-spacing:-.04em!important}
@container (max-width:600px){.sig.hs .ask h3{font-size:22px!important}}
/* SHOULD 7: old-look leftovers on HS pages: links in cobalt, the note + old cards as plain Signal cards, no grey band */
html.ns-sig main.hs-m a:not([class]):not(.sig.hs a),html.ns-sig main.hs-m .iq-note a,html.ns-sig main.hs-m .mx-why,html.ns-sig main.hs-m .mx-why *,
html.ns-sig main.gp-main:has(> .sig.hs-bbh) a:not([class]):not(.sig.hs a),html.ns-sig main.hs-m .iq-note-rm{color:var(--acc)!important}
html.ns-sig main.hs-m,html.ns-sig main.gp-main:has(> .sig.hs-bbh),html.ns-sig body:is(:has(.sig.hs),:has(main.hs-m)){background:var(--bg)!important}
html.ns-sig main.hs-m>.iq-note,html.ns-sig main.gp-main:has(> .sig.hs-bbh)>.iq-note{background:var(--card)!important;border:var(--lw) solid var(--ln)!important;border-radius:var(--r)!important;box-shadow:none!important;color:var(--ink2)!important}
html.ns-sig body:is(:has(.sig.hs),:has(main.hs-m)) .ns-morew,html.ns-sig body:is(:has(.sig.hs),:has(main.hs-m)) .ns-morew .ns-more{background:var(--bg)!important}
html.ns-sig main.hs-m .gp-content>.card,html.ns-sig main.hs-m .gp-content>section.card,html.ns-sig main.hs-m .gp-content>details.card,html.ns-sig main.hs-m .gp-content>.grid>.card,html.ns-sig main.hs-m .gp-content>article.card,
html.ns-sig main.hs-m .gp-content>a.card,html.ns-sig main.gp-main:has(> .sig.hs-bbh) .bb-card,html.ns-sig main.gp-main:has(> .sig.hs-bbh) .bb-panel{background:var(--card)!important;border:var(--lw) solid var(--ln)!important;border-radius:var(--r)!important;box-shadow:none!important;color:var(--ink)!important;transform:none!important}
html.ns-sig main.hs-m .gp-content h2,html.ns-sig main.hs-m .gp-content h3,html.ns-sig main.hs-m .gp-content .gm-h2,html.ns-sig main.gp-main:has(> .sig.hs-bbh) .bb-card h3{font-family:var(--fh)!important;text-transform:none!important;letter-spacing:-.02em!important;color:var(--ink)!important;text-shadow:none!important}
html.ns-sig main.hs-m .gp-content>.card h2,html.ns-sig main.hs-m .gp-content>section h2,html.ns-sig main.hs-m .gp-content>details h2{font-size:18px!important}
html.ns-sig main.gp-main:has(> .sig.hs-bbh) .bb-card .bb-eyebrow,html.ns-sig main.gp-main:has(> .sig.hs-bbh) .bb-card .bb-n{font-family:var(--fb)!important;text-transform:none!important;letter-spacing:0!important;color:var(--ink2)!important;border:0!important;text-decoration:none!important}
html.ns-sig main.gp-main:has(> .sig.hs-bbh) .bb-card h3{font-size:16px!important}
/* the old finish block, collapsed behind one button until it's restyled */
html.ns-sig main.hs-m details.hs-more{margin:18px 0 6px}
html.ns-sig main.hs-m details.hs-more>summary{display:inline-flex;align-items:center;gap:8px;list-style:none;cursor:pointer;font:600 13.5px/1.15 var(--fb);color:var(--ink);background:var(--card);padding:9px 16px;border-radius:var(--r);box-shadow:inset 0 0 0 var(--lw) var(--ln2)}
html.ns-sig main.hs-m details.hs-more>summary::-webkit-details-marker{display:none}
html.ns-sig main.hs-m details.hs-more>summary::after{content:"+";font-family:var(--fn)}
html.ns-sig main.hs-m details.hs-more[open]>summary::after{content:"−"}
html.ns-sig main.hs-m details.hs-more>.hs-morein{margin-top:14px}
/* SHOULD 8: 'Find your team' once on desktop (the right-column box); the header button stays on phones */
@media (min-width:861px){.sig.hs .hs-act{display:none}}
/* SHOULD 9 + 10: letter badges on every row, ONE tie chip ('tied' / 'tied at the cut') */
.sig.hs .srow .nm{display:flex;align-items:center;gap:8px;min-width:0}
.sig.hs .srow .nm em{font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.sig.hs .srow .nm .bd{font-family:var(--fn);font-weight:600;font-size:10.5px;color:var(--dim);min-width:30px;flex:none;letter-spacing:.02em}
.sig.hs .hs-tie{flex:none;font:600 11px/1.2 var(--fb)!important;color:var(--ink2);padding:2px 6px;border-radius:6px;box-shadow:inset 0 0 0 var(--lw) var(--ln2);white-space:nowrap}
/* SHOULD 12: no box behind the record lines in the game header (any width) */
.sig.hs a.hs-tm .rc,.sig.hs .mh .rc{background:none!important;padding:0!important;border:0!important;box-shadow:none!important}
/* SHOULD 15: sub-page header = the hub header (crumb + 56 px icon) */
.sig.hs .hs-shi{padding:0 0 6px}
.sig.hs .hs-shi .hubh{padding-block:10px 4px;align-items:flex-start}
.sig.hs .hs-shi .hubh img.sport-ic{width:56px;height:56px;margin-top:2px}
.sig.hs .hs-shi .hs-h1{margin-top:0}
.sig.hs .hs-shi .crumb a{color:var(--dim)}
@container (max-width:600px){.sig.hs .hs-shi .hubh img.sport-ic{width:44px;height:44px}}
.sig.hs .g3 .body{grid-template-columns:minmax(0,1fr)}
.sig.hs .g3 .body>*{min-width:0}
.sig.hs .crumb a{color:var(--dim)!important}.sig.hs .crumb a:hover{color:var(--ink)!important}
.sig.hs .hs-links a{color:var(--ink)}
/* the note box edges on the content column (72-1128), text inset inside it */
html.ns-sig main.hs-m>.iq-note,html.ns-sig main.gp-main:has(> .sig.hs-bbh)>.iq-note{max-width:1056px!important;padding:16px 20px!important;margin-inline:auto!important}
@media (max-width:1100px){html.ns-sig main.hs-m>.iq-note{margin-inline:32px!important}}
@media (max-width:600px){html.ns-sig main.hs-m>.iq-note{margin-inline:16px!important;padding:14px 16px!important}}

/* ---------------- r3 (Pixel LOOK SIG_HS_A r2 10-30) ---------------- */
/* MUST: the ask headline on the ink band = --asktx in BOTH modes (the r2 old-heading rule painted it --ink) */
html.ns-sig .sig.hs .ask h3,html.ns-sig main.hs-m .gp-content .sig.hs .ask h3,html.ns-sig main.gp-main .sig.hs .ask h3{color:var(--asktx)!important}
/* SHOULD 3: a long name never gets cut by the tie chip: names wrap on row cards (2 lines max) */
.sig.hs .srow .nm em{white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}
/* SHOULD 4: the folded 'What's the Crabtree Index?' line gets its separator */
html.ns-sig main.hs-m details.lp-crab>summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}
html.ns-sig main.hs-m details.lp-crab>summary .muted::before{content:"· ";color:var(--dim)}

/* ---------------- SIG_HS_B (Pixel 10-30, pro rule): on phones the sport icon sits BESIDE the title (40 px), never above it ---------------- */
@container (max-width:600px){
  .sig.hs .hubh{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:start;gap:4px 12px;flex-wrap:nowrap}
  .sig.hs .hubh>img.sport-ic,.sig.hs-hubw .hubh img.sport-ic,.sig.hs .hs-shi .hubh img.sport-ic{width:40px!important;height:40px!important;margin:0!important;align-self:start}
  .sig.hs .hubh>div:not(.act){min-width:0}
  .sig.hs .hubh>.act{grid-column:1/-1;margin-left:0}
}

/* SIG_HS_C: playoffs on the hub (every class with a playoff game; proven first-round pairings until times are posted) */
.sig.hs .hs-pos{margin-top:12px}
.sig.hs a.hs-pob{margin-bottom:8px}
.sig.hs .hs-pol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;font-size:13.5px}
.sig.hs .hs-pol i{font-style:normal;color:var(--dim);font-size:12px}
.sig.hs .hs-pol .mono{font-family:var(--fn);font-weight:600;color:var(--acc)}
@container (max-width:600px){.sig.hs .hs-pol{grid-template-columns:minmax(0,1fr)}}
/* SIG_HS_C r2 (Pixel): proven seed before the name, names wrap (2 lines) in playoff tickets, phones: 2 per class + 'All ... games' */
.sig.hs .g3 .hs-seed{font-family:var(--fn);font-weight:600;color:var(--acc);font-size:12.5px}
.sig.hs .hs-pog .g3 .nm em{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}
.sig.hs a.hs-pomore{display:none}
@container (max-width:600px){.sig.hs .hs-pog a.g3.hs-m3{display:none}.sig.hs a.hs-pomore{display:block;margin:-2px 0 6px}}
.sig.hs a.hs-pomore{color:var(--acc)}
/* SIG_HS_C r3 (Pixel MUST): '#N Name' never splits (break only after 'at'); the Playoffs block is one column on every width */
.sig.hs .hs-pair{white-space:nowrap}
.sig.hs .rlist.hs-pog{grid-template-columns:minmax(0,1fr)}
/* SIG_HS_C r4 (Pixel, pro rule): under 1000 px the hub is ONE column (standings panel full width under the left column), so
   names wrap instead of shrinking; the hub-header 'Find your team' button shows only where the input isn't beside it (< 1000 px) */
@media (max-width:999px){.sig.hs .grid.hs-g2,.sig.hs .hs-g2{grid-template-columns:minmax(0,1fr)!important}}
@media (min-width:861px) and (max-width:999px){.sig.hs .hs-act{display:flex}}
@media (min-width:1000px){.sig.hs .hs-act{display:none}}
.sig.hs .srow .nm em{min-width:0;overflow-wrap:normal;word-break:normal}
@media (max-width:1099px){.sig.hs .hs-even{grid-template-columns:minmax(0,1fr)!important}}

/* ---------------- HS_V1_A (Pixel V1 audit 10-30): the Signal skin for every remaining old HS body ----------------
   The football pages that still print their old markup (standings index, teams, what-if, playoffs, bracket, ratings, picks,
   accuracy, recaps, games, seasons, Crabtree, about, FAQ, changelog, and the lower blocks of team + game pages) and the
   basketball Heal points + FAQ pages. Display only. Old tokens -> Signal tokens; Public Sans text, Schibsted headings,
   Roboto Mono only for numbers; no capitals-only labels; 1 px lines, 8 px corners, no gradients, no left accents; names wrap. */
html.ns-sig main.hs-m,html.ns-sig main.gp-main:has(> .sig.hs-bbh){
  --w30-bg:var(--bg);--w30-card:var(--card);--w30-line:var(--ln);--w30-cream:var(--ink);--w30-dim:var(--ink2);--w30-amber:var(--acc);
  --w30-green:var(--accS);--w30-ok:var(--good);--w30-bad:var(--live);--w30-mono:var(--fn);--w30-cond:var(--fh);
  --ch-mono:var(--fn);--iq-mono:var(--fn);--gp-mono:var(--fn);--sk-mono:var(--fn);--ch-cond:var(--fh);--ch-head:var(--fh);
  --iq-font:var(--fb);--gp-sans:var(--fb);--sk-sans:var(--fb);--ch-amber-fill:var(--acc);--ch-on-amber:#fff;
  --q0:var(--bg2);--q1:var(--accS);--q2:var(--accL);--q3:var(--acc);--q4:var(--acc)}
html.ns-sig main.hs-m *,html.ns-sig main.hs-m *::before,html.ns-sig main.hs-m *::after,html.ns-sig main.gp-main:has(> .sig.hs-bbh) *,html.ns-sig main.gp-main:has(> .sig.hs-bbh) *::before,html.ns-sig main.gp-main:has(> .sig.hs-bbh) *::after{text-transform:none!important;letter-spacing:normal!important}
/* headings: the page title = the Signal h1 (34 px, 26 on phones); section heads Schibsted 800 */
html.ns-sig main.hs-m :is(h1,.ice-h1):not(.sig.hs *),html.ns-sig main.gp-main:has(> .sig.hs-bbh) :is(h1,.ice-h1):not(.sig.hs *){font:800 34px/1.08 var(--fh)!important;letter-spacing:-.045em!important;color:var(--ink)!important}
@media (max-width:600px){html.ns-sig main.hs-m :is(h1,.ice-h1):not(.sig.hs *),html.ns-sig main.gp-main:has(> .sig.hs-bbh) :is(h1,.ice-h1):not(.sig.hs *){font-size:26px!important}}
html.ns-sig main.hs-m :is(h2,h3,h4,.mx-h2,.b2-h2,.ij-t):not(.sig.hs *){font-family:var(--fh)!important;font-weight:800!important;letter-spacing:-.02em!important}
/* labels that were capitals-only mono: plain small Public Sans */
html.ns-sig main.hs-m :is(.ice-k,.st-k,.b2-k,.b2-meta,.w31-tag,.mx-more-k,.ice-cut,.ice-fine,.st-pk,.mx-tb,.mx-chip,.w31-chip,p.st-grp,.tag,th,summary,.w30-k,.w30-flab,.w30-why summary,.g27-up,small,.b6-cl,.ij-k,.mx-legend,.mx-foot):not(.sig.hs *),
html.ns-sig main.gp-main:has(> .sig.hs-bbh) :is(.ice-k,.bb-eyebrow,.tag,th,summary,small):not(.sig.hs *){font-family:var(--fb)!important}
html.ns-sig main.hs-m :is(.ice-k,.st-k,.b2-k,.w31-tag,.mx-more-k,p.st-grp,.w30-k,.w30-flab):not(.sig.hs *){font-size:12px!important;font-weight:600!important;color:var(--dim)!important}
html.ns-sig main.hs-m :is(.w30-why summary,summary.w30-why):not(.sig.hs *){font-size:12.5px!important;color:var(--acc)!important;text-decoration:none!important}
/* chips (class pickers, 11-man / 8-man): framed Signal chips, current = ink frame */
html.ns-sig main.hs-m :is(.mx-chip,.w31-chip):not(.sig.hs *){font:600 12.5px/1.2 var(--fb)!important;color:var(--ink2)!important;background:var(--card)!important;border:0!important;box-shadow:inset 0 0 0 var(--lw) var(--ln)!important;border-radius:var(--r)!important;min-height:32px;padding:6px 10px!important}
html.ns-sig main.hs-m :is(.mx-chip.on,.mx-chip[aria-pressed="true"],.mx-chip[aria-current],.w31-chip.on):not(.sig.hs *){color:var(--ink)!important;box-shadow:inset 0 0 0 2px var(--ink)!important}
/* tags: outline tags (no fills), like the Signal kit */
html.ns-sig main.hs-m .tag:not(.sig.hs *){font:600 11.5px/1.3 var(--fb)!important;padding:2px 7px!important;border-radius:6px!important;background:transparent!important;border:0!important;box-shadow:inset 0 0 0 var(--lw) var(--ln2)!important;color:var(--ink)!important}
/* cards: one 1 px line, 8 px corners, flat */
html.ns-sig main.hs-m :is(.w31-card,.ij-strip,.b6-row,.mx-card,.ice-card,.ice-pb,.st-card,.w30-card,.b4-next,.gm-qa,.ice-pr):not(.sig.hs *){background:var(--card)!important;background-image:none!important;border:var(--lw) solid var(--ln)!important;border-radius:var(--r)!important;box-shadow:none!important;color:var(--ink)}
html.ns-sig main.hs-m :is(.w31-card.green,.b4-next):not(.sig.hs *){background:var(--accS)!important;border-color:var(--accL)!important}
/* no left accents (rule 10-26): the what-if 'no score yet' rows had a 3 px violet inset line; the tag says it */
html.ns-sig main.hs-m .game:not(.sig.hs *){box-shadow:none!important;border-left-width:var(--lw)!important}
/* names wrap, never cut (Pixel MUST 3): the full name everywhere, on as many lines as it needs */
html.ns-sig[data-theme] body main.hs-m .mx-ns,html.ns-sig[data-theme] body main.gp-main .mx-ns{display:none!important}
html.ns-sig[data-theme] body main.hs-m .mx-nl,html.ns-sig[data-theme] body main.hs-m .ice-pr .mx-nl,html.ns-sig[data-theme] body main.hs-m .mx-nl:has(+ .mx-ns),html.ns-sig[data-theme] body main.gp-main .mx-nl{display:inline!important;position:static!important;width:auto!important;height:auto!important;clip:auto!important;overflow:visible!important;white-space:normal!important}
html.ns-sig[data-theme] body main.hs-m :is(.b6-nm,.b6-nm.ice-tm,.ice-tm,.mx-n,.mx-name,.tm-srch-l):not(.sig.hs *){white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere}
html.ns-sig[data-theme] body main.hs-m .b6-nm.ice-tm{font:700 16px/1.25 var(--fh)!important;color:var(--ink)!important;letter-spacing:-.01em!important}
html.ns-sig main.hs-m td:not(.sig.hs *){text-overflow:clip!important;white-space:normal}
/* links + numbers */
html.ns-sig main.hs-m :is(.mx-nl,.mx-n) a,html.ns-sig main.hs-m a.mx-team{color:var(--ink)!important}
html.ns-sig main.hs-m table:not(.sig.hs *){font-variant-numeric:tabular-nums}
html.ns-sig main.hs-m :is(td.num,th.num,.num):not(.sig.hs *){font-family:var(--fn)!important}
/* the what-if muted line ('Fri 10/30 ·'): --ink2 (4.5:1+ in both modes) */
html.ns-sig main.hs-m :is(.muted,.small.muted,.st-when,.gmeta,.game .when,.g-when,.gm-when):not(.sig.hs *){color:var(--ink2)!important;opacity:1!important}
/* /picks on phones: weeks after the first two fold behind 'All weeks'; wide tables scroll inside their card, never the page */
html.ns-sig main.hs-m .hs-tw{overflow-x:auto;max-width:100%}
/* L128 team page: Signal top (stakes, record cells, chances box), next game box, season tickets, the one ask */
.sig.hs-team .hs-tstk{margin:4px 0 12px}
.sig.hs-team .hs-trecs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}
.sig.hs-team .hs-trecs .rec{min-width:0;display:grid;gap:2px;align-content:start}
.sig.hs-team .hs-trecs .rec .v{font-size:20px;white-space:normal}
.sig.hs-team .hs-trecs .rec .v small{font-size:12px;color:var(--dim);font-weight:500}
.sig.hs-team .hs-trecs .rec .s{white-space:normal}
.sig.hs-team .hs-trecs a.rec{color:var(--ink)}
.sig.hs-team .hs-trecs a.rec:hover{border-color:var(--ln2)}
@container (max-width:700px){.sig.hs-team .hs-trecs{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sig.hs .hs-o3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sig.hs .hs-o3>div{display:grid;gap:2px;align-content:start;min-width:0}
.sig.hs .hs-o3 .k{font-size:12px;font-weight:600;color:var(--dim)}
.sig.hs .hs-o3 .v{font:600 22px/1.15 var(--fn);color:var(--acc)}
.sig.hs .hs-o3 .s{font-size:12px;color:var(--ink2)}
@container (max-width:600px){.sig.hs .hs-o3{grid-template-columns:minmax(0,1fr)}.sig.hs .hs-o3>div{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:0 12px}.sig.hs .hs-o3 .s{grid-column:1/-1}}
.sig.hs .hs-wch .pwr{margin-left:auto;font-size:12px;color:var(--dim)}
.sig.hs .hs-wch .pwr b{color:var(--ink)}
.sig.hs-tnext a.box{gap:8px}
.sig.hs-tnext .duo{display:flex;justify-content:space-between;gap:12px}
.sig.hs-tnext .duo .n{font:600 22px/1.1 var(--fn)}
.sig.hs-tnext .duo .n.hi{color:var(--acc)}
.sig.hs-tnext .duo .nm{font-size:12.5px;color:var(--ink2)}
.sig.hs .tag.ww{color:var(--ww)}
.sig.hs-tsched{margin-top:26px}
.sig.hs-tsched .rlist.hs-one{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:999px){.sig.hs-tsched .rlist.hs-one{grid-template-columns:minmax(0,1fr)}}
.sig.hs-tsched .g3 .nm em{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}
.sig.hs-askw{margin:28px 0 8px}
.sig.hs-askw .ask{border-radius:var(--r)}
.sig.hs-askw .ask .in{padding:20px!important;display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between}
/* proven status words in the old boards (shared _matrix.html prints them in capitals): outline tags, 'Clinched' / 'Eliminated' */
html.ns-sig main.hs-m .ice-st:is(.in,.out):not(.sig.hs *){font-size:0!important;letter-spacing:0!important;display:inline-flex;align-items:center;padding:2px 7px;border-radius:6px;box-shadow:inset 0 0 0 var(--lw) currentColor;line-height:1.3}
html.ns-sig main.hs-m .ice-st:is(.in,.out):not(.sig.hs *)::before{content:none!important}
html.ns-sig main.hs-m .ice-st.in:not(.sig.hs *)::after{content:"Clinched";font:600 11.5px/1.3 var(--fb)}
html.ns-sig main.hs-m .ice-st.out:not(.sig.hs *)::after{content:"Eliminated";font:600 11.5px/1.3 var(--fb)}
html.ns-sig main.hs-m .ice-st.in:not(.sig.hs *){color:var(--good)!important}
html.ns-sig main.hs-m .ice-st.out:not(.sig.hs *){color:var(--outc)!important}
html.ns-sig main.hs-m .mx-iw,html.ns-sig main.hs-m .pc-iw{font:600 11.5px/1.3 var(--fb)!important;color:var(--ww)!important}
.sig.hs .hs-o3 .v.wd{font-family:var(--fb);font-weight:700;font-size:18px;color:var(--ink)}
html.ns-sig main.hs-m .hs-tw{-webkit-overflow-scrolling:touch;margin-inline:-4px;padding-inline:4px}
html.ns-sig main.hs-m :is(.w30-foot,.g27-mono,.g27-up):not(.sig.hs *){font-family:var(--fb)!important}
/* the matrix tap panel's 'Follow free' button: white on cobalt (the r2 cobalt-link rule painted its text cobalt too) */
/* words that were set in the mono face (notes, legends, the 'if it ended today' line, what-if chips): Public Sans; numbers keep Roboto Mono */
html.ns-sig main.hs-m :is(.ice-fine,.ice-note,.mx-lgd,.mx-why,.mx-wi,.mx-ifend,.chip,.badge,.st-wait,.mx-hint):not(.sig.hs *),
html.ns-sig main.hs-m :is(.ice-note,.mx-lgd,.mx-why,.mx-wi,.mx-ifend) :not(.num):not(.mono):not(.sig.hs *),
html.ns-sig main.gp-main:has(> .sig.hs-bbh) :is(.ice-fine,.ice-note):not(.sig.hs *){font-family:var(--fb)!important}
html.ns-sig main.hs-m :is(.mx-wi a,a.mx-wi):not(.sig.hs *){text-decoration:none!important;font-weight:600}
/* _matrix.html (shared, byte-identical across apps) prints 'NO SCORE YET' in capitals: shown as 'No score yet' */
html.ns-sig main.hs-m li>.st-wait:not(.sig.hs *){font-size:0!important}
html.ns-sig main.hs-m li>.st-wait:not(.sig.hs *)::after{content:"No score yet";font:600 11.5px/1.3 var(--fb);color:var(--ww)}
html.ns-sig main.hs-m :is(td,th)::before{font-family:var(--fb)!important;font-weight:600}
html.ns-sig main.hs-m .grid>.sig.hs-tsched{grid-column:1/-1}
@container (max-width:560px){.sig.hs-tsched .rlist.hs-one{grid-template-columns:minmax(0,1fr)}}
html.ns-sig main.hs-m td.num .muted:not(.sig.hs *){font-family:var(--fb)!important}
html.ns-sig main.gp-main:has(> .sig.hs-bbh) :is(label,.bb-lab,.bb-k):not(.sig.hs *){font-family:var(--fb)!important;font-weight:600}

/* ---------------- HS_V1_A r2 (Pixel LOOK_V1_BATCH2 10-30) ---------------- */
/* MUST 1: no old grey (#F2F5F8 body/html of the old look) around the reskinned bodies: the page ground is --bg everywhere */
html.ns-sig:has(main.hs-m),html.ns-sig:has(main.gp-main > .sig.hs-bbh){background:var(--bg)!important}
/* MUST 2: the old teal link tokens (style.css --accent / --blue ...) -> cobalt on every HS body, basketball included */
html.ns-sig main.hs-m,html.ns-sig main.gp-main:has(> .sig.hs-bbh){--accent:var(--acc);--accent-2:var(--acc);--blue:var(--acc);--blue2:var(--acc);--warn:var(--acc);--surface:var(--card);--surface-2:var(--bg2);--line:var(--ln);--muted:var(--ink2);--ink-2:var(--ink2);--ink-3:var(--dim);--iq-green:var(--acc);--i-acc:var(--acc)}
html.ns-sig .sig.hs .h2 a,html.ns-sig .sig.hs .hs-tl a,html.ns-sig .sig.hs a.hs-more,html.ns-sig .sig.hs .hs-note a,html.ns-sig .sig.hs .cutn a{color:var(--acc)!important}
html.ns-sig main.hs-m a.b6-team,html.ns-sig main.gp-main:has(> .sig.hs-bbh) :is(.bb-big,.bb-out b,.bb-res){color:var(--acc)!important;border-color:currentColor!important}
/* MUST 3: every old action button in the Signal framed style = card fill, 2 px cobalt frame + cobalt dot (Go, Fill projected winners,
   Show all 36 teams, Accuracy page, Follow <school> free, Preview, the team-page links on previews, 'Show where...', 'All weeks',
   and the tap-a-team panel's Follow free, which was white on cobalt solid) */
html.ns-sig main.hs-m :is(.ice-btn,button.btn:not(.btn-ghost),.iq-ink,.b2-allbtn,.fbr-pv,.gm-teams a.tag,.ij-fol a,details.hs-more>summary):not(.sig.hs *),
html.ns-sig main.hs-m .ij-fol a:not([class]):not(.sig.hs a),
html.ns-sig main.gp-main:has(> .sig.hs-bbh) :is(.ice-btn,.iq-ink,.ij-fol a):not(.sig.hs *){display:inline-flex!important;align-items:center;justify-content:center;gap:8px;font:600 14px/1.15 var(--fb)!important;padding:9px 16px!important;border:0!important;border-radius:var(--r)!important;background:var(--card)!important;color:var(--ink)!important;box-shadow:inset 0 0 0 2px var(--acc)!important;text-decoration:none!important;min-height:40px;box-sizing:border-box;white-space:nowrap}
html.ns-sig main.hs-m :is(.ice-btn,button.btn:not(.btn-ghost),.iq-ink,.b2-allbtn,.fbr-pv,.gm-teams a.tag,.ij-fol a,details.hs-more>summary):not(.sig.hs *)::before,
html.ns-sig main.hs-m .ij-fol a:not([class]):not(.sig.hs a)::before,
html.ns-sig main.gp-main:has(> .sig.hs-bbh) :is(.ice-btn,.iq-ink,.ij-fol a):not(.sig.hs *)::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--acc);flex:none}
html.ns-sig main.hs-m :is(.fbr-pv,.gm-teams a.tag):not(.sig.hs *){font-size:12.5px!important;padding:6px 12px!important;min-height:32px}
html.ns-sig main.hs-m button.btn-ghost:not(.sig.hs *){font:600 14px/1.15 var(--fb)!important;border:0!important;border-radius:var(--r)!important;background:var(--card)!important;color:var(--ink)!important;box-shadow:inset 0 0 0 var(--lw) var(--ln2)!important;padding:9px 16px!important;min-height:40px}
html.ns-sig main.hs-m :is(.ice-btn.w100):not(.sig.hs *),html.ns-sig main.gp-main:has(> .sig.hs-bbh) .ice-btn.w100{width:100%}
/* class chips on /playoffs (.chips): framed chips, the selected one = 2 px ink frame (not a cobalt fill) */
html.ns-sig main.hs-m .chips a:not(.sig.hs *){font:600 12.5px/1.2 var(--fb)!important;color:var(--ink2)!important;background:var(--card)!important;border:0!important;box-shadow:inset 0 0 0 var(--lw) var(--ln)!important;border-radius:var(--r)!important;padding:6px 10px!important;text-decoration:none!important}
html.ns-sig main.hs-m .chips a.on:not(.sig.hs *){color:var(--ink)!important;box-shadow:inset 0 0 0 2px var(--ink)!important}
/* MUST 9 + SHOULD: what-if 'Into the cut' / 'Below the cut' and 'In with a win' = outline tags (sentence case) */
html.ns-sig main.hs-m :is(.badge,.mx-iw,.pc-iw):not(.sig.hs *){display:inline-flex;align-items:center;font:600 11.5px/1.3 var(--fb)!important;padding:2px 7px!important;border-radius:6px!important;background:transparent!important;border:0!important;box-shadow:inset 0 0 0 var(--lw) currentColor!important}
html.ns-sig main.hs-m .badge.in:not(.sig.hs *){color:var(--good)!important}
html.ns-sig main.hs-m .badge.out:not(.sig.hs *){color:var(--outc)!important}
html.ns-sig main.hs-m :is(.mx-iw,.pc-iw):not(.sig.hs *){color:var(--ww)!important}
/* MUST 8: numbers never break inside ('48– / 22', '5- / 1') */
html.ns-sig main.hs-m :is(td.num,th.num,.hs-nw):not(.sig.hs *){white-space:nowrap!important}
/* the rest of the old ink / teal tokens (#0C1A24 text, #08799A accents) -> Signal ink / cobalt */
html.ns-sig main.hs-m,html.ns-sig main.gp-main:has(> .sig.hs-bbh){--ch-cream:var(--ink);--ch-ink:var(--ink);--ch-text:var(--ink);--iq-ink:var(--ink);--iq-cta-ink:var(--ink);--w-ink:var(--ink);--mx-now:var(--ink);--i-tx:var(--ink);
  --ch-amber:var(--acc);--gp-warn:var(--acc);--iq-amber-ink:var(--acc);--iq-blue-text:var(--acc);--mx-ring:var(--acc);--w-amber-ink:var(--acc);--i-l2:var(--acc)}
html.ns-sig main.hs-m pre:not(.sig.hs *){background:var(--bg2)!important;color:var(--ink)!important;border:var(--lw) solid var(--ln);border-radius:var(--r);font-family:var(--fn)!important;font-size:12px;overflow-x:auto}
html.ns-sig main.hs-m :is(input,select,textarea):not(.sig.hs *),html.ns-sig main.gp-main:has(> .sig.hs-bbh) :is(input,select,textarea):not(.sig.hs *){color:var(--ink)!important;background:var(--card)!important;border:0!important;box-shadow:inset 0 0 0 var(--lw) var(--ln2)!important;border-radius:var(--r)!important;font-family:var(--fb)!important}
.sig.hs .hs-find input{background:var(--card)!important;color:var(--ink)!important}
html.ns-sig main.hs-m :is(.sk-stretch,.gp-stretch,.sk-go,.gp-go):not(.sig.hs *){color:var(--ink)!important}
/* text colour: the old look sets body colour from #0C1A24 tokens at BODY level; every HS body takes Signal ink itself */
html.ns-sig main.hs-m,html.ns-sig main.gp-main:has(> .sig.hs-bbh){color:var(--ink);--gp-ink:var(--ink);--i-tx2:var(--ink2);--i-tx3:var(--dim)}
/* follow card (shared) on HS pages: the spam trap stays hidden, inputs in the Signal frame */
html.ns-sig main :is(.ice-hp){position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
html.ns-sig main .sig.hs :is(input[type=email],input[type=password],input[type=text],input[type=search]){background:var(--card)!important;color:var(--ink)!important;box-shadow:inset 0 0 0 var(--lw) var(--ln2)!important;border:0!important;border-radius:var(--r)!important}
/* the old w29 / aw pieces still printed on team + standings pages (paths teaser, members card, 'where they can finish' strip): Signal colours */
html.ns-sig main.hs-m .aw .aw-win .aw-s.on{background:var(--acc)!important;color:var(--i-on-acc,#fff)!important;border-color:var(--acc)!important}
html.ns-sig main.hs-m .aw .aw-s.now{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--acc)!important}
html.ns-sig main.hs-m .aw .aw-k.on{background:var(--acc)!important}
html.ns-sig main.hs-m .aw .aw-k.now{border-color:var(--acc)!important;background:transparent!important}
html.ns-sig main.hs-m :is(.w29-see,.w29-btn):not(.sig.hs *){display:inline-flex!important;align-items:center;justify-content:center;gap:8px;font:600 14px/1.15 var(--fb)!important;padding:9px 16px!important;border:0!important;border-radius:var(--r)!important;background:var(--card)!important;color:var(--ink)!important;box-shadow:inset 0 0 0 2px var(--acc)!important;min-height:40px;text-decoration:none!important}
html.ns-sig main.hs-m :is(.w29-see,.w29-btn):not(.sig.hs *)::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--acc);flex:none}
html.ns-sig main.hs-m .w29-btn:not(.sig.hs *){display:flex!important;width:100%}
html.ns-sig main.hs-m :is(.w29-card,.iq-members,.w29-pick):not(.sig.hs *){background:var(--card)!important;border:var(--lw) solid var(--ln)!important;border-radius:var(--r)!important;color:var(--ink)!important}
html.ns-sig main.hs-m :is(.w29-intent):not(.sig.hs *){border:var(--lw) solid var(--accL)!important;border-radius:var(--r)!important;background:var(--accS)!important}
html.ns-sig main.hs-m :is(.w29-pick-h,.w31-foot h4):not(.sig.hs *){color:var(--acc)!important;font-family:var(--fb)!important}
/* the finish-matrix bars: solid cobalt, no gradient */
html.ns-sig main.hs-m u:not(.sig.hs *),html.ns-sig main.hs-m :is(u .l,u .r):not(.sig.hs *){background-image:none!important}
html.ns-sig main.hs-m u[style*="height"]:not(.sig.hs *){background-color:var(--acc)!important}
html.ns-sig main.hs-m,html.ns-sig main.gp-main:has(> .sig.hs-bbh){--ch-black:var(--card);--ch-coal:var(--card);--ch-coal-2:var(--bg2);--i-inset:var(--card)}
html.ns-sig main.hs-m,html.ns-sig main.gp-main:has(> .sig.hs-bbh){--gp-ground:var(--bg);--gp-surface:var(--card);--gp-surface-2:var(--bg2);--gp-line:var(--ln)}

/* ---------------- HS_V1_A r3 (Pixel LOOK_V1_BATCH2 r2 10-30) ---------------- */
/* MUST 2: an est. tag on every chance in the old boards (shared _matrix.html; the pills' aria-label already says 'est.'):
   Make playoffs / Win region / Win state pills, the team row's 'Most likely #1 (97%)', the tap panel's place grid */
html.ns-sig main.hs-m .mx-pill:not(.sig.hs *)::before,html.ns-sig main.hs-m .mx-usual:not(.sig.hs *)::after,
html.ns-sig main.hs-m .ice-pb-x>p.ice-note:not(.mx-proj-line):not(.sig.hs *)::after{content:"est.";display:inline-block;font:600 10px/1.4 var(--fb)!important;color:var(--acc)!important;box-shadow:inset 0 0 0 var(--lw) currentColor;border-radius:4px;padding:0 4px;margin:0 5px 0 0;vertical-align:1px;letter-spacing:0;text-transform:none}
html.ns-sig main.hs-m .mx-usual:not(.sig.hs *)::after,html.ns-sig main.hs-m .ice-pb-x>p.ice-note:not(.mx-proj-line):not(.sig.hs *)::after{margin:0 0 0 6px}
html.ns-sig main.hs-m .mx-pill:not(.sig.hs *){white-space:nowrap}
/* MUST 4: Teams list rows: a long co-op name wraps beside its W-L, never under it */
html.ns-sig main.hs-m a.tm-row:not(.sig.hs *){display:flex!important;align-items:baseline;justify-content:space-between;gap:12px}
html.ns-sig main.hs-m a.tm-row>span:not(.sig.hs *){min-width:0;flex:1 1 auto;white-space:normal!important;overflow-wrap:break-word}
html.ns-sig main.hs-m a.tm-row>small:not(.sig.hs *){flex:none;white-space:nowrap;font-family:var(--fn)!important}
/* SHOULD: Plus CTA ('Start 7 free days') framed coral + dot; 'no score yet' = outline tag (not a violet fill) */
html.ns-sig main.hs-m a.iq-btn:not(.sig.hs *){display:inline-flex!important;align-items:center;gap:8px;font:600 14px/1.15 var(--fb)!important;padding:9px 16px!important;border:0!important;border-radius:var(--r)!important;background:var(--card)!important;color:var(--ink)!important;box-shadow:inset 0 0 0 2px var(--coral)!important;text-decoration:none!important}
html.ns-sig main.hs-m a.iq-btn:not(.sig.hs *)::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--coral);flex:none}
html.ns-sig main.hs-m .gmeta .st-wait:not(.sig.hs *),html.ns-sig main.hs-m .st-nos .st-wait:not(.sig.hs *){background:transparent!important;color:var(--ww)!important;box-shadow:inset 0 0 0 var(--lw) currentColor!important;border-radius:6px!important;padding:1px 6px!important;font:600 11px/1.3 var(--fb)!important}
/* r6 (Pixel real set): Teams co-op names break only after '/' (template adds <wbr>), never inside a school's name */
html.ns-sig main.hs-m a.tm-row>span:not(.sig.hs *){overflow-wrap:normal!important;word-break:normal!important}
html.ns-sig main.hs-m a.tm-row .hs-nb{white-space:nowrap}

/* ---------------- HS_V1_B (Pixel V1 live pass 10-31 SHOULDs) ---------------- */
/* basketball hub: region names wrap on phones, never '…' (basketball opens Nov 27) */
.sig.hs a.hs-reg .nm{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;min-width:0;line-height:1.25}
/* class / week chips wrap onto a second row on phones instead of scrolling sideways */
@container (max-width:600px){.sig.hs .hs-chips{flex-wrap:wrap!important;overflow-x:visible!important;margin-inline:0!important;padding-inline:0!important}.sig.hs .hs-chips a,.sig.hs .hs-chips button{flex:0 0 auto}}
/* HS_PO_A (Brett walkthrough 10-31): the playoff road. Bracket rows (/playoffs 'Brackets set', /bracket), team page road box, recap page.
   Finished games: winner first and bold, final score, 'Final', 'Recap'; the winner's next game on its own line. What-if shaded rows = Signal tint. */
html.ns-sig main.hs-m .po-rd{margin:10px 0 2px;font:600 12px/1.3 var(--fb);color:var(--dim)}
html.ns-sig main.hs-m .po-rd:first-of-type{margin-top:2px}
html.ns-sig main.hs-m .po-r{padding:5px 0;line-height:1.45;border-top:1px solid var(--ln)}
html.ns-sig main.hs-m .po-rd+.po-r{border-top:0}
html.ns-sig main.hs-m .po-w,html.ns-sig main.hs-m .po-w a{font-weight:700;color:var(--ink)}
html.ns-sig main.hs-m .po-l,html.ns-sig main.hs-m .po-l a{color:var(--ink2)}
html.ns-sig main.hs-m .po-sc{font-family:var(--fn);font-weight:700;white-space:nowrap;margin:0 2px}
html.ns-sig main.hs-m .po-fl{display:inline-flex;align-items:center;font:600 11.5px/1.2 var(--fb);padding:2px 7px;border-radius:6px;box-shadow:inset 0 0 0 var(--lw) var(--ink);color:var(--ink);vertical-align:middle}
html.ns-sig main.hs-m .po-nx,html.ns-sig main.hs-m .po-when{display:block;font-size:13px;color:var(--ink2);margin-top:2px}
html.ns-sig main.hs-m .po-nx b{color:var(--ink);font-weight:600}
html.ns-sig main.hs-m .po-sf{margin-top:0}
.sig.hs .hs-po .hs-wch{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sig.hs .hs-pol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.sig.hs .hs-pol li{display:grid;gap:2px;padding:8px 0;border-top:1px solid var(--ln)}
.sig.hs .hs-pol li:first-child{border-top:0;padding-top:0}
.sig.hs .hs-pol .k{font-size:12px;font-weight:600;color:var(--dim)}
.sig.hs .hs-pol .v{color:var(--ink)}.sig.hs .hs-pol .v a{color:var(--ink);text-decoration:none}.sig.hs .hs-pol .v a.po-rc{color:var(--acc);font-weight:600}
.sig.hs .hs-pol .po-res{font-family:var(--fn)}.sig.hs .hs-pol .po-res.w{color:var(--good)}.sig.hs .hs-pol .po-res.l{color:var(--outc)}
.sig.hs .hs-pol .po-rc{font-size:13px}
.sig.hs .hs-pol li.nx .v{font-weight:600}
.sig.hs .hs-rcs{display:grid;gap:6px}
.sig.hs .hs-rcs>span{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font:600 18px/1.25 var(--fh)}
.sig.hs .hs-rcs>span b{font-family:var(--fn);font-size:24px}.sig.hs .hs-rcs .nm{min-width:0}.sig.hs .hs-rcs .w .nm a{color:var(--ink)}.sig.hs .hs-rcs .fbr-s{font-family:var(--fn);font-size:.8em;color:var(--dim)}
.sig.hs .hs-rcs .l{color:var(--ink2)}.sig.hs .hs-rcs .l a{color:var(--ink2)}
.sig.hs .hs-rcm{display:block;margin:18px 0 8px}
.sig.hs .hs-rcl{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:10px}
html.ns-sig main.hs-m table.std tr.q-in,html.ns-sig main.hs-m .q-in{background:var(--accS)}
html.ns-sig main.hs-m table.std td{border-bottom-color:var(--ln)}
/* HS_PO_A r2 (Pixel S2): Recap / Preview = plain links with an arrow, not framed buttons */
html.ns-sig main.hs-m a.po-lk{display:inline;margin-left:6px;font:600 13px/1.4 var(--fb);color:var(--acc);text-decoration:none;white-space:nowrap}
html.ns-sig main.hs-m a.po-lk:hover{text-decoration:underline}
html.ns-sig main.hs-m .po-open{color:var(--ink2)}
