/* NextBonus V1 fixed semantic typography
   Non-marketing App UI uses a closed text-style system: selecting a type style
   fixes size, line-height, weight, style and tracking together. Components may
   still choose semantic tone/state, but may not tune weight locally. Marketing
   artwork/posters remain exempt through data-nb-typography-exempt="marketing". */

:root{
  --nb-label-secondary-strong:rgba(60,60,67,.72);
  --nb-label-tertiary-strong:rgba(60,60,67,.42);
}

:root[data-nb-appearance="dark"]{
  --nb-label-secondary-strong:rgba(235,235,245,.72);
  --nb-label-tertiary-strong:rgba(235,235,245,.42);
}

/* Fixed text-style weights. The #app scope intentionally wins over old
   component-level declarations and the earlier temporary emphasis layer. */
#app [data-nb-type="large-title"],
#nb-application-handoff-root [data-nb-type="large-title"]{font-weight:600!important}
#app [data-nb-type="title1"],
#nb-application-handoff-root [data-nb-type="title1"]{font-weight:500!important}
#app [data-nb-type="title2"],
#nb-application-handoff-root [data-nb-type="title2"]{font-weight:600!important}
#app [data-nb-type="title3"],
#nb-application-handoff-root [data-nb-type="title3"]{font-weight:600!important}
#app [data-nb-type="headline"],
#nb-application-handoff-root [data-nb-type="headline"]{font-weight:600!important}
#app [data-nb-type="body"],
#nb-application-handoff-root [data-nb-type="body"]{font-weight:400!important}
#app [data-nb-type="callout"],
#nb-application-handoff-root [data-nb-type="callout"]{font-weight:500!important}
#app [data-nb-type="subheadline"],
#nb-application-handoff-root [data-nb-type="subheadline"]{font-weight:400!important}
#app [data-nb-type="footnote"],
#nb-application-handoff-root [data-nb-type="footnote"]{font-weight:400!important}
#app [data-nb-type="caption1"],
#nb-application-handoff-root [data-nb-type="caption1"]{font-weight:400!important}
#app [data-nb-type="caption2"],
#nb-application-handoff-root [data-nb-type="caption2"]{font-weight:500!important}
#app [data-nb-type="display-value"],
#app [data-nb-type="display-value-compact"],
#app [data-nb-type="result-value"],
#nb-application-handoff-root [data-nb-type="display-value"],
#nb-application-handoff-root [data-nb-type="display-value-compact"],
#nb-application-handoff-root [data-nb-type="result-value"]{font-weight:700!important}

/* State/tone may change color, never type weight. */
.nav-item:not(.login-item)[data-nb-type]{color:var(--nb-label-primary)!important}
.nav-item:not(.login-item).active[data-nb-type]{color:var(--nb-system-blue)!important}

.discover-page .pill[data-nb-type],
.add-product-modal .pill[data-nb-type],
.add-more-filter button[data-nb-type],
.tab[data-nb-type],
.mock-tabs .tab[data-nb-type],
.mock-filter-select[data-nb-type],
.mock-status-select[data-nb-type]{color:var(--nb-label-secondary-strong)!important}
.discover-page .pill.active[data-nb-type],
.add-product-modal .pill.active[data-nb-type],
.add-more-filter button.active[data-nb-type],
.tab.active[data-nb-type],
.mock-tabs .tab.active[data-nb-type]{color:var(--nb-system-blue)!important}

/* Product/card names are scan targets; metadata stays subordinate. */
.nb-offer-card .nb-offer-name[data-nb-type],
.fallback-offer-card .offer-name[data-nb-type],
.nb-watchlist-copy strong[data-nb-type],
.v4-pp-product[data-nb-type],
.owned-product-copy strong[data-nb-type],
.owned-product-meta strong[data-nb-type],
.v10-info-copy strong[data-nb-type],
.v4-pd-title-row h1[data-nb-type],
.pd-name[data-nb-type],
.overview-name[data-nb-type],
.nb-account-row strong[data-nb-type]{color:var(--nb-label-primary)!important}

/* Attention: desktop keeps product context quieter; mobile pending rows
   promote product and action to the same primary Headline level. */
.att-product-copy strong[data-nb-type],
.att-product[data-nb-type]{color:var(--nb-label-secondary-strong)!important}
.att-action-cell strong[data-nb-type],
.att-action[data-nb-type]{color:var(--nb-label-primary)!important}
.att-product-copy small[data-nb-type],
.att-action-cell small[data-nb-type],
.att-time[data-nb-type],
.history-status[data-nb-type]{color:var(--nb-label-secondary-strong)!important}

@media(max-width:780px){
  .attention-page .attention-row:not(.history-row) .att-product-copy strong[data-nb-type],
  .attention-page .attention-row:not(.history-row) .att-action-cell strong[data-nb-type]{
    color:var(--nb-label-primary)!important;
  }
}

/* Supporting text: reserve tertiary for genuinely optional information. */
.nb-watchlist-header p[data-nb-type],
.nb-watchlist-copy small[data-nb-type],
.v4-products-head>div>div[data-nb-type],
.mock-page-subtitle[data-nb-type],
.v4-pp-action[data-nb-type],
.v4-pp-time[data-nb-type],
.v4-pd-facts small[data-nb-type],
.fact-label[data-nb-type],
.v4-pd-att-copy small[data-nb-type],
.v4-feature-benefit small[data-nb-type],
.v4-benefit-row small[data-nb-type],
.timeline-date[data-nb-type],
.nb-account-row span[data-nb-type],
.nb-account-notice p[data-nb-type]{color:var(--nb-label-secondary-strong)!important}

/* Assessment / Offer Detail: decision support must remain readable. */
.v4-decision-copy[data-nb-type],
.decision-brand-copy[data-nb-type],
.decision-sub[data-nb-type],
.v4-result-meta[data-nb-type],
.mock-result-block .result-meta[data-nb-type],
.result-meta[data-nb-type],
.v4-metric .metric-label[data-nb-type],
.mock-result-block .metric-label[data-nb-type],
.metric-label[data-nb-type],
.v4-metric .metric-sub[data-nb-type],
.result-disclaimer[data-nb-type],
.v4-result-note[data-nb-type],
.v4-security-line[data-nb-type],
.v4-trust-row b[data-nb-type],
.v4-trust-row small[data-nb-type],
.detail-trust-row span[data-nb-type],
.assessment-help[data-nb-type],
.assessment-footnote[data-nb-type],
.v5-short-summary[data-nb-type],
.v5-report-summary[data-nb-type],
.v5-tip-list p[data-nb-type],
.assessment-result-reasons p[data-nb-type],
.nb-oh-stat-name[data-nb-type],
.nb-oh-note[data-nb-type],
.nb-oh-empty[data-nb-type],
.nb-oh-axis[data-nb-type]{color:var(--nb-label-secondary-strong)!important}

.v4-metric .metric-value[data-nb-type],
.mock-result-block .metric-value[data-nb-type],
.metric-value[data-nb-type]{color:var(--nb-label-primary)!important}

/* Tiny metadata can stay light, but not disappear. */
.nb-offer-card .nb-provider-text[data-nb-type],
.nb-offer-card .nb-tag[data-nb-type],
.fallback-offer-card .provider[data-nb-type],
.fallback-offer-card .soft-tag[data-nb-type],
.nb-watchlist-provider[data-nb-type],
.nb-watchlist-status[data-nb-type],
.nb-watchlist-count[data-nb-type],
.mock-page-count[data-nb-type],
.section-count[data-nb-type]{color:var(--nb-label-secondary-strong)!important}

/* Keep genuinely de-emphasized / unavailable copy tertiary. */
.legal[data-nb-type],
.prototype-note[data-nb-type],
.nb-account-source[data-nb-type],
.nb-watchlist-section-empty[data-nb-type],
.nb-watchlist-empty p[data-nb-type]{color:var(--nb-label-tertiary-strong)!important}
