/* NBA Finals Hub v0.1.0: front end. Navy and gold, engraved-plate motif. */
.nfh{--nfh-navy:#0A1628;--nfh-gold:#D4AF37;--nfh-gold-deep:#9C7B1C;--nfh-ink:#1B2333;--nfh-mute:#5B6475;--nfh-line:#DDE2EA;--nfh-mist:#F4F6F9;color:var(--nfh-ink);max-width:780px;margin:0 auto;font-variant-numeric:tabular-nums}
.nfh-year-page .content-container .nfh{padding:24px 0 48px}
.nfh h2{margin:2.2em 0 .6em;line-height:1.25}
.nfh p{margin:0 0 1em;line-height:1.65}
.nfh a{color:var(--nfh-navy);text-decoration-color:var(--nfh-gold);text-underline-offset:3px}
.nfh a:hover{color:var(--nfh-gold-deep)}
.nfh-crumbs{font-size:.875rem;color:var(--nfh-mute);margin:0 0 14px}
.nfh-crumbs a{color:var(--nfh-mute)}
.nfh-sep{margin:0 6px;color:var(--nfh-line)}

/* Plate */
.nfh-plate{display:grid;grid-template-columns:auto 1fr;background:var(--nfh-navy);color:#fff;border-radius:6px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(212,175,55,.35);text-decoration:none}
a.nfh-plate:hover{color:#fff;box-shadow:inset 0 0 0 2px var(--nfh-gold)}
.nfh-plate-year{display:flex;align-items:center;justify-content:center;padding:22px 26px;font-size:clamp(2.6rem,7vw,4.2rem);font-weight:800;line-height:1;letter-spacing:-.02em;color:var(--nfh-navy);background:linear-gradient(160deg,#E9CD6A 0%,var(--nfh-gold) 45%,#B8962E 100%)}
.nfh-plate-body{padding:20px 24px}
.nfh .nfh-plate-title{margin:0 0 4px;font-size:1rem;font-weight:600;color:#C9D2E0;line-height:1.3}
.nfh .nfh-plate-champ{margin:0;font-size:clamp(1.45rem,4vw,2rem);font-weight:800;line-height:1.15;color:#fff}
.nfh .nfh-plate-meta{margin:6px 0 12px;color:#C9D2E0;font-size:.95rem;line-height:1.45}
.nfh-pips{display:flex;gap:6px}
.nfh-pip{width:18px;height:18px;border-radius:3px;border:1.5px solid rgba(255,255,255,.35)}
.nfh-pip.is-champ{background:var(--nfh-gold);border-color:var(--nfh-gold)}
.nfh-pip.is-other{background:#5B6B86;border-color:#5B6B86}
.nfh-pip.is-empty{background:transparent;border-style:dashed;opacity:.5}

.nfh-byline{font-size:.875rem;color:var(--nfh-mute);margin:12px 0 18px}
.nfh-answer{border-left:4px solid var(--nfh-gold);padding:2px 0 2px 16px;margin:0 0 8px}
.nfh-answer p:first-child{font-size:1.1rem;font-weight:600}

/* Tables */
.nfh-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--nfh-line);border-radius:6px}
.nfh table{width:100%;border-collapse:collapse;margin:0;font-size:.95rem}
.nfh th,.nfh td{padding:10px 12px;border-bottom:1px solid var(--nfh-line);text-align:left;vertical-align:top}
.nfh tr:last-child th,.nfh tr:last-child td{border-bottom:0}
.nfh-facts th{width:36%;background:var(--nfh-mist);font-weight:600}
.nfh-table thead th{background:var(--nfh-navy);color:#fff;font-weight:600;white-space:nowrap;border-bottom:2px solid var(--nfh-gold)}
.nfh-table tbody tr:nth-child(even){background:var(--nfh-mist)}
.nfh-num{white-space:nowrap;font-weight:700}
.nfh-verify{font-size:.82rem;color:var(--nfh-mute);margin:8px 0 0}

.nfh-list{margin:0 0 1em 1.1em;padding:0}
.nfh-list li{margin:0 0 .5em;line-height:1.6}

/* Previous / next */
.nfh-pn{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:2em 0}
.nfh-pn a{display:block;padding:14px 16px;border:1px solid var(--nfh-line);border-radius:6px;text-decoration:none}
.nfh-pn a:hover,.nfh-pn a:focus-visible{border-color:var(--nfh-gold)}
.nfh-pn-next{text-align:right;grid-column:2}
.nfh-pn span{display:block;font-size:.8rem;color:var(--nfh-mute)}
.nfh-pn strong{display:block;color:var(--nfh-navy)}
.nfh-pn em{display:block;font-style:normal;font-size:.875rem;color:var(--nfh-mute)}

/* FAQ */
.nfh-faq details{border:1px solid var(--nfh-line);border-radius:6px;margin:0 0 8px;background:#fff}
.nfh-faq summary{cursor:pointer;padding:12px 16px;font-weight:600;list-style:none;position:relative;padding-right:40px}
.nfh-faq summary::-webkit-details-marker{display:none}
.nfh-faq summary::after{content:"+";position:absolute;right:16px;top:10px;font-size:1.25rem;color:var(--nfh-gold-deep)}
.nfh-faq details[open] summary::after{content:"\2212"}
.nfh-faq details>div{padding:0 16px 4px}
.nfh-conclusion{margin-top:2em;padding-top:1em;border-top:1px solid var(--nfh-line)}

/* Winners filter */
.nfh-filter{display:block;margin:0 0 12px}
.nfh-filter span{display:block;font-size:.875rem;font-weight:600;margin:0 0 4px}
.nfh-filter input{width:100%;max-width:360px;padding:9px 12px;border:1px solid var(--nfh-line);border-radius:6px}
.nfh-filter input:focus{outline:2px solid var(--nfh-gold);outline-offset:1px}
.nfh a:focus-visible,.nfh summary:focus-visible{outline:2px solid var(--nfh-gold);outline-offset:2px}

@media (max-width:600px){
 .nfh-plate{grid-template-columns:1fr}
 .nfh-plate-year{justify-content:flex-start;padding:14px 20px}
 .nfh-pn{grid-template-columns:1fr}
 .nfh-pn-next{grid-column:1;text-align:left}
 .nfh th,.nfh td{padding:9px 10px}
}
@media print{.nfh-pn,.nfh-filter{display:none}.nfh-plate{box-shadow:none;border:1px solid #000}}

/* v0.3: upcoming Finals page */
.nfh-two{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 4px}
.nfh-two caption{caption-side:top;text-align:left;font-weight:700;padding:10px 12px;background:var(--nfh-mist);border-bottom:1px solid var(--nfh-line)}
.nfh-table tr.is-cut td{border-bottom:2px dashed var(--nfh-gold)}
.nfh-table tr.is-champ td{font-weight:700}
.nfh-plate-next .nfh-countdown{font-weight:600;color:#fff}
@media (max-width:700px){.nfh-two{grid-template-columns:1fr}}

/* v0.4: scores */
.nfh-scorecard{max-width:440px;border:1px solid var(--nfh-line);border-radius:6px;overflow:hidden;margin:0 0 14px;background:#fff}
.nfh .nfh-sc-label{margin:0;padding:10px 14px;background:var(--nfh-navy);color:#fff;font-size:.9rem;font-weight:600}
.nfh-sc-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--nfh-line);font-size:1.15rem}
.nfh-sc-row strong{font-size:1.6rem;font-variant-numeric:tabular-nums}
.nfh-sc-row.is-win span,.nfh-sc-row.is-win strong{font-weight:800}
.nfh-sc-row:not(.is-win){color:var(--nfh-mute)}
.nfh .nfh-sc-foot{margin:0;padding:8px 14px;font-size:.9rem;color:var(--nfh-mute)}
.nfh .nfh-sc-next{font-size:.95rem}
.nfh-years details{border:1px solid var(--nfh-line);border-radius:6px;margin:0 0 8px;padding:0 12px}
.nfh-years summary{cursor:pointer;padding:10px 0}
.nfh-years details[open]{padding-bottom:10px}
