/* ── NHL Hub Plugin CSS v8 ───────────────────────────────────────────────────── */
/* Base */
.nhl-hub-wrap { max-width: 1200px; margin: 0 auto; padding: 0 0 3rem; }
.nhl-hub-wrap .nhl-green  { color: #16a34a; }
.nhl-hub-wrap .nhl-red    { color: #dc2626; }
.nhl-hub-wrap .nhl-gold   { color: #d97706; }
.nhl-hub-wrap .nhl-accent { color: #0284c7; }
.nhl-hub-wrap .nhl-muted  { color: #6b7280; }

/* Breadcrumb */
.nhl-breadcrumb      { padding: .75rem 1.5rem; font-size: .85rem; color: #6b7280; }
.nhl-breadcrumb-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem; align-items: center; }
.nhl-breadcrumb-list li::after { content: "›"; margin-left: .25rem; color: #d1d5db; }
.nhl-breadcrumb-list li:last-child::after { display: none; }
.nhl-breadcrumb-list a { color: inherit; text-decoration: none; }
.nhl-breadcrumb-list a:hover { text-decoration: underline; }

/* Division blocks */
.nhl-division-block  { margin-bottom: 2.5rem; padding: 0 1.5rem; }
.nhl-division-title  { font-size: 1rem; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; color: #6b7280; margin: 0 0 1rem; padding-bottom: .5rem; border-bottom: 1px solid #e5e7eb; }

/* Team grid & cards */
.nhl-team-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(280px,1fr)); gap: 10px; }
.nhl-team-card { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid #e5e7eb; border-radius: 10px; text-decoration: none; color: inherit; transition: box-shadow .2s,transform .15s; background: #fff; }
.nhl-team-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.1); transform: translateY(-2px); color: inherit; text-decoration: none; }
.nhl-team-badge { width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 800; color: #fff; flex-shrink: 0; letter-spacing: .5px; }
.nhl-team-card-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.nhl-team-card-name  { font-weight: 700; font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nhl-team-card-city  { font-size: .8rem; color: #6b7280; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nhl-team-card-meta  { display: flex; gap: 6px; flex-wrap: wrap; }
.nhl-team-card-arrow { color: #9ca3af; font-size: 1.25rem; flex-shrink: 0; }

/* Badges */
.nhl-badge { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; letter-spacing: .3px; background: #f3f4f6; color: #374151; border: 1px solid #e5e7eb; }
.nhl-badge-gold { background: #fef3c7; color: #92400e; border-color: #fde68a; }
.nhl-badge-upcoming { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }

/* Team hero */
.nhl-team-hero { display: flex; align-items: center; gap: 20px; padding: 2rem 1.5rem 1.5rem; flex-wrap: wrap; }
.nhl-team-hero-badge { width: 80px; height: 80px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.6rem; font-weight: 800; color: #fff; flex-shrink: 0; }
.nhl-team-hero-info  { flex: 1; min-width: 200px; }
.nhl-team-hero-name  { font-size: clamp(1.8rem,4vw,3rem); font-weight: 800; margin: 0 0 .5rem; line-height: 1; }
.nhl-team-hero-badges { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: .5rem; }
.nhl-team-hero-meta  { font-size: .85rem; color: #6b7280; margin: 0; }
.nhl-team-hero-record { margin-left: auto; text-align: right; }
.nhl-record-wins   { display: block; font-size: 2.5rem; font-weight: 800; line-height: 1; }
.nhl-record-detail { display: block; font-size: .85rem; color: #6b7280; }

/* Tabs nav */
.nhl-tabs-nav { display: flex; border-bottom: 2px solid #e5e7eb; overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 0 1.5rem; background: #f9fafb; scrollbar-width: none; }
.nhl-tabs-nav::-webkit-scrollbar { display: none; }
.nhl-tab-link { padding: 12px 18px; font-size: .9rem; font-weight: 600; color: #6b7280; text-decoration: none; border-bottom: 3px solid transparent; margin-bottom: -2px; white-space: nowrap; transition: color .2s; scroll-snap-align: start; }
.nhl-tab-link:hover  { color: #111827; text-decoration: none; }
.nhl-tab-link.nhl-tab-active { color: #111827; border-bottom-color: currentColor; }

/* Sections */
.nhl-section { padding: 2rem 1.5rem; border-bottom: 1px solid #f3f4f6; }
.nhl-section:last-of-type { border-bottom: none; }
.nhl-section-title    { font-size: 1.1rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; color: #6b7280; margin: 0 0 1.25rem; }
.nhl-section-subtitle { font-size: 1rem; font-weight: 700; margin: 1.5rem 0 1rem; }

/* Stat grid */
.nhl-stat-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(110px,1fr)); gap: 10px; }
.nhl-stat-box  { border: 1px solid #e5e7eb; border-radius: 8px; padding: 14px 12px; text-align: center; background: #f9fafb; }
.nhl-stat-val  { font-size: 1.75rem; font-weight: 800; line-height: 1; }
.nhl-stat-label{ font-size: 11px; color: #6b7280; margin-top: 4px; text-transform: uppercase; letter-spacing: .5px; }
.nhl-stat-box.nhl-green  .nhl-stat-val { color: #16a34a; }
.nhl-stat-box.nhl-red    .nhl-stat-val { color: #dc2626; }
.nhl-stat-box.nhl-gold   .nhl-stat-val { color: #d97706; }
.nhl-stat-box.nhl-accent .nhl-stat-val { color: #0284c7; }

/* Leaders grid */
.nhl-leaders-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(160px,1fr)); gap: 12px; }
.nhl-leader-card  { border: 1px solid #e5e7eb; border-radius: 8px; padding: 14px; background: #f9fafb; }
.nhl-leader-label { font-size: 11px; color: #6b7280; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 6px; }
.nhl-leader-name  { font-weight: 700; font-size: .95rem; margin-bottom: 4px; }
.nhl-leader-val   { font-size: 2rem; font-weight: 800; line-height: 1; }
.nhl-leader-unit  { font-size: 11px; color: #6b7280; margin-top: 2px; }

/* Table */
.nhl-table-wrap { overflow-x: auto; border-radius: 8px; border: 1px solid #e5e7eb; -webkit-overflow-scrolling: touch; }
.nhl-table { width: 100%; border-collapse: collapse; font-size: .875rem; background: #fff; }
.nhl-table thead tr { background: #f3f4f6; }
.nhl-table th { padding: 10px 12px; text-align: left; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: #6b7280; border-bottom: 1px solid #e5e7eb; white-space: nowrap; }
.nhl-table td { padding: 10px 12px; border-bottom: 1px solid #f3f4f6; }
.nhl-table tbody tr:last-child td { border-bottom: none; }
.nhl-table tbody tr:hover { background: #f9fafb; }
.nhl-pos-badge { display: inline-block; padding: 2px 7px; border-radius: 4px; font-size: 11px; font-weight: 700; }
.nhl-pos-c  { background: #dcfce7; color: #15803d; }
.nhl-pos-lw { background: #dbeafe; color: #1d4ed8; }
.nhl-pos-rw { background: #ede9fe; color: #6d28d9; }
.nhl-pos-d  { background: #fef3c7; color: #92400e; }
.nhl-pos-g  { background: #fee2e2; color: #b91c1c; }

/* Schedule */
.nhl-schedule-list { display: flex; flex-direction: column; gap: 8px; }
.nhl-schedule-row  { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 12px 14px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; font-size: .875rem; }
.nhl-sched-date    { min-width: 110px; color: #6b7280; font-size: .8rem; }
.nhl-sched-venue   { font-size: .75rem; font-weight: 700; color: #9ca3af; min-width: 40px; }
.nhl-sched-vs      { color: #9ca3af; font-size: .8rem; }
.nhl-sched-opp     { flex: 1; display: flex; align-items: center; gap: 8px; text-decoration: none; color: inherit; font-weight: 500; }
.nhl-sched-opp:hover { text-decoration: underline; }
.nhl-sched-badge   { width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 8px; font-weight: 800; color: #fff; flex-shrink: 0; }
.nhl-sched-result  { font-weight: 700; font-size: .9rem; padding: 2px 10px; border-radius: 4px; }
.nhl-result-win    { background: #dcfce7; color: #15803d; }
.nhl-result-loss   { background: #fee2e2; color: #b91c1c; }
.nhl-sched-score   { font-weight: 700; min-width: 36px; text-align: right; }

/* History */
.nhl-history-cards { display: grid; grid-template-columns: repeat(auto-fill,minmax(160px,1fr)); gap: 12px; margin-bottom: 1.5rem; }
.nhl-history-card  { border: 1px solid #e5e7eb; border-radius: 8px; padding: 14px; background: #f9fafb; }
.nhl-history-label { font-size: 11px; color: #6b7280; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 6px; }
.nhl-history-val   { font-size: 2rem; font-weight: 800; line-height: 1; }
.nhl-history-arena { font-weight: 700; font-size: .95rem; margin-bottom: 2px; }
.nhl-history-text  { line-height: 1.7; color: #374151; font-size: .95rem; margin: 0 0 1.5rem; }
.nhl-cups-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.nhl-cup-badge { background: #fef9c3; border: 1px solid #fde047; border-radius: 8px; padding: 10px 16px; text-align: center; }
.nhl-cup-icon  { display: block; font-size: 1rem; }
.nhl-cup-year  { display: block; font-size: 1.2rem; font-weight: 800; color: #92400e; }

/* Back link */
.nhl-back-link { padding: 1.5rem; }
.nhl-btn-back  { display: inline-block; padding: 8px 16px; border: 1px solid #e5e7eb; border-radius: 6px; font-size: .875rem; color: #374151; text-decoration: none; background: #fff; transition: background .2s; }
.nhl-btn-back:hover { background: #f3f4f6; color: inherit; text-decoration: none; }

/* ── News Section ───────────────────────────────────────────────────────────── */
.nhl-news-list      { display: flex; flex-direction: column; gap: 14px; }
.nhl-news-item      { border: 1px solid #e5e7eb; border-radius: 12px; padding: 0; background: #fff; display: flex; gap: 0; align-items: stretch; overflow: hidden; cursor: pointer; transition: box-shadow .18s, transform .18s; }
.nhl-news-item:hover { box-shadow: 0 4px 18px rgba(0,0,0,.12); transform: translateY(-2px); }
.nhl-news-item:hover .nhl-news-headline { color: #1d4ed8; text-decoration: underline; }
.nhl-news-img-wrap  { flex-shrink: 0; width: 140px; min-height: 100px; }
.nhl-news-img       { width: 140px; height: 100%; min-height: 100px; max-height: 140px; object-fit: cover; display: block; }
.nhl-news-body      { flex: 1; min-width: 0; padding: 14px 16px; }
.nhl-news-meta      { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; flex-wrap: wrap; }
.nhl-news-badge     { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 10px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; white-space: nowrap; }
.nhl-news-type-game    { background: #dbeafe; color: #1d4ed8; }
.nhl-news-type-roster  { background: #dcfce7; color: #15803d; }
.nhl-news-type-injury  { background: #fee2e2; color: #b91c1c; }
.nhl-news-type-trade   { background: #ede9fe; color: #6d28d9; }
.nhl-news-type-preview { background: #fef3c7; color: #92400e; }
.nhl-news-date      { font-size: .78rem; color: #6b7280; }
.nhl-news-headline  { font-size: .95rem; font-weight: 700; margin: 0 0 5px; line-height: 1.4; color: #111827; }
.nhl-news-summary   { font-size: .82rem; color: #4b5563; line-height: 1.6; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nhl-news-loading   { display: flex; flex-direction: column; gap: 14px; }
.nhl-news-skeleton  { height: 100px; border-radius: 12px; background: linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%); background-size: 200% 100%; animation: nhl-shimmer 1.5s infinite; }
@keyframes nhl-shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }

/* ── News Modal ─────────────────────────────────────────────────────────────── */
.nhl-modal-overlay { position: fixed; inset: 0; z-index: 99999; background: rgba(0,0,0,.65); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; padding: 16px; opacity: 0; transition: opacity .22s; }
.nhl-modal-overlay.nhl-modal-open { opacity: 1; }
.nhl-modal { background: #fff; border-radius: 16px; max-width: 720px; width: 100%; max-height: 88vh; overflow-y: auto; box-shadow: 0 24px 60px rgba(0,0,0,.3); transform: translateY(24px); transition: transform .25s; display: flex; flex-direction: column; }
.nhl-modal-overlay.nhl-modal-open .nhl-modal { transform: translateY(0); }
.nhl-modal-img { width: 100%; max-height: 300px; object-fit: cover; border-radius: 16px 16px 0 0; display: block; }
.nhl-modal-body { padding: 24px 28px 28px; }
.nhl-modal-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.nhl-modal-title { font-size: 1.25rem; font-weight: 800; line-height: 1.4; color: #111827; margin: 0 0 14px; }
.nhl-modal-desc { font-size: .92rem; color: #374151; line-height: 1.75; margin: 0 0 20px; white-space: pre-line; }
.nhl-modal-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.nhl-modal-link { display: inline-flex; align-items: center; gap: 6px; background: #1d4ed8; color: #fff !important; text-decoration: none !important; font-size: .85rem; font-weight: 700; padding: 9px 18px; border-radius: 8px; transition: background .15s; }
.nhl-modal-link:hover { background: #1e40af; }
.nhl-modal-close-btn { margin-left: auto; background: #f3f4f6; border: none; border-radius: 8px; padding: 9px 14px; font-size: .85rem; font-weight: 700; cursor: pointer; color: #374151; transition: background .15s; }
.nhl-modal-close-btn:hover { background: #e5e7eb; }
.nhl-modal-source { font-size: .75rem; color: #9ca3af; margin-top: 12px; }

/* ── Scoreboard ─────────────────────────────────────────────────────────────── */
.nhl-scoreboard { display: flex; gap: 10px; overflow-x: auto; padding: 4px 0 10px; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.nhl-score-card { flex-shrink: 0; background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 12px 14px; min-width: 160px; font-size: .82rem; }
.nhl-score-card-status { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: #6b7280; margin-bottom: 6px; }
.nhl-score-card-status.live { color: #dc2626; }
.nhl-score-team { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 3px 0; }
.nhl-score-team-name { font-weight: 600; color: #111827; }
.nhl-score-team-pts { font-size: 1rem; font-weight: 800; color: #111827; }
.nhl-score-team.winner .nhl-score-team-name,
.nhl-score-team.winner .nhl-score-team-pts { color: #15803d; }
.nhl-score-divider { border: none; border-top: 1px solid #f3f4f6; margin: 4px 0; }
.nhl-scoreboard-section { margin-bottom: 20px; }
.nhl-scoreboard-title { font-size: .78rem; font-weight: 700; color: #6b7280; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 8px; }

/* ── Hub Hero ───────────────────────────────────────────────────────────────── */
.nhl-hub-hero { background: linear-gradient(135deg,#00050f 0%,#001f4d 60%,#003087 100%); padding: 2.5rem 1.5rem 2rem; border-bottom: 3px solid #003087; }
.nhl-hub-hero-inner { display: flex; align-items: center; gap: 16px; margin-bottom: 1.5rem; flex-wrap: wrap; }
.nhl-hub-hero-badge { width: 60px; height: 60px; background: linear-gradient(135deg,#003087,#0057b7); border: 3px solid rgba(255,255,255,.25); border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; font-weight: 900; color: #fff; letter-spacing: .5px; flex-shrink: 0; box-shadow: 0 4px 16px rgba(0,48,135,.5); }
.nhl-hub-title { font-size: clamp(2rem,5vw,3rem); font-weight: 900; margin: 0 0 .25rem; color: #fff; letter-spacing: -1px; }
.nhl-hub-sub { color: rgba(255,255,255,.7); font-size: .9rem; margin: 0; letter-spacing: .3px; }

/* Quick nav */
.nhl-hub-quicknav { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.nhl-hub-qbtn { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 14px; text-decoration: none; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15); transition: background .2s,transform .15s,box-shadow .2s; }
.nhl-hub-qbtn:hover { background: rgba(255,255,255,.16); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,.3); text-decoration: none; }
.nhl-hub-qbtn-icon  { font-size: 1.5rem; }
.nhl-hub-qbtn-label { font-size: .9rem; font-weight: 800; color: #fff; letter-spacing: .2px; }
.nhl-hub-qbtn-sub   { font-size: .72rem; color: rgba(255,255,255,.6); }
.nhl-hub-qbtn--scores { border-color: rgba(249,168,212,.3); }
.nhl-hub-qbtn--scores:hover { background: rgba(249,168,212,.15); }
.nhl-hub-qbtn--roster { border-color: rgba(134,239,172,.3); }
.nhl-hub-qbtn--roster:hover { background: rgba(134,239,172,.15); }
.nhl-hub-qbtn--stats { border-color: rgba(147,197,253,.3); }
.nhl-hub-qbtn--stats:hover { background: rgba(147,197,253,.15); }
.nhl-hub-qbtn--news { border-color: rgba(252,211,77,.3); }
.nhl-hub-qbtn--news:hover { background: rgba(252,211,77,.15); }

/* ── 32 Team Logo Grid ──────────────────────────────────────────────────────── */
.nhl-hub-logo-section { padding: 1.5rem 1.5rem .75rem; background: #f8fafc; border-bottom: 1px solid #e5e7eb; }
.nhl-hub-section-label { font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: 2px; color: #9ca3af; margin: 0 0 1rem; }
.nhl-hub-logo-grid { display: grid; grid-template-columns: repeat(8,1fr); gap: 8px; }
.nhl-hub-logo-card { display: flex; flex-direction: column; align-items: center; gap: 5px; padding: 8px 4px; border-radius: 10px; text-decoration: none; border: 1px solid transparent; transition: background .15s,border-color .15s,transform .15s; cursor: pointer; }
.nhl-hub-logo-card:hover { background: rgba(0,0,0,.05); border-color: var(--team-primary,#e5e7eb); transform: translateY(-2px); }
.nhl-hub-logo-wrap { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; position: relative; }
.nhl-hub-logo-wrap img { width: 48px; height: 48px; object-fit: contain; display: block; }
.nhl-hub-logo-fallback { width: 48px; height: 48px; border-radius: 50%; font-size: 10px; font-weight: 900; color: #fff; display: flex; align-items: center; justify-content: center; letter-spacing: .5px; }
.nhl-hub-logo-abbr { font-size: 9px; font-weight: 800; color: #6b7280; text-transform: uppercase; letter-spacing: .5px; text-align: center; }

/* ── Team card logo ─────────────────────────────────────────────────────────── */
.nhl-team-card-logo { width: 44px; height: 44px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.nhl-team-card-logo img { width: 44px; height: 44px; object-fit: contain; }
.nhl-sched-opp-logo { width: 24px; height: 24px; object-fit: contain; }

/* ── All-pages shared ───────────────────────────────────────────────────────── */
.nhl-allpage-header { padding: 2rem 1.5rem 1.5rem; border-bottom: 1px solid #e5e7eb; background: linear-gradient(135deg,#f8fafc,#fff); }
.nhl-allpage-back { display: inline-block; font-size: .8rem; font-weight: 600; color: #6b7280; text-decoration: none; margin-bottom: .75rem; letter-spacing: .2px; }
.nhl-allpage-back:hover { color: #111827; text-decoration: underline; }
.nhl-allpage-title { font-size: clamp(1.6rem,4vw,2.5rem); font-weight: 900; margin: 0 0 .4rem; letter-spacing: -1px; }
.nhl-allpage-sub   { font-size: .9rem; color: #6b7280; margin: 0; }
.nhl-allpage-team-block { margin: 0; border-bottom: 1px solid #f3f4f6; }
.nhl-allpage-team-head { display: flex; align-items: center; gap: 12px; padding: 14px 1.5rem 10px; background: #f9fafb; }
.nhl-allpage-team-logo { width: 36px; height: 36px; object-fit: contain; flex-shrink: 0; }
.nhl-allpage-team-name { font-size: 1rem; font-weight: 800; text-decoration: none; letter-spacing: -.3px; }
.nhl-allpage-team-name:hover { text-decoration: underline; }
.nhl-allpage-team-meta { display: block; font-size: .75rem; color: #6b7280; }

/* All Stats */
.nhl-allstats-wrap { padding: 1.5rem; }
.nhl-standings-table .nhl-standings-team-link { display: flex; align-items: center; gap: 8px; text-decoration: none; color: inherit; font-weight: 600; }
.nhl-standings-table .nhl-standings-team-link:hover { text-decoration: underline; }
.nhl-standings-logo { width: 28px; height: 28px; object-fit: contain; flex-shrink: 0; }

/* All News grid */
.nhl-allnews-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(300px,1fr)); gap: 16px; padding: 1.5rem; }
.nhl-allnews-card { border: 1px solid #e5e7eb; border-radius: 14px; overflow: hidden; background: #fff; display: flex; flex-direction: column; cursor: pointer; transition: box-shadow .18s,transform .18s; }
.nhl-allnews-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,.12); transform: translateY(-3px); }
.nhl-allnews-card-head { display: flex; align-items: center; gap: 10px; padding: 12px 14px; }
.nhl-allnews-card-logo { width: 32px; height: 32px; object-fit: contain; filter: brightness(0) invert(1); flex-shrink: 0; }
.nhl-allnews-card-team { font-size: .82rem; font-weight: 800; color: rgba(255,255,255,.95); text-decoration: none; letter-spacing: .2px; }
.nhl-allnews-card-team:hover { color: #fff; text-decoration: underline; }

/* ══════════════════════════════════════════════════════════════════════════════
   RESPONSIVE — TABLET (≤768px)
══════════════════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .nhl-team-grid { grid-template-columns: 1fr; }
  .nhl-stat-grid { grid-template-columns: repeat(3,1fr); }
  .nhl-leaders-grid { grid-template-columns: repeat(2,1fr); }
  .nhl-history-cards { grid-template-columns: repeat(2,1fr); }
  .nhl-tabs-nav { padding: 0 .75rem; scroll-snap-type: x mandatory; }
  .nhl-tab-link { padding: 10px 14px; font-size: .85rem; }
  .nhl-news-img-wrap { width: 110px; }
  .nhl-news-img { width: 110px; max-height: 120px; }
  .nhl-news-headline { font-size: .9rem; }
  .nhl-hub-logo-grid { grid-template-columns: repeat(6,1fr); }
  .nhl-allnews-grid { grid-template-columns: repeat(2,1fr); padding: 1rem; gap: 12px; }
}

/* ══════════════════════════════════════════════════════════════════════════════
   RESPONSIVE — MOBILE (≤480px)
══════════════════════════════════════════════════════════════════════════════ */
@media (max-width: 480px) {
  /* Hub hero */
  .nhl-hub-hero { padding: 1.5rem 1rem 1.25rem; }
  .nhl-hub-hero-badge { width: 48px; height: 48px; font-size: .9rem; border-radius: 10px; }
  .nhl-hub-title { font-size: 1.8rem; }
  .nhl-hub-sub { font-size: .8rem; }
  .nhl-hub-quicknav { grid-template-columns: repeat(2,1fr); gap: 8px; }
  .nhl-hub-qbtn { flex-direction: row; align-items: center; gap: 12px; padding: 12px 14px; }
  .nhl-hub-qbtn-icon { font-size: 1.25rem; }

  /* Logo section mobile */
  .nhl-hub-logo-section { padding: .875rem .75rem .5rem; }
  .nhl-hub-section-label { font-size: .7rem; margin: 0 0 .75rem; }
  .nhl-hub-logo-grid { grid-template-columns: repeat(5,1fr); gap: 4px; }
  .nhl-hub-logo-wrap { width: 38px; height: 38px; }
  .nhl-hub-logo-wrap img { width: 38px; height: 38px; }
  .nhl-hub-logo-fallback { width: 38px; height: 38px; font-size: 7px; }
  .nhl-hub-logo-card { padding: 5px 2px; gap: 3px; border-radius: 7px; }
  .nhl-hub-logo-abbr { font-size: 7.5px; letter-spacing: .3px; }

  /* Division blocks */
  .nhl-division-block { padding: 0 .875rem; margin-bottom: 1.5rem; }
  .nhl-division-title { font-size: .85rem; letter-spacing: 1.5px; }

  /* Team hero */
  .nhl-team-hero        { flex-direction: column; align-items: flex-start; padding: 1.25rem 1rem 1rem; gap: 14px; }
  .nhl-team-hero-record { margin-left: 0; text-align: left; }
  .nhl-team-hero-badge  { width: 60px; height: 60px; font-size: 1.2rem; }
  .nhl-team-hero-name   { font-size: 1.6rem; }

  /* Padding reset */
  .nhl-section, .nhl-tabs-nav { padding-left: .875rem; padding-right: .875rem; }
  .nhl-breadcrumb, .nhl-back-link { padding: .5rem .875rem; }

  /* Stat grid */
  .nhl-stat-grid { grid-template-columns: repeat(2,1fr); gap: 8px; }
  .nhl-stat-val  { font-size: 1.4rem; }

  /* Leaders */
  .nhl-leaders-grid { grid-template-columns: 1fr 1fr; }

  /* History */
  .nhl-history-cards { grid-template-columns: repeat(2,1fr); gap: 8px; }
  .nhl-history-val   { font-size: 1.5rem; }

  /* Schedule */
  .nhl-schedule-row { gap: 6px; padding: 10px 12px; }
  .nhl-sched-date   { min-width: unset; width: 100%; }
  .nhl-sched-opp    { flex-basis: 100%; }

  /* Tables */
  .nhl-table th, .nhl-table td { padding: 8px 8px; font-size: .8rem; }

  /* News */
  .nhl-news-item     { flex-direction: column; }
  .nhl-news-img-wrap { width: 100%; min-height: unset; }
  .nhl-news-img      { width: 100%; height: 180px; max-height: 180px; }
  .nhl-news-body     { padding: 12px 14px; }
  .nhl-news-headline { font-size: .9rem; }
  .nhl-news-summary  { -webkit-line-clamp: 3; }
  .nhl-news-skeleton { height: 240px; }

  /* Cups */
  .nhl-cups-grid { gap: 6px; }
  .nhl-cup-badge { padding: 8px 12px; }

  /* All news */
  .nhl-allnews-grid { grid-template-columns: 1fr; padding: .875rem; gap: 10px; }
  .nhl-allpage-header { padding: 1.25rem 1rem 1rem; }
  .nhl-allstats-wrap { padding: 1rem; }
}

/* ══════════════════════════════════════════════════════════════════════════════
   RESPONSIVE — SMALL MOBILE (≤380px)
══════════════════════════════════════════════════════════════════════════════ */
@media (max-width: 380px) {
  .nhl-hub-logo-grid { grid-template-columns: repeat(4,1fr); gap: 3px; }
  .nhl-hub-logo-wrap { width: 34px; height: 34px; }
  .nhl-hub-logo-wrap img { width: 34px; height: 34px; }
  .nhl-hub-logo-fallback { width: 34px; height: 34px; font-size: 6px; }
  .nhl-hub-logo-abbr { font-size: 7px; }
  .nhl-stat-grid { grid-template-columns: repeat(2,1fr); }
}

/* ══════════════════════════════════════════════════════════════════════════════
   DARK MODE
══════════════════════════════════════════════════════════════════════════════ */
@media (prefers-color-scheme: dark) {
  .nhl-hub-wrap { --nhl-bg:#0f172a; --nhl-bg-raised:#1e293b; --nhl-border:#334155; --nhl-text:#e2e8f0; --nhl-muted:#94a3b8; --nhl-hover-bg:#1e293b; --nhl-skeleton-a:#1e293b; --nhl-skeleton-b:#334155; color:var(--nhl-text); }
}
body.dark-mode .nhl-hub-wrap, body.dark .nhl-hub-wrap, body[data-theme="dark"] .nhl-hub-wrap, [data-theme="dark"] .nhl-hub-wrap {
  --nhl-bg:#0f172a; --nhl-bg-raised:#1e293b; --nhl-border:#334155; --nhl-text:#e2e8f0; --nhl-muted:#94a3b8; --nhl-hover-bg:#1e293b; --nhl-skeleton-a:#1e293b; --nhl-skeleton-b:#334155; color:var(--nhl-text);
}
.nhl-hub-wrap .nhl-team-card,.nhl-hub-wrap .nhl-stat-box,.nhl-hub-wrap .nhl-leader-card,.nhl-hub-wrap .nhl-history-card,.nhl-hub-wrap .nhl-schedule-row,.nhl-hub-wrap .nhl-news-item,.nhl-hub-wrap .nhl-table,.nhl-hub-wrap .nhl-btn-back { background:var(--nhl-bg,#fff); border-color:var(--nhl-border,#e5e7eb); color:var(--nhl-text,inherit); }
.nhl-hub-wrap .nhl-table thead tr,.nhl-hub-wrap .nhl-tabs-nav { background:var(--nhl-bg-raised,#f9fafb); }
.nhl-hub-wrap .nhl-tabs-nav { border-bottom-color:var(--nhl-border,#e5e7eb); }
.nhl-hub-wrap .nhl-hub-header,.nhl-hub-wrap .nhl-division-title,.nhl-hub-wrap .nhl-section,.nhl-hub-wrap .nhl-table th,.nhl-hub-wrap .nhl-table td { border-color:var(--nhl-border,#e5e7eb); }
.nhl-hub-wrap .nhl-muted,.nhl-hub-wrap .nhl-hub-sub,.nhl-hub-wrap .nhl-breadcrumb,.nhl-hub-wrap .nhl-team-hero-meta,.nhl-hub-wrap .nhl-record-detail,.nhl-hub-wrap .nhl-section-title,.nhl-hub-wrap .nhl-division-title,.nhl-hub-wrap .nhl-stat-label,.nhl-hub-wrap .nhl-leader-label,.nhl-hub-wrap .nhl-history-label,.nhl-hub-wrap .nhl-news-date,.nhl-hub-wrap .nhl-sched-date,.nhl-hub-wrap .nhl-sched-venue,.nhl-hub-wrap .nhl-sched-vs,.nhl-hub-wrap .nhl-table th,.nhl-hub-wrap .nhl-tab-link { color:var(--nhl-muted,#6b7280); }
.nhl-hub-wrap .nhl-badge { background:var(--nhl-bg-raised,#f3f4f6); border-color:var(--nhl-border,#e5e7eb); color:var(--nhl-text,#374151); }
.nhl-hub-wrap .nhl-news-headline { color:var(--nhl-text,#111827); }
.nhl-hub-wrap .nhl-history-text,.nhl-hub-wrap .nhl-news-summary { color:var(--nhl-text,#374151); }
.nhl-hub-wrap .nhl-table tbody tr:hover { background:var(--nhl-hover-bg,#f9fafb); }
.nhl-hub-wrap .nhl-btn-back:hover { background:var(--nhl-hover-bg,#f3f4f6); }
.nhl-news-skeleton { background:linear-gradient(90deg,var(--nhl-skeleton-a,#f0f0f0) 25%,var(--nhl-skeleton-b,#e0e0e0) 50%,var(--nhl-skeleton-a,#f0f0f0) 75%); background-size:200% 100%; }
body.dark-mode .nhl-hub-logo-section, body.dark .nhl-hub-logo-section, body[data-theme="dark"] .nhl-hub-logo-section { background:#1e293b; border-color:#334155; }
body.dark-mode .nhl-hub-logo-card:hover, body.dark .nhl-hub-logo-card:hover { background:rgba(255,255,255,.06); }
body.dark-mode .nhl-allnews-card, body.dark .nhl-allnews-card { background:#1e293b; border-color:#334155; }
body.dark-mode .nhl-allpage-team-head, body.dark .nhl-allpage-team-head { background:#0f172a; }
body.dark-mode .nhl-allpage-header, body.dark .nhl-allpage-header { background:linear-gradient(135deg,#0f172a,#1e293b); }

/* ── SEO Content Blocks (H1/H2/H3 + FAQ) ───────────────────────────────────
   Appears at the bottom of every page except home (hub).
   Fully crawlable by search engines. Clean editorial layout.
────────────────────────────────────────────────────────────────────────────── */
.nhl-seo-block {
    max-width: 860px;
    margin: 0 auto;
    padding: 2.5rem 1.5rem 3rem;
    border-top: 2px solid #f3f4f6;
}

/* Headings */
.nhl-seo-h2 {
    font-size: 1.25rem;
    font-weight: 800;
    color: #111827;
    margin: 0 0 .75rem;
    line-height: 1.3;
    letter-spacing: -.2px;
}
.nhl-seo-h3 {
    font-size: 1rem;
    font-weight: 700;
    color: #1e3a5f;
    margin: 1.75rem 0 .5rem;
    line-height: 1.4;
    padding-left: 10px;
    border-left: 3px solid #003087;
}
.nhl-seo-p {
    font-size: .92rem;
    line-height: 1.75;
    color: #374151;
    margin: 0 0 .75rem;
}

/* FAQ section */
.nhl-seo-faq {
    margin-top: 2.5rem;
    border-top: 1px solid #e5e7eb;
    padding-top: 2rem;
}
.nhl-seo-faq .nhl-seo-h2 {
    margin-bottom: 1.25rem;
}

/* FAQ item */
.nhl-faq-item {
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    margin-bottom: 10px;
    overflow: hidden;
    background: #fff;
    transition: box-shadow .18s;
}
.nhl-faq-item:hover {
    box-shadow: 0 2px 12px rgba(0,0,0,.07);
}

/* FAQ question */
.nhl-faq-q {
    font-size: .9rem;
    font-weight: 700;
    color: #111827;
    margin: 0;
    padding: 14px 18px 14px 44px;
    cursor: pointer;
    position: relative;
    line-height: 1.5;
    list-style: none;
    user-select: none;
    border-left: 3px solid #003087;
    background: #f9fafb;
    transition: background .15s;
}
.nhl-faq-q::before {
    content: '+';
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.2rem;
    font-weight: 700;
    color: #003087;
    line-height: 1;
    transition: transform .25s;
}
.nhl-faq-item.open .nhl-faq-q {
    background: #eff6ff;
}
.nhl-faq-item.open .nhl-faq-q::before {
    content: '−';
}

/* FAQ answer */
.nhl-faq-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height .32s ease;
}
.nhl-faq-item.open .nhl-faq-a {
    max-height: 400px;
}
.nhl-faq-a p {
    margin: 0;
    padding: 12px 18px 14px;
    font-size: .875rem;
    line-height: 1.75;
    color: #374151;
    border-top: 1px solid #e5e7eb;
}

/* Dark mode */
body.dark-mode .nhl-seo-block,
body.dark .nhl-seo-block {
    border-top-color: var(--nhl-border, #334155);
}
body.dark-mode .nhl-seo-h2,
body.dark .nhl-seo-h2,
body.dark-mode .nhl-faq-q,
body.dark .nhl-faq-q {
    color: var(--nhl-text, #e2e8f0);
}
body.dark-mode .nhl-seo-h3,
body.dark .nhl-seo-h3 {
    color: #93c5fd;
    border-left-color: #3b82f6;
}
body.dark-mode .nhl-seo-p,
body.dark .nhl-seo-p,
body.dark-mode .nhl-faq-a p,
body.dark .nhl-faq-a p {
    color: var(--nhl-text, #cbd5e1);
}
body.dark-mode .nhl-faq-item,
body.dark .nhl-faq-item {
    background: var(--nhl-bg, #1e293b);
    border-color: var(--nhl-border, #334155);
}
body.dark-mode .nhl-faq-q,
body.dark .nhl-faq-q {
    background: var(--nhl-bg-raised, #0f172a);
    border-left-color: #3b82f6;
}
body.dark-mode .nhl-faq-q::before,
body.dark .nhl-faq-q::before {
    color: #3b82f6;
}
body.dark-mode .nhl-faq-item.open .nhl-faq-q,
body.dark .nhl-faq-item.open .nhl-faq-q {
    background: #172554;
}
body.dark-mode .nhl-faq-a p,
body.dark .nhl-faq-a p {
    border-top-color: var(--nhl-border, #334155);
}
body.dark-mode .nhl-seo-faq,
body.dark .nhl-seo-faq {
    border-top-color: var(--nhl-border, #334155);
}

@media (max-width: 480px) {
    .nhl-seo-block { padding: 2rem .875rem 2.5rem; }
    .nhl-seo-h2 { font-size: 1.1rem; }
    .nhl-seo-h3 { font-size: .95rem; }
    .nhl-faq-q { font-size: .85rem; padding: 12px 14px 12px 38px; }
    .nhl-faq-a p { padding: 10px 14px 12px; font-size: .84rem; }
}
