.sentiment-page {
    width: min(100% - 2rem, var(--site-width));
    margin: 0 auto;
    padding: 1rem 0 3rem;
    color: var(--brand-deep);
}

.sentiment-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 0.38rem;
    align-items: center;
    margin: 0 0 0.8rem;
    color: var(--muted);
    font-size: 0.82rem;
    font-weight: 700;
}

.sentiment-breadcrumb a {
    color: var(--brand);
}

.sentiment-hero,
.sentiment-panel,
.sentiment-feed,
.sentiment-source-panel,
.sentiment-meta-grid > div,
.sentiment-insight,
.sentiment-article {
    border: 1px solid #c8d6e4;
    background: linear-gradient(135deg, #ffffff 0%, #f7fafc 100%);
}

.sentiment-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(14rem, 18rem);
    gap: 1.2rem;
    align-items: center;
    padding: clamp(1rem, 2.4vw, 1.65rem);
}

.sentiment-hero-copy {
    min-width: 0;
}

.sentiment-kicker,
.sentiment-section-head p,
.sentiment-source-panel > div p {
    margin: 0;
    color: #425a73;
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.sentiment-hero h1 {
    margin: 0.2rem 0 0;
    color: #0b1d32;
    font-family: "Source Serif 4", Georgia, serif;
    font-size: clamp(2.2rem, 4.7vw, 4.65rem);
    line-height: 0.95;
    letter-spacing: 0;
    text-wrap: balance;
}

.sentiment-subtitle {
    max-width: 76rem;
    margin: 0.65rem 0 0;
    color: #36516d;
    font-size: 1rem;
    font-weight: 650;
    line-height: 1.45;
}

.sentiment-link-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 1rem;
}

.sentiment-link-row a,
.sentiment-article a {
    color: var(--brand);
}

.sentiment-link-row a {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.38rem 0.72rem;
    border: 1px solid #b8cada;
    background: #f7fbff;
    font-size: 0.78rem;
    font-weight: 900;
    text-decoration: none;
}

.sentiment-link-row a:hover,
.sentiment-link-row a:focus {
    background: var(--brand);
    color: #fff;
}

.sentiment-score-card {
    display: grid;
    gap: 0.15rem;
    justify-items: start;
    align-self: stretch;
    align-content: center;
    padding: 1rem;
    border: 1px solid #b8cada;
    background: #f8fbfe;
}

.sentiment-tone-positive .sentiment-score-card {
    border-color: #7dc39f;
    background: linear-gradient(135deg, #effaf3 0%, #ffffff 100%);
}

.sentiment-tone-negative .sentiment-score-card {
    border-color: #df9b72;
    background: linear-gradient(135deg, #fff4ef 0%, #ffffff 100%);
}

.sentiment-tone-neutral .sentiment-score-card {
    border-color: #91bed5;
    background: linear-gradient(135deg, #eff8fc 0%, #ffffff 100%);
}

.sentiment-tone-positive .sentiment-score-card strong {
    color: #0b7a4b;
}

.sentiment-tone-negative .sentiment-score-card strong {
    color: #b64a12;
}

.sentiment-tone-neutral .sentiment-score-card strong {
    color: #2f85ae;
}

.sentiment-score-card span,
.sentiment-score-card small,
.sentiment-insight span,
.sentiment-meta-grid span {
    color: #526579;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.sentiment-score-card strong {
    font-size: clamp(2.4rem, 4vw, 4.4rem);
    line-height: 1;
}

.sentiment-score-card em {
    font-style: normal;
    font-weight: 900;
}

.sentiment-meta-grid,
.sentiment-insight-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.7rem;
    margin-top: 0.7rem;
}

.sentiment-meta-grid > div,
.sentiment-insight {
    min-width: 0;
    padding: 0.85rem;
}

.sentiment-meta-grid strong,
.sentiment-insight strong {
    display: block;
    margin-top: 0.22rem;
    color: #06182c;
    font-size: 1.08rem;
    overflow-wrap: anywhere;
}

.sentiment-meta-grid small,
.sentiment-insight p {
    display: block;
    margin: 0.28rem 0 0;
    color: #425a73;
    font-size: 0.85rem;
    font-weight: 650;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.sentiment-insight {
    border-left-width: 4px;
}

.sentiment-tone-positive {
    border-left-color: #0b7a4b;
}

.sentiment-tone-negative {
    border-left-color: #b64a12;
}

.sentiment-tone-neutral {
    border-left-color: #2f85ae;
}

.sentiment-analytics-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 0.7rem;
    margin-top: 0.7rem;
}

.sentiment-dashboard-grid {
    align-items: start;
}

.sentiment-pair-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sentiment-dashboard-lower-grid {
    grid-template-columns: minmax(22rem, 0.95fr) minmax(24rem, 1.05fr);
}

.sentiment-ticker-analysis-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sentiment-split-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
    margin-top: 0.7rem;
}

.sentiment-wide-panel {
    min-height: 0;
}

.sentiment-pressure-panel,
.sentiment-reaction-panel {
    margin-top: 0.7rem;
}

.sentiment-panel,
.sentiment-feed,
.sentiment-source-panel {
    min-width: 0;
    padding: clamp(0.82rem, 1.5vw, 1rem);
}

.sentiment-section-head,
.sentiment-source-panel {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.sentiment-section-head h2,
.sentiment-source-panel h2 {
    margin: 0.12rem 0 0;
    font-family: "Source Serif 4", Georgia, serif;
    font-size: clamp(1.35rem, 2vw, 1.9rem);
    line-height: 1.02;
    text-wrap: balance;
}

.sentiment-section-head > span {
    color: #425a73;
    font-size: 0.78rem;
    font-weight: 900;
    white-space: nowrap;
}

.sentiment-panel-link {
    color: #003366;
    font-size: 0.78rem;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

.sentiment-panel-link:hover,
.sentiment-panel-link:focus {
    text-decoration: underline;
}

.sentiment-mix,
.sentiment-bars {
    display: grid;
    gap: 0.52rem;
    margin-top: 0.82rem;
}

.sentiment-pressure-bars {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sentiment-mix-row,
.sentiment-bar-row {
    display: grid;
    grid-template-columns: minmax(7rem, 1fr) 3rem minmax(8rem, 1.5fr);
    gap: 0.6rem;
    align-items: center;
    min-width: 0;
    padding-bottom: 0.52rem;
    border-bottom: 1px solid #dbe5ef;
    font-weight: 900;
}

.sentiment-mix-row span,
.sentiment-bar-row span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.sentiment-bar-link {
    color: #06182c;
    text-decoration: none;
}

.sentiment-bar-link:hover,
.sentiment-bar-link:focus {
    color: #003366;
    background: #f8fbfe;
}

.sentiment-bar-link:hover span,
.sentiment-bar-link:focus span {
    text-decoration: underline;
}

.sentiment-mix-row i,
.sentiment-bar-row i {
    display: block;
    height: 0.64rem;
    border: 1px solid #c8d6e4;
    background:
        linear-gradient(90deg, #003366 0%, #0b7a4b var(--bar), transparent var(--bar)),
        #f0f5f9;
}

.sentiment-tone-negative.sentiment-bar-row i,
.sentiment-bar-row.sentiment-tone-negative i {
    background:
        linear-gradient(90deg, #b64a12 0%, #d0641f var(--bar), transparent var(--bar)),
        #f0f5f9;
}

.sentiment-tone-neutral.sentiment-bar-row i,
.sentiment-bar-row.sentiment-tone-neutral i {
    background:
        linear-gradient(90deg, #2f85ae 0%, #5ba6c9 var(--bar), transparent var(--bar)),
        #f0f5f9;
}

.sentiment-mix-row.is-negative i {
    background:
        linear-gradient(90deg, #b64a12 0%, #d0641f var(--bar), transparent var(--bar)),
        #f0f5f9;
}

.sentiment-mix-row.is-neutral i {
    background:
        linear-gradient(90deg, #2f85ae 0%, #5ba6c9 var(--bar), transparent var(--bar)),
        #f0f5f9;
}

.sentiment-context-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
    margin-top: 0.7rem;
}

.sentiment-context-grid > div {
    min-width: 0;
    padding: 0.72rem;
    border: 1px solid #d6e2ee;
    background: #f8fbfe;
}

.sentiment-context-grid span,
.sentiment-badge-row span {
    color: #526579;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.sentiment-context-grid strong {
    display: block;
    margin-top: 0.2rem;
    color: #06182c;
    font-size: 1.05rem;
    line-height: 1.15;
}

.sentiment-context-grid small,
.sentiment-reaction-summary {
    color: #425a73;
    font-weight: 700;
    line-height: 1.4;
}

.sentiment-badge-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.85rem;
}

.sentiment-badge-row span {
    padding: 0.28rem 0.48rem;
    border: 1px solid #c8d6e4;
    background: #ffffff;
    color: #003366;
}

.sentiment-feed {
    margin-top: 0.7rem;
}

.sentiment-rank-list,
.sentiment-mini-feed {
    display: grid;
    gap: 0.48rem;
    margin-top: 0.82rem;
}

.sentiment-rank-card,
.sentiment-mini-item {
    display: grid;
    grid-template-columns: minmax(4rem, max-content) minmax(2.8rem, max-content) minmax(0, 1fr);
    gap: 0.55rem;
    align-items: start;
    min-width: 0;
    padding: 0.62rem 0.68rem;
    border: 1px solid #c8d6e4;
    border-left-width: 4px;
    background: #f8fbfe;
    color: #0b1d32;
    text-decoration: none;
}

.sentiment-rank-card:hover,
.sentiment-rank-card:focus,
.sentiment-mini-item:hover,
.sentiment-mini-item:focus {
    border-color: #003366;
    background: #ffffff;
}

.sentiment-card-symbol,
.sentiment-rank-card > span,
.sentiment-mini-item > strong {
    color: #003366;
    font-weight: 950;
    text-decoration: none;
}

.sentiment-card-symbol:hover,
.sentiment-card-symbol:focus,
.sentiment-rank-card em a:hover,
.sentiment-rank-card em a:focus {
    text-decoration: underline;
}

.sentiment-rank-card > strong {
    justify-self: start;
    min-width: 2.4rem;
    padding: 0.18rem 0.36rem;
    border: 1px solid #b8cada;
    background: #ffffff;
    text-align: center;
}

.sentiment-rank-card em,
.sentiment-mini-item > span {
    min-width: 0;
    overflow-wrap: anywhere;
    color: #0b1d32;
    font-style: normal;
    font-weight: 850;
}

.sentiment-rank-card em a {
    color: inherit;
}

.sentiment-rank-card > small,
.sentiment-mini-item > small {
    grid-column: 1 / -1;
    color: #425a73;
    font-weight: 650;
    line-height: 1.35;
}

.sentiment-market-badge {
    grid-column: 1 / -1;
    display: inline-flex;
    align-items: center;
    justify-self: start;
    gap: 0.28rem;
    min-width: 0;
    max-width: 100%;
    padding: 0.22rem 0.42rem;
    border: 1px solid #b8cada;
    background: #ffffff;
    color: #003366;
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.15;
    text-decoration: none;
}

.sentiment-market-badge span,
.sentiment-market-badge strong,
.sentiment-market-badge small {
    min-width: 0;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

.sentiment-market-badge small {
    color: #425a73;
    letter-spacing: 0.08em;
}

.sentiment-market-badge:hover,
.sentiment-market-badge:focus {
    border-color: #003366;
    background: #003366;
    color: #ffffff;
}

.sentiment-market-badge:hover small,
.sentiment-market-badge:focus small {
    color: #ffffff;
}

.sentiment-panel > .sentiment-muted,
.sentiment-bars > .sentiment-muted,
.sentiment-rank-list > .sentiment-muted,
.sentiment-mini-feed > .sentiment-muted {
    margin: 0.82rem 0 0;
    padding: 0.72rem;
    border: 1px solid #d6e2ee;
    background: #f8fbfe;
}

.sentiment-compact-bars .sentiment-bar-row {
    grid-template-columns: minmax(9rem, 1fr) 3.5rem minmax(7rem, 1fr);
}

.sentiment-history-panel {
    margin-top: 0.7rem;
}

.sentiment-history-chart {
    position: relative;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(0.35rem, 1fr));
    align-items: center;
    gap: 0.14rem;
    min-height: 7.6rem;
    margin-top: 0.82rem;
    padding: 0.65rem 0.48rem;
    border: 1px solid #dbe5ef;
    background:
        linear-gradient(180deg, rgba(214, 226, 238, 0.42) 0 1px, transparent 1px 25%, rgba(214, 226, 238, 0.42) 25% calc(25% + 1px), transparent calc(25% + 1px) 75%, rgba(214, 226, 238, 0.42) 75% calc(75% + 1px), transparent calc(75% + 1px)),
        linear-gradient(180deg, transparent calc(50% - 1px), #8092a5 calc(50% - 1px), #8092a5 calc(50% + 1px), transparent calc(50% + 1px)),
        #f8fbfe;
}

.sentiment-history-baseline {
    position: absolute;
    left: 0.6rem;
    right: 0.6rem;
    top: 50%;
    height: 1px;
    background: #526579;
    opacity: 0.42;
}

.sentiment-history-column {
    position: relative;
    height: 6rem;
}

.sentiment-history-bar {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 50%;
    min-height: 0.22rem;
    height: var(--height);
    background: linear-gradient(180deg, #0b7a4b, #2f85ae);
}

.sentiment-history-bar.is-negative {
    top: 50%;
    bottom: auto;
    background: linear-gradient(180deg, #d0641f, #b64a12);
}

.sentiment-history-neutral {
    background: #2f85ae;
}

.sentiment-history-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-top: 0.55rem;
    color: #425a73;
    font-size: 0.82rem;
    font-weight: 800;
}

.sentiment-history-legend span {
    display: inline-flex;
    gap: 0.35rem;
    align-items: center;
}

.sentiment-dot {
    width: 0.62rem;
    height: 0.62rem;
    display: inline-block;
    border-radius: 50%;
    background: #2f85ae;
}

.sentiment-dot.is-positive {
    background: #0b7a4b;
}

.sentiment-dot.is-negative {
    background: #b64a12;
}

.sentiment-article-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 0.7rem;
    margin-top: 1rem;
}

.sentiment-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    justify-content: center;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #dbe5ef;
}

.sentiment-pagination a,
.sentiment-pagination span,
.sentiment-pagination strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.1rem;
    padding: 0.42rem 0.74rem;
    border: 1px solid #b8cada;
    background: #f8fbfe;
    color: #003366;
    font-size: 0.82rem;
    font-weight: 900;
    text-decoration: none;
}

.sentiment-pagination span {
    color: #7a8794;
}

.sentiment-pagination a:hover,
.sentiment-pagination a:focus {
    background: #003366;
    color: #fff;
}

.sentiment-article {
    display: grid;
    gap: 0.62rem;
    align-content: start;
    min-width: 0;
    padding: 0.82rem;
    border-left-width: 4px;
}

.sentiment-article-top {
    display: flex;
    flex-wrap: wrap;
    gap: 0.38rem;
    align-items: center;
}

.sentiment-article-top span,
.sentiment-article-top mark {
    padding: 0.22rem 0.42rem;
    border: 1px solid #c8d6e4;
    background: #f8fbfe;
    color: #003366;
    font-size: 0.7rem;
    font-weight: 900;
    text-transform: uppercase;
}

.sentiment-article h3 {
    margin: 0;
    font-family: "Source Serif 4", Georgia, serif;
    font-size: clamp(1.02rem, 1.45vw, 1.18rem);
    line-height: 1.12;
    text-wrap: balance;
}

.sentiment-article p {
    margin: 0;
    color: #36516d;
    font-weight: 600;
    line-height: 1.45;
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.sentiment-topic-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.sentiment-topic-row span {
    padding: 0.18rem 0.38rem;
    border: 1px solid #c9d9e5;
    background: #f5f9fc;
    color: #3c5870;
    font-size: 0.65rem;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.sentiment-article dl,
.sentiment-source-panel dl {
    display: grid;
    gap: 0.4rem;
    margin: 0;
}

.sentiment-article dl div,
.sentiment-source-panel dl div {
    display: flex;
    justify-content: space-between;
    gap: 0.8rem;
    border-top: 1px solid #dbe5ef;
    padding-top: 0.4rem;
}

.sentiment-article dt,
.sentiment-source-panel dt {
    color: #526579;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.sentiment-article dd,
.sentiment-source-panel dd {
    margin: 0;
    text-align: right;
    font-weight: 800;
}

.sentiment-source-panel {
    margin-top: 0.7rem;
    align-items: stretch;
}

.sentiment-source-panel dl {
    min-width: min(100%, 34rem);
}

.sentiment-empty {
    grid-column: 1 / -1;
    padding: 1.25rem;
    border: 1px solid #c8d6e4;
    background: #f8fbfe;
}

.sentiment-empty h3 {
    margin: 0 0 0.35rem;
    font-family: "Source Serif 4", Georgia, serif;
}

.sentiment-muted {
    color: #526579;
    font-weight: 700;
}

.sentiment-leader-band {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    margin-top: 0.7rem;
    padding: 1rem;
    border: 1px solid #c8d6e4;
    border-left-width: 4px;
    background: linear-gradient(135deg, #ffffff 0%, #f7fafc 100%);
}

.sentiment-leader-band h2 {
    margin: 0.15rem 0 0.35rem;
    font-family: "Source Serif 4", Georgia, serif;
    font-size: clamp(1.45rem, 2.4vw, 2.2rem);
    line-height: 1;
}

.sentiment-leader-band p:not(.sentiment-kicker) {
    margin: 0;
    color: #36516d;
    font-weight: 700;
    line-height: 1.4;
}

.sentiment-leader-band > strong {
    min-width: 4.2rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid #b8cada;
    background: #ffffff;
    color: #06182c;
    font-size: 1.65rem;
    text-align: center;
}

.sentiment-rollup-list {
    margin-top: 0.7rem;
    padding: clamp(0.82rem, 1.5vw, 1rem);
    border: 1px solid #c8d6e4;
    background: #ffffff;
}

.sentiment-group-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 0.75rem;
    margin-top: 0.85rem;
}

.sentiment-group-card {
    display: grid;
    align-content: start;
    gap: 0.62rem;
    min-width: 0;
    padding: 0.82rem;
    border: 1px solid #c8d6e4;
    border-left-width: 4px;
    background: linear-gradient(135deg, #ffffff 0%, #f8fbfe 100%);
}

.sentiment-group-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: start;
}

.sentiment-group-head h3 {
    margin: 0;
    font-family: "Source Serif 4", Georgia, serif;
    font-size: clamp(1.15rem, 1.7vw, 1.32rem);
    line-height: 1.08;
    text-wrap: balance;
}

.sentiment-group-head span {
    display: inline-block;
    margin-top: 0.28rem;
    color: #526579;
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.sentiment-group-head > strong {
    min-width: 3.2rem;
    padding: 0.35rem 0.45rem;
    border: 1px solid #b8cada;
    background: #ffffff;
    color: #06182c;
    font-size: 1.15rem;
    text-align: center;
}

.sentiment-group-bar {
    height: 0.62rem;
    border: 1px solid #c8d6e4;
    background: #eff5f9;
}

.sentiment-group-bar i {
    display: block;
    height: 100%;
    width: var(--bar);
    background: linear-gradient(90deg, #003366, #0b7a4b);
}

.sentiment-tone-negative .sentiment-group-bar i {
    background: linear-gradient(90deg, #b64a12, #d0641f);
}

.sentiment-tone-neutral .sentiment-group-bar i {
    background: linear-gradient(90deg, #2f85ae, #5ba6c9);
}

.sentiment-group-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
    margin: 0;
}

.sentiment-group-stats div {
    min-width: 0;
    padding: 0.48rem;
    border: 1px solid #d6e2ee;
    background: #f8fbfe;
}

.sentiment-group-stats dt {
    color: #526579;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.sentiment-group-stats dd {
    margin: 0.15rem 0 0;
    color: #06182c;
    font-weight: 950;
}

.sentiment-tone-strip,
.sentiment-group-evidence,
.sentiment-ticker-chip nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.sentiment-group-evidence span,
.sentiment-tone-strip span {
    padding: 0.22rem 0.42rem;
    border: 1px solid #d6e2ee;
    background: #f8fbfe;
    font-size: 0.7rem;
    font-weight: 900;
}

.sentiment-group-evidence span {
    color: #425a73;
}

.sentiment-tone-strip .is-positive {
    color: #0b7a4b;
}

.sentiment-tone-strip .is-neutral {
    color: #2f85ae;
}

.sentiment-tone-strip .is-negative {
    color: #b64a12;
}

.sentiment-context-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: start;
    min-height: 2rem;
    padding: 0.38rem 0.68rem;
    border: 1px solid #b8cada;
    background: #ffffff;
    color: #003366;
    font-size: 0.78rem;
    font-weight: 900;
    text-decoration: none;
}

.sentiment-context-link:hover,
.sentiment-context-link:focus {
    border-color: #003366;
    background: #003366;
    color: #ffffff;
}

.sentiment-ticker-stack {
    display: grid;
    gap: 0.38rem;
}

.sentiment-ticker-chip {
    display: grid;
    gap: 0.35rem;
    min-width: 0;
    padding: 0.5rem;
    border: 1px solid #d6e2ee;
    border-left-width: 3px;
    background: #ffffff;
}

.sentiment-ticker-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    min-width: 0;
    color: #003366;
    font-weight: 950;
    text-decoration: none;
}

.sentiment-ticker-main strong {
    min-width: 0;
    overflow-wrap: anywhere;
}

.sentiment-ticker-main span {
    min-width: 2.2rem;
    padding: 0.15rem 0.35rem;
    border: 1px solid #b8cada;
    background: #f8fbfe;
    color: #06182c;
    text-align: center;
}

.sentiment-ticker-chip small {
    color: #425a73;
    font-weight: 750;
    line-height: 1.3;
}

.sentiment-ticker-chip nav a {
    color: #003366;
    font-size: 0.75rem;
    font-weight: 900;
}

/* Sentiment dashboard evidence model */
.sentiment-dashboard-v4 {
    --sentiment-positive: #087a50;
    --sentiment-positive-soft: #e7f6ef;
    --sentiment-neutral: #287da4;
    --sentiment-neutral-soft: #eaf4f8;
    --sentiment-negative: #b34b20;
    --sentiment-negative-soft: #fff0e9;
    --sentiment-ink: #071c32;
    --sentiment-rule: #c7d7e5;
}

.sentiment-dashboard-hero {
    position: relative;
    overflow: hidden;
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 19rem);
    min-height: 21rem;
    border-top: 5px solid var(--sentiment-neutral);
    background:
        radial-gradient(circle at 88% 18%, rgba(40, 125, 164, 0.14), transparent 24rem),
        linear-gradient(135deg, #ffffff 0%, #f3f8fc 100%);
}

.sentiment-dashboard-hero.sentiment-tone-positive {
    border-top-color: var(--sentiment-positive);
}

.sentiment-dashboard-hero.sentiment-tone-negative {
    border-top-color: var(--sentiment-negative);
}

.sentiment-dashboard-hero h1 {
    max-width: 58rem;
}

.sentiment-state-line {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1rem;
}

.sentiment-state-line p {
    max-width: 52rem;
    margin: 0;
    color: #38536c;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.4;
}

.sentiment-state-pill {
    flex: 0 0 auto;
    padding: 0.38rem 0.62rem;
    border: 1px solid #8eb9ce;
    background: var(--sentiment-neutral-soft);
    color: #175f82;
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.sentiment-tone-positive .sentiment-state-pill {
    border-color: #8ec7aa;
    background: var(--sentiment-positive-soft);
    color: var(--sentiment-positive);
}

.sentiment-tone-negative .sentiment-state-pill {
    border-color: #e0aa91;
    background: var(--sentiment-negative-soft);
    color: var(--sentiment-negative);
}

.sentiment-score-orbit {
    --orbit-colour: var(--sentiment-neutral);
    display: grid;
    place-items: center;
    width: min(100%, 17rem);
    aspect-ratio: 1;
    justify-self: end;
    padding: 0.75rem;
    border-radius: 50%;
    background: conic-gradient(var(--orbit-colour) calc(var(--score) * 1%), #dbe7ef 0);
    box-shadow: 0 1rem 2.5rem rgba(7, 28, 50, 0.12);
}

.sentiment-tone-positive .sentiment-score-orbit {
    --orbit-colour: var(--sentiment-positive);
}

.sentiment-tone-negative .sentiment-score-orbit {
    --orbit-colour: var(--sentiment-negative);
}

.sentiment-score-orbit > div {
    display: grid;
    place-content: center;
    width: 100%;
    height: 100%;
    padding: 1.2rem;
    border-radius: 50%;
    background: #ffffff;
    text-align: center;
}

.sentiment-score-orbit span,
.sentiment-score-orbit small {
    color: #526b83;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.sentiment-score-orbit strong {
    color: var(--orbit-colour);
    font-size: clamp(3.4rem, 6vw, 5.5rem);
    line-height: 0.95;
}

.sentiment-score-orbit em {
    margin: 0.22rem 0 0.35rem;
    color: var(--sentiment-ink);
    font-size: 0.9rem;
    font-style: normal;
    font-weight: 950;
}

.sentiment-command-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    border: 1px solid var(--sentiment-rule);
    border-top: 0;
    background: #ffffff;
}

.sentiment-command-strip article {
    min-width: 0;
    padding: 0.82rem 0.9rem;
    border-right: 1px solid #dbe5ed;
}

.sentiment-command-strip article:last-child {
    border-right: 0;
}

.sentiment-evidence-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin-top: 0.7rem;
    border: 1px solid var(--sentiment-rule, #c7d7e5);
    background: #ffffff;
}

.sentiment-evidence-strip article {
    min-width: 0;
    padding: 0.75rem 0.82rem;
    border-right: 1px solid #dbe5ed;
}

.sentiment-evidence-strip article:last-child {
    border-right: 0;
}

.sentiment-evidence-strip span,
.sentiment-evidence-strip small {
    display: block;
    color: #586f85;
    font-size: 0.68rem;
    font-weight: 850;
}

.sentiment-evidence-strip span {
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.sentiment-evidence-strip strong {
    display: block;
    margin: 0.18rem 0;
    color: #071c32;
    font-size: 1rem;
}

.sentiment-command-strip span,
.sentiment-command-strip small {
    display: block;
    color: #586f85;
    font-size: 0.68rem;
    font-weight: 850;
}

.sentiment-command-strip span {
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.sentiment-command-strip strong {
    display: block;
    margin: 0.2rem 0;
    color: var(--sentiment-ink);
    font-size: 1.35rem;
}

.sentiment-dashboard-v4 .sentiment-insight-grid {
    gap: 0;
    border: 1px solid var(--sentiment-rule);
    border-top: 0;
    background: #ffffff;
}

.sentiment-dashboard-v4 .sentiment-insight {
    border: 0;
    border-right: 1px solid #dbe5ed;
    border-left: 4px solid var(--sentiment-neutral);
    background: #ffffff;
}

.sentiment-dashboard-v4 .sentiment-insight:last-child {
    border-right: 0;
}

.sentiment-dashboard-v4 .sentiment-insight.sentiment-tone-positive {
    border-left-color: var(--sentiment-positive);
}

.sentiment-dashboard-v4 .sentiment-insight.sentiment-tone-negative {
    border-left-color: var(--sentiment-negative);
}

.sentiment-visual-grid {
    display: grid;
    grid-template-columns: 0.92fr 1.16fr 0.92fr;
    gap: 0.7rem;
    margin-top: 0.7rem;
}

.sentiment-breadth-visual {
    display: grid;
    grid-template-columns: minmax(8rem, 0.8fr) minmax(11rem, 1.2fr);
    gap: 1rem;
    align-items: center;
    margin-top: 1rem;
}

.sentiment-donut {
    display: grid;
    place-items: center;
    width: min(100%, 11rem);
    aspect-ratio: 1;
    justify-self: center;
    border-radius: 50%;
    background: conic-gradient(
        var(--sentiment-positive) 0 var(--positive),
        var(--sentiment-neutral) var(--positive) var(--neutral-end),
        var(--sentiment-negative) var(--neutral-end) 100%
    );
}

.sentiment-donut > div {
    display: grid;
    place-content: center;
    width: 67%;
    height: 67%;
    border-radius: 50%;
    background: #ffffff;
    text-align: center;
}

.sentiment-donut strong,
.sentiment-donut span {
    display: block;
}

.sentiment-donut strong {
    color: var(--sentiment-ink);
    font-size: 2.35rem;
    line-height: 1;
}

.sentiment-donut span {
    color: #60758a;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.sentiment-legend-list {
    display: grid;
    gap: 0.55rem;
}

.sentiment-legend-row {
    display: grid;
    grid-template-columns: 0.65rem minmax(0, 1fr) max-content max-content;
    gap: 0.45rem;
    align-items: center;
    padding-bottom: 0.48rem;
    border-bottom: 1px solid #dce6ee;
}

.sentiment-legend-row i {
    width: 0.55rem;
    height: 0.55rem;
    background: var(--sentiment-neutral);
}

.sentiment-legend-row.sentiment-tone-positive i {
    background: var(--sentiment-positive);
}

.sentiment-legend-row.sentiment-tone-negative i {
    background: var(--sentiment-negative);
}

.sentiment-legend-row span,
.sentiment-legend-row small {
    color: #526a80;
    font-size: 0.74rem;
    font-weight: 800;
}

.sentiment-legend-row strong {
    color: var(--sentiment-ink);
}

.sentiment-histogram {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.5rem;
    align-items: end;
    min-height: 13rem;
    margin-top: 1rem;
    padding: 0.75rem 0.6rem 0;
    border-bottom: 1px solid #91a6b8;
    background: repeating-linear-gradient(to top, transparent 0 2.75rem, #e6edf3 2.75rem calc(2.75rem + 1px));
}

.sentiment-histogram-column {
    display: grid;
    grid-template-rows: 1.3rem 8rem 2.7rem;
    gap: 0.35rem;
    align-items: end;
    height: 100%;
    text-align: center;
}

.sentiment-histogram-column strong {
    color: var(--sentiment-ink);
    font-size: 0.78rem;
}

.sentiment-histogram-column i {
    display: block;
    width: min(100%, 2.5rem);
    min-height: 0.24rem;
    height: var(--bar);
    justify-self: center;
    background: var(--sentiment-neutral);
}

.sentiment-histogram-column.sentiment-tone-positive i {
    background: linear-gradient(180deg, #20a46e, var(--sentiment-positive));
}

.sentiment-histogram-column.sentiment-tone-negative i {
    background: linear-gradient(180deg, #dc754b, var(--sentiment-negative));
}

.sentiment-histogram-column span {
    align-self: start;
    color: #526a80;
    font-size: 0.65rem;
    font-weight: 850;
    line-height: 1.15;
}

.sentiment-funnel {
    display: grid;
    gap: 0.72rem;
    margin-top: 1rem;
}

.sentiment-funnel > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    gap: 0.35rem 0.7rem;
}

.sentiment-funnel span {
    color: #314c66;
    font-size: 0.75rem;
    font-weight: 850;
}

.sentiment-funnel strong {
    color: var(--sentiment-ink);
    font-size: 0.82rem;
}

.sentiment-funnel i {
    grid-column: 1 / -1;
    display: block;
    height: 0.55rem;
    border: 1px solid #cbd9e4;
    background: linear-gradient(90deg, var(--sentiment-neutral) 0 var(--bar), #edf3f7 var(--bar));
}

.sentiment-confidence-key {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.35rem;
    margin-top: 1rem;
}

.sentiment-confidence-key > div {
    padding: 0.48rem;
    border: 1px solid #d4e0e9;
    border-top: 3px solid var(--sentiment-neutral);
    background: #f8fbfd;
}

.sentiment-confidence-key > .sentiment-tone-positive {
    border-top-color: var(--sentiment-positive);
}

.sentiment-confidence-key > .sentiment-tone-negative {
    border-top-color: var(--sentiment-negative);
}

.sentiment-confidence-key span,
.sentiment-confidence-key strong {
    display: block;
}

.sentiment-confidence-key span {
    color: #526a80;
    font-size: 0.61rem;
    font-weight: 850;
    line-height: 1.2;
    text-transform: uppercase;
}

.sentiment-confidence-key strong {
    margin-top: 0.18rem;
    color: var(--sentiment-ink);
}

.sentiment-sector-panel,
.sentiment-industry-panel,
.sentiment-method-panel {
    margin-top: 0.7rem;
}

.sentiment-section-note {
    margin: 0.55rem 0 0;
    color: #526a80;
    font-size: 0.78rem;
    font-weight: 700;
}

.sentiment-heat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.48rem;
    margin-top: 0.85rem;
}

.sentiment-heat-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    gap: 0.5rem;
    min-width: 0;
    padding: 0.72rem;
    border: 1px solid #c8d8e5;
    border-top: 4px solid var(--sentiment-neutral);
    background: var(--sentiment-neutral-soft);
    color: var(--sentiment-ink);
    text-decoration: none;
}

.sentiment-heat-card.sentiment-tone-positive {
    border-top-color: var(--sentiment-positive);
    background: var(--sentiment-positive-soft);
}

.sentiment-heat-card.sentiment-tone-negative {
    border-top-color: var(--sentiment-negative);
    background: var(--sentiment-negative-soft);
}

.sentiment-heat-card:hover,
.sentiment-heat-card:focus {
    border-color: #003366;
    background: #ffffff;
}

.sentiment-heat-card > span {
    min-width: 0;
    overflow-wrap: anywhere;
    font-weight: 950;
}

.sentiment-heat-card > strong {
    font-size: 1.35rem;
}

.sentiment-heat-card > div,
.sentiment-heat-card > i {
    grid-column: 1 / -1;
}

.sentiment-heat-card > div {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    color: #506980;
    font-weight: 800;
}

.sentiment-heat-card > i {
    display: block;
    height: 0.32rem;
    background: linear-gradient(90deg, var(--sentiment-neutral) 0 var(--score), rgba(255,255,255,0.7) var(--score));
}

.sentiment-heat-card.sentiment-tone-positive > i {
    background: linear-gradient(90deg, var(--sentiment-positive) 0 var(--score), rgba(255,255,255,0.7) var(--score));
}

.sentiment-heat-card.sentiment-tone-negative > i {
    background: linear-gradient(90deg, var(--sentiment-negative) 0 var(--score), rgba(255,255,255,0.7) var(--score));
}

.sentiment-dashboard-middle-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(22rem, 0.85fr);
    gap: 0.7rem;
    margin-top: 0.7rem;
}

.sentiment-reaction-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.45rem;
    margin-top: 0.85rem;
}

.sentiment-reaction-tile {
    display: grid;
    min-width: 0;
    padding: 0.65rem;
    border: 1px solid #d2dfe9;
    border-top: 3px solid var(--sentiment-neutral);
    background: #f8fbfd;
}

.sentiment-reaction-tile.sentiment-tone-positive {
    border-top-color: var(--sentiment-positive);
}

.sentiment-reaction-tile.sentiment-tone-negative {
    border-top-color: var(--sentiment-negative);
}

.sentiment-reaction-tile span {
    min-height: 2.1rem;
    color: #4b647b;
    font-size: 0.68rem;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
}

.sentiment-reaction-tile strong {
    margin-top: 0.3rem;
    color: var(--sentiment-ink);
    font-size: 1.5rem;
}

.sentiment-reaction-tile i {
    display: block;
    width: var(--bar);
    height: 0.35rem;
    margin-top: 0.55rem;
    background: var(--sentiment-neutral);
}

.sentiment-reaction-tile.sentiment-tone-positive i {
    background: var(--sentiment-positive);
}

.sentiment-reaction-tile.sentiment-tone-negative i {
    background: var(--sentiment-negative);
}

.sentiment-country-table {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem;
    margin-top: 0.85rem;
}

.sentiment-country-table a {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    gap: 0.2rem 0.5rem;
    min-width: 0;
    padding: 0.5rem 0.6rem;
    border: 1px solid #d2dfe9;
    border-left: 3px solid var(--sentiment-neutral);
    background: #f8fbfd;
    color: var(--sentiment-ink);
    text-decoration: none;
}

.sentiment-country-table a.sentiment-tone-positive {
    border-left-color: var(--sentiment-positive);
}

.sentiment-country-table a.sentiment-tone-negative {
    border-left-color: var(--sentiment-negative);
}

.sentiment-country-table span {
    min-width: 0;
    overflow-wrap: anywhere;
    font-weight: 900;
}

.sentiment-country-table small {
    color: #5b7186;
    font-weight: 750;
}

.sentiment-industry-split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
    margin-top: 0.85rem;
}

.sentiment-industry-split > div {
    display: grid;
    align-content: start;
    gap: 0.35rem;
}

.sentiment-industry-split h3 {
    margin: 0 0 0.2rem;
    color: #39536b;
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.sentiment-industry-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    gap: 0.25rem 0.7rem;
    min-width: 0;
    padding: 0.55rem 0.65rem;
    border: 1px solid #d2dfe9;
    border-left: 3px solid var(--sentiment-neutral);
    background: #f8fbfd;
    color: var(--sentiment-ink);
    text-decoration: none;
}

.sentiment-industry-row.sentiment-tone-positive {
    border-left-color: var(--sentiment-positive);
}

.sentiment-industry-row.sentiment-tone-negative {
    border-left-color: var(--sentiment-negative);
}

.sentiment-industry-row span {
    min-width: 0;
    overflow-wrap: anywhere;
    font-weight: 900;
}

.sentiment-industry-row small {
    grid-column: 1 / -1;
    color: #5b7186;
    font-weight: 750;
}

.sentiment-research-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sentiment-method-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
    margin-top: 0.85rem;
}

.sentiment-method-grid article {
    padding: 0.7rem;
    border: 1px solid #d2dfe9;
    border-top: 3px solid #315b7c;
    background: #f8fbfd;
}

.sentiment-method-grid strong {
    color: var(--sentiment-ink);
}

.sentiment-method-grid p,
.sentiment-method-footnote {
    color: #4c657b;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.45;
}

.sentiment-method-grid p {
    margin: 0.3rem 0 0;
}

.sentiment-method-footnote {
    margin: 0.7rem 0 0;
    padding: 0.65rem 0.75rem;
    border-left: 4px solid #c88417;
    background: #fff9e6;
}

.sentiment-global-pulse {
    margin-top: 0.7rem;
    border-left-width: 4px;
    background: linear-gradient(120deg, rgba(9, 63, 94, 0.045), transparent 48%), #ffffff;
}

.sentiment-global-grid {
    display: grid;
    grid-template-columns: minmax(10rem, 0.55fr) minmax(15rem, 0.9fr) minmax(18rem, 1.25fr) minmax(15rem, 0.9fr);
    gap: 0.8rem;
    align-items: stretch;
    margin-top: 0.9rem;
}

.sentiment-global-score {
    --pulse-colour: var(--sentiment-neutral);
    display: grid;
    place-items: center;
    width: min(100%, 11.5rem);
    aspect-ratio: 1;
    align-self: center;
    justify-self: center;
    padding: 0.62rem;
    border-radius: 50%;
    background: conic-gradient(var(--pulse-colour) calc(var(--score) * 1%), #dbe7ef 0);
}

.sentiment-tone-positive .sentiment-global-score { --pulse-colour: var(--sentiment-positive); }
.sentiment-tone-negative .sentiment-global-score { --pulse-colour: var(--sentiment-negative); }

.sentiment-global-score > div {
    display: grid;
    place-content: center;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: #fff;
    text-align: center;
}

.sentiment-global-score span,
.sentiment-global-score small,
.sentiment-global-metrics span,
.sentiment-global-metrics small {
    color: #5b7185;
    font-size: 0.66rem;
    font-weight: 850;
    text-transform: uppercase;
}

.sentiment-global-score strong {
    color: var(--pulse-colour);
    font-size: 3.2rem;
    line-height: 1;
}

.sentiment-global-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
}

.sentiment-global-metrics article,
.sentiment-global-tone {
    padding: 0.55rem;
    border: 1px solid #d5e1ea;
    background: #f8fbfd;
}

.sentiment-global-metrics article strong {
    display: block;
    color: var(--sentiment-ink);
    font-size: 1.25rem;
}

.sentiment-global-metrics article small { display: block; margin-top: 0.15rem; }

.sentiment-global-tone {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.4rem;
}

.sentiment-global-tone span { display: grid; grid-template-columns: 1fr auto; gap: 0.2rem 0.4rem; }
.sentiment-global-tone i { grid-column: 1 / -1; display: block; width: var(--bar); height: 0.38rem; background: var(--sentiment-neutral); }
.sentiment-global-tone .sentiment-tone-positive i { background: var(--sentiment-positive); }
.sentiment-global-tone .sentiment-tone-negative i { background: var(--sentiment-negative); }
.sentiment-global-tone b { color: #324e65; font-size: 0.68rem; }

.sentiment-theme-board,
.sentiment-sector-activity { display: grid; align-content: start; gap: 0.38rem; }
.sentiment-theme-board h3,
.sentiment-sector-activity h3 { margin: 0 0 0.2rem; color: var(--sentiment-ink); font-family: "Source Serif 4", Georgia, serif; }

.sentiment-theme-board article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.15rem 0.5rem;
    padding: 0.42rem 0.5rem;
    border: 1px solid #d5e1ea;
    border-left-width: 3px;
    background: #fff;
}

.sentiment-theme-board article div { display: grid; }
.sentiment-theme-board article small { color: #60758a; font-size: 0.65rem; font-weight: 750; }
.sentiment-theme-board article > span { align-self: center; font-weight: 950; }
.sentiment-theme-board article > i { grid-column: 1 / -1; display: block; width: var(--bar); height: 0.22rem; background: #4d87a5; }

.sentiment-sector-activity article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.1rem 0.5rem;
    padding: 0.45rem 0;
    border-bottom: 1px solid #dce6ed;
}

.sentiment-sector-activity article strong { color: var(--sentiment-ink); }
.sentiment-sector-activity article span,
.sentiment-sector-activity article small { color: #597086; font-size: 0.68rem; font-weight: 800; }
.sentiment-sector-activity article small { grid-column: 1 / -1; }

@media (max-width: 1180px) {
    .sentiment-article-grid,
    .sentiment-analytics-grid,
    .sentiment-group-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sentiment-split-grid {
        grid-template-columns: 1fr;
    }

    .sentiment-meta-grid,
    .sentiment-insight-grid,
    .sentiment-context-grid,
    .sentiment-pressure-bars {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sentiment-hero h1 {
        font-size: clamp(2.1rem, 5.6vw, 4rem);
    }

    .sentiment-command-strip {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sentiment-evidence-strip {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sentiment-command-strip article {
        border-bottom: 1px solid #dbe5ed;
    }

    .sentiment-visual-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sentiment-evidence-panel {
        grid-column: 1 / -1;
    }

    .sentiment-heat-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sentiment-method-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sentiment-global-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .sentiment-page {
        width: min(100% - 1rem, var(--site-width));
        padding-top: 0.6rem;
    }

    .sentiment-hero,
    .sentiment-article-grid,
    .sentiment-analytics-grid,
    .sentiment-group-grid,
    .sentiment-split-grid,
    .sentiment-meta-grid,
    .sentiment-insight-grid,
    .sentiment-context-grid,
    .sentiment-pressure-bars,
    .sentiment-leader-band {
        grid-template-columns: 1fr;
    }

    .sentiment-hero {
        gap: 0.85rem;
        padding: 0.9rem;
    }

    .sentiment-hero h1 {
        font-size: clamp(2rem, 13vw, 3.2rem);
        line-height: 0.98;
    }

    .sentiment-subtitle {
        font-size: 0.95rem;
    }

    .sentiment-score-card {
        align-self: start;
    }

    .sentiment-section-head,
    .sentiment-source-panel {
        display: grid;
        gap: 0.5rem;
    }

    .sentiment-mix-row,
    .sentiment-bar-row {
        grid-template-columns: minmax(0, 1fr) 2.5rem;
    }

    .sentiment-mix-row i,
    .sentiment-bar-row i {
        grid-column: 1 / -1;
    }

    .sentiment-rank-card,
    .sentiment-mini-item {
        grid-template-columns: minmax(0, 1fr) max-content;
    }

    .sentiment-rank-card em,
    .sentiment-mini-item > span,
    .sentiment-rank-card > small,
    .sentiment-mini-item > small {
        grid-column: 1 / -1;
    }

    .sentiment-group-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sentiment-history-chart {
        min-height: 6.5rem;
    }

    .sentiment-history-column {
        height: 5rem;
    }

    .sentiment-dashboard-hero,
    .sentiment-command-strip,
    .sentiment-evidence-strip,
    .sentiment-visual-grid,
    .sentiment-dashboard-middle-grid,
    .sentiment-research-grid,
    .sentiment-industry-split,
    .sentiment-method-grid {
        grid-template-columns: 1fr;
    }

    .sentiment-global-grid,
    .sentiment-global-metrics {
        grid-template-columns: 1fr;
    }

    .sentiment-global-tone { grid-column: auto; }

    .sentiment-dashboard-hero {
        min-height: 0;
    }

    .sentiment-state-line {
        display: grid;
    }

    .sentiment-state-pill {
        justify-self: start;
    }

    .sentiment-score-orbit {
        width: min(14rem, 80vw);
        justify-self: center;
    }

    .sentiment-command-strip article,
    .sentiment-evidence-strip article,
    .sentiment-dashboard-v4 .sentiment-insight {
        border-right: 0;
        border-bottom: 1px solid #dbe5ed;
    }

    .sentiment-evidence-panel {
        grid-column: auto;
    }

    .sentiment-breadth-visual {
        grid-template-columns: 1fr;
    }

    .sentiment-heat-grid,
    .sentiment-reaction-grid,
    .sentiment-country-table {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .sentiment-link-row a,
    .sentiment-pagination a,
    .sentiment-pagination span,
    .sentiment-pagination strong {
        width: 100%;
    }

    .sentiment-score-card strong {
        font-size: 2.7rem;
    }

    .sentiment-group-stats,
    .sentiment-article dl div,
    .sentiment-source-panel dl div {
        grid-template-columns: 1fr;
    }

    .sentiment-article dl div,
    .sentiment-source-panel dl div {
        display: grid;
        gap: 0.18rem;
    }

    .sentiment-article dd,
    .sentiment-source-panel dd {
        text-align: left;
    }

    .sentiment-heat-grid,
    .sentiment-reaction-grid,
    .sentiment-country-table,
    .sentiment-confidence-key {
        grid-template-columns: 1fr;
    }

    .sentiment-histogram {
        gap: 0.22rem;
        padding-inline: 0.2rem;
    }

    .sentiment-histogram-column span {
        font-size: 0.56rem;
    }

    .sentiment-rank-list > article:nth-of-type(n + 6),
    .sentiment-mini-feed > article:nth-of-type(n + 6),
    .sentiment-industry-split > div > a:nth-of-type(n + 5) {
        display: none;
    }
}

/* Ticker sentiment dossier */
.sentiment-ticker-dossier {
    --sentiment-positive: #087a50;
    --sentiment-positive-soft: #e7f6ef;
    --sentiment-neutral: #287da4;
    --sentiment-neutral-soft: #eaf4f8;
    --sentiment-negative: #b34b20;
    --sentiment-negative-soft: #fff0e9;
    --sentiment-ink: #071c32;
    --sentiment-rule: #c7d7e5;
}

.sentiment-dossier-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(22rem, 0.42fr);
    min-height: 22rem;
    border: 1px solid var(--sentiment-rule);
    border-top: 5px solid var(--sentiment-neutral);
    background:
        linear-gradient(90deg, rgba(40, 125, 164, 0.06) 1px, transparent 1px) 0 0 / 5rem 100%,
        radial-gradient(circle at 92% 10%, rgba(40, 125, 164, 0.16), transparent 24rem),
        linear-gradient(135deg, #ffffff 0%, #f4f9fc 100%);
}

.sentiment-dossier-hero.sentiment-tone-positive { border-top-color: var(--sentiment-positive); }
.sentiment-dossier-hero.sentiment-tone-negative { border-top-color: var(--sentiment-negative); }

.sentiment-dossier-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: clamp(1.2rem, 2.7vw, 2rem);
}

.sentiment-dossier-id {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.8rem;
}

.sentiment-dossier-id span {
    padding: 0.24rem 0.46rem;
    border: 1px solid #bfd1df;
    background: rgba(255, 255, 255, 0.84);
    color: #34536d;
    font-size: 0.65rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.sentiment-dossier-copy h1 {
    max-width: 62rem;
    margin: 0.15rem 0 0;
    color: var(--sentiment-ink);
    font-family: "Source Serif 4", Georgia, serif;
    font-size: clamp(2.65rem, 5vw, 5.35rem);
    line-height: 0.92;
    text-wrap: balance;
}

.sentiment-dossier-copy h2 {
    margin: 0.62rem 0 0;
    color: #294963;
    font-size: clamp(1rem, 1.6vw, 1.35rem);
    line-height: 1.2;
}

.sentiment-dossier-score {
    display: grid;
    grid-template-columns: minmax(10rem, 0.8fr) minmax(11rem, 1fr);
    gap: 1rem;
    align-items: center;
    padding: 1.2rem;
    border-left: 1px solid var(--sentiment-rule);
    background: rgba(247, 251, 253, 0.84);
}

.sentiment-primary-gauge,
.sentiment-mini-gauge {
    --gauge-colour: var(--sentiment-neutral);
    display: grid;
    place-items: center;
    aspect-ratio: 1;
    border-radius: 50%;
    background: conic-gradient(var(--gauge-colour) calc(var(--gauge) * 1%), #dce8ef 0);
}

.sentiment-tone-positive .sentiment-primary-gauge,
.sentiment-gauge-card.sentiment-tone-positive .sentiment-mini-gauge { --gauge-colour: var(--sentiment-positive); }
.sentiment-tone-negative .sentiment-primary-gauge,
.sentiment-gauge-card.sentiment-tone-negative .sentiment-mini-gauge { --gauge-colour: var(--sentiment-negative); }

.sentiment-primary-gauge > div,
.sentiment-mini-gauge > div {
    display: grid;
    place-content: center;
    width: 76%;
    height: 76%;
    border-radius: 50%;
    background: #ffffff;
    text-align: center;
}

.sentiment-primary-gauge span,
.sentiment-primary-gauge small,
.sentiment-score-readout span,
.sentiment-score-readout small {
    color: #5a7186;
    font-size: 0.64rem;
    font-weight: 850;
    line-height: 1.25;
    text-transform: uppercase;
}

.sentiment-primary-gauge strong {
    color: var(--gauge-colour);
    font-size: clamp(3.1rem, 5vw, 5.15rem);
    line-height: 0.95;
}

.sentiment-score-readout {
    display: grid;
    gap: 0.65rem;
}

.sentiment-score-readout > strong {
    color: var(--sentiment-ink);
    font-family: "Source Serif 4", Georgia, serif;
    font-size: 1.35rem;
    line-height: 1.05;
}

.sentiment-score-readout span {
    display: grid;
    gap: 0.2rem;
}

.sentiment-score-readout i {
    display: block;
    width: 100%;
    height: 0.42rem;
    border: 1px solid #c9d8e3;
    background: linear-gradient(90deg, var(--sentiment-neutral) 0 var(--bar), #edf3f7 var(--bar));
}

.sentiment-dossier-strip {
    display: grid;
    grid-template-columns: 1fr 1fr 0.9fr 1fr 0.82fr;
    border: 1px solid var(--sentiment-rule);
    border-top: 0;
    background: #ffffff;
}

.sentiment-dossier-strip article {
    min-width: 0;
    padding: 0.78rem 0.85rem;
    border-right: 1px solid #dce6ed;
}
.sentiment-dossier-strip article:last-child { border-right: 0; }
.sentiment-dossier-strip span,
.sentiment-dossier-strip small { display: block; color: #5a7085; font-size: 0.65rem; font-weight: 800; }
.sentiment-dossier-strip span { letter-spacing: 0.09em; text-transform: uppercase; }
.sentiment-dossier-strip strong { display: block; margin: 0.18rem 0; color: var(--sentiment-ink); font-size: 0.92rem; overflow-wrap: anywhere; }
.sentiment-dossier-strip a { color: #003b69; }

.sentiment-executive-brief {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(28rem, 0.9fr);
    gap: 1.1rem;
    margin-top: 0.7rem;
    border-left-width: 5px;
}

.sentiment-brief-main h2 {
    max-width: 53rem;
    margin: 0.15rem 0 0.55rem;
    color: var(--sentiment-ink);
    font-family: "Source Serif 4", Georgia, serif;
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    line-height: 0.98;
    text-wrap: balance;
}

.sentiment-brief-main > p:not(.sentiment-kicker) {
    max-width: 60rem;
    margin: 0;
    color: #35516a;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.5;
}

.sentiment-latest-observation {
    display: grid;
    gap: 0.16rem;
    margin-top: 1rem;
    padding: 0.72rem 0.8rem;
    border: 1px solid #c9d9e5;
    background: #ffffff;
    color: var(--sentiment-ink);
    text-decoration: none;
}
.sentiment-latest-observation:hover { border-color: #003b69; }
.sentiment-latest-observation span,
.sentiment-latest-observation small { color: #587188; font-size: 0.67rem; font-weight: 800; }
.sentiment-latest-observation span { letter-spacing: 0.08em; text-transform: uppercase; }

.sentiment-brief-balance {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}
.sentiment-brief-balance > div { padding: 0.75rem; border: 1px solid #d2dfe9; background: #ffffff; }
.sentiment-brief-balance > div:first-child { border-top: 4px solid var(--sentiment-positive); }
.sentiment-brief-balance > div:last-child { border-top: 4px solid var(--sentiment-negative); }
.sentiment-brief-balance h3 { margin: 0 0 0.5rem; color: var(--sentiment-ink); font-family: "Source Serif 4", Georgia, serif; font-size: 1rem; }
.sentiment-brief-balance article { padding: 0.48rem 0; border-top: 1px solid #e0e8ee; }
.sentiment-brief-balance article strong { color: var(--sentiment-ink); font-size: 0.75rem; }
.sentiment-brief-balance article p,
.sentiment-brief-balance .sentiment-muted { margin: 0.15rem 0 0; color: #526b81; font-size: 0.72rem; font-weight: 700; line-height: 1.35; }

.sentiment-gauge-deck {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem;
    margin-top: 0.7rem;
}
.sentiment-gauge-card {
    display: grid;
    grid-template-columns: 5.4rem minmax(0, 1fr);
    gap: 0.72rem;
    align-items: center;
    min-width: 0;
    padding: 0.7rem;
    border: 1px solid var(--sentiment-rule);
    border-top: 4px solid var(--sentiment-neutral);
    background: #ffffff;
}
.sentiment-gauge-card.sentiment-tone-positive { border-top-color: var(--sentiment-positive); }
.sentiment-gauge-card.sentiment-tone-negative { border-top-color: var(--sentiment-negative); }
.sentiment-mini-gauge strong { color: var(--gauge-colour); font-size: 1.4rem; line-height: 1; }
.sentiment-mini-gauge span { color: #687f92; font-size: 0.55rem; font-weight: 800; }
.sentiment-gauge-card > div:last-child { display: grid; gap: 0.25rem; }
.sentiment-gauge-card > div:last-child span { color: #597187; font-size: 0.65rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.sentiment-gauge-card > div:last-child strong { color: var(--sentiment-ink); line-height: 1.2; }

.sentiment-research-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(20rem, 0.55fr);
    gap: 0.7rem;
    margin-top: 0.7rem;
}

.sentiment-svg-chart { margin-top: 0.7rem; }
.sentiment-svg-chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.sentiment-svg-chart text { fill: #60768a; font-size: 18px; font-weight: 750; }
.sentiment-chart-grid { stroke: #d7e2ea; stroke-width: 2; }
.sentiment-chart-neutral { stroke: #7b91a4; stroke-width: 2; stroke-dasharray: 8 8; }
.sentiment-chart-volume { fill: rgba(40, 125, 164, 0.25); }
.sentiment-chart-volume.sentiment-tone-positive { fill: rgba(8, 122, 80, 0.28); }
.sentiment-chart-volume.sentiment-tone-negative { fill: rgba(179, 75, 32, 0.26); }
.sentiment-chart-tone-line { fill: none; stroke: #123b62; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.sentiment-chart-point { fill: var(--sentiment-neutral); stroke: #ffffff; stroke-width: 3; }
.sentiment-chart-point.sentiment-tone-positive { fill: var(--sentiment-positive); }
.sentiment-chart-point.sentiment-tone-negative { fill: var(--sentiment-negative); }
.sentiment-chart-axis { display: flex; justify-content: space-between; color: #5a7186; font-size: 0.68rem; font-weight: 800; }
.sentiment-chart-legend { display: flex; flex-wrap: wrap; gap: 0.85rem; margin-top: 0.6rem; color: #4f687f; font-size: 0.68rem; font-weight: 800; }
.sentiment-chart-legend span { display: inline-flex; align-items: center; gap: 0.32rem; }
.sentiment-chart-legend i { width: 1.4rem; height: 0.25rem; background: #123b62; }
.sentiment-chart-legend i.is-volume { height: 0.65rem; background: rgba(40, 125, 164, 0.3); }
.sentiment-chart-legend i.is-neutral { height: 1px; background: #7b91a4; }
.sentiment-chart-legend i.is-price { background: #173d64; }
.sentiment-chart-legend i.is-sentiment { background: var(--sentiment-positive); }

.sentiment-chart-empty {
    display: grid;
    place-content: center;
    min-height: 12rem;
    margin-top: 0.8rem;
    padding: 1rem;
    border: 1px dashed #b9cbd9;
    background: #f7fafc;
    text-align: center;
}
.sentiment-chart-empty strong { color: var(--sentiment-ink); font-family: "Source Serif 4", Georgia, serif; font-size: 1.25rem; }
.sentiment-chart-empty p { max-width: 36rem; margin: 0.3rem auto 0; color: #597086; font-weight: 700; line-height: 1.4; }

.sentiment-momentum-panel { border-top: 4px solid var(--sentiment-neutral); }
.sentiment-momentum-panel.sentiment-tone-positive { border-top-color: var(--sentiment-positive); }
.sentiment-momentum-panel.sentiment-tone-negative { border-top-color: var(--sentiment-negative); }
.sentiment-momentum-state { display: block; margin-top: 0.85rem; color: var(--sentiment-ink); font-family: "Source Serif 4", Georgia, serif; font-size: 2rem; line-height: 1; }
.sentiment-momentum-delta { display: block; margin-top: 0.25rem; color: #4d687f; font-weight: 850; }
.sentiment-momentum-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.45rem; margin-top: 0.85rem; }
.sentiment-momentum-comparison article { padding: 0.65rem; border: 1px solid #d2dfe9; background: #f8fbfd; }
.sentiment-momentum-comparison span,
.sentiment-momentum-comparison small { display: block; color: #5d7489; font-size: 0.65rem; font-weight: 800; }
.sentiment-momentum-comparison strong { display: block; margin: 0.15rem 0; color: var(--sentiment-ink); font-size: 1.65rem; }
.sentiment-momentum-panel h3 { margin: 1rem 0 0.45rem; color: var(--sentiment-ink); font-family: "Source Serif 4", Georgia, serif; font-size: 1rem; }
.sentiment-freshness-list { display: grid; gap: 0.5rem; }
.sentiment-freshness-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.2rem 0.5rem; }
.sentiment-freshness-list span,
.sentiment-freshness-list strong { color: #4e687f; font-size: 0.7rem; font-weight: 800; }
.sentiment-freshness-list i { grid-column: 1 / -1; display: block; height: 0.42rem; background: linear-gradient(90deg, var(--sentiment-neutral) 0 var(--bar), #eaf1f6 var(--bar)); }

.sentiment-conviction-panel,
.sentiment-price-news-panel { margin-top: 0.7rem; }
.sentiment-driver-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0.45rem; margin-top: 0.9rem; }
.sentiment-driver-grid article { min-width: 0; padding: 0.6rem; border: 1px solid #d2dfe9; background: #f8fbfd; }
.sentiment-driver-grid article > div { display: flex; justify-content: space-between; gap: 0.4rem; }
.sentiment-driver-grid span { color: #405d76; font-size: 0.7rem; font-weight: 900; }
.sentiment-driver-grid strong { color: var(--sentiment-ink); }
.sentiment-driver-grid i { display: block; height: 0.38rem; margin-top: 0.45rem; background: linear-gradient(90deg, var(--sentiment-neutral) 0 var(--bar), #e8f0f5 var(--bar)); }
.sentiment-driver-grid small { display: block; margin-top: 0.35rem; color: #60768a; font-size: 0.64rem; font-weight: 750; line-height: 1.25; }

.sentiment-price-news-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(17rem, 0.55fr); gap: 1rem; align-items: start; margin-top: 0.75rem; }
.sentiment-chart-price-line { fill: none; stroke: #173d64; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.sentiment-chart-sentiment-line { fill: none; stroke: var(--sentiment-positive); stroke-width: 4; stroke-dasharray: 10 7; stroke-linecap: round; stroke-linejoin: round; }
.sentiment-price-chart circle { fill: #173d64; }
.sentiment-price-chart .sentiment-chart-sentiment-point { fill: var(--sentiment-positive); stroke: #ffffff; stroke-width: 2; }
.sentiment-price-context { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.45rem; }
.sentiment-price-context article { padding: 0.65rem; border: 1px solid #d2dfe9; background: #f8fbfd; }
.sentiment-price-context span,
.sentiment-price-context small { display: block; color: #5a7186; font-size: 0.65rem; font-weight: 800; }
.sentiment-price-context span { text-transform: uppercase; }
.sentiment-price-context strong { display: block; margin: 0.2rem 0; color: var(--sentiment-ink); font-size: 1.25rem; }

.sentiment-anatomy-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.7rem; margin-top: 0.7rem; }
.sentiment-profile-list { display: grid; gap: 0.45rem; margin-top: 0.8rem; }
.sentiment-profile-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.1rem 0.45rem; padding: 0.52rem; border: 1px solid #d5e1ea; border-left: 4px solid var(--sentiment-neutral); background: #f9fbfd; }
.sentiment-profile-list > div.sentiment-tone-positive { border-left-color: var(--sentiment-positive); }
.sentiment-profile-list > div.sentiment-tone-negative { border-left-color: var(--sentiment-negative); }
.sentiment-profile-list span { min-width: 0; overflow-wrap: anywhere; color: var(--sentiment-ink); font-weight: 900; }
.sentiment-profile-list strong { color: var(--sentiment-ink); }
.sentiment-profile-list small { color: #60758a; font-size: 0.65rem; font-weight: 750; }
.sentiment-profile-list i { grid-column: 1 / -1; display: block; width: var(--bar); min-width: 0.2rem; height: 0.24rem; margin-top: 0.25rem; background: var(--sentiment-neutral); }
.sentiment-profile-list .sentiment-tone-positive i { background: var(--sentiment-positive); }
.sentiment-profile-list .sentiment-tone-negative i { background: var(--sentiment-negative); }
.sentiment-topic-cloud { display: flex; flex-wrap: wrap; gap: 0.45rem; align-content: start; margin-top: 0.8rem; }
.sentiment-topic-cloud > span { display: inline-flex; gap: 0.38rem; align-items: center; padding: 0.4rem 0.52rem; border: 1px solid #c9d9e5; border-bottom: 3px solid var(--sentiment-neutral); background: #f8fbfd; }
.sentiment-topic-cloud strong { color: var(--sentiment-ink); font-size: 0.75rem; }
.sentiment-topic-cloud small { color: #557087; font-weight: 900; }
.sentiment-panel-empty { margin-top: 0.8rem; }

.sentiment-evidence-ledger { margin-top: 0.7rem; }
.sentiment-ledger-list { display: grid; gap: 0.48rem; margin-top: 0.85rem; }
.sentiment-ledger-row { display: grid; grid-template-columns: 4.8rem minmax(0, 1fr) minmax(17rem, 0.42fr); gap: 0.75rem; min-width: 0; padding: 0.72rem; border: 1px solid #cedce7; border-left: 5px solid var(--sentiment-neutral); background: #ffffff; }
.sentiment-ledger-row.sentiment-tone-positive { border-left-color: var(--sentiment-positive); }
.sentiment-ledger-row.sentiment-tone-negative { border-left-color: var(--sentiment-negative); }
.sentiment-ledger-sequence { display: grid; align-content: start; justify-items: center; padding: 0.45rem; border: 1px solid #d2dfe9; background: #f6fafc; text-align: center; }
.sentiment-ledger-sequence span,
.sentiment-ledger-sequence small { color: #5a7186; font-size: 0.62rem; font-weight: 850; text-transform: uppercase; }
.sentiment-ledger-sequence strong { color: var(--sentiment-ink); font-size: 1.45rem; }
.sentiment-ledger-story { min-width: 0; }
.sentiment-ledger-story h3 { margin: 0.45rem 0 0; font-family: "Source Serif 4", Georgia, serif; font-size: 1.16rem; line-height: 1.12; text-wrap: balance; }
.sentiment-ledger-story h3 a { color: var(--sentiment-ink); }
.sentiment-ledger-story > p { display: -webkit-box; overflow: hidden; margin: 0.4rem 0 0; color: #405c74; font-size: 0.8rem; font-weight: 650; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.sentiment-ledger-row dl { display: grid; align-content: start; gap: 0.36rem; margin: 0; }
.sentiment-ledger-row dl div { display: grid; grid-template-columns: minmax(5.2rem, 0.7fr) minmax(0, 1.3fr); gap: 0.45rem; padding-bottom: 0.32rem; border-bottom: 1px solid #e0e8ee; }
.sentiment-ledger-row dt { color: #5a7186; font-size: 0.63rem; font-weight: 850; text-transform: uppercase; }
.sentiment-ledger-row dd { margin: 0; color: var(--sentiment-ink); font-size: 0.72rem; font-weight: 800; text-align: right; overflow-wrap: anywhere; }

.sentiment-ticker-method { display: grid; grid-template-columns: minmax(15rem, 0.28fr) minmax(0, 0.72fr); gap: 1rem; margin-top: 0.7rem; border-top: 4px solid #173d64; }
.sentiment-ticker-method h2 { margin: 0.18rem 0 0; color: var(--sentiment-ink); font-family: "Source Serif 4", Georgia, serif; font-size: 1.55rem; line-height: 1; }
.sentiment-ticker-method > div:last-child { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; }
.sentiment-ticker-method article { padding: 0.62rem; border: 1px solid #d5e1ea; background: #f8fbfd; }
.sentiment-ticker-method article strong { color: var(--sentiment-ink); }
.sentiment-ticker-method article p { margin: 0.25rem 0 0; color: #536d83; font-size: 0.72rem; font-weight: 700; line-height: 1.4; }

@media (max-width: 1180px) {
    .sentiment-dossier-hero { grid-template-columns: minmax(0, 1fr) minmax(19rem, 0.46fr); }
    .sentiment-dossier-score { grid-template-columns: 1fr; }
    .sentiment-primary-gauge { width: 11rem; justify-self: center; }
    .sentiment-dossier-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .sentiment-dossier-strip article { border-bottom: 1px solid #dce6ed; }
    .sentiment-gauge-deck { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sentiment-driver-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .sentiment-anatomy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sentiment-anatomy-grid > article:last-child { grid-column: 1 / -1; }
    .sentiment-ledger-row { grid-template-columns: 4.3rem minmax(0, 1fr); }
    .sentiment-ledger-row dl { grid-column: 2; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 840px) {
    .sentiment-dossier-hero,
    .sentiment-executive-brief,
    .sentiment-research-grid,
    .sentiment-price-news-layout,
    .sentiment-ticker-method { grid-template-columns: 1fr; }
    .sentiment-dossier-score { grid-template-columns: minmax(9rem, 0.55fr) minmax(0, 1fr); border-top: 1px solid var(--sentiment-rule); border-left: 0; }
    .sentiment-dossier-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sentiment-driver-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sentiment-anatomy-grid { grid-template-columns: 1fr; }
    .sentiment-anatomy-grid > article:last-child { grid-column: auto; }
}

@media (max-width: 600px) {
    .sentiment-dossier-copy { padding: 1rem; }
    .sentiment-dossier-copy h1 { font-size: clamp(2.35rem, 14vw, 3.3rem); }
    .sentiment-dossier-score,
    .sentiment-brief-balance,
    .sentiment-gauge-deck,
    .sentiment-price-context,
    .sentiment-momentum-comparison,
    .sentiment-ticker-method > div:last-child { grid-template-columns: 1fr; }
    .sentiment-primary-gauge { width: min(11rem, 65vw); }
    .sentiment-dossier-strip { grid-template-columns: 1fr; }
    .sentiment-dossier-strip article { border-right: 0; }
    .sentiment-gauge-card { grid-template-columns: 4.8rem minmax(0, 1fr); }
    .sentiment-driver-grid { grid-template-columns: 1fr; }
    .sentiment-ledger-row { grid-template-columns: 3.8rem minmax(0, 1fr); padding: 0.55rem; }
    .sentiment-ledger-row dl { grid-column: 1 / -1; grid-template-columns: 1fr; }
    .sentiment-ledger-row dl div { display: flex; justify-content: space-between; }
    .sentiment-svg-chart { overflow-x: auto; }
    .sentiment-svg-chart svg { min-width: 38rem; }
}

/* Country, sector and industry sentiment dossiers */
.sentiment-group-title-link {
    color: #071c32;
    text-decoration: none;
}

.sentiment-group-title-link:hover,
.sentiment-group-title-link:focus {
    color: #00558c;
    text-decoration: underline;
}

.sentiment-group-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.sentiment-structure-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    align-items: center;
    margin-top: 0.7rem;
    padding-top: 0.55rem;
    border-top: 1px solid #d8e3eb;
}

.sentiment-structure-shortcuts span,
.sentiment-structure-shortcuts a {
    color: #557086;
    font-size: 0.65rem;
    font-weight: 850;
}

.sentiment-structure-shortcuts span {
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.sentiment-structure-shortcuts a {
    padding: 0.2rem 0.36rem;
    border: 1px solid #d1dee8;
    background: #f8fbfd;
    color: #003b69;
    text-decoration: none;
}

.sentiment-context-link.is-primary {
    border-color: #0b668f;
    background: #eaf7f7;
    color: #054b66;
}

.sentiment-group-dossier {
    --sentiment-positive: #087a50;
    --sentiment-positive-soft: #e7f6ef;
    --sentiment-neutral: #287da4;
    --sentiment-neutral-soft: #eaf4f8;
    --sentiment-negative: #b34b20;
    --sentiment-negative-soft: #fff0e9;
    --sentiment-ink: #071c32;
    --sentiment-rule: #c7d7e5;
}

.sentiment-group-dossier-hero {
    min-height: 20rem;
}

.sentiment-group-dossier-hero .sentiment-dossier-copy h1 {
    max-width: 70rem;
    font-size: clamp(2.7rem, 4.7vw, 5rem);
}

.sentiment-group-strip {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.sentiment-group-classification {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
    margin-top: 1rem;
}

.sentiment-group-classification article {
    min-width: 0;
    padding: 0.62rem;
    border: 1px solid #d3e0e9;
    border-top: 3px solid var(--sentiment-neutral);
    background: #fff;
}

.sentiment-group-classification span,
.sentiment-group-classification small {
    display: block;
    color: #5a7186;
    font-size: 0.64rem;
    font-weight: 800;
}

.sentiment-group-classification span {
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.sentiment-group-classification strong {
    display: block;
    margin: 0.14rem 0;
    color: var(--sentiment-ink);
    font-size: 1.45rem;
}

.sentiment-group-visual-grid {
    display: grid;
    grid-template-columns: 0.93fr 1.18fr 0.89fr;
    gap: 0.7rem;
    margin-top: 0.7rem;
}

.sentiment-group-visual-grid > *,
.sentiment-group-map-grid > *,
.sentiment-group-anatomy > *,
.sentiment-group-security-grid > * {
    min-width: 0;
}

.sentiment-group-confidence {
    display: grid;
    gap: 0.7rem;
    margin-top: 0.85rem;
}

.sentiment-group-confidence-score {
    display: flex;
    align-items: end;
    gap: 0.35rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid #dbe5ec;
}

.sentiment-group-confidence-score strong {
    color: var(--sentiment-ink);
    font-family: "Source Serif 4", Georgia, serif;
    font-size: 3rem;
    line-height: 0.85;
}

.sentiment-group-confidence-score span,
.sentiment-group-confidence > p {
    color: #5a7186;
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1.35;
}

.sentiment-group-confidence > p {
    margin: 0;
}

.sentiment-group-confidence-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.22rem 0.55rem;
}

.sentiment-group-confidence-row span,
.sentiment-group-confidence-row strong {
    color: #4a647b;
    font-size: 0.72rem;
    font-weight: 850;
}

.sentiment-group-confidence-row i {
    grid-column: 1 / -1;
    display: block;
    width: var(--bar);
    min-width: 0.2rem;
    height: 0.46rem;
    background: var(--sentiment-neutral);
}

.sentiment-group-confidence-row.sentiment-tone-positive i { background: var(--sentiment-positive); }
.sentiment-group-confidence-row.sentiment-tone-negative i { background: var(--sentiment-negative); }

.sentiment-group-trajectory-grid {
    grid-template-columns: minmax(0, 1.56fr) minmax(18rem, 0.44fr);
}

.sentiment-group-breadth-line {
    fill: none;
    stroke: #12a56d;
    stroke-width: 4;
    stroke-dasharray: 9 7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.sentiment-chart-legend i.is-breadth {
    background: #12a56d;
}

.sentiment-group-sample-note {
    margin: 0.75rem 0 0;
    padding: 0.55rem 0.65rem;
    border-left: 3px solid #84a5ba;
    background: #f4f8fb;
    color: #587086;
    font-size: 0.68rem;
    font-weight: 750;
    line-height: 1.4;
}

.sentiment-group-relative-card {
    margin-top: 1rem;
    padding: 0.75rem;
    border: 1px solid #cfdee8;
    border-top: 4px solid var(--sentiment-neutral);
    background: #f8fbfd;
}

.sentiment-group-relative-card span,
.sentiment-group-relative-card small {
    display: block;
    color: #587087;
    font-size: 0.67rem;
    font-weight: 800;
}

.sentiment-group-relative-card span {
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.sentiment-group-relative-card strong {
    display: block;
    margin: 0.16rem 0;
    color: var(--sentiment-ink);
    font-size: 2.2rem;
    line-height: 1;
}

.sentiment-group-market-panel,
.sentiment-group-peer-panel,
.sentiment-group-security-panel,
.sentiment-group-observations,
.sentiment-group-method {
    margin-top: 0.7rem;
}

.sentiment-group-reaction-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
    margin-top: 0.85rem;
}

.sentiment-group-reaction-grid article {
    min-width: 0;
    padding: 0.65rem;
    border: 1px solid #d2dfe8;
    border-top: 4px solid var(--sentiment-neutral);
    background: #f9fbfd;
}

.sentiment-group-reaction-grid article.sentiment-tone-positive { border-top-color: var(--sentiment-positive); }
.sentiment-group-reaction-grid article.sentiment-tone-negative { border-top-color: var(--sentiment-negative); }

.sentiment-group-reaction-grid span,
.sentiment-group-reaction-grid small {
    display: block;
    color: #587087;
    font-size: 0.65rem;
    font-weight: 800;
}

.sentiment-group-reaction-grid strong {
    display: block;
    margin: 0.2rem 0;
    color: var(--sentiment-ink);
    font-size: 1.7rem;
}

.sentiment-group-reaction-grid i {
    display: block;
    width: var(--bar);
    min-width: 0.2rem;
    height: 0.38rem;
    margin-bottom: 0.3rem;
    background: var(--sentiment-neutral);
}

.sentiment-group-reaction-grid .sentiment-tone-positive i { background: var(--sentiment-positive); }
.sentiment-group-reaction-grid .sentiment-tone-negative i { background: var(--sentiment-negative); }

.sentiment-group-market-stats {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.45rem;
    margin-top: 0.55rem;
}

.sentiment-group-market-stats article {
    min-width: 0;
    padding: 0.62rem;
    border: 1px solid #d7e2ea;
    background: #fff;
}

.sentiment-group-market-stats span {
    display: block;
    color: #5c7287;
    font-size: 0.62rem;
    font-weight: 850;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.sentiment-group-market-stats strong {
    display: block;
    margin-top: 0.2rem;
    color: var(--sentiment-ink);
    font-size: 1.08rem;
}

.sentiment-group-map-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
    margin-top: 0.7rem;
}

.sentiment-group-map-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin-top: 0.8rem;
}

.sentiment-group-map-columns h3,
.sentiment-group-security-grid h3 {
    margin: 0 0 0.45rem;
    color: var(--sentiment-ink);
    font-family: "Source Serif 4", Georgia, serif;
    font-size: 1rem;
}

.sentiment-group-map-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.18rem 0.5rem;
    min-width: 0;
    margin-top: 0.35rem;
    padding: 0.5rem;
    border: 1px solid #d4e0e9;
    border-left: 4px solid var(--sentiment-neutral);
    background: #fbfcfd;
    color: var(--sentiment-ink);
    text-decoration: none;
}

.sentiment-group-map-row.sentiment-tone-positive { border-left-color: var(--sentiment-positive); }
.sentiment-group-map-row.sentiment-tone-negative { border-left-color: var(--sentiment-negative); }
.sentiment-group-map-row:hover { border-color: #276d96; }
.sentiment-group-map-row span { min-width: 0; overflow-wrap: anywhere; font-size: 0.74rem; font-weight: 900; }
.sentiment-group-map-row strong { font-size: 0.8rem; }
.sentiment-group-map-row small { color: #5c7489; font-size: 0.62rem; font-weight: 750; }
.sentiment-group-map-row i {
    grid-column: 1 / -1;
    display: block;
    width: var(--bar);
    min-width: 0.2rem;
    height: 0.24rem;
    background: var(--sentiment-neutral);
}
.sentiment-group-map-row.sentiment-tone-positive i { background: var(--sentiment-positive); }
.sentiment-group-map-row.sentiment-tone-negative i { background: var(--sentiment-negative); }

.sentiment-group-peer-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
    margin-top: 0.8rem;
}

.sentiment-group-peer-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.25rem 0.5rem;
    min-width: 0;
    padding: 0.58rem;
    border: 1px solid #d3dfe8;
    background: #f9fbfd;
    color: var(--sentiment-ink);
    text-decoration: none;
}

.sentiment-group-peer-row.is-current {
    border: 2px solid #174f79;
    background: #eef7fa;
}

.sentiment-group-peer-row span { min-width: 0; overflow-wrap: anywhere; font-weight: 900; }
.sentiment-group-peer-row strong { font-size: 1rem; }
.sentiment-group-peer-row small { grid-column: 1 / -1; color: #587086; font-size: 0.64rem; font-weight: 750; }
.sentiment-group-peer-row i {
    grid-column: 1 / -1;
    display: block;
    height: 0.28rem;
    background: linear-gradient(90deg, var(--sentiment-neutral) 0 var(--score), #e7eff4 var(--score));
}
.sentiment-group-peer-row.sentiment-tone-positive i { background: linear-gradient(90deg, var(--sentiment-positive) 0 var(--score), #e7eff4 var(--score)); }
.sentiment-group-peer-row.sentiment-tone-negative i { background: linear-gradient(90deg, var(--sentiment-negative) 0 var(--score), #e7eff4 var(--score)); }

.sentiment-group-rank-card {
    display: grid;
    gap: 0.5rem;
}

.sentiment-group-rank-card > div:not(.sentiment-section-head) {
    padding: 0.62rem;
    border: 1px solid #d5e1e9;
    background: #f9fbfd;
}

.sentiment-group-rank-card > div > span,
.sentiment-group-rank-card > div > small {
    display: block;
    color: #587086;
    font-size: 0.65rem;
    font-weight: 800;
}

.sentiment-group-rank-card > div > strong {
    display: block;
    margin: 0.15rem 0;
    color: var(--sentiment-ink);
    font-size: 1.65rem;
}

.sentiment-group-security-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.6rem;
    margin-top: 0.8rem;
}

.sentiment-group-security-row {
    min-width: 0;
    margin-top: 0.36rem;
    padding: 0.55rem;
    border: 1px solid #d3e0e9;
    border-left: 4px solid var(--sentiment-neutral);
    background: #fafcfd;
}

.sentiment-group-security-row.sentiment-tone-positive { border-left-color: var(--sentiment-positive); }
.sentiment-group-security-row.sentiment-tone-negative { border-left-color: var(--sentiment-negative); }
.sentiment-group-security-row > div { display: flex; justify-content: space-between; gap: 0.5rem; }
.sentiment-group-security-row a { color: #003b69; font-weight: 950; }
.sentiment-group-security-row > span { display: block; margin-top: 0.15rem; color: var(--sentiment-ink); font-size: 0.72rem; font-weight: 800; overflow-wrap: anywhere; }
.sentiment-group-security-row p,
.sentiment-group-security-row small { display: block; margin: 0.15rem 0 0; color: #587086; font-size: 0.64rem; font-weight: 750; line-height: 1.3; }

.sentiment-group-observation-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
    margin-top: 0.8rem;
}

.sentiment-group-observation-grid article {
    min-width: 0;
    padding: 0.65rem;
    border: 1px solid #d3e0e9;
    border-top: 4px solid var(--sentiment-neutral);
    background: #fbfcfd;
}

.sentiment-group-observation-grid article.sentiment-tone-positive { border-top-color: var(--sentiment-positive); }
.sentiment-group-observation-grid article.sentiment-tone-negative { border-top-color: var(--sentiment-negative); }
.sentiment-group-observation-grid article > div { display: flex; justify-content: space-between; gap: 0.5rem; }
.sentiment-group-observation-grid a { color: #003b69; font-weight: 950; }
.sentiment-group-observation-grid h3 { margin: 0.42rem 0 0; color: var(--sentiment-ink); font-family: "Source Serif 4", Georgia, serif; font-size: 0.92rem; line-height: 1.18; overflow-wrap: anywhere; }
.sentiment-group-observation-grid p,
.sentiment-group-observation-grid small { display: block; margin: 0.36rem 0 0; color: #587086; font-size: 0.64rem; font-weight: 750; line-height: 1.35; }

.sentiment-group-method > div:last-child {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1180px) {
    .sentiment-group-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .sentiment-group-visual-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sentiment-group-visual-grid > article:last-child { grid-column: 1 / -1; }
    .sentiment-group-market-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .sentiment-group-map-grid { grid-template-columns: 1fr; }
    .sentiment-group-method > div:last-child { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 840px) {
    .sentiment-group-classification,
    .sentiment-group-visual-grid,
    .sentiment-group-trajectory-grid,
    .sentiment-group-reaction-grid,
    .sentiment-group-security-grid,
    .sentiment-group-observation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sentiment-group-visual-grid > article:last-child { grid-column: auto; }
    .sentiment-group-trajectory-grid > article:first-child { grid-column: 1 / -1; }
    .sentiment-group-peer-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .sentiment-group-strip,
    .sentiment-group-classification,
    .sentiment-group-visual-grid,
    .sentiment-group-trajectory-grid,
    .sentiment-group-reaction-grid,
    .sentiment-group-market-stats,
    .sentiment-group-map-columns,
    .sentiment-group-peer-list,
    .sentiment-group-security-grid,
    .sentiment-group-observation-grid,
    .sentiment-group-method > div:last-child { grid-template-columns: 1fr; }
    .sentiment-group-trajectory-grid > article:first-child { grid-column: auto; }
    .sentiment-group-dossier-hero .sentiment-dossier-copy h1 { font-size: clamp(2.3rem, 13vw, 3.15rem); }
    .sentiment-group-dossier .sentiment-breadth-visual { grid-template-columns: 1fr; }
}
