*{box-sizing:border-box}
body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Helvetica,Arial,sans-serif;background:#fafafa;color:#111827}
a{color:#0b57d0;text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:16px}
.header{background:#fff;border-bottom:1px solid #e5e7eb}
.header .bar{display:flex;align-items:center;gap:12px;padding:12px 16px}
.brand{font-weight:600}
.card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:16px;margin:12px 0}
.search{display:flex;gap:8px}
.search input{flex:1;border:1px solid #e5e7eb;border-radius:12px;padding:8px 12px;font-size:13px}
.search button{border:0;background:#111827;color:#fff;border-radius:12px;padding:8px 12px;font-size:13px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:12px}
.team-card{display:flex;gap:12px;border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:12px;align-items:center}
.team-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.05)}
.logo{height:48px;width:48px;border-radius:12px;background:#e5e7eb;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.logo.big{height:64px;width:64px}
.meta .name{font-weight:600;font-size:15px}
.meta .sub{font-size:12px;color:#6b7280}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:13px;table-layout:auto}
th,td{padding:6px;border-bottom:1px solid #f0f0f0;text-align:left;vertical-align:middle;line-height:1.25}
th{position:sticky;top:0;background:#fff;z-index:1}
tbody tr:nth-child(even){background:#f9fafc}
tbody tr.total-row{font-weight:700}
tr.mini-row td{opacity:0.85}

/* Year-by-Year */
.yby-table{font-size:12.5px}
.yby-table th.classcol, .yby-table td.classcol{text-align:center;width:60px}
.yby-table th.wcol, .yby-table td.wcol,
.yby-table th.lcol, .yby-table td.lcol,
.yby-table th.tcol, .yby-table td.tcol{width:26px;text-align:center;padding-left:4px;padding-right:4px}
.yby-table th.pfcol, .yby-table td.pfcol,
.yby-table th.pacol, .yby-table td.pacol,
.yby-table th.diffcol, .yby-table td.diffcol{text-align:right}
.yby-table th.diffcol, .yby-table td.diffcol{padding-right:14px}
.yby-table th.coachcol, .yby-table td.coachcol{white-space:nowrap;padding-left:14px}

/* Coach table */
.coach-table .yearscol{width:120px}
.coach-table th.seasonscol, .coach-table td.seasonscol{width:90px;text-align:center;padding-left:12px;padding-right:18px}
.coach-table th.wcol, .coach-table td.wcol,
.coach-table th.lcol, .coach-table td.lcol,
.coach-table th.tcol, .coach-table td.tcol{width:26px;text-align:center;padding-left:3px;padding-right:3px}
.coach-table td.tcol, .coach-table th.tcol{padding-right:2px}
.coach-table td.pctcol, .coach-table th.pctcol{text-align:right;padding-left:8px;width:70px}

/* Opponent table */
.opponent-table td.tcol, .opponent-table th.tcol{padding-right:6px}
.opponent-table td.pctcol, .opponent-table th.pctcol{text-align:right;padding-left:0;width:72px}
.opponent-table td.totcol, .opponent-table th.totcol{width:84px;text-align:center}
.opponent-table td.lastcol, .opponent-table th.lastcol{width:100px;text-align:center}
.opponent-table td.streakcol, .opponent-table th.streakcol{width:140px;text-align:center}

/* Season results */
th.datecol, td.datecol{white-space:nowrap;width:98px;padding-right:18px}
th.opponentcol, td.opponentcol{width:34%;padding-left:6px}
th.pfcol, td.pfcol, th.pacol, td.pacol{text-align:right}
td.pacol, th.pacol{padding-right:6px}
th.resultcol, td.resultcol{text-align:center;width:14%}
th.reccol, td.reccol{width:12%;text-align:center}
th.notescol, td.notescol{width:24%;white-space:nowrap}
.label-row .labelcell{font-weight:600;background:#f3f4f6;border-radius:6px;padding:6px 8px}

/* Records table */
.records-table td.rec-label{width:260px;white-space:nowrap}
.records-table td.rec-value{width:200px;text-align:right;padding-right:22px}
.records-table td.rec-detail{min-width:380px;text-align:center}
.records-table td.rec-detail.year-only{text-align:center}

.season-nav{font-size:12px;margin-top:4px}
.season-nav a{color:#0b57d0;text-decoration:none}
.season-nav a:hover{text-decoration:underline}

h1{font-size:21px;margin:0 0 8px}
h2{font-size:17px;margin:0 0 8px}
.header .ad{margin-left:auto}
.backlink{margin:16px 0}
.team-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px}
.team-hero{display:grid;grid-template-columns:1fr 240px;gap:16px;align-items:center}
.hero-left{display:flex;gap:12px;align-items:center}
.hero-photo img{width:100%;height:140px;object-fit:cover;border:1px solid #e5e7eb;border-radius:12px;background:#f3f4f6}
.sidebar .ad-slot{position:sticky;top:12px}
.ad-slot{border:1px dashed #d1d5db;border-radius:12px;background:#f9fafb;color:#6b7280;display:flex;align-items:center;justify-content:center;height:96px;margin:12px 0}
.ad-slot.h64{height:256px}
.flex-title{display:flex;gap:12px;align-items:center}
.notes-box{min-height:72px;border:1px dashed #d1d5db;border-radius:10px;padding:10px;background:#f9fafb;white-space:pre-wrap}

@media (max-width: 700px) {
  .team-layout { grid-template-columns: 1fr; }
  .hero-photo img { height: 180px; }
}


/* --- TUNE: Opponent Series W/L/T to match YBY spacing --- */
.opponent-table th.wcol, .opponent-table td.wcol,
.opponent-table th.lcol, .opponent-table td.lcol,
.opponent-table th.tcol, .opponent-table td.tcol{
  width:26px;
  text-align:center;
  padding-left:3px;
  padding-right:3px;
}
/* subtle nudge: move W & L a touch right so T remains visually anchored */
.opponent-table td.wcol, .opponent-table th.wcol,
.opponent-table td.lcol, .opponent-table th.lcol{
  padding-left:6px;
}


/* --- TUNE: Opponent Series alignment & spacing --- */
/* Shift the whole numeric block (after Opponent) slightly right */
.opponent-table th.wcol, .opponent-table td.wcol{ padding-left:14px; }

/* Keep tight W/L/T widths like YBY */
.opponent-table th.wcol, .opponent-table td.wcol,
.opponent-table th.lcol, .opponent-table td.lcol,
.opponent-table th.tcol, .opponent-table td.tcol{
  width:26px;
  text-align:center;
  padding-left:3px;
  padding-right:3px;
}

/* Bring Pct. closer but still readable */
.opponent-table th.pctcol, .opponent-table td.pctcol{
  width:72px;
  text-align:right;
  padding-left:6px;
  padding-right:6px;
}

/* Reduce the visual gap between Total and Last */
.opponent-table th.totcol, .opponent-table td.totcol{
  width:76px;          /* slightly narrower */
  text-align:center;
  padding-right:6px;
}
.opponent-table th.lastcol, .opponent-table td.lastcol{
  width:92px;          /* slightly narrower */
  text-align:center;
  padding-left:6px;    /* tuck closer to Total */
}

/* Keep Streak aligned with compact spacing */
.opponent-table th.streakcol, .opponent-table td.streakcol{
  width:140px;
  text-align:center;
  padding-left:8px;
  padding-right:4px;
}


/* --- Team Records: left column should NOT be bold --- */
.records-table td.rec-label strong{font-weight:normal !important;}
.records-table td:first-child strong{font-weight:normal !important;}

/* Bold Opponent Series TOTAL row */
.series-table .total-row td{font-weight:700}

.section-subtle-note{font-size:0.85rem;color:#666;margin-top:4px;font-weight:400}

/* Notes styling: strictly smaller than results text */
.notes-block, .season-notes, #season-notes, .game-note, 
.notes-block * , .season-notes * , #season-notes * , .game-note * {
  font-family: ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Helvetica,Arial,sans-serif !important;
  font-size: 11px !important;   /* visibly smaller than results (13px) */
  line-height: 1.35 !important;
}
.notes-block p, .season-notes p, #season-notes p, .game-note p {
  margin: 0.5em 0;
}
/* smaller than results (13px) */
  line-height: 1.35 !important;
}
/* tidy paragraph spacing within notes */
.notes-block p, .season-notes p, #season-notes p, .game-note p {
  margin: 0.5em 0;
}

/* Notes typography: smaller than results (target actual container) */
.notes-box, .notes-box * {
  font-size: 12.5px;           /* results are 13px */
  line-height: 1.35;
  font-family: ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Helvetica,Arial,sans-serif;
}


/* Notes bullets */
.notes-box{white-space:normal; line-height:1.35;}
.notes-box .note-item{display:flex; align-items:flex-start; gap:5px; margin:4px 0;}
.notes-box .note-item .dot{
  flex:0 0 auto;
  width:5px; height:5px;
  border-radius:50%;
  background:#222;
  margin-top:5px;
}
.notes-box .note-item .note-text{display:inline-block;}

/* Uniform Notes bullets across site */
.notes-box{white-space:normal; line-height:1.4;}
.notes-box .note-item{display:flex; align-items:flex-start; gap:5px; margin:4px 0;}
.notes-box .note-item .dot{
  flex:0 0 auto;
  width:5px; height:5px;
  border-radius:50%;
  background:#222;
  margin-top:5px;
}
.notes-box .note-item .note-text{flex:1 1 auto;}

/* Muted note for co-champions footnote (match Opponent Series 'records since' tone) */
.muted-note{ color:#6b7280; font-size:0.8em; margin-top:6px; }


/* Force no-wrap for League column on desktop (higher specificity) */
@media (min-width: 900px){
  #year-by-year .team-yby tbody td:nth-child(2),
  #year-by-year .team-yby thead th:nth-child(2){
    white-space: nowrap !important;
  }
}



/* Prevent wrapping in League column on desktop, including nested spans */
@media (min-width: 900px){
  #year-by-year .team-yby tbody td:nth-child(2),
  #year-by-year .team-yby tbody td:nth-child(2) *,
  #year-by-year .team-yby thead th:nth-child(2){
    white-space: nowrap !important;
  }
}



/* Prevent wrapping in League column on desktop, including nested spans */
@media (min-width: 900px){
  #year-by-year .team-yby tbody td:nth-child(2),
  #year-by-year .team-yby tbody td:nth-child(2) *,
  #year-by-year .team-yby thead th:nth-child(2){
    white-space: nowrap !important;
  }
}



/* Desktop-only compression for League column to avoid wrapping */
@media (min-width: 900px){
  #year-by-year .team-yby td:nth-child(2),
  #year-by-year .team-yby th:nth-child(2){
    padding-left: 6px !important;
    padding-right: 6px !important;
    font-size: 0.95em !important;
  }
}



/* === UI v7 (Palette B) global === */
:root{
  --ink:#0F172A; --muted:#6B7280; --line:#E6E8EB; --accent:#1D4ED8; --zebra:#FAFBFC;
  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
}
*{font-family:var(--font)}
.wrap{max-width:1140px;margin:0 auto;padding:16px}
.global-header{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);z-index:40}
.global-header .row{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:12px 16px}
.brand{font-weight:700;font-size:22px;letter-spacing:.2px;color:var(--ink)}
.brand small{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.navlinks a{margin-left:16px;color:var(--muted);font-weight:600;text-decoration:none}
.searchbar{display:flex;gap:8px;align-items:center;justify-content:center;flex:1}
.searchbar input{flex:1;border:1px solid var(--line);border-radius:999px;padding:10px 14px;background:#fff}
.searchbar button{border:0;background:var(--accent);color:#fff;border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:8px;cursor:pointer}

.card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 0 rgba(2,6,23,.04);padding:12px;margin:12px 0}
.table-wrap{max-height:560px;overflow:auto}
.yby-table, .coach-table, .opponent-table, .records-table, .season table{width:100%;border-collapse:separate;border-spacing:0}
.yby-table thead th, .coach-table thead th, .opponent-table thead th, .season table thead th{background:#fff;position:sticky;top:0;border-bottom:1px solid var(--line);font-weight:800;font-size:13px;padding:8px 6px;text-align:left}
.yby-table td, .coach-table td, .opponent-table td, .records-table td, .season table td{border-bottom:1px solid var(--line);padding:8px 6px;font-size:13px}
.yby-table tbody tr:nth-child(even), .coach-table tbody tr:nth-child(even), .opponent-table tbody tr:nth-child(even), .season table tbody tr:nth-child(even){background:var(--zebra)}
/* TOTAL emphasis */
.yby-table tfoot tr td, .coach-table tfoot tr td, .opponent-table tfoot tr td, .season table tfoot tr td, .yby-table .total-row td, .coach-table .total-row td, .opponent-table .total-row td{font-weight:800;border-top:2px solid var(--ink)}
/* Alignment helpers */
th.center, td.center{text-align:center}
th.right, td.right{text-align:right}
th.left, td.left{text-align:left}
/* Ads */
.ad{min-height:250px;margin-bottom:16px;border:1px dashed var(--line);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#6B7280;background:#fff}
/* Footer */
footer{padding:8px 16px;border-top:1px solid var(--line)}
.site-copy{font-size:12px;color:#6B7280;display:block}


/* Home: teams grid */
.teams-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media (min-width:900px){.teams-grid{grid-template-columns:repeat(2,1fr)}}
.team-card{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;text-decoration:none}
.team-card .name{font-weight:500;color:#0B58D0}
.team-card .sub{font-size:12px;color:#6B7280}
.btn{display:inline-block;border:1px solid var(--line);border-radius:10px;padding:6px 10px;text-decoration:none;color:#111}

/* Teams grid + scroll (show ~8 items) */
.teams-scroll{max-height: 480px; overflow: auto; padding-right: 6px;}
.teams-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.team-card{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;text-decoration:none}
.team-card .name{font-weight:500;color:#0B58D0}
.team-card .sub{font-size:12px;color:#6B7280}

/* === Single-column team layout === */
.team-hero .hero-photo{display:none !important;}
/* Show fewer rows by default; allow scroll */
.card .table-wrap{max-height:360px; overflow:auto;}
/* TOTAL row lighter; remove top rule */
.yby-table .total-row td,.coach-table .total-row td,.opponent-table .total-row td,.season table .total-row td{border-top:none;font-weight:600}
/* Quick-links look (lighter weight) */
.quick-links a{font-weight:600}
/* Expand icon (compact) */
.expand-icon{float:right;border:1px solid var(--line);background:#fff;border-radius:6px;padding:2px 6px;color:#6B7280;cursor:pointer}
/* Top Rivals: 3 dropdowns laid out left→right */
.rivals-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.rivals-row details{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px}
.rivals-row summary{cursor:pointer;font-weight:600}
.rival-grid{display:grid;grid-template-columns:repeat(5,auto);gap:8px;margin-top:6px;font-size:13px}
.rival-grid .k{color:#6B7280;font-size:12px}

/* Match table typography for rivals dropdowns */
.rivals-row details{font-size:14px; line-height:1.35; }
.rivals-row summary{font-weight:600; font-size:14px}
.rival-vert{display:grid; grid-template-columns: auto 1fr; gap:4px 10px}
.rival-vert .k{color:#374151; font-weight:600}
.rival-vert .v{color:#111827}

/* Season pages: no scrollbars */
body.season-full .table-wrap{max-height:none !important; overflow:visible !important;}

body:not(.season-full) .table-wrap{max-height:360px; overflow:auto;}

/* v7 scroll */
.table-wrap{position:relative; display:block;}
.table-wrap table{width:100%;}
/* Team pages show scroll; season pages disable via .season-full */
body:not(.season-full) .table-wrap{overflow:auto;}

/* v8 universal scroll */
.table-wrap{position:relative; display:block; max-height:420px; overflow:auto;}
.table-wrap table{width:100%;}

/* v17: normalize co-champions note styling */
.card .co-note{font-size:.8125rem; color:#6b7280; margin-top:.5rem;}
.small{font-size:.875rem;}
.muted{color:#6b7280;}

/* v17: contact form label polish */
.contact-form .field label{font-size:.875rem; font-weight:600; color:#111827; display:inline-block; margin-bottom:.25rem;}
.contact-form .field input,
.contact-form .field select,
.contact-form .field textarea{width:100%;}


/* === Shared hero card rules (team + polls) === */
.page-hero .card-body{padding:8px 14px}
.page-hero h1.page-title{margin:0 0 2px 0}
.page-hero p.meta{margin:0}
.page-hero p.meta.small{font-size:.75rem;line-height:1.1}
/* === end shared hero card rules === */


.page-hero p.meta + p.meta.small{margin-top:4px}

/* Robust block layout & spacing between Final Poll and nav */
.page-hero .card-body p.meta{display:block}
.page-hero .card-body p.meta.small{display:block}
.page-hero .card-body p.meta + p.meta.small{margin-top:10px !important}


/* Poll tables: tighten W/L/T column padding and keep even spacing */
.poll-card table.table th:nth-child(5),
.poll-card table.table th:nth-child(6),
.poll-card table.table th:nth-child(7),
.poll-card table.table td:nth-child(5),
.poll-card table.table td:nth-child(6),
.poll-card table.table td:nth-child(7){padding-left:6px;padding-right:6px}



/* Center "Total Pts." and "First Place" columns on poll tables */
.poll-card table.table th:nth-child(3),
.poll-card table.table td:nth-child(3),
.poll-card table.table th:nth-child(4),
.poll-card table.table td:nth-child(4){ text-align:center; }

/* Even horizontal spacing for W/L/T columns */
.poll-card table.table th:nth-child(5),
.poll-card table.table th:nth-child(6),
.poll-card table.table th:nth-child(7),
.poll-card table.table td:nth-child(5),
.poll-card table.table td:nth-child(6),
.poll-card table.table td:nth-child(7){ padding-left:10px; padding-right:10px; }



/* WLT center (scoped to polls; keeps merged 'Others' left-aligned) */
.polls table thead th:nth-last-child(1),
.polls table thead th:nth-last-child(2),
.polls table thead th:nth-last-child(3),
.polls table tbody tr > td:not([colspan]):nth-last-child(1),
.polls table tbody tr > td:not([colspan]):nth-last-child(2),
.polls table tbody tr > td:not([colspan]):nth-last-child(3) {
  text-align: center;
}

/* Merged "Others" rows remain left-aligned */
.polls table tbody td[colspan] {
  text-align: left;
}


/* === Poll tables: consistent columns & no desktop scroll === */
.polls .table { table-layout: fixed; width: 100%; }
.polls .table th, .polls .table td { white-space: nowrap; }
.polls .table th:nth-child(1), .polls .table td:nth-child(1) { width: 7%; }  /* Rank */
.polls .table th:nth-child(3), .polls .table td:nth-child(3) { width: 12%; } /* Total Pts. */
.polls .table th:nth-child(4), .polls .table td:nth-child(4) { width: 12%; } /* First Place */
.polls .table th:nth-child(5), .polls .table td:nth-child(5) { width: 6%; }  /* W */
.polls .table th:nth-child(6), .polls .table td:nth-child(6) { width: 6%; }  /* L */
.polls .table th:nth-child(7), .polls .table td:nth-child(7) { width: 6%; }  /* T */
.polls .table th:nth-child(2), .polls .table td:nth-child(2) { width: auto; overflow: hidden; text-overflow: ellipsis; }
.polls .table td.num, .polls .table th.num { text-align: center; }
.polls .table thead th { overflow: hidden; text-overflow: ellipsis; }
@media (min-width: 1024px) { .polls .table-wrap { overflow-x: visible; } }
@media (max-width: 1023.98px) { .polls .table-wrap { overflow-x: auto; } }



/* === Poll tables: refined to avoid horizontal scroll & tighten spacing === */
.polls .table { table-layout: fixed; width: 100%; border-collapse: collapse; }
.polls .table th, .polls .table td { padding: 10px 12px; } /* slightly tighter */
.polls .table th:nth-child(1), .polls .table td:nth-child(1) { width: 6%; }   /* Rank */
.polls .table th:nth-child(3), .polls .table td:nth-child(3) { width: 10%; }  /* Total Pts. */
.polls .table th:nth-child(4), .polls .table td:nth-child(4) { width: 10%; }  /* First Place */
.polls .table th:nth-child(5), .polls .table td:nth-child(5) { width: 6%; }   /* W */
.polls .table th:nth-child(6), .polls .table td:nth-child(6) { width: 6%; }   /* L */
.polls .table th:nth-child(7), .polls .table td:nth-child(7) { width: 6%; }   /* T */
/* Let Team flex and truncate if needed */
.polls .table th:nth-child(2), .polls .table td:nth-child(2) { width: auto; overflow: hidden; text-overflow: ellipsis; }
/* Only numeric columns are forced to no-wrap + centered */
.polls .table td.num, .polls .table th.num { white-space: nowrap; text-align: center; }
/* Other cells can wrap to prevent scroll */
.polls .table td, .polls .table th { white-space: normal; }
/* Allow long "Others:" lists to wrap cleanly */
.polls .table tr.others-row td { white-space: normal; word-break: break-word; }
/* Desktop: no horizontal scroll in poll tables */
@media (min-width: 1024px) {
  .polls .table-wrap { overflow-x: hidden; }
}
/* Keep small-screen horizontal scroll if needed */
@media (max-width: 1023.98px) {
  .polls .table-wrap { overflow-x: auto; }
}

/* Poll tables: keep key headers on one line to preserve column spacing */
@media (min-width: 1024px){
  .polls .table thead th:nth-child(3), /* Total Pts. */
  .polls .table thead th:nth-child(4)  /* First Place */
  { white-space: nowrap; }
}

/* === Poll tables: fix Rank header truncation + remove desktop scroll === */
.polls .table { table-layout: fixed; width: 100%; border-collapse: collapse; }
.polls .table th, .polls .table td { padding: 8px 10px; white-space: normal; } /* allow header wrap */
/* Column widths (sum <= 100% so no scroll) */
.polls .table th:nth-child(1), .polls .table td:nth-child(1) { width: 8%; }   /* Rank (wider so 'Rank' shows) */
.polls .table th:nth-child(3), .polls .table td:nth-child(3) { width: 9%; }   /* Total Pts. */
.polls .table th:nth-child(4), .polls .table td:nth-child(4) { width: 9%; }   /* First Place */
.polls .table th:nth-child(5), .polls .table td:nth-child(5) { width: 6%; }   /* W */
.polls .table th:nth-child(6), .polls .table td:nth-child(6) { width: 6%; }   /* L */
.polls .table th:nth-child(7), .polls .table td:nth-child(7) { width: 6%; }   /* T */
.polls .table th:nth-child(2), .polls .table td:nth-child(2) { width: auto; overflow: hidden; text-overflow: ellipsis; }
/* Numeric cells stay tight & centered, no wrap */
.polls .table td.num, .polls .table th.num { white-space: nowrap; text-align: center; }
/* Remove previous ellipsis clamp on headers to let 'Rank' show fully */
.polls .table thead th { overflow: visible; text-overflow: clip; }
/* Index page table also should not scroll on desktop */
@media (min-width: 1024px) {
  .polls .table-wrap { overflow-x: hidden; }
}
@media (max-width: 1023.98px) {
  .polls .table-wrap { overflow-x: auto; }
}



/* === AP Index table: prevent horizontal scroll on desktop and align columns === */
.polls table { width: 100%; table-layout: fixed; }
.polls .index-card .table-wrap { overflow-x: hidden; } /* desktop default */
@media (max-width: 1023.98px) { .polls .index-card .table-wrap { overflow-x: auto; } }

/* Column widths tuned for index structure: Year | Champion | Class | W | L | T | Coach */
.polls .index-card table.table thead th,
.polls .index-card table.table tbody td { white-space: nowrap; }

.polls .index-card table.table th:nth-child(1), .polls .index-card table.table td:nth-child(1) { width: 10%; text-align: left; }  /* Year */
.polls .index-card table.table th:nth-child(2), .polls .index-card table.table td:nth-child(2) { width: 34%; }                 /* Champion */
.polls .index-card table.table th:nth-child(3), .polls .index-card table.table td:nth-child(3) { width: 10%; text-align: center;}/* Class */
.polls .index-card table.table th:nth-child(4), .polls .index-card table.table td:nth-child(4) { width: 6%;  text-align: center;}/* W */
.polls .index-card table.table th:nth-child(5), .polls .index-card table.table td:nth-child(5) { width: 6%;  text-align: center;}/* L */
.polls .index-card table.table th:nth-child(6), .polls .index-card table.table td:nth-child(6) { width: 6%;  text-align: center;}/* T */
.polls .index-card table.table th:nth-child(7), .polls .index-card table.table td:nth-child(7) { width: 28%; text-align: left; } /* Coach: left-aligned and roomy */




/* keep poll header meta spacing tight */
.page-hero .meta.small a + .sep-dot { margin-left:0.5rem; }
.sep-dot + a { margin-left:0.5rem; }


.page-hero .meta.small { display:inline-block; }
.page-hero .meta.small a { margin:0; padding:0; }


/* ---- Poll buttons on home (two-column, icon + label) ---- */
.poll-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}
.poll-button{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #e5e7eb;border-radius:16px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04);font-weight:600;text-decoration:none}
.poll-button:hover{border-color:#d1d5db;background:#fafafa}
.poll-label{font-size:16px;line-height:1.2}
@media (max-width:768px){.poll-grid{grid-template-columns:1fr}}

.about-text{ font-size:0.92rem; }

.shadow-box.about-right{ float:right; width:34%; min-width:260px; padding: 0.85rem 1rem; border-radius:12px; box-shadow:0 2px 10px rgba(0,0,0,0.06); background:#f3f4f6;  float: right; width: 34%; min-width: 260px; margin: 0.25rem 0 1rem 1.25rem; background:#f3f4f6;  background:#f3f4f6; font-size:0.83rem; }

.shadow-box .shadow-title{ font-weight:700; font-size:calc(0.83rem + 0.042rem); margin-bottom:0.35rem; }

.about-photo.about-right{ float:right; max-width:38%; margin:0.25rem 0 1rem 1.25rem; }
.about-photo.about-right img{ width:100%; height:auto; display:block; border-radius:8px; box-shadow:0 2px 12px rgba(0,0,0,0.08); }
@media (max-width: 900px){
  .about-photo.about-right{ float:none; max-width:100%; margin:0.5rem 0 1rem 0; }
}

/* About cleanup: remove accidental bullets & spacing artifacts */
.about-text ul, .about-text ol { list-style: none; margin: 0; padding-left: 0; }
.about-text li:empty { display: none; }
.about-text li::marker { content: ''; }
.about-text > :last-child { margin-bottom: 0; }

@media (max-width: 900px){
  .shadow-box.about-right{ float:none; width:100%; min-width:0; margin:0.5rem 0 1rem 0; }
}

/* Poll Kings list inside shadow box */
.poll-kings-list{ margin-top:0.6rem; }
.poll-kings-list .pk-row{ line-height:1.35; margin:0.15rem 0; }
.poll-kings-list .pk-count{ font-weight:700; }
/* Ensure comfy inner padding */
.shadow-box.about-right{ padding:0.9rem 1rem; }

/* Smaller Hewins portrait (60% of standard about-photo width) */
.about-photo.about-right.hewins{ max-width:23%; }
@media (max-width: 900px){
  .about-photo.about-right.hewins{ max-width:56%; } /* keep sensible on mobile */
}

.about-photo.about-right.warling{ max-width:30%; }
@media (max-width: 900px){
  .about-photo.about-right.warling{ max-width:100%; }
}


/* Auto-dash for empty Division cell in Championships card */
#championships table tbody tr:nth-child(1) td:nth-child(2):empty::before { content: "—"; }



/* === Team page table header weight normalization === */
#seasons thead th,
#coaches thead th,
#opponent-series thead th {
  font-weight: 600;
}

#seasons thead th strong,
#seasons thead th b,
#coaches thead th strong,
#coaches thead th b,
#opponent-series thead th strong,
#opponent-series thead th b {
  font-weight: inherit;
}
/* === end header weight normalization === */



/* === Extend header weight normalization to more cards === */
/* Top Rivals / Opponent cards (table headers) */
#top-rivals thead th {
  font-weight: 600;
}
#top-rivals thead th strong,
#top-rivals thead th b {
  font-weight: inherit;
}

/* Championships row titles (left labels like Division:, Conference:, State:) */
#championships tbody td:first-child strong,
#championships tbody td:first-child b {
  font-weight: 600; /* match header weight for consistency */
}
/* In case any nested strong/b inside the label get stacked */
#championships tbody td:first-child strong strong,
#championships tbody td:first-child b b {
  font-weight: inherit;
}
/* === end extensions === */



/* === Stronger override for Coach Records header weight === */
#coaches table thead th { 
  font-weight: 600 !important;     /* ensure override of any framework defaults */
}
#coaches table thead th strong,
#coaches table thead th b {
  font-weight: inherit !important; /* neutralize nested bolds */
}
/* In case header labels are wrapped in spans/divs with bold weight */
#coaches table thead th * {
  font-weight: inherit !important;
}
/* === end stronger override === */



/* === Corrected selector for Coach Records card (id="coach-records") === */
#coach-records thead th { 
  font-weight: 600 !important;
}
#coach-records thead th strong,
#coach-records thead th b,
#coach-records thead th * {
  font-weight: inherit !important;
}
/* === end corrected selector === */



/* === Global column header weight normalization ===
   Ensure ALL table column headers across the site share the same visual weight.
   Using 600 keeps legibility without the 'extra bold' look.
*/
.card table thead th,
table.themed thead th,
table thead th {
  font-weight: 600 !important;
}
/* Neutralize nested bold tags inside headers */
.card table thead th strong,
.card table thead th b,
table.themed thead th strong,
table.themed thead th b,
table thead th strong,
table thead th b,
table thead th * {
  font-weight: inherit !important;
}
/* === end global normalization === */



/* === Normalize Championships row titles & Poll 'Others:' label === */

/* Championships left-side labels (Division:, Conference:, State:) */
#championships tbody td:first-child {
  font-weight: 600 !important;
}
#championships tbody td:first-child strong,
#championships tbody td:first-child b {
  font-weight: inherit !important;
}
#championships tbody td:first-child * {
  font-weight: inherit !important;
}

/* Poll 'Others:' label inside table bodies */
.poll-card tbody td > strong,
.poll-card tbody td > b {
  font-weight: 600 !important;
}

/* Fallback: if poll pages don’t include .poll-card, normalize any bold labels in table bodies */
table tbody td > strong,
table tbody td > b {
  font-weight: 600 !important;
}

/* === end normalization === */



/* === Standard right-rail ad slots (Google Ads friendly) === */
.ad-slot { width: 300px; margin: 0 auto; }
.ad-slot.mrec { min-height: 250px; }
.ad-slot.halfpage { min-height: 600px; }
/* Placeholder look when empty */
.ad-slot:empty::before { content: "Ad"; display: block; text-align: center; opacity: .5; line-height: 1.25rem; padding: 24px 0; }
/* Mobile: keep rail responsive but cap width to 300 */
@media (max-width: 900px) {
  .ad-slot { width: 100%; max-width: 300px; }
}



/* Season page TOTAL row weight — match sub-head bold (semi-bold) */
body[data-page="season"] tr.total-row td {
  font-weight: 600;
  border-top: none;
}

/* Season page: center-align PF and PA columns (including TOTAL row) */
body[data-page="season"] .pfcol,
body[data-page="season"] .pacol,
body[data-page="season"] th.pfcol,
body[data-page="season"] th.pacol {
  text-align: center;
}

/* === Ad Rail (site-wide, non-breaking grid applied to <main>) === */
main.page-grid {
  display: grid;
  grid-template-columns: 1fr 320px; /* content | rail */
  gap: 20px;
  align-items: start;
}
main.page-grid > .ad-rail {
  grid-column: 2;
  position: sticky;
  top: 12px;
}
main.page-grid > :not(.ad-rail) {
  grid-column: 1;
}
@media (max-width: 980px) {
  main.page-grid { grid-template-columns: 1fr; }
  main.page-grid > .ad-rail { grid-column: 1; order: 2; }
}

/* Make ad rail look like real units (no dashed placeholder) */
main.page-grid .ad-rail .ad-slot {
  border: 0;
  background: transparent;
  margin-bottom: 16px;
}

/* Reserve vertical space to prevent layout shift */
#ad-sidebar-1 { min-height: 250px; } /* 300x250 */
#ad-sidebar-2 { min-height: 600px; } /* 300x600 */

/* De-dupe: prefer the injected ad rail, hide any built-in sidebar rail when page-grid is active */
main.page-grid .team-layout > aside.sidebar { display: none !important; } /* team/season */
main.page-grid .grid > aside { display: none !important; }                 /* index grid's aside */

/* Kill phantom second column from the app's own grid on Index & Season */
body[data-page="index"] main .grid,
body[data-page="season"] main .grid {
  grid-template-columns: 1fr !important;
}

/* Default: single column content */
main.wrap.page-grid {
  display: grid;
  grid-template-columns: 1fr !important;
  gap: 20px;
  align-items: start;
}

/* When an actual rail is present, switch to 2 cols */
main.wrap.page-grid.has-rail {
  grid-template-columns: 1fr 320px !important;
}

/* Collapse inner Team/Season grids to a single column whenever the outer ad rail is active */
main.wrap.page-grid.has-rail .team-layout,
main.wrap.page-grid.has-rail .season-layout {
  grid-template-columns: 1fr !important;
}

/* If an ad rail exists, hide the legacy empty sidebar */
main.wrap.page-grid.has-rail > aside.sidebar {
  display: none !important;
}

/* === FINAL OVERRIDE: AP poll tables (align with 1960 & 1972) === */

/* 1) Use fixed layout with widths so there’s no desktop scroll */
.polls .table { table-layout: fixed; width: 100%; border-collapse: collapse; }
.polls .table th, .polls .table td { padding: 8px 10px; white-space: normal; } /* allow wrapping */

/* 2) Column widths (sum <= 100% to avoid scroll) */
.polls .table th:nth-child(1), .polls .table td:nth-child(1) { width: 8%; }  /* Rank */
.polls .table th:nth-child(3), .polls .table td:nth-child(3) { width: 9%; }  /* Total Pts. */
.polls .table th:nth-child(4), .polls .table td:nth-child(4) { width: 9%; }  /* First Place */
.polls .table th:nth-child(5), .polls .table td:nth-child(5) { width: 6%; }  /* W */
.polls .table th:nth-child(6), .polls .table td:nth-child(6) { width: 6%; }  /* L */
.polls .table th:nth-child(7), .polls .table td:nth-child(7) { width: 6%; }  /* T */
.polls .table th:nth-child(2), .polls .table td:nth-child(2) { width: auto; overflow: hidden; text-overflow: ellipsis; }

/* 3) Numeric cells tight & centered; “Others” stays left */
.polls .table td.num, .polls .table th.num { white-space: nowrap; text-align: center; }
.polls table thead th:nth-last-child(1),
.polls table thead th:nth-last-child(2),
.polls table thead th:nth-last-child(3),
.polls table tbody tr > td:not([colspan]):nth-last-child(1),
.polls table tbody tr > td:not([colspan]):nth-last-child(2),
.polls table tbody tr > td:not([colspan]):nth-last-child(3) { text-align: center; }
.polls table tbody td[colspan] { text-align: left; }

/* 4) Kill the “no-wrap on desktop” header rule from earlier blocks */
@media (min-width: 1024px){
  .polls .table thead th:nth-child(3),
  .polls .table thead th:nth-child(4) { white-space: normal !important; }
}

/* 5) Desktop should not horizontally scroll; mobile may */
@media (min-width: 1024px) { .polls .table-wrap { overflow-x: hidden !important; } }
@media (max-width: 1023.98px) { .polls .table-wrap { overflow-x: auto; } }

/* 6) Let header cells fully display text (prevents ‘Rank’ truncation) */
.polls .table thead th { overflow: visible !important; text-overflow: clip !important; }

