/* NFL Playoffs Hub: components. Bracket base styles come from the theme; these are additions and fallbacks. */
:root {
	--nph-night: #0E1B2E;
	--nph-red: #C8102E;
	--nph-steel: #5B6B80;
	--nph-ice: #E6ECF3;
	--nph-mist: #AFC0D6;
}

/* Bracket additions */
.nph-bracket .npc-team { position: relative; }
.nph-bracket .nph-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nph-bracket .npc-tbd .nph-name { white-space: normal; }
.nph-bracket .nph-score { font-weight: 700; font-variant-numeric: tabular-nums; margin-left: 0.5rem; }
.nph-bracket .nph-won .nph-name { font-weight: 700; }
.nph-bracket .nph-lost { color: var(--nph-steel); }
.nph-bracket .nph-lost .npc-seed { color: var(--nph-steel); }
.nph-bracket .nph-meta {
	font-size: 0.75rem;
	line-height: 1.3;
	color: var(--nph-steel);
	padding: 0.35rem 0.65rem 0.45rem;
	border-top: 1px solid var(--nph-ice);
}
.nph-bracket .nph-live { color: var(--nph-red); font-weight: 700; }
.nph-bracket .nph-projected { outline: 1px dashed rgba(255, 255, 255, 0.45); outline-offset: 2px; }
.nph-logo { width: 22px; height: 22px; vertical-align: -5px; margin-right: 0.4rem; }

.nph-note, .nph-updated {
	font-size: 0.875rem;
	color: var(--nph-steel);
	margin: 0.75rem 0 0;
}
.npc-hero .nph-note, .npc-hero .nph-updated { color: var(--nph-mist); }
.nph-empty { color: var(--nph-steel); }

/* Schedule and picture tables */
.nph-round-heading { margin: 1.75rem 0 0.5rem; }
.nph-table { background: #fff; }
.nph-picture-table tr.nph-in th, .nph-picture-table tr.nph-in td { background: #FBF3F4; }
.nph-picture-table tr.nph-in th { color: var(--nph-red); }
.nph-picture-table tr.nph-out td, .nph-picture-table tr.nph-out th { color: var(--nph-steel); }

/* Next game card */
.nph-next {
	background: #fff;
	border-left: 4px solid var(--nph-red);
	padding: 1rem 1.25rem;
	margin: 0 0 1.5rem;
}
.nph-next p { margin: 0; }
.nph-next-title { font-size: 0.875rem; color: var(--nph-steel); }
.nph-next-match { font-size: 1.25rem; font-weight: 700; color: var(--nph-night); margin: 0.25rem 0 !important; }
.nph-next-match .npc-seed { font-size: 0.9em; margin-right: 0.2rem; }
.nph-vs { font-weight: 400; color: var(--nph-steel); margin: 0 0.6rem; }
.nph-next-meta { font-size: 0.9375rem; }

/* Table fallbacks if the theme is not the NFL Playoffs child theme */
.nph-table th, .nph-table td { text-align: left; padding: 0.7rem 0.9rem; border-bottom: 1px solid var(--nph-ice); vertical-align: top; }
.nph-table thead th { background: var(--nph-night); color: #fff; border-bottom: 3px solid var(--nph-red); }
@media (max-width: 600px) {
	.nph-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.nph-table, .nph-table tbody, .nph-table tr, .nph-table th, .nph-table td { display: block; width: 100%; }
	.nph-table tr { padding: 0.75rem 1rem; border-bottom: 1px solid var(--nph-ice); border-left: 3px solid var(--nph-red); margin-bottom: 0.5rem; }
	.nph-table tbody th, .nph-table td { padding: 0; border: 0; }
	.nph-table td:nth-child(2) { font-weight: 600; margin: 0.15rem 0; }
}

/* ---------- v0.3: team colour dots ---------- */
.nph-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 0.45rem; vertical-align: 0; flex: none; box-shadow: 0 0 0 1px rgba(0,0,0,0.08); }

/* ---------- Table / Cards toggle ---------- */
.nph-tablebox { margin: 0 0 1rem; }
.nph-view-toggle { display: flex; justify-content: flex-end; gap: 0; margin: 0.75rem 0 0.5rem; }
.nph-view-toggle button { font: 600 0.8125rem/1 var(--npc-body, inherit); padding: 0.45rem 0.8rem; border: 1px solid var(--nph-ice); background: #fff; color: var(--nph-steel); cursor: pointer; }
.nph-view-toggle button:first-child { border-radius: 6px 0 0 6px; }
.nph-view-toggle button:last-child { border-radius: 0 6px 6px 0; border-left: 0; }
.nph-view-toggle button[aria-pressed="true"] { background: var(--nph-night); color: #fff; border-color: var(--nph-night); }
.nph-tablebox[data-view="table"] .npc-table-wrap { overflow-x: auto; }
.nph-tablebox[data-view="table"] .nph-table thead { position: static; width: auto; height: auto; overflow: visible; clip: auto; }
.nph-tablebox[data-view="table"] .nph-table, .nph-tablebox[data-view="table"] .nph-table tbody, .nph-tablebox[data-view="table"] .nph-table tr { display: table; width: 100%; }
.nph-tablebox[data-view="table"] .nph-table thead, .nph-tablebox[data-view="table"] .nph-table tbody { display: table-row-group; }
.nph-tablebox[data-view="table"] .nph-table tr { display: table-row; padding: 0; border-left: 0; margin: 0; }
.nph-tablebox[data-view="table"] .nph-table th, .nph-tablebox[data-view="table"] .nph-table td { display: table-cell; width: auto; padding: 0.7rem 0.9rem; border-bottom: 1px solid var(--nph-ice); white-space: nowrap; }
.nph-tablebox[data-view="cards"] .nph-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.nph-tablebox[data-view="cards"] .nph-table, .nph-tablebox[data-view="cards"] .nph-table tbody, .nph-tablebox[data-view="cards"] .nph-table tr, .nph-tablebox[data-view="cards"] .nph-table th, .nph-tablebox[data-view="cards"] .nph-table td { display: block; width: 100%; }
.nph-tablebox[data-view="cards"] .nph-table tbody { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 0.6rem; }
.nph-tablebox[data-view="cards"] .nph-table tr { padding: 0.8rem 1rem; border: 1px solid var(--nph-ice); border-left: 3px solid var(--nph-red); border-radius: 6px; margin: 0; background: #fff; }
.nph-tablebox[data-view="cards"] .nph-table tbody th, .nph-tablebox[data-view="cards"] .nph-table td { padding: 0; border: 0; white-space: normal; }
.nph-tablebox[data-view="cards"] .nph-table td:nth-child(2) { font-weight: 600; margin: 0.15rem 0; }
.nph-tablebox[data-view="cards"] .nph-table td:last-child { color: var(--nph-steel); }
.nph-tablebox[data-view="cards"] .nph-picture-table tbody th { display: inline-block; width: auto; color: var(--nph-red); font-weight: 800; margin-right: 0.4rem; }
.nph-tablebox[data-view="cards"] .nph-picture-table td:nth-child(2) { display: inline; }

/* ---------- Section pill bar ---------- */
.nph-sections { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.nph-sections a { display: inline-block; font-size: 0.8125rem; font-weight: 600; color: var(--nph-night); background: #fff; border: 1px solid var(--nph-ice); border-radius: 999px; padding: 0.35rem 0.8rem; text-decoration: none; }
.nph-sections a:hover, .nph-sections a.is-active { background: var(--nph-night); color: #fff; border-color: var(--nph-night); }
.nph-sections.is-fixed { position: fixed; top: 0; left: 0; right: 0; z-index: 50; margin: 0; padding: 0.5rem 1rem; background: rgba(242, 245, 249, 0.96); border-bottom: 1px solid var(--nph-ice); flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.nph-sections.is-fixed a { white-space: nowrap; flex: none; }
.nph-sections-spacer { display: none; }
.nph-sections-spacer.is-on { display: block; }

/* ---------- Share bar and love ---------- */
.nph-share { margin: 2rem 0 1rem; text-align: center; }
.nph-share-title { margin: 0 0 0.5rem; font-size: 0.875rem; font-weight: 600; color: var(--nph-steel); }
.nph-share-row { display: flex; justify-content: center; align-items: center; gap: 0.5rem; flex-wrap: nowrap; }
.nph-share-btn { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--nph-ice); background: #fff; color: var(--nph-night); display: inline-flex; align-items: center; justify-content: center; padding: 0; cursor: pointer; text-decoration: none; flex: none; }
.nph-share-btn svg { width: 18px; height: 18px; fill: currentColor; }
.nph-share-btn:hover, .nph-share-btn:focus-visible { background: var(--nph-night); color: #fff; border-color: var(--nph-night); }
.nph-share-btn.is-done { background: var(--nph-red); color: #fff; border-color: var(--nph-red); }
.nph-love { height: 38px; border-radius: 999px; border: 1px solid var(--nph-ice); background: #fff; color: var(--nph-night); display: inline-flex; align-items: center; gap: 0.4rem; padding: 0 0.9rem 0 0.7rem; cursor: pointer; font: 600 0.875rem/1 inherit; flex: none; }
.nph-love svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
.nph-love.is-loved svg, .nph-love:hover svg { fill: var(--nph-red); stroke: var(--nph-red); }
.nph-love.is-loved { border-color: var(--nph-red); color: var(--nph-red); }
.nph-love-count { font-variant-numeric: tabular-nums; }
@media (max-width: 480px) { .nph-love-label { display: none; } .nph-share-row { flex-wrap: wrap; } .nph-share-btn, .nph-love { width: 34px; height: 34px; } .nph-love { width: auto; padding: 0 0.6rem; } }

/* ---------- Ads ---------- */
.nph-ad { margin: 1.5rem auto; text-align: center; display: flex; flex-direction: column; align-items: center; }
.nph-ad-label { display: block; font-size: 0.6875rem; letter-spacing: 0.08em; color: var(--nph-steel); margin-bottom: 0.3rem; }
.nph-ad iframe { border: 0; display: block; margin: 0 auto; }

/* ---------- Dark mode and print ---------- */
@media (prefers-color-scheme: dark) {
	.nph-tablebox[data-view="cards"] .nph-table tr, .nph-share-btn, .nph-love, .nph-view-toggle button, .nph-sections a, .nph-next, .nph-table { background: #16273F; color: #E6ECF3; border-color: #2A3B55; }
	.nph-table th, .nph-table td { border-color: #2A3B55; }
	.nph-picture-table tr.nph-in th, .nph-picture-table tr.nph-in td { background: #1F2E48; }
	.nph-sections.is-fixed { background: rgba(14, 27, 46, 0.96); border-color: #2A3B55; }
	.nph-next-match { color: #fff; }
}
@media print {
	.nph-share, .nph-love, .nph-ad, .nph-view-toggle, .nph-sections { display: none !important; }
	.nph-bracket .npc-game { box-shadow: none; border: 1px solid #999; }
}

/* ---------- Game pages ---------- */
.nph-g-hero { padding-bottom: 2.5rem; }
.nph-g-kicker { margin: 0 0 0.5rem; font-size: 0.875rem; color: var(--nph-mist); }
.nph-g-kicker a { color: #fff; text-decoration: none; font-weight: 600; }
.nph-g-kicker span { margin: 0 0.4rem; }
.nph-g-hero h1 { font-size: clamp(2rem, 5vw, 3.5rem); margin: 0 0 1.25rem; }
.nph-g-match { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; background: #fff; border-radius: 10px; padding: 1rem 1.25rem; color: var(--nph-night); }
.nph-g-team { display: flex; align-items: center; gap: 0.9rem; border-left: 5px solid var(--team); padding-left: 0.9rem; }
.nph-g-home { flex-direction: row-reverse; border-left: 0; border-right: 5px solid var(--team); padding-left: 0; padding-right: 0.9rem; text-align: right; }
.nph-g-team img { width: 56px; height: 56px; object-fit: contain; }
.nph-g-dot { width: 20px; height: 20px; border-radius: 50%; background: var(--team); flex: none; }
.nph-g-name { display: flex; flex-direction: column; line-height: 1.2; }
.nph-g-name strong { font-family: var(--npc-display, inherit); font-size: 1.5rem; }
.nph-g-seed, .nph-g-rec { font-size: 0.8125rem; color: var(--nph-steel); }
.nph-g-score { font-family: var(--npc-display, inherit); font-size: 2.75rem; font-weight: 800; margin-left: auto; font-variant-numeric: tabular-nums; }
.nph-g-home .nph-g-score { margin-left: 0; margin-right: auto; }
.is-loser { opacity: 0.6; }
.nph-g-mid { text-align: center; display: flex; flex-direction: column; gap: 0.25rem; min-width: 7rem; }
.nph-g-vs { font-size: 0.8125rem; color: var(--nph-steel); font-weight: 600; }
.nph-g-status { font-size: 0.875rem; }
.nph-g-venue { margin: 1rem 0 0; color: var(--nph-mist); font-size: 0.9375rem; }
.nph-g-hero .nph-countdown { margin-top: 1rem; }
.nph-g-body { padding: 2rem 0 3rem; }
.nph-g-body h2 { margin-top: 2.25rem; }
.nph-g-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.nph-g-col h3 { margin: 0.5rem 0 0.5rem; font-size: 1.25rem; }
.nph-g-col ul { margin: 0; padding-left: 1.1rem; }
.nph-kv th { width: 9rem; }
.nph-linescore td, .nph-linescore th { text-align: center; }
.nph-linescore th:first-child, .nph-linescore td:first-child { text-align: left; }
.nph-badge { display: inline-block; font-size: 0.6875rem; font-weight: 700; color: #fff; background: var(--nph-red); border-radius: 3px; padding: 0.1rem 0.35rem; margin-left: 0.25rem; vertical-align: 1px; }
.nph-stats { display: flex; flex-direction: column; gap: 0.9rem; max-width: 46rem; }
.nph-stat-row { display: flex; justify-content: space-between; font-weight: 700; font-variant-numeric: tabular-nums; }
.nph-stat-label { font-weight: 400; color: var(--nph-steel); font-size: 0.875rem; }
.nph-stat-bar { display: flex; height: 8px; border-radius: 4px; overflow: hidden; background: var(--nph-ice); margin-top: 0.3rem; gap: 2px; }
.nph-stat-bar i { display: block; height: 100%; }
.nph-leaders { list-style: none; padding: 0; margin: 0; }
.nph-leaders li { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); overflow-wrap: anywhere; gap: 0.25rem 0.75rem; padding: 0.5rem 0; border-top: 1px solid var(--nph-ice); align-items: baseline; }
.nph-l-cat { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--nph-steel); }
.nph-leaders em { font-style: normal; color: var(--nph-steel); font-size: 0.875rem; }
.nph-l-val { grid-column: 2; font-size: 0.875rem; color: var(--nph-steel); }
.nph-box td, .nph-box th { text-align: right; white-space: nowrap; }
.nph-box th:first-child, .nph-box td:first-child, .nph-box tbody th { text-align: left; }
.nph-related { padding-left: 1.1rem; }
.nph-faq details { background: #fff; border: 1px solid var(--nph-ice); border-radius: 6px; padding: 0.6rem 1rem; margin-bottom: 0.5rem; }
.nph-faq summary { font-weight: 700; cursor: pointer; }
.nph-faq p { margin: 0.5rem 0 0; }
.nph-g-body .nph-tablebox { margin: 0; }
@media (max-width: 760px) {
	.nph-sections { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 4px; margin-left: -1.25rem; margin-right: -1.25rem; padding-left: 1.25rem; scrollbar-width: none; }
	.nph-sections::-webkit-scrollbar { display: none; }
	.nph-sections li { flex: none; }
	.nph-sections a { font-size: 0.75rem; padding: 0.3rem 0.65rem; white-space: nowrap; }
	.nph-strip .npc-wrap { gap: 0.5rem; }
	.nph-strip p { flex: 1; min-width: 0; font-size: 0.8125rem; }
	.nph-install { font-size: 0.6875rem; padding: 0.3rem 0.55rem; }
	.nph-g-match { grid-template-columns: 1fr; }
	.nph-g-home { flex-direction: row; border-right: 0; border-left: 5px solid var(--team); padding-left: 0.9rem; padding-right: 0; text-align: left; }
	.nph-g-home .nph-g-score { margin-left: auto; margin-right: 0; }
	.nph-g-mid { flex-direction: row; justify-content: center; gap: 0.75rem; }
	.nph-g-score { font-size: 2.25rem; }
}
@media (prefers-color-scheme: dark) {
	.nph-g-match, .nph-faq details { background: #16273F; color: #E6ECF3; }
	.nph-leaders li { border-color: #2A3B55; }
}

/* ---------- Team pages ---------- */
.nph-t-head { display: flex; align-items: center; gap: 1.25rem; margin: 0.5rem 0 1.25rem; }
.nph-t-head img { width: 88px; height: 88px; object-fit: contain; background: #fff; border-radius: 12px; padding: 6px; }
.nph-t-dot { width: 48px; height: 48px; background: var(--team); }
.nph-t-head h1 { font-size: clamp(2rem, 5vw, 3.5rem); margin: 0; color: #fff; }
.nph-t-sub { margin: 0.25rem 0 0; color: var(--nph-mist); }
.nph-t-sub span { display: inline-block; margin-left: 0.6rem; padding: 0.1rem 0.5rem; border: 1px solid rgba(255,255,255,0.3); border-radius: 999px; color: #fff; font-size: 0.8125rem; }
.nph-t-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.75rem; }
.nph-t-tile { background: #fff; border-radius: 8px; padding: 0.75rem 1rem; border-top: 4px solid var(--team); color: var(--nph-night); }
.nph-t-tile strong { display: block; font-family: var(--npc-display, inherit); font-size: 1.75rem; line-height: 1; }
.nph-t-tile span { font-size: 0.8125rem; color: var(--nph-steel); }
.nph-t-custom { margin: 1.25rem 0; }
.nph-table tr.nph-w td:nth-child(4), .nph-sbs tr.nph-w td:nth-child(3) { color: #1F6F4A; font-weight: 600; }
.nph-table tr.nph-l td:nth-child(4), .nph-sbs tr.nph-l td:nth-child(3) { color: var(--nph-red); font-weight: 600; }
.nph-grid-conf { margin: 1.5rem 0 0.5rem; }
.nph-teams-grid { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: 0.6rem; }
.nph-teams-grid li { background: #fff; border: 1px solid var(--nph-ice); border-left: 4px solid var(--team); border-radius: 6px; }
.nph-teams-grid a { display: grid; grid-template-columns: 40px 1fr; grid-template-rows: auto auto; column-gap: 0.7rem; align-items: center; padding: 0.6rem 0.8rem; text-decoration: none; color: var(--nph-night); }
.nph-teams-grid img, .nph-teams-grid .nph-g-dot { grid-row: 1 / span 2; width: 40px; height: 40px; object-fit: contain; }
.nph-tg-name { font-weight: 700; }
.nph-tg-meta { font-size: 0.8125rem; color: var(--nph-steel); }
.nph-teams-grid a:hover .nph-tg-name { color: var(--nph-red); }
@media (max-width: 700px) { .nph-t-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (prefers-color-scheme: dark) { .nph-teams-grid li, .nph-t-tile { background: #16273F; color: #E6ECF3; } .nph-teams-grid a { color: #E6ECF3; } }

/* ---------- History pages ---------- */
.nph-history .npc-hero-answer strong { color: #fff; }
.nph-hist-nav { display: flex; justify-content: space-between; gap: 1rem; margin: 2rem 0; padding: 1rem 0; border-top: 1px solid var(--nph-ice); border-bottom: 1px solid var(--nph-ice); font-weight: 700; }
.nph-hist-nav a { text-decoration: none; }
.nph-history .nph-g-col .npc-table td:last-child { white-space: nowrap; }

/* ---------- v0.8: status strip ---------- */
.nph-strip { background: #16273F; color: #E6ECF3; font-size: 0.875rem; border-bottom: 1px solid rgba(255,255,255,0.08); }
.nph-strip .npc-wrap { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 0.45rem; padding-bottom: 0.45rem; }
.nph-strip p { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nph-strip a { color: #fff; text-decoration: none; }
.nph-strip a:hover { text-decoration: underline; }
.nph-strip-tag { display: inline-block; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.1rem 0.45rem; border-radius: 3px; background: rgba(255,255,255,0.12); margin-right: 0.3rem; }
.nph-strip.is-live .nph-strip-tag { background: var(--nph-red); color: #fff; }
.nph-strip-sep { color: #5B6B80; margin: 0 0.3rem; }
.nph-install { flex: none; font: 600 0.75rem/1 inherit; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,0.35); border-radius: 999px; padding: 0.35rem 0.7rem; cursor: pointer; }
.nph-install:hover { background: var(--nph-red); border-color: var(--nph-red); }
.nph-alerts-btn { font: 700 0.9375rem/1 inherit; color: #fff; background: var(--nph-red); border: 0; border-radius: 6px; padding: 0.7rem 1.1rem; cursor: pointer; }

/* ---------- Movers and clinch watch ---------- */
.nph-week-line { color: var(--nph-steel); margin: 0 0 1rem; }
.nph-movers, .nph-clinch { background: #fff; border: 1px solid var(--nph-ice); border-left: 4px solid var(--nph-red); border-radius: 6px; padding: 1rem 1.25rem; margin: 0 0 1.5rem; }
.nph-movers-title { font-family: var(--npc-display, inherit); font-weight: 800; font-size: 1.25rem; color: var(--nph-night); margin: 0 0 0.75rem; }
.nph-movers-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 0.75rem 1.5rem; }
.nph-mover strong { display: block; font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--nph-steel); margin-bottom: 0.3rem; }
.nph-mover.is-in strong { color: #1F6F4A; }
.nph-mover.is-out strong { color: var(--nph-red); }
.nph-mover ul, .nph-clinch ul { margin: 0; padding-left: 1.1rem; }
.nph-mover li span { color: var(--nph-steel); font-size: 0.875rem; }
.nph-clinch h4 { margin: 0.9rem 0 0.35rem; font-size: 0.9375rem; }
.nph-need { background: #fff; border-left: 4px solid var(--nph-red); padding: 0.8rem 1rem; }
@media (prefers-color-scheme: dark) { .nph-movers, .nph-clinch, .nph-need { background: #16273F; color: #E6ECF3; } }

/* ---------- Printable PDF buttons ---------- */
.nph-pdf { margin: 1.5rem 0; display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; }
.nph-pdf-btn { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 700; color: #fff; background: var(--nph-red); border-radius: 6px; padding: 0.7rem 1.1rem; text-decoration: none; }
.nph-pdf-btn.is-alt { background: var(--nph-night); }
.nph-pdf-btn:hover { opacity: 0.92; color: #fff; }
.nph-pdf .nph-note { flex-basis: 100%; margin: 0; }

/* ---------- Predictor ---------- */
.nph-predictor .npc-bracket { background: var(--nph-night); padding: 1.25rem; border-radius: 10px; margin-top: 0; }
.nph-pred-tools { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin: 0 0 1rem; }
.nph-pred-tools button { font: 600 0.875rem/1 inherit; padding: 0.55rem 0.9rem; border-radius: 6px; border: 1px solid var(--nph-ice); background: #fff; color: var(--nph-night); cursor: pointer; }
.nph-pred-tools button.is-primary { background: var(--nph-red); color: #fff; border-color: var(--nph-red); }
.nph-pred-progress { margin-left: auto; font-size: 0.875rem; color: var(--nph-steel); }
.nph-pred-game button.npc-team { width: 100%; text-align: left; border: 0; background: transparent; cursor: pointer; font: inherit; color: var(--nph-night); position: relative; }
.nph-pred-game button.npc-team:hover:not(:disabled) { background: #F2F5F9; }
.nph-pred-game button.npc-team:disabled { cursor: default; }
.nph-pred-game button.npc-team.nph-won { background: #EAF4EE; }
.nph-pred-game button.npc-team.nph-won::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--team); }
.nph-pred-check { margin-left: auto; color: #1F6F4A; font-weight: 700; }
.nph-pred-champcard { display: flex; align-items: center; gap: 1rem; background: #fff; border: 2px solid var(--team); border-radius: 10px; padding: 1rem 1.25rem; margin: 1.25rem 0; }
.nph-pred-champcard img { width: 64px; height: 64px; object-fit: contain; }
.nph-pred-champcard span { display: block; font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--nph-steel); }
.nph-pred-champcard strong { display: block; font-family: var(--npc-display, inherit); font-size: 1.75rem; color: var(--nph-night); line-height: 1.1; }
.nph-pred-champcard em { font-style: normal; font-size: 0.875rem; color: var(--nph-steel); }
@media (prefers-color-scheme: dark) { .nph-pred-tools button, .nph-pred-champcard { background: #16273F; color: #E6ECF3; } }
.nph-pred-game .nph-name { white-space: normal; overflow: visible; }
.nph-pred-game .nph-pred-check { position: absolute; right: 0.5rem; top: 50%; transform: translateY(-50%); font-size: 0.8rem; }
.nph-pred-game button.npc-team { padding-right: 1.4rem; }

/* ---------- Dark mode (matches the theme's dark palette) ---------- */
@media (prefers-color-scheme: dark) {
	.nph-table, .npc-table, .nph-kv, .nph-next, .nph-movers, .nph-clinch, .nph-need, .nph-faq details, .nph-g-match, .nph-pred-champcard, .nph-teams-grid li, .nph-t-tile, .nph-ov { background: #16273F; color: #E6ECF3; border-color: #2A3B55; }
	.nph-table th, .nph-table td, .npc-table th, .npc-table td { border-color: #2A3B55; }
	.nph-picture-table tr.nph-in th, .nph-picture-table tr.nph-in td { background: #1F2E48; }
	.nph-next-match, .nph-t-tile strong, .nph-tg-name, .nph-g-name strong, .nph-movers-title, .nph-leaders strong { color: #F2F5F9; }
	.nph-note, .nph-updated, .nph-week-line, .nph-stat-label, .nph-l-cat, .nph-l-val, .nph-g-seed, .nph-g-rec { color: #AFC0D6; }
	.nph-stat-bar { background: #2A3B55; }
	.nph-view-toggle button { background: #16273F; color: #C5CFDD; border-color: #2A3B55; }
	.nph-view-toggle button[aria-pressed="true"] { background: #F2F5F9; color: #0E1B2E; border-color: #F2F5F9; }
	.nph-sections a { background: #16273F; color: #E6ECF3; border-color: #2A3B55; }
	.nph-sections a:hover, .nph-sections a.is-active { background: #F2F5F9; color: #0E1B2E; border-color: #F2F5F9; }
	.nph-sections.is-fixed { background: rgba(11, 21, 38, 0.96); }
	.nph-pred-tools button { background: #16273F; color: #E6ECF3; border-color: #2A3B55; }
	.nph-pred-game button.npc-team { color: #E6ECF3; }
	.nph-pred-game button.npc-team:hover:not(:disabled) { background: #1F2E48; }
	.nph-pred-game button.npc-team.nph-won { background: #163A2A; }
	.nph-tablebox[data-view="cards"] .nph-table tr { background: #16273F; }
	.nph-strip { background: #08111F; }
}
