/* NFL game breakdowns: per-game page (/nfl/game/{slug}/, scope .ngb) and the
   week hub (/nfl/game-breakdowns/, scope .nbh). Loaded AFTER game-breakdown.css,
   which supplies the shared gb-* skeleton (hero, verdict, key strip, tabs,
   comparison rows, slate cards, pager, footer). Only NFL-specific additions
   live here: wide-crest logo boxes, the data tables, DvP grid, injuries,
   weather chips, form chips, status/edge pills, line-movement row.

   Tokens only (Pressbox). Status color is tails-only: --pos / --neg / --warn on
   text and thin tints, never a card flood. Nothing is painted with --bg-deep. */

/* ---- logos: NFL marks are wide, so the crest box is 3:2, not square ---- */
.ngb .gb-team-logo { width: 96px; height: 64px; object-fit: contain; }
.ngb .gb-slate-logo { width: 34px; height: 22px; object-fit: contain; }
.ngb-logo-sm, .nbh-logo-sm {
    width: 26px; height: 17px; object-fit: contain; vertical-align: -3px; margin-right: 5px;
    filter: drop-shadow(0 0 1px color-mix(in srgb, var(--text-primary) 55%, transparent));
}

/* ---- hero additions ---- */
.ngb-recs { display: flex; gap: .7rem; justify-content: center; flex-wrap: wrap; }
.ngb-rec { white-space: nowrap; color: var(--text-secondary); }
.ngb-rec small { font-size: 9px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--text-muted); margin-right: .3rem; }
.gb-tag.is-neutral { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 45%, transparent); }
.ngb-why { font-size: .84rem; color: var(--text-secondary); margin: -.3rem 0 .1rem 0; padding-left: calc(42px + .7rem); line-height: 1.45; }
.ngb-snap { margin-top: 1.35rem; }
.ngb-snap .gb-sublabel { margin: 0 0 .35rem; }
.ngb .gb-case.ngb-case { grid-template-columns: 1fr; gap: .15rem; margin-top: 0; }
.ngb .gb-case.ngb-case li { font-size: .95rem; padding-top: .3rem; padding-bottom: .3rem; }

/* status pill (feed status + effective kickoff check) */
.ngb-status {
    display: inline-flex; align-items: center; white-space: nowrap;
    border-radius: 99px; padding: .12rem .6rem; font-size: .66rem; font-weight: 700;
    letter-spacing: 1.1px; text-transform: uppercase;
    background: var(--surface-raise); color: var(--text-secondary); border: 1px solid var(--hairline);
}
.ngb-status.is-pending { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 40%, transparent); background: color-mix(in srgb, var(--warn) 12%, transparent); }
.ngb-status.is-ready { color: var(--pos); border-color: color-mix(in srgb, var(--pos) 40%, transparent); background: color-mix(in srgb, var(--pos) 12%, transparent); }
.ngb-status.is-live { color: var(--neg); border-color: color-mix(in srgb, var(--neg) 40%, transparent); }
.ngb-status.is-final { color: var(--text-muted); }

/* archive banner: must read correctly even on a stale stylesheet, so it is
   deliberately plain */
.ngb-archive {
    margin: 0 0 16px; padding: 12px 16px; border-radius: 10px; font-size: 14px; line-height: 1.6;
    border: 1px solid color-mix(in srgb, var(--warn) 40%, transparent);
    background: color-mix(in srgb, var(--warn) 8%, transparent); color: var(--text-primary);
}
.ngb-archive strong { color: var(--warn); }
.ngb-archive a { color: var(--warn); text-decoration: underline; font-weight: 600; }

/* ---- key strip: six cells on desktop, 3x2 on phones (inherits gb-key rules) ---- */
.ngb .gb-key { min-width: 86px; }
.ngb-moves {
    display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.4rem;
    margin: .7rem .25rem 0; font-size: .8rem; color: var(--text-secondary);
}
.ngb-moves-label { font-size: 10px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; }
.ngb-moves-label small { font-weight: 600; letter-spacing: .4px; text-transform: none; font-size: .7rem; margin-left: .3rem; }
.ngb-movecell { display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; }
.ngb-movecell-l { color: var(--text-muted); }
.ngb-movecell-v { font-weight: 700; color: var(--text-primary); font-variant-numeric: tabular-nums; display: inline-flex; align-items: center; gap: .25rem; }
.ngb-movecell-v svg { width: 12px; height: 12px; color: var(--text-muted); }
.ngb-move { display: inline-flex; align-items: center; gap: .15rem; font-size: .72rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.ngb-move svg { width: 11px; height: 11px; }
.ngb-move.is-flat { color: var(--text-muted); font-weight: 600; }
.ngb-move.is-up { color: var(--pos); }
.ngb-move.is-down { color: var(--neg); }
.ngb-book { font-size: .7rem; color: var(--text-muted); margin-left: auto; white-space: nowrap; }

/* ---- tables (Pressbox 8: numbers tabular + right-aligned, names never truncate) ---- */
.ngb-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 1rem; border-radius: 12px; background: var(--bg-card); border: 1px solid var(--hairline); }
.ngb-tablewrap:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.ngb-table { width: 100%; border-collapse: collapse; font-size: .86rem; color: var(--text-primary); }
.ngb-table th, .ngb-table td { padding: .55rem .7rem; text-align: left; white-space: nowrap; border-top: 1px solid var(--hairline); vertical-align: middle; }
.ngb-table thead th { border-top: 0; font-size: .64rem; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--text-muted); }
.ngb-table th.num, .ngb-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.ngb-table tbody tr:hover { background: var(--surface-raise); }
.ngb-table .ngb-name { font-weight: 600; }
.ngb-table .ngb-name small { font-weight: 500; color: var(--text-muted); margin-left: .2rem; }
.ngb-table td small { color: var(--text-muted); }
.ngb-table-compact th, .ngb-table-compact td { padding: .42rem .6rem; font-size: .82rem; }
.ngb-teamcell { font-weight: 700; }
.ngb-nowrap { white-space: nowrap; }
.ngb-pstatus { color: var(--warn); font-weight: 600; text-transform: uppercase; letter-spacing: .5px; font-size: .62rem; }

/* edge pill (precomputed by the builder) */
.ngb-edge {
    display: inline-block; border-radius: 99px; padding: .1rem .55rem; font-size: .64rem; font-weight: 700;
    letter-spacing: 1px; text-transform: uppercase; background: var(--surface-raise); color: var(--text-muted);
}
.ngb-edge.is-smash { color: var(--pos); background: color-mix(in srgb, var(--pos) 14%, transparent); }
.ngb-edge.is-fav { color: var(--pos); background: color-mix(in srgb, var(--pos) 9%, transparent); }
.ngb-edge.is-tough { color: var(--neg); background: color-mix(in srgb, var(--neg) 12%, transparent); }

/* ---- DvP 2 x 4 grid ---- */
.ngb-dvp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; margin-top: 1.1rem; }
.ngb-dvp { background: var(--bg-card); border: 1px solid var(--hairline); border-radius: 12px; padding: .85rem 1rem 1rem; min-width: 0; }
.ngb-dvp-head { font-size: .8rem; font-weight: 700; color: var(--text-primary); margin-bottom: .6rem; display: flex; align-items: center; flex-wrap: wrap; gap: .2rem .4rem; }
.ngb-dvp-head small { font-weight: 600; color: var(--text-muted); font-size: .72rem; }
.ngb-dvp-cells { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; }
.ngb-dvp-cell { text-align: center; padding: .5rem .2rem; border-radius: 10px; background: var(--surface-nested, var(--bg-card-hover)); min-width: 0; }
.ngb-dvp-pos { font-size: 9px; font-weight: 700; letter-spacing: 1.3px; text-transform: uppercase; color: var(--text-muted); }
.ngb-dvp-rank { font-family: var(--font-display); font-size: 1.25rem; color: var(--text-primary); margin-top: .15rem; font-variant-numeric: tabular-nums; line-height: 1.1; white-space: nowrap; }
.ngb-dvp-rank small { font-size: .62rem; color: var(--text-muted); font-family: var(--font-body); }
.ngb-dvp-fpa { font-size: .8rem; color: var(--text-secondary); font-variant-numeric: tabular-nums; margin-top: .15rem; white-space: nowrap; }
.ngb-dvp-fpa small { color: var(--text-muted); font-size: .62rem; }
.ngb-dvp-rating { font-size: .64rem; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--text-muted); margin-top: .2rem; display: inline-flex; align-items: center; gap: .2rem; white-space: nowrap; }
.ngb-dvp-rating svg { width: 11px; height: 11px; }

.ngb-note { font-size: .74rem; color: var(--text-muted); margin: .8rem 0 0; line-height: 1.5; }

/* ---- game script: comparison rows without a rank get no bar row ---- */
.ngb-implied { margin: 1rem 0 .4rem; }
.ngb-implied .gb-sublabel { margin-top: 0; }
.ngb-cmp { margin-top: .2rem; }
.ngb .gb-cmp-item.no-track { padding-bottom: .55rem; row-gap: 0; }

/* ---- weather ---- */
.ngb-wx { margin-top: .2rem; }
.ngb-wx-top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; margin-bottom: .6rem; }
.ngb-wx-top .gb-wx-when { margin-bottom: 0; }
.ngb-wxlevel {
    display: inline-block; border-radius: 99px; padding: .15rem .65rem; font-size: .66rem; font-weight: 700;
    letter-spacing: 1.1px; text-transform: uppercase; white-space: nowrap;
    background: var(--surface-raise); color: var(--text-secondary); border: 1px solid var(--hairline);
}
.ngb-wxlevel.is-none { color: var(--pos); border-color: color-mix(in srgb, var(--pos) 40%, transparent); }
.ngb-wxlevel.is-low { color: var(--text-secondary); }
.ngb-wxlevel.is-mod { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 45%, transparent); background: color-mix(in srgb, var(--warn) 10%, transparent); }
.ngb-wxlevel.is-severe { color: var(--neg); border-color: color-mix(in srgb, var(--neg) 45%, transparent); background: color-mix(in srgb, var(--neg) 10%, transparent); }
.ngb-wxlevel.is-unknown { color: var(--text-muted); }
.ngb-wx-chips .gb-chip { min-width: 110px; }
.ngb-wx-chips .gb-chip-value small { font-size: .72rem; }
.ngb-wx-notes { margin-top: .9rem; }
.ngb-wx-calm { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; padding: .9rem 1.05rem; border-radius: 12px; background: var(--bg-card); border: 1px solid var(--hairline); color: var(--text-secondary); font-size: .92rem; }
.ngb-wx-calm svg { width: 18px; height: 18px; color: var(--text-muted); flex: 0 0 auto; }
.ngb-wx-calm strong { color: var(--text-primary); }

/* ---- DFS tables, two up ---- */
/* Stacked, not two-up: eight columns per team table need the full 1160px
   measure; in a half column the last two columns were clipped behind the
   scroll edge at 1440. */
.ngb-dfs-grid { display: grid; grid-template-columns: 1fr; gap: 1.1rem; margin-top: 1.1rem; }
.ngb-dfs-col { min-width: 0; }
.ngb-dfs-col .ngb-tablewrap { margin-top: .5rem; }
.ngb .gb-dfs-team { display: flex; align-items: center; gap: .3rem; }
.ngb .gb-dfs-team small { margin-left: auto; font-weight: 600; letter-spacing: .3px; text-transform: none; color: var(--text-muted); }

/* ---- injuries ---- */
.ngb-inj-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.5rem; }
.ngb-inj-col { min-width: 0; }
.ngb-inj-list { list-style: none; margin: .3rem 0 0; padding: 0; }
.ngb-inj-list li { display: grid; grid-template-columns: 74px minmax(0, 1fr) auto auto; align-items: center; gap: .55rem; padding: .42rem 0; border-top: 1px solid var(--hairline); font-size: .84rem; }
.ngb-inj-list li:first-child { border-top: 0; }
.ngb-inj { display: inline-block; text-align: center; border-radius: 99px; padding: .1rem .45rem; font-size: .62rem; font-weight: 700; letter-spacing: .9px; text-transform: uppercase; white-space: nowrap; background: var(--surface-raise); color: var(--text-muted); }
.ngb-inj.is-out { color: var(--neg); background: color-mix(in srgb, var(--neg) 14%, transparent); }
.ngb-inj.is-doubt { color: var(--warn); background: color-mix(in srgb, var(--warn) 16%, transparent); }
.ngb-inj.is-q { color: var(--warn); background: color-mix(in srgb, var(--warn) 7%, transparent); border: 1px solid color-mix(in srgb, var(--warn) 40%, transparent); }
.ngb-inj.is-ir { color: var(--text-muted); }
.ngb-inj-name { font-weight: 600; color: var(--text-primary); }
.ngb-inj-name small { color: var(--text-muted); font-weight: 500; margin-left: .15rem; }
.ngb-inj-what { color: var(--text-secondary); font-size: .78rem; white-space: nowrap; }
.ngb-inj-imp { font-size: .64rem; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; min-width: 58px; text-align: right; }
.ngb-inj-imp.is-sev { color: var(--neg); }
.ngb-inj-imp.is-mod { color: var(--warn); }
.ngb-inj-none { font-size: .86rem; padding: .5rem 0; }

/* ---- form chips + H2H ---- */
.ngb-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.5rem; margin-top: 1rem; }
.ngb-formrow { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .45rem; }
.ngb-form { display: inline-flex; align-items: baseline; gap: .3rem; white-space: nowrap; border-radius: 8px; padding: .28rem .55rem; font-size: .78rem; font-variant-numeric: tabular-nums; background: var(--bg-card); border: 1px solid var(--hairline); color: var(--text-secondary); }
.ngb-form b { font-weight: 800; }
.ngb-form.is-w b { color: var(--pos); }
.ngb-form.is-l b { color: var(--neg); }
.ngb-form small { color: var(--text-muted); font-size: .68rem; }
.ngb-h2h { list-style: none; margin: .2rem 0 0; padding: 0; }
.ngb-h2h li { display: flex; align-items: baseline; gap: 1rem; padding: .38rem 0; border-top: 1px solid var(--hairline); font-size: .86rem; }
.ngb-h2h li:first-child { border-top: 0; }
.ngb-h2h-date { color: var(--text-muted); font-size: .76rem; min-width: 92px; white-space: nowrap; }
.ngb-h2h-score { color: var(--text-secondary); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ngb-h2h-score b { color: var(--text-primary); }
.ngb-h2h-score b.is-w { color: var(--pos); }

/* slate cards: the status pill replaces the MLB weather line. Wider min
   column than MLB (184 vs 170) because two wide NFL crests flank the label;
   the label itself never wraps and the pill uses the short unlock form. */
.ngb .gb-slate { grid-template-columns: repeat(auto-fill, minmax(184px, 1fr)); }
.ngb .gb-slate-match { white-space: nowrap; }
.ngb .gb-slate-logo { width: 28px; height: 18px; }
.ngb .gb-slate-wx { margin-top: .55rem; }
.ngb .gb-slate-wx .ngb-status { font-size: .58rem; padding: .08rem .5rem; }

/* ============================================================
   HUB  (/nfl/game-breakdowns/)
   ============================================================ */
.nbh { max-width: 1000px; margin: 0 auto; }
.nbh-hero p { max-width: 66ch; }
.nbh-counts { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.nbh-count { display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; border-radius: 99px; padding: .2rem .7rem; font-size: .72rem; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; background: var(--surface-raise); color: var(--text-secondary); border: 1px solid var(--hairline); }
.nbh-count.is-ready { color: var(--pos); }
.nbh-count.is-pending { color: var(--warn); }
.nbh-weeks { display: flex; gap: .5rem; flex-wrap: wrap; margin: 1.1rem 0 1.6rem; }
.nbh-weeks a { white-space: nowrap; font-size: .8rem; padding: .3rem .75rem; border: 1px solid var(--border-color); border-radius: 99px; color: var(--text-secondary); text-decoration: none; }
.nbh-weeks a:hover { color: var(--text-primary); border-color: var(--text-muted); }
.nbh-weeks a.on { color: var(--text-primary); background: var(--bg-card); font-weight: 600; }
.nbh-day { display: flex; align-items: baseline; gap: .75rem; margin: 1.6rem 0 .75rem; }
.nbh-day h2 { font-family: var(--font-display); font-size: 1.05rem; color: var(--text-primary); margin: 0; letter-spacing: .2px; }
.nbh-day span { font-size: .74rem; color: var(--text-muted); white-space: nowrap; }
.nbh-day::after { content: ''; flex: 1 1 auto; height: 1px; background: var(--hairline); }
.nbh-card { display: block; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 14px; padding: 1.25rem 1.5rem; margin-bottom: .9rem; color: inherit; text-decoration: none; transition: border-color .15s ease; }
.nbh-card:hover { border-color: var(--border-strong); color: inherit; }
.nbh-card:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.nbh-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
.nbh-teams { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .5rem; font-weight: 700; color: var(--text-primary); font-size: .98rem; }
.nbh-teams small { color: var(--text-muted); font-weight: 500; font-size: .78rem; font-variant-numeric: tabular-nums; }
.nbh-teams .at { color: var(--text-muted); font-weight: 500; font-size: .85rem; }
.nbh-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .9rem; font-size: .78rem; color: var(--text-muted); }
.nbh-meta svg { width: 13px; height: 13px; vertical-align: -2px; margin-right: .2rem; }
.nbh-market { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; margin-top: .7rem; font-size: .86rem; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.nbh-market span { white-space: nowrap; }
.nbh-market b { color: var(--text-primary); font-weight: 700; }
.nbh-market small { font-size: .68rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--text-muted); margin-right: .3rem; }
.nbh-card h3 { font-size: 1.2rem; font-weight: 800; color: var(--text-primary); line-height: 1.3; margin: .9rem 0 .5rem; font-family: var(--font-display); letter-spacing: -.005em; }
.nbh-card ul.nbh-snap { list-style: none; margin: 0 0 .9rem; padding: 0; }
.nbh-card ul.nbh-snap li { position: relative; padding: .22rem 0 .22rem 1.1rem; color: var(--text-secondary); font-size: .88rem; line-height: 1.45; }
.nbh-card ul.nbh-snap li::before { content: ''; position: absolute; left: 0; top: .68rem; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }
.nbh-verdict { border-top: 1px solid var(--hairline); padding-top: .8rem; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: start; }
.nbh-verdict .plays div { font-size: .88rem; color: var(--text-primary); font-weight: 600; padding: .12rem 0; }
.nbh-verdict .plays span { color: var(--text-muted); font-weight: 700; font-size: .66rem; letter-spacing: 1.1px; text-transform: uppercase; margin-right: .5rem; white-space: nowrap; }
.nbh-conf { text-align: right; min-width: 96px; }
.nbh-conf .n { font-family: var(--font-display); font-size: 1.5rem; color: var(--text-primary); font-variant-numeric: tabular-nums; line-height: 1; }
.nbh-conf .n small { font-size: .8rem; color: var(--text-muted); font-family: var(--font-body); }
.nbh-conf .pips { display: flex; gap: 2px; justify-content: flex-end; margin: .35rem 0 .2rem; }
.nbh-conf .pips i { width: 8px; height: 8px; border-radius: 2px; background: var(--surface-raise); border: 1px solid var(--hairline); display: inline-block; }
.nbh-conf .pips i.on { background: var(--text-primary); border-color: transparent; }
.nbh-conf .l { font-size: .62rem; letter-spacing: 1.3px; text-transform: uppercase; color: var(--text-muted); }
.nbh-more { font-size: .84rem; color: var(--accent); font-weight: 600; margin-top: .5rem; display: inline-flex; align-items: center; gap: .3rem; }
.nbh-more svg { width: 14px; height: 14px; }
.nbh-unlock { display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; margin-top: .9rem; border-radius: 99px; padding: .22rem .75rem; font-size: .7rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--warn); background: color-mix(in srgb, var(--warn) 12%, transparent); border: 1px solid color-mix(in srgb, var(--warn) 40%, transparent); }
.nbh-unlock svg { width: 12px; height: 12px; }
.nbh-km { list-style: none; margin: .75rem 0 0; padding: 0; }
.nbh-km li { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .6rem; padding: .35rem 0; border-top: 1px solid var(--hairline); font-size: .84rem; color: var(--text-secondary); }
.nbh-km li:first-child { border-top: 0; }
.nbh-km .who { font-weight: 600; color: var(--text-primary); }
.nbh-km .who small { color: var(--text-muted); font-weight: 500; }
.nbh-km .vs { white-space: nowrap; }
.nbh-km .fpa { white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--text-muted); }
.nbh-km .ngb-edge { margin-left: auto; }
.nbh-wx { display: flex; align-items: center; gap: .4rem; margin-top: .7rem; font-size: .78rem; color: var(--text-muted); }
.nbh-wx svg { width: 14px; height: 14px; flex: 0 0 auto; }
.nbh-empty { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 14px; padding: 2.5rem; text-align: center; color: var(--text-secondary); }

/* ---- responsive ---- */
@media (max-width: 900px) {
    .ngb-dvp-grid, .ngb-dfs-grid, .ngb-inj-grid, .ngb-form-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .ngb .gb-team-logo { width: 66px; height: 44px; }
    .ngb .gb-slate { grid-auto-columns: 178px; }
    .ngb-why { padding-left: 0; text-align: center; }
    .ngb .gb-key { flex: 1 1 33.333%; min-width: 33.333%; }
    .ngb-moves { gap: .4rem 1rem; font-size: .76rem; }
    .ngb-book { margin-left: 0; }
    .ngb-dvp-cells { gap: .3rem; }
    .ngb-dvp-rank { font-size: 1.1rem; }
    .ngb-inj-list li { grid-template-columns: 66px minmax(0, 1fr) auto; }
    .ngb-inj-what { grid-column: 2; font-size: .74rem; }
    .ngb-inj-imp { grid-row: 1 / span 2; }
    .nbh-card { padding: 1.05rem 1.1rem; }
    .nbh-verdict { grid-template-columns: 1fr; }
    .nbh-conf { text-align: left; }
    .nbh-conf .pips { justify-content: flex-start; }
    .nbh-km .ngb-edge { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .nbh-card { transition: none; }
}
