/* IBM Plex fonts are preloaded via <link rel="preconnect"> in the report page head */

:root {
    /* Brand */
    --report-primary:      #022541;
    --report-secondary:    #4B0095;
    --report-accent:       #7c3aed;

    /* Surfaces */
    --report-bg:           #f0f2f7;
    --report-surface:      #ffffff;
    --report-surface-alt:  #f8f5ff;
    --report-surface-raised: #ffffff;

    /* Borders */
    --report-border:       #d1d9e6;
    --report-border-soft:  #e2d9f3;

    /* Typography */
    --report-text:         #1e2d3d;
    --report-muted:        #5a6e84;
    --report-title:        #0d1f30;

    /* Semantic */
    --report-positive:     #dcfce7;
    --report-positive-text:#15803d;
    --report-negative:     #fee2e2;
    --report-negative-text:#b91c1c;
    --report-neutral:      #fef9c3;
    --report-neutral-text: #854d0e;

    /* Elevation */
    --report-shadow:       0 2px 8px rgba(2,37,65,0.07), 0 8px 24px rgba(2,37,65,0.05);
    --report-shadow-soft:  0 1px 4px rgba(2,37,65,0.06);
}

html {
    scroll-behavior: smooth;
}

body.report-2030,
body.report-2030 * {
    box-sizing: border-box;
}

body.report-2030 {
    margin: 0;
    min-height: 100vh;
    color: var(--report-text);
    font-family: "IBM Plex Sans", sans-serif;
    background: var(--report-bg);
}

body.report-2030>div:first-child {
    position: sticky;
    top: 0;
    z-index: 40;
    padding: 8px 16px !important;
    color: var(--report-muted) !important;
    background: rgba(255, 255, 255, 0.94) !important;
    border-bottom: 1px solid var(--report-border-soft) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

body.report-2030 .container {
    position: relative;
    max-width: 1700px;
    margin: 0 auto;
    padding: 14px 14px 40px;
    gap: 10px;
}

body.report-2030 .report-layout {
    display: block;
}

body.report-2030 .report-nav {
    position: relative;
    z-index: 5;
}

body.report-2030 .report-nav-inner {
    position: sticky;
    top: 58px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 10px;
    border: 1px solid var(--report-border-soft);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: var(--report-shadow-soft);
}

body.report-2030 .report-nav-top {
    display: grid;
    gap: 8px;
    padding: 4px 4px 10px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--report-border-soft);
}

body.report-2030 .nav-company {
    color: var(--report-title);
    font-size: 0.96rem;
    font-weight: 700;
    line-height: 1.25;
}

body.report-2030 .nav-metric {
    display: inline-flex;
    width: fit-content;
    padding: 0.34rem 0.58rem;
    border-radius: 999px;
    background: var(--report-surface-alt);
    border: 1px solid #e2d3fa;
    color: var(--report-secondary);
    font-family: "IBM Plex Mono", monospace;
    font-size: 0.74rem;
    font-weight: 600;
}

body.report-2030 .nav-meta {
    color: var(--report-muted);
    font-size: 0.72rem;
    line-height: 1.45;
}

body.report-2030 .nav-link {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-height: 38px;
    padding: 7px 8px;
    border-radius: 9px;
    border: 1px solid transparent;
    color: var(--report-text);
    text-decoration: none;
    transition: background-color 140ms ease, border-color 140ms ease, transform 140ms ease;
}

body.report-2030 .nav-link:hover,
body.report-2030 .nav-link.is-active {
    background: var(--report-surface-alt);
    border-color: #d9caf8;
    transform: translateX(2px);
}

body.report-2030 .nav-index {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 28px;
    height: 28px;
    border-radius: 7px;
    background: var(--report-secondary);
    color: #ffffff;
    font-family: "IBM Plex Mono", monospace;
    font-size: 0.68rem;
    font-weight: 600;
}

body.report-2030 .nav-label {
    font-size: 0.79rem;
    line-height: 1.2;
}

body.report-2030 .report-main {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-flow: row dense;
    gap: 12px;
    min-width: 0;
}

body.report-2030 header.report-hero,
body.report-2030 .section,
body.report-2030 .report-banner,
body.report-2030 .footer {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--report-border-soft) !important;
    border-radius: 12px !important;
    background: var(--report-surface) !important;
    box-shadow: var(--report-shadow-soft) !important;
}

body.report-2030 header.report-hero::before,
body.report-2030 .section::before,
body.report-2030 .report-banner::before {
    content: none;
}

/* Hero: Bloomberg-style — company left, price right, same row vertically centered */
body.report-2030 header.report-hero {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 20px 28px !important;
}

body.report-2030 header.report-hero .container-detail {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
    flex: 1;
}

body.report-2030 header.report-hero .company-logo {
    max-width: 72px;
    max-height: 72px;
    padding: 8px;
    border-radius: 10px;
    border: 1px solid var(--report-border-soft);
    background: #ffffff;
    flex-shrink: 0;
}

body.report-2030 header.report-hero .header-text {
    text-align: left;
    min-width: 0;
}

body.report-2030 header.report-hero .header-text h1 {
    margin: 0;
    color: var(--report-title) !important;
    font-size: clamp(1.4rem, 2vw, 2.2rem);
    line-height: 1.05;
    letter-spacing: -0.03em;
}

body.report-2030 header.report-hero .header-text h2 {
    margin: 0.2rem 0 0;
    color: var(--report-secondary) !important;
    font-family: "IBM Plex Mono", monospace;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

body.report-2030 header.report-hero .header-text>div:last-child {
    display: inline-block;
    margin-top: 0.55rem !important;
    padding: 0.2rem 0.6rem;
    border-radius: 6px;
    background: var(--report-surface-alt);
    border: 1px solid var(--report-border-soft);
    color: var(--report-muted) !important;
    font-size: 0.68rem !important;
    white-space: nowrap;
    word-spacing: 0.1em;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Price panel — right side, separated by a left border like a Bloomberg terminal */
body.report-2030 header.report-hero .header-metrics {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    padding-left: 28px;
    border-left: 2px solid var(--report-border-soft);
}

/* CMP: no background badge — matches stock name size */
body.report-2030 header.report-hero .metrics-value {
    background: none !important;
    box-shadow: none !important;
    border-radius: 0;
    padding: 0;
    min-width: 0;
    min-height: 0;
    color: var(--report-title) !important;
    font-family: "IBM Plex Mono", monospace;
    font-size: clamp(1.4rem, 2vw, 2.2rem) !important;
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
}

body.report-2030 .section,
body.report-2030 .report-banner,
body.report-2030 .footer {
    padding: 10px !important;
}

body.report-2030 .section[data-section],
body.report-2030 .report-banner {
    scroll-margin-top: 72px;
}

body.report-2030 .section h2,
body.report-2030 .report-banner h2 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px 0;
    padding: 0 0 10px 0;
    border: none !important;
    color: var(--report-secondary) !important;
    font-family: "IBM Plex Mono", monospace;
    font-size: 0.7rem !important;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--report-border-soft) !important;
}

body.report-2030 .section h2::before {
    content: "";
    display: inline-block;
    width: 3px;
    height: 14px;
    background: var(--report-accent);
    border-radius: 2px;
    flex-shrink: 0;
}

body.report-2030 .section p,
body.report-2030 .section li,
body.report-2030 .section td,
body.report-2030 .section th,
body.report-2030 .report-banner p,
body.report-2030 .footer {
    color: var(--report-text);
}

body.report-2030 .section p,
body.report-2030 .report-banner p,
body.report-2030 .section li {
    font-size: 0.875rem;
    line-height: 1.65;
}

body.report-2030 .section strong,
body.report-2030 .report-banner strong {
    color: var(--report-title);
}

body.report-2030 .section a,
body.report-2030 .report-banner a,
body.report-2030 .footer a {
    color: var(--report-primary) !important;
}

body.report-2030 .summary-box {
    display: grid;
    gap: 10px;
}

body.report-2030 .numeric-section,
body.report-2030 .metrics-containers,
body.report-2030 .metrics-container,
body.report-2030 .metrics-container-equal {
    padding: 10px 11px;
    border: 1px solid var(--report-border-soft);
    border-radius: 10px;
    background: var(--report-surface-alt);
}

body.report-2030 .section ul {
    margin: 0;
    padding-left: 1rem;
}

body.report-2030 .section li + li {
    margin-top: 0.38rem;
}

body.report-2030 .section h3,
body.report-2030 .section h4 {
    margin: 0 0 0.55rem 0;
    color: var(--report-title);
    font-size: 0.9rem;
    font-weight: 700;
}

/* === SECTION GRID SPANS (4-col base) ===
   1 col  = narrow widget
   2 cols = charts / images / mixed content
   3 cols = timeline / journey charts
   4 cols = full-width tables, dashboards, banners
*/

/* Stock Journey — price timeline chart, wide */
body.report-2030 .report-main > .section--stock-journey {
    grid-column: span 3;
}

/* Key Positives & Key Risks — sits next to journey */
body.report-2030 .report-main > .section--pros-risks,
body.report-2030 .report-main > .section--key-positives-and-key-risks {
    grid-column: span 1;
}

/* AI Signal — single headline metric widget */
body.report-2030 .report-main > .section--signal,
body.report-2030 .report-main > .section--investilo-ai-signal {
    grid-column: span 1;
}

/* Report Summary — dense narrative text */
body.report-2030 .report-main > .section--summary,
body.report-2030 .report-main > .section--report-summary {
    grid-column: span 2;
}

/* Company & Industry Overview — text + key facts */
body.report-2030 .report-main > .section--overview,
body.report-2030 .report-main > .section--company-and-industry-overview {
    grid-column: span 2;
}

/* Sector & Industry Analysis — comparative text */
body.report-2030 .report-main > .section--sector,
body.report-2030 .report-main > .section--sector-and-industry-analysis {
    grid-column: span 2;
}

/* Financial Ratios Dashboard — multi-card dashboard, full width */
body.report-2030 .report-main > .section--ratios,
body.report-2030 .report-main > .section--ratios.section--ratios-wide,
body.report-2030 .report-main > .section--financial-ratios-dashboard {
    grid-column: 1 / -1;
}

/* Scenario Analysis — chart with scenario cards */
body.report-2030 .report-main > .section--scenario,
body.report-2030 .report-main > .section--illustrative-scenario-analysis {
    grid-column: span 2;
}

/* Financials — chart-heavy */
body.report-2030 .report-main > .section--financials {
    grid-column: span 2;
}

/* Peer Analysis — comparison table */
body.report-2030 .report-main > .section--peers,
body.report-2030 .report-main > .section--peer-analysis {
    grid-column: span 2;
}

/* Financial Metrics Comparison — peer comparison charts, 2 cols */
body.report-2030 .report-main > .section--peer-chart,
body.report-2030 .report-main > .section--financial-metrics-comparison-with-peers {
    grid-column: span 2;
}

/* Financial Statements (Income / Balance / Cash Flow) — wide tables */
body.report-2030 .report-main > .section--statement,
body.report-2030 .report-main > .section--income-statement,
body.report-2030 .report-main > .section--balance-sheet,
body.report-2030 .report-main > .section--cash-flow-statement {
    grid-column: 1 / -1;
}

/* Technical Analysis — span 2, flows naturally */
body.report-2030 .report-main > .section--technical,
body.report-2030 .report-main > .section--technical-analysis {
    grid-column: span 2;
}

/* Trending News — span 2, pairs with Technical Analysis in same row */
body.report-2030 .report-main > .section--news,
body.report-2030 .report-main > .section--trending-news {
    grid-column: span 2;
}

/* Analytical Overview — span 2, pairs with whatever follows */
body.report-2030 .report-main > .section--analysis,
body.report-2030 .report-main > .section--analytical-overview {
    grid-column: span 2;
}

/* Recent Updates — update cards */
body.report-2030 .report-main > .section--updates,
body.report-2030 .report-main > .section--recent-updates {
    grid-column: span 2;
}

/* Analytical Overview — pinned to cols 3-4 (set above with Technical Analysis) */

/* Company Description — narrative text */
body.report-2030 .report-main > .section--description,
body.report-2030 .report-main > .section--company-description {
    grid-column: span 2;
}

/* SWOT — 4-quadrant grid, full width */
body.report-2030 .report-main > .section--swot,
body.report-2030 .report-main > .section--swot-analysis {
    grid-column: 1 / -1;
}

/* Banners & footer — always full width */
body.report-2030 .report-main > .report-banner,
body.report-2030 .report-main > .report-footer {
    grid-column: 1 / -1;
}

/* === IMAGE CONTAINMENT — prevent overflow in any section === */
body.report-2030 .section img,
body.report-2030 .report-banner img {
    max-width: 100% !important;
    width: 100% !important;
    height: auto !important;
    display: block;
    object-fit: contain;
}

/* Shareholding / metric-grid chart images — constrain height */
body.report-2030 .metric-grid-detail-chart-container img,
body.report-2030 .shareholding-container img {
    max-width: 100% !important;
    width: 100% !important;
    max-height: 260px !important;
    height: auto !important;
    object-fit: contain;
}

/* All chart containers — no horizontal overflow */
body.report-2030 .chart-container,
body.report-2030 .timeline-chart,
body.report-2030 .metric-grid-detail-chart-container {
    overflow: hidden;
    width: 100% !important;
    max-width: 100% !important;
}

/* Metric grid detail — constrain full container width */
body.report-2030 .metric-grid-detail {
    min-width: 0;
    overflow: hidden;
}

body.report-2030 .metric-grid-detail > * {
    min-width: 0;
    overflow: hidden;
}

body.report-2030 .report-main > .report-banner {
    width: auto;
    justify-self: stretch;
}

body.report-2030 .report-banner p {
    margin: 0;
}

body.report-2030 .report-footer {
    text-align: center;
}

body.report-2030 .timeline-chart,
body.report-2030 .chart-container {
    width: 100% !important;
    margin: 0 !important;
    padding: 8px;
    border: 1px solid var(--report-border-soft);
    border-radius: 10px;
    background: #ffffff;
}

body.report-2030 .timeline-chart img,
body.report-2030 .chart-container img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    display: block;
    margin: 0 auto;
    object-fit: contain;
    border-radius: 8px;
}

/* Global image guard — override any hardcoded inline width/height on images */
body.report-2030 .section img {
    max-width: 100% !important;
    height: auto !important;
    display: block;
}

body.report-2030 .section--financials .chart-container,
body.report-2030 .section--peer-chart .chart-container {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
}

body.report-2030 .section--financials .chart-container img {
    width: auto !important;
    max-width: 100% !important;
    max-height: 220px !important;
}

body.report-2030 .section--peer-chart .chart-container img {
    width: auto !important;
    max-width: 100% !important;
    max-height: 200px !important;
}

body.report-2030 .section--summary .summary-box {
    column-width: 18rem;
    column-gap: 10px;
}

body.report-2030 .section--summary .summary-box p {
    margin: 0 0 10px;
    break-inside: avoid;
}

body.report-2030 .pros-cons-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

body.report-2030 .pros,
body.report-2030 .cons {
    padding: 10px 11px;
    border: 1px solid var(--report-border-soft);
    border-radius: 10px;
}

body.report-2030 .pros {
    background: var(--report-positive);
}

body.report-2030 .cons {
    background: var(--report-negative);
}

body.report-2030 .pros h4 {
    color: #004f3b;
}

body.report-2030 .cons h4 {
    color: #82181a;
}

body.report-2030 .section--signal .summary-box {
    gap: 8px;
}

body.report-2030 .section--signal h3 {
    font-family: "IBM Plex Mono", monospace;
    font-size: clamp(2rem, 2vw, 2.6rem) !important;
    line-height: 0.95;
    letter-spacing: -0.03em;
}

body.report-2030 .section--signal p {
    font-size: 0.82rem !important;
    line-height: 1.45 !important;
}

body.report-2030 .metric-grid-detail {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin-top: 0 !important;
}

body.report-2030 .metric-grid-detail > .metric-grid-detail-container {
    grid-column: span 1;
    gap: 10px !important;
    padding: 10px 11px !important;
    border-radius: 10px !important;
    border: 1px solid var(--report-border-soft) !important;
    background: var(--report-surface-alt) !important;
}

/* Shareholding — spans full width of the overview grid */
body.report-2030 .metric-grid-detail > .shareholding-container {
    grid-column: 1 / -1;
    overflow: hidden;
}

/* Shareholding inner layout: metrics list LEFT, pie chart RIGHT */
body.report-2030 .metric-grid-detail-chart-container {
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    gap: 16px !important;
    align-items: center !important;
    overflow: hidden;
    width: 100%;
}

/* Metrics list column — fixed width, don't stretch */
body.report-2030 .metric-grid-detail-chart-container > .metric-grid-detail-container {
    grid-column: 1;
    flex: none;
    width: 160px;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}

/* Pie chart image — fills the right column, overrides inline width:400px */
body.report-2030 .metric-grid-detail-chart-container img {
    grid-column: 2;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 220px !important;
    object-fit: contain;
}

body.report-2030 .metric-grid-detail-container h3 {
    margin: 0 0 6px;
    color: var(--report-secondary) !important;
    font-family: "IBM Plex Mono", monospace;
    font-size: 0.68rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

body.report-2030 .metric-grid-detail-card {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    padding: 4px 0;
    border-bottom: 1px solid var(--report-border-soft);
}

body.report-2030 .metric-grid-detail-card:last-child {
    border-bottom: none;
}

body.report-2030 .metric-grid-detail-card .metric-name {
    color: var(--report-muted) !important;
    font-size: 0.68rem !important;
    letter-spacing: 0.04em;
    text-transform: none;
    flex-shrink: 1;
}

body.report-2030 .metric-grid-detail-card .metric-value {
    color: var(--report-title) !important;
    font-family: "IBM Plex Mono", monospace;
    font-size: 0.82rem !important;
    font-weight: 600 !important;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Financial Ratios — override inline repeat(2,1fr) to 4-col */
body.report-2030 .section--ratios > div,
body.report-2030 .section--financial-ratios-dashboard > div {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin-top: 0 !important;
}

body.report-2030 .section--ratios > div > div {
    border: 1px solid var(--report-border-soft) !important;
    border-radius: 10px !important;
    background: #ffffff !important;
    box-shadow: none !important;
    overflow: hidden;
}

body.report-2030 .section--ratios > div > div > div:first-child {
    padding: 0.55rem 0.8rem !important;
    background: var(--report-secondary) !important;
    border-bottom: 1px solid #decdfd;
}

body.report-2030 .section--ratios > div > div > div:first-child span {
    color: #ffffff !important;
    font-family: "IBM Plex Mono", monospace;
    font-size: 0.72rem !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.report-2030 .section--ratios > div > div > div:last-child {
    padding: 0.3rem 0.8rem 0.6rem !important;
}

body.report-2030 .section--ratios [style*="color:#022541"],
body.report-2030 .section--ratios [style*="color: #022541"] {
    color: var(--report-title) !important;
    font-family: "IBM Plex Mono", monospace !important;
}

body.report-2030 .section--ratios [style*="color:#555"],
body.report-2030 .section--ratios [style*="color: #555"] {
    color: var(--report-muted) !important;
}

body.report-2030 .section--ratios [style*="background:#e9ecef"],
body.report-2030 .section--ratios [style*="background: #e9ecef"],
body.report-2030 .section--ratios [style*="background:#e8d5fb"],
body.report-2030 .section--ratios [style*="background: #e8d5fb"] {
    background: #eceff4 !important;
}

body.report-2030 .section--ratios [style*="height:5px"][style*="background:"] {
    background: var(--report-accent) !important;
}

body.report-2030 .section--scenario .summary-box > div:first-child {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px !important;
    margin-bottom: 8px !important;
}

body.report-2030 .section--scenario .summary-box > div:first-child > div {
    min-width: 0 !important;
    padding: 12px !important;
    border: 1px solid var(--report-border-soft) !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}

body.report-2030 .section--scenario [style*="font-size: 2rem"] {
    font-family: "IBM Plex Mono", monospace !important;
    font-size: 1.4rem !important;
}

body.report-2030 .section--scenario div[style*="font-family: monospace"] {
    padding: 10px !important;
    border: 1px solid var(--report-border-soft);
    border-radius: 10px !important;
    background: var(--report-surface-alt) !important;
    color: var(--report-title) !important;
    font-family: "IBM Plex Mono", monospace !important;
    font-size: 0.72rem !important;
}

body.report-2030 .section--scenario p[style*="border-top"] {
    border-top-color: var(--report-border-soft) !important;
    color: var(--report-muted) !important;
    font-size: 0.74rem !important;
}

/* ============================================================
   UNIFIED TABLE DESIGN — applies to every metric-table in every section
   Both .table-scroll wrapper and bare .metric-table use the same visual system.
   ============================================================ */

/* Scroll container — wraps every table (applied by JS to all metric-table elements) */
body.report-2030 .table-scroll {
    overflow-x: auto;
    overflow-y: auto;
    border: 1px solid var(--report-border-soft);
    border-radius: 10px;
    background: var(--report-surface);
    -webkit-overflow-scrolling: touch;
}

/* Base table reset */
body.report-2030 .metric-table {
    width: 100%;
    margin: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0;
    background: transparent !important;
    outline: none !important;
    table-layout: auto;
    font-variant-numeric: tabular-nums;
}

/* All cells: shared base */
body.report-2030 .metric-table th,
body.report-2030 .metric-table td {
    padding: 7px 14px !important;
    border-bottom: 1px solid var(--report-border-soft) !important;
    font-size: 0.74rem;
    vertical-align: middle;
    white-space: nowrap;
}

/* Remove bottom border on last row */
body.report-2030 .metric-table tbody tr:last-child th,
body.report-2030 .metric-table tbody tr:last-child td {
    border-bottom: none !important;
}

/* ── Column headers (thead th) ── */
body.report-2030 .metric-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--report-primary) !important;
    color: #ffffff !important;
    font-family: "IBM Plex Mono", monospace;
    font-size: 0.67rem !important;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    text-align: center !important;
    padding: 10px 14px !important;
    border-bottom: none !important;
}

/* First header cell: hide "fiscal_date" label, keep column narrow + sticky */
body.report-2030 .metric-table thead th:first-child {
    font-size: 0 !important;
    width: 1%;
    min-width: 0;
    padding: 10px 6px !important;
    text-align: left !important;
    border-right: 2px solid rgba(255,255,255,0.15) !important;
    position: sticky;
    left: 0;
    z-index: 3;
}

/* Non-first header columns: minimum readable width */
body.report-2030 .metric-table thead th:not(:first-child) {
    min-width: 96px;
}

/* ── Row header cells (tbody th) — metric label column ── */
body.report-2030 .metric-table tbody th {
    background: #f5f3ff !important;
    color: var(--report-title) !important;
    font-family: "IBM Plex Sans", sans-serif;
    font-size: 0.73rem !important;
    font-weight: 600;
    text-align: left !important;
    white-space: nowrap;
    width: 1%;
    max-width: 220px;
    border-right: 2px solid #e2d8f7 !important;
    position: sticky;
    left: 0;
    z-index: 1;
}

/* ── Data cells (td) ── */
body.report-2030 .metric-table td {
    color: var(--report-title) !important;
    font-family: "IBM Plex Mono", monospace;
    font-size: 0.74rem !important;
    text-align: right !important;
}

/* ── Alternating row stripes ── */
body.report-2030 .metric-table tbody tr:nth-child(even) {
    background: #f9f7ff !important;
}

body.report-2030 .metric-table tbody tr:nth-child(even) th {
    background: #efebfb !important;
}

/* ── Hover highlight ── */
body.report-2030 .metric-table tr:hover td,
body.report-2030 .metric-table tr:hover th {
    background: rgba(124, 58, 237, 0.06) !important;
}

/* ── Peer Analysis: first td is company name — left-align, bold ── */
body.report-2030 .section--peers .metric-table td:first-child,
body.report-2030 .section--peer-analysis .metric-table td:first-child {
    text-align: left !important;
    font-family: "IBM Plex Sans", sans-serif;
    font-weight: 600;
    color: var(--report-title) !important;
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--report-surface) !important;
    border-right: 2px solid #e2d8f7 !important;
}

body.report-2030 .section--peers .metric-table tbody tr:nth-child(even) td:first-child,
body.report-2030 .section--peer-analysis .metric-table tbody tr:nth-child(even) td:first-child {
    background: #f9f7ff !important;
}

/* ── Financial Statement tables: height-capped, scrollable ── */
body.report-2030 .section--statement .table-scroll,
body.report-2030 .section--income-statement .table-scroll,
body.report-2030 .section--balance-sheet .table-scroll,
body.report-2030 .section--cash-flow-statement .table-scroll {
    max-height: 300px;
}

body.report-2030 .section--technical .metric-grids {
    display: block;
}

body.report-2030 .section--technical .metrics-containers {
    padding: 8px 9px;
}

body.report-2030 .section--technical ul {
    columns: 2;
    column-gap: 16px;
}

body.report-2030 .section--technical li {
    break-inside: avoid;
}

body.report-2030 .metric-grids,
body.report-2030 .metric-grid-equal {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

body.report-2030 .section--news .summary-box {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

body.report-2030 .section--news .numeric-section {
    display: grid;
    gap: 6px;
    min-height: 100%;
    background: #ffffff;
    padding: 8px 9px;
}

body.report-2030 .section--news .numeric-section p {
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.42;
}

body.report-2030 .section--news .numeric-section a {
    font-weight: 600;
    text-decoration: none;
}

body.report-2030 .section--updates h3,
body.report-2030 .section--analysis h3 {
    margin-top: 2px;
    color: var(--report-secondary);
    font-family: "IBM Plex Mono", monospace;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

body.report-2030 .section--updates .word-short {
    display: grid;
    gap: 6px;
    padding-left: 1rem;
}

body.report-2030 .section--updates .summary-box {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

body.report-2030 .section--updates .update-block {
    display: grid;
    gap: 6px;
    align-content: start;
    padding: 8px 9px;
    border: 1px solid var(--report-border-soft);
    border-radius: 10px;
    background: var(--report-surface-alt);
}

body.report-2030 .section--updates .update-block p {
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.42;
}

body.report-2030 .word-short li {
    word-break: break-word !important;
}

body.report-2030 .swot-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin-top: 0 !important;
}

body.report-2030 .swot-card {
    padding: 9px 10px !important;
    border-radius: 10px !important;
    border-left: none !important;
    box-shadow: none !important;
}

body.report-2030 .strengths {
    background: #d0fae5 !important;
    border: 1px solid #8be0b6 !important;
}

body.report-2030 .weaknesses {
    background: #ffe2e2 !important;
    border: 1px solid #ffb5b7 !important;
}

body.report-2030 .opportunities {
    background: #dff2fe !important;
    border: 1px solid #9ad5f8 !important;
}

body.report-2030 .threats {
    background: #fef3c6 !important;
    border: 1px solid #f7d770 !important;
}

body.report-2030 .strengths h3 {
    color: #004f3b !important;
}

body.report-2030 .weaknesses h3 {
    color: #82181a !important;
}

body.report-2030 .opportunities h3 {
    color: #024a70 !important;
}

body.report-2030 .threats h3 {
    color: #7b3306 !important;
}

body.report-2030 .sentiment-indicator {
    padding: 0.24rem 0.54rem !important;
    border-radius: 999px !important;
    font-family: "IBM Plex Mono", monospace;
    font-size: 0.66rem !important;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

body.report-2030 .sentiment-indicator.positive {
    background: #d0fae5 !important;
    border-color: #8be0b6 !important;
    color: #004f3b !important;
}

body.report-2030 .sentiment-indicator.negative {
    background: #ffe2e2 !important;
    border-color: #ffb5b7 !important;
    color: #82181a !important;
}

body.report-2030 .sentiment-indicator.neutral {
    background: #fef3c6 !important;
    border-color: #f7d770 !important;
    color: #7b3306 !important;
}

body.report-2030 .section--description .numeric-section {
    background: var(--report-surface-alt);
    columns: 2;
    column-gap: 16px;
}

body.report-2030 .section--description p {
    font-size: 0.82rem;
    line-height: 1.48;
    margin: 0;
    break-inside: avoid;
}

@media (max-width: 1360px) {
    body.report-2030 .report-layout {
        grid-template-columns: 192px minmax(0, 1fr);
    }
}

/* Tablet: collapse to 2-col layout */
@media (max-width: 1024px) {
    body.report-2030 .report-main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.report-2030 .report-main > * { grid-column: span 2; }
    body.report-2030 .report-main > .section--pros-risks,
    body.report-2030 .report-main > .section--signal     { grid-column: span 1; }

    body.report-2030 .section--ratios > div {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.report-2030 .swot-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.report-2030 .section--news .summary-box {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.report-2030 .section--updates .summary-box {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Full collapse: mobile */
@media (max-width: 940px) {
    body.report-2030 .report-main > * {
        grid-column: 1 / -1 !important;
    }

    body.report-2030 .section--ratios > div {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.report-2030 .swot-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    /* Aggressive height caps when full-width in narrow viewport */
    body.report-2030 .section--financials .chart-container img {
        max-height: 160px !important;
    }

    body.report-2030 .section--peer-chart .chart-container img {
        max-height: 150px !important;
    }
}

@media (max-width: 760px) {
    body.report-2030 .container {
        padding: 12px 10px 36px;
    }

    body.report-2030 header.report-hero {
        flex-wrap: wrap;
        gap: 14px;
        padding: 16px !important;
    }

    body.report-2030 header.report-hero .header-metrics {
        padding-left: 20px;
    }

    body.report-2030 header.report-hero .metrics-value {
        font-size: clamp(1.2rem, 4vw, 1.6rem) !important;
    }

    body.report-2030 .report-nav-top {
        display: none;
    }

    body.report-2030 .section,
    body.report-2030 .report-banner,
    body.report-2030 .footer {
        padding: 11px !important;
    }

    body.report-2030 .metric-grid-detail,
    body.report-2030 .section--scenario .summary-box > div:first-child,
    body.report-2030 .section--ratios > div,
    body.report-2030 .section--news .summary-box,
    body.report-2030 .section--updates .summary-box,
    body.report-2030 .metric-grids,
    body.report-2030 .metric-grid-equal,
    body.report-2030 .swot-grid {
        grid-template-columns: 1fr !important;
    }

    body.report-2030 .section--summary .summary-box {
        column-width: auto;
    }

    body.report-2030 .section--technical ul,
    body.report-2030 .section--description .numeric-section {
        columns: 1;
    }
}

/* ============================================================
   SECTION-BY-SECTION DENSITY & LAYOUT IMPROVEMENTS
   ============================================================ */

/* --- Stock Journey: image fills full section width --- */
body.report-2030 .section--stock-journey {
    display: flex;
    flex-direction: column;
}
body.report-2030 .section--stock-journey .timeline-chart {
    flex: 1;
    padding: 0;
    margin: 0;
    border: none;
    background: transparent;
    border-radius: 0;
    overflow: hidden;
    width: 100%;
}
body.report-2030 .section--stock-journey .timeline-chart img,
body.report-2030 .section--stock-journey img {
    max-height: none !important;
    width: 100% !important;
    height: auto !important;
    object-fit: cover;
    display: block;
}

/* --- Key Positives & Risks (narrow 1-col): compact lists --- */
body.report-2030 .section--pros-risks .pros-cons-grid,
body.report-2030 .section--key-positives-and-key-risks .pros-cons-grid {
    gap: 8px;
}
body.report-2030 .section--pros-risks .pros,
body.report-2030 .section--pros-risks .cons,
body.report-2030 .section--key-positives-and-key-risks .pros,
body.report-2030 .section--key-positives-and-key-risks .cons {
    padding: 8px 10px;
    border-radius: 8px;
}
body.report-2030 .section--pros-risks h4,
body.report-2030 .section--key-positives-and-key-risks h4 {
    font-size: 0.72rem;
    margin-bottom: 5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
body.report-2030 .section--pros-risks li,
body.report-2030 .section--key-positives-and-key-risks li {
    font-size: 0.72rem !important;
    line-height: 1.45 !important;
    margin-top: 0.28rem !important;
}
body.report-2030 .section--pros-risks p[style],
body.report-2030 .section--key-positives-and-key-risks p[style] {
    font-size: 0.65rem !important;
    margin-top: 6px !important;
}

/* ─────────────────────────────────────────────────────────
   AI SIGNAL — Bloomberg-style full-width compact strip
   Fixed 80px height, spans all 4 grid columns
   ───────────────────────────────────────────────────────── */
body.report-2030 .report-main > .section--signal.signal-top-banner,
body.report-2030 .report-main > .section--investilo-ai-signal.signal-top-banner {
    grid-column: 1 / -1;
    display: flex !important;
    align-items: stretch;
    height: 80px;          /* fixed — never grows to card size */
    max-height: 80px;
    padding: 0 !important;
    background: #0a1628 !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.2) !important;
    overflow: hidden !important;
}

/* Hide the section h2 */
body.report-2030 .signal-top-banner > h2 {
    display: none !important;
}

/* summary-box fills remaining space; row layout */
body.report-2030 .signal-top-banner .summary-box {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    gap: 0 !important;
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

/* "INVESTILO AI SIGNAL" label — injected via summary-box::before
   (avoids conflict with .section::before { content: none }) */
body.report-2030 .signal-top-banner .summary-box::before {
    content: 'INVESTILO AI SIGNAL';
    flex-shrink: 0;
    display: flex;
    align-items: center;
    padding: 0 18px;
    font-family: "IBM Plex Mono", monospace;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: rgba(255,255,255,0.3);
    text-transform: uppercase;
    white-space: nowrap;
    border-right: 1px solid rgba(255,255,255,0.1);
    background: rgba(255,255,255,0.03);
}

/* Verdict badge — BUY / HOLD / SELL */
body.report-2030 .signal-top-banner .summary-box h3 {
    flex-shrink: 0;
    display: flex !important;
    align-items: center;
    margin: 0 !important;
    padding: 0 24px !important;
    border-radius: 0 !important;
    border-right: 1px solid rgba(255,255,255,0.1) !important;
    font-family: "IBM Plex Mono", monospace !important;
    font-size: clamp(1rem, 1.6vw, 1.35rem) !important;
    font-weight: 800 !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #e2e8f0 !important;
    background: rgba(255,255,255,0.04) !important;
}

/* BUY */
body.report-2030 .signal-top-banner .summary-box h3[style*="color: #28a745"],
body.report-2030 .signal-top-banner .summary-box h3[style*="color:#28a745"],
body.report-2030 .signal-top-banner .summary-box h3[style*="color: green"],
body.report-2030 .signal-top-banner .summary-box h3[style*="color:green"] {
    color: #22c55e !important;
    background: rgba(34,197,94,0.1) !important;
}

/* SELL */
body.report-2030 .signal-top-banner .summary-box h3[style*="color: #dc3545"],
body.report-2030 .signal-top-banner .summary-box h3[style*="color:#dc3545"],
body.report-2030 .signal-top-banner .summary-box h3[style*="color: red"],
body.report-2030 .signal-top-banner .summary-box h3[style*="color:red"] {
    color: #f87171 !important;
    background: rgba(248,113,113,0.1) !important;
}

/* HOLD */
body.report-2030 .signal-top-banner .summary-box h3[style*="color: #ffc107"],
body.report-2030 .signal-top-banner .summary-box h3[style*="color:#ffc107"],
body.report-2030 .signal-top-banner .summary-box h3[style*="color: orange"] {
    color: #fbbf24 !important;
    background: rgba(251,191,36,0.1) !important;
}

/* First paragraph — key insight, 2-line max */
body.report-2030 .signal-top-banner .summary-box p:first-of-type {
    flex: 1;
    min-width: 0;
    align-self: center;
    padding: 0 20px;
    margin: 0 !important;
    font-family: "IBM Plex Sans", sans-serif !important;
    font-size: 0.82rem !important;
    line-height: 1.5 !important;
    color: rgba(255,255,255,0.68) !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

body.report-2030 .signal-top-banner .summary-box p:first-of-type strong {
    color: rgba(255,255,255,0.88) !important;
    font-weight: 600;
}

/* Hide everything else inside the signal banner */
body.report-2030 .signal-top-banner .summary-box p:not(:first-of-type),
body.report-2030 .signal-top-banner .summary-box div,
body.report-2030 .signal-top-banner .summary-box [style*="color: #666"],
body.report-2030 .signal-top-banner .summary-box ul,
body.report-2030 .signal-top-banner .summary-box ol {
    display: none !important;
}

/* Mobile: collapse label, allow two rows */
@media (max-width: 640px) {
    body.report-2030 .report-main > .section--signal.signal-top-banner,
    body.report-2030 .report-main > .section--investilo-ai-signal.signal-top-banner {
        height: auto;
        max-height: none;
    }
    body.report-2030 .signal-top-banner .summary-box {
        flex-direction: column !important;
        align-items: flex-start !important;
        padding: 12px 16px;
        gap: 8px !important;
    }
    body.report-2030 .signal-top-banner .summary-box::before {
        display: none;
    }
    body.report-2030 .signal-top-banner .summary-box h3 {
        padding: 6px 12px !important;
        border-right: none !important;
        border-radius: 6px !important;
    }
    body.report-2030 .signal-top-banner .summary-box p:first-of-type {
        padding: 0;
        -webkit-line-clamp: 3;
    }
}

/* Non-top-banner fallback (non-business users, signal not moved) */
body.report-2030 .section--signal:not(.signal-top-banner),
body.report-2030 .section--investilo-ai-signal:not(.signal-top-banner) {
    display: flex;
    flex-direction: column;
}
body.report-2030 .section--signal:not(.signal-top-banner) h3,
body.report-2030 .section--investilo-ai-signal:not(.signal-top-banner) h3 {
    font-size: clamp(1.8rem, 3vw, 2.8rem) !important;
    font-family: "IBM Plex Mono", monospace;
    line-height: 1;
}
body.report-2030 .section--signal:not(.signal-top-banner) p,
body.report-2030 .section--investilo-ai-signal:not(.signal-top-banner) p {
    font-size: 0.82rem !important;
    line-height: 1.5 !important;
}

/* --- Report Summary: single column, readable paragraphs --- */
body.report-2030 .section--summary .summary-box,
body.report-2030 .section--report-summary .summary-box {
    column-width: auto !important;
    columns: 1 !important;
    gap: 0;
}
body.report-2030 .section--summary p,
body.report-2030 .section--report-summary p {
    font-size: 0.8rem !important;
    line-height: 1.65 !important;
    margin-bottom: 8px !important;
    break-inside: auto;
    color: var(--report-text);
}
body.report-2030 .section--summary p:last-child,
body.report-2030 .section--report-summary p:last-child {
    margin-bottom: 0 !important;
}

/* --- Company Overview: 3-col metric grid, tighter cards --- */
body.report-2030 .section--overview .metric-grid-detail,
body.report-2030 .section--company-and-industry-overview .metric-grid-detail {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
}
body.report-2030 .metric-grid-detail-container {
    padding: 8px 10px !important;
    border-radius: 8px;
    border: 1px solid var(--report-border-soft);
    background: var(--report-surface-alt);
}
body.report-2030 .metric-grid-detail-card {
    padding: 5px 0;
    border-bottom: 1px dashed var(--report-border-soft);
}
body.report-2030 .metric-grid-detail-card:last-child {
    border-bottom: none;
}
body.report-2030 .metric-grid-detail-card .metric-name {
    font-size: 0.65rem !important;
    color: var(--report-muted) !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
body.report-2030 .metric-grid-detail-card .metric-value {
    font-size: 0.84rem !important;
    font-weight: 700 !important;
    color: var(--report-title) !important;
    font-family: "IBM Plex Mono", monospace;
    margin-top: 2px;
}

/* --- Sector Analysis: max-height summary with scroll on overflow --- */
body.report-2030 .section--sector p,
body.report-2030 .section--sector-and-industry-analysis p {
    font-size: 0.8rem !important;
    line-height: 1.6 !important;
    margin-bottom: 8px !important;
    color: var(--report-text);
}

/* --- Financial Ratios: thicker bars, bigger values --- */
body.report-2030 .section--ratios [style*="height:5px"],
body.report-2030 .section--ratios [style*="height: 5px"],
body.report-2030 .section--financial-ratios-dashboard [style*="height:5px"],
body.report-2030 .section--financial-ratios-dashboard [style*="height: 5px"] {
    height: 8px !important;
    border-radius: 4px !important;
}
body.report-2030 .section--ratios [style*="color:#022541"],
body.report-2030 .section--ratios [style*="color: #022541"],
body.report-2030 .section--financial-ratios-dashboard [style*="color:#022541"] {
    font-size: 0.9rem !important;
    font-weight: 700 !important;
    font-family: "IBM Plex Mono", monospace !important;
}
body.report-2030 .section--ratios [style*="color:#555"],
body.report-2030 .section--ratios [style*="color: #555"],
body.report-2030 .section--financial-ratios-dashboard [style*="color:#555"] {
    font-size: 0.72rem !important;
}

/* --- Scenario Analysis: scenario cards 2-col grid --- */
body.report-2030 .section--scenario .summary-box > div:first-child,
body.report-2030 .section--illustrative-scenario-analysis .summary-box > div:first-child {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
}
body.report-2030 .section--scenario [style*="font-size: 2rem"],
body.report-2030 .section--illustrative-scenario-analysis [style*="font-size: 2rem"] {
    font-size: 1.3rem !important;
    font-family: "IBM Plex Mono", monospace !important;
    font-weight: 700 !important;
}

/* --- Financials: bar chart height cap --- */
body.report-2030 .section--financials img,
body.report-2030 .section--financials .chart-container img {
    max-height: 240px !important;
    width: 100% !important;
    object-fit: contain;
}

/* --- Peer Chart: 2×2 internal grid for comparison charts --- */
body.report-2030 .section--peer-chart .summary-box,
body.report-2030 .section--financial-metrics-comparison-with-peers .summary-box {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
}
body.report-2030 .section--peer-chart .chart-container,
body.report-2030 .section--financial-metrics-comparison-with-peers .chart-container {
    padding: 6px;
    border-radius: 8px;
}
body.report-2030 .section--peer-chart .chart-container img,
body.report-2030 .section--financial-metrics-comparison-with-peers .chart-container img {
    max-height: 180px !important;
    width: 100% !important;
    object-fit: contain;
}


/* --- Technical Analysis: side-by-side chart + indicators --- */
body.report-2030 .section--technical .metric-grids,
body.report-2030 .section--technical-analysis .metric-grids {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
}
body.report-2030 .section--technical img,
body.report-2030 .section--technical-analysis img {
    max-height: 220px !important;
    width: 100% !important;
    object-fit: contain;
}

/* --- Trending News: 3-col card grid --- */
body.report-2030 .section--news .summary-box,
body.report-2030 .section--trending-news .summary-box {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
}
body.report-2030 .section--news .numeric-section,
body.report-2030 .section--trending-news .numeric-section {
    padding: 8px 10px;
    border-radius: 8px;
    background: #ffffff;
    border: 1px solid var(--report-border-soft);
}
body.report-2030 .section--news .numeric-section p,
body.report-2030 .section--trending-news .numeric-section p {
    font-size: 0.75rem !important;
    line-height: 1.45 !important;
    margin: 0 0 4px !important;
}
body.report-2030 .section--news .numeric-section a,
body.report-2030 .section--trending-news .numeric-section a {
    font-weight: 700;
    font-size: 0.78rem !important;
    color: var(--report-primary) !important;
    text-decoration: none;
    display: block;
    margin-bottom: 4px;
}

/* --- Recent Updates: 3-col update blocks --- */
body.report-2030 .section--updates .summary-box,
body.report-2030 .section--recent-updates .summary-box {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
}
body.report-2030 .update-block {
    padding: 8px 10px;
    border-radius: 8px;
    background: var(--report-surface-alt);
    border: 1px solid var(--report-border-soft);
}
body.report-2030 .update-block h3 {
    font-size: 0.68rem !important;
    color: var(--report-secondary) !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 4px !important;
    font-family: "IBM Plex Mono", monospace;
}
body.report-2030 .update-block p {
    font-size: 0.74rem !important;
    line-height: 1.45 !important;
    margin: 0 !important;
}

/* --- SWOT: 4-col desktop, responsive on mobile --- */
body.report-2030 .swot-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px !important;
}
@media (max-width: 940px) {
    body.report-2030 .swot-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 600px) {
    body.report-2030 .swot-grid {
        grid-template-columns: 1fr !important;
    }
}
body.report-2030 .swot-card {
    padding: 10px 12px !important;
    border-radius: 10px !important;
}
body.report-2030 .swot-card h3 {
    font-size: 0.72rem !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 6px !important;
}
body.report-2030 .swot-card ul {
    padding-left: 1rem;
    margin: 0;
}
body.report-2030 .swot-card li {
    font-size: 0.75rem !important;
    line-height: 1.45 !important;
    margin-top: 4px !important;
}

/* --- Analytical Overview / Company Description: balanced text --- */
body.report-2030 .section--analysis p,
body.report-2030 .section--analytical-overview p,
body.report-2030 .section--description p,
body.report-2030 .section--company-description p {
    font-size: 0.8rem !important;
    line-height: 1.65 !important;
    margin-bottom: 8px !important;
}

/* --- Section card spacing: breathe a bit more --- */
body.report-2030 .section,
body.report-2030 .report-banner {
    padding: 14px !important;
}

/* --- Sentiment indicators: visible pill badges --- */
body.report-2030 .sentiment-indicator {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px !important;
    border-radius: 999px !important;
    font-size: 0.65rem !important;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border: 1px solid transparent;
}

/* ============================================================
   DARK THEME — html.dark body.report-2030
   All grid layout (display, grid-column, flex) is intentionally
   NOT touched here — only colors, backgrounds, borders.
   ============================================================ */

html.dark body.report-2030 {
    --report-bg: #07101e;
    --report-surface: #0d1b2e;
    --report-surface-alt: #112038;
    --report-surface-raised: #162540;
    --report-border: rgba(255,255,255,0.08);
    --report-border-soft: rgba(255,255,255,0.06);
    --report-text: #b8cfe4;
    --report-muted: #6b849e;
    --report-title: #ddeaf8;
    --report-positive: rgba(0,79,59,0.35);
    --report-negative: rgba(130,24,26,0.35);
    --report-warning: rgba(123,51,6,0.35);
    --report-shadow: 0 10px 30px rgba(0,0,0,0.6);
    --report-shadow-soft: 0 4px 14px rgba(0,0,0,0.4);
    background: var(--report-bg) !important;
    color-scheme: dark;
}

/* === Page & container background === */
html.dark body.report-2030 .container,
html.dark body.report-2030 .report-main {
    background: var(--report-bg) !important;
}

/* === Section cards — same layout, dark surface === */
html.dark body.report-2030 header.report-hero,
html.dark body.report-2030 .section,
html.dark body.report-2030 .report-banner,
html.dark body.report-2030 .footer {
    background: var(--report-surface) !important;
    border-color: var(--report-border-soft) !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.5) !important;
}

/* Section h2 */
html.dark body.report-2030 .section h2,
html.dark body.report-2030 .report-banner h2 {
    color: #a78bfa !important;
    border-bottom-color: var(--report-border-soft) !important;
}

/* Text — only target semantic text elements, NOT divs (avoids layout issues) */
html.dark body.report-2030 .section p,
html.dark body.report-2030 .section li,
html.dark body.report-2030 .section h3,
html.dark body.report-2030 .section h4,
html.dark body.report-2030 .section label,
html.dark body.report-2030 .section em {
    color: var(--report-text) !important;
}
html.dark body.report-2030 .section strong {
    color: var(--report-title) !important;
}

/* === Inline style overrides from Supabase HTML ===
   Target background colors that bleed through from the HTML source */

/* White backgrounds → dark surface */
html.dark body.report-2030 .section [style*="background:#fff"],
html.dark body.report-2030 .section [style*="background: #fff"],
html.dark body.report-2030 .section [style*="background:#ffffff"],
html.dark body.report-2030 .section [style*="background: #ffffff"],
html.dark body.report-2030 .section [style*="background-color:#fff"],
html.dark body.report-2030 .section [style*="background-color: #fff"],
html.dark body.report-2030 .section [style*="background-color:#ffffff"],
html.dark body.report-2030 .section [style*="background-color: #ffffff"],
html.dark body.report-2030 .report-banner [style*="background:#fff"],
html.dark body.report-2030 .report-banner [style*="background:#ffffff"] {
    background: var(--report-surface-raised) !important;
    background-color: var(--report-surface-raised) !important;
}

/* Light grey / accent backgrounds → dark alt surface */
html.dark body.report-2030 .section [style*="background:#f9f9f9"],
html.dark body.report-2030 .section [style*="background:#f4f5f8"],
html.dark body.report-2030 .section [style*="background:#FBF5FF"],
html.dark body.report-2030 .section [style*="background:#fbf5ff"],
html.dark body.report-2030 .section [style*="background:#f1f1f1"],
html.dark body.report-2030 .section [style*="background-color:#f1f1f1"],
html.dark body.report-2030 .section [style*="background-color:#f9f9f9"],
html.dark body.report-2030 .section [style*="background-color:#FBF5FF"] {
    background: var(--report-surface-alt) !important;
    background-color: var(--report-surface-alt) !important;
}

/* Purple/accent tints → dark tinted */
html.dark body.report-2030 .section [style*="background:#e8d5fb"],
html.dark body.report-2030 .section [style*="background: #e8d5fb"],
html.dark body.report-2030 .section [style*="background:#e8e0f5"],
html.dark body.report-2030 .section [style*="background:#f0e6ff"],
html.dark body.report-2030 .section [style*="background:#e9ecef"] {
    background: rgba(128,0,255,0.12) !important;
    background-color: rgba(128,0,255,0.12) !important;
}

/* Dark text on inline styles → light */
html.dark body.report-2030 .section [style*="color:#022541"],
html.dark body.report-2030 .section [style*="color: #022541"],
html.dark body.report-2030 .section [style*="color:#333"],
html.dark body.report-2030 .section [style*="color: #333"],
html.dark body.report-2030 .section [style*="color:#223249"],
html.dark body.report-2030 .section [style*="color: #223249"] {
    color: var(--report-title) !important;
}
html.dark body.report-2030 .section [style*="color:#555"],
html.dark body.report-2030 .section [style*="color: #555"],
html.dark body.report-2030 .section [style*="color:#666"],
html.dark body.report-2030 .section [style*="color: #666"],
html.dark body.report-2030 .section [style*="color:#637087"],
html.dark body.report-2030 .section [style*="color: #637087"] {
    color: var(--report-muted) !important;
}

/* Border colors */
html.dark body.report-2030 .section [style*="border-top: 1px solid #eee"],
html.dark body.report-2030 .section [style*="border-top:1px solid #eee"],
html.dark body.report-2030 .section [style*="border:1px solid #e8e0f5"],
html.dark body.report-2030 .section [style*="border: 1px solid #e8e0f5"],
html.dark body.report-2030 .section [style*="border:1px solid #dbdbdb"],
html.dark body.report-2030 .section [style*="border: 1px solid #dbdbdb"] {
    border-color: var(--report-border-soft) !important;
}

/* === Hero header === */
html.dark body.report-2030 header.report-hero .header-text h1 {
    color: var(--report-title) !important;
}
html.dark body.report-2030 header.report-hero .header-text h2 {
    color: #a78bfa !important;
}
html.dark body.report-2030 header.report-hero .header-text > div:last-child {
    background: rgba(255,255,255,0.06) !important;
    border-color: var(--report-border-soft) !important;
    color: var(--report-muted) !important;
}
html.dark body.report-2030 header.report-hero .metrics-value {
    color: var(--report-title) !important;
}
html.dark body.report-2030 header.report-hero .header-metrics {
    border-left-color: var(--report-border-soft) !important;
    border-top-color: var(--report-border-soft) !important;
}

/* === AI Signal banner — dark mode === */
html.dark body.report-2030 .signal-top-banner {
    background: #060d1f !important;
    border-color: rgba(255,255,255,0.06) !important;
    box-shadow: 0 4px 24px rgba(0,0,0,0.6) !important;
}
html.dark body.report-2030 .signal-top-banner::before {
    color: rgba(255,255,255,0.25);
    border-right-color: rgba(255,255,255,0.07);
    background: rgba(255,255,255,0.02);
}

/* === Metric cards (Company Overview) === */
html.dark body.report-2030 .numeric-section,
html.dark body.report-2030 .metrics-containers,
html.dark body.report-2030 .metrics-container,
html.dark body.report-2030 .metrics-container-equal,
html.dark body.report-2030 .metric-grid-detail-container {
    background: var(--report-surface-alt) !important;
    border-color: var(--report-border-soft) !important;
}
html.dark body.report-2030 .metric-grid-detail-card {
    border-bottom-color: var(--report-border-soft) !important;
}
html.dark body.report-2030 .metric-grid-detail-card .metric-name {
    color: var(--report-muted) !important;
}
html.dark body.report-2030 .metric-grid-detail-card .metric-value {
    color: var(--report-title) !important;
}

/* === Pros / Cons === */
html.dark body.report-2030 .pros {
    background: rgba(0,79,59,0.22) !important;
    border-color: rgba(0,188,125,0.2) !important;
}
html.dark body.report-2030 .cons {
    background: rgba(130,24,26,0.22) !important;
    border-color: rgba(251,44,54,0.2) !important;
}
html.dark body.report-2030 .pros h4 { color: #6ee7b7 !important; }
html.dark body.report-2030 .cons h4 { color: #fca5a5 !important; }

/* === Financial Ratios === */
html.dark body.report-2030 .section--ratios > div > div,
html.dark body.report-2030 .section--financial-ratios-dashboard > div > div {
    background: var(--report-surface-raised) !important;
    border-color: var(--report-border-soft) !important;
}
html.dark body.report-2030 .section--ratios > div > div > div:first-child,
html.dark body.report-2030 .section--financial-ratios-dashboard > div > div > div:first-child {
    background: #1e0a4a !important;
    border-bottom-color: rgba(128,0,255,0.2) !important;
}
html.dark body.report-2030 .section--ratios > div > div > div:first-child span {
    color: #c4b5fd !important;
}
html.dark body.report-2030 .section--ratios [style*="height:5px"],
html.dark body.report-2030 .section--ratios [style*="height: 5px"],
html.dark body.report-2030 .section--ratios [style*="height:8px"] {
    background: rgba(255,255,255,0.1) !important;
}
html.dark body.report-2030 .section--ratios [style*="background:#b57bee"],
html.dark body.report-2030 .section--ratios [style*="background: #b57bee"] {
    background: #8b5cf6 !important;
}

/* === Tables (dark) === */
html.dark body.report-2030 .table-scroll {
    background: var(--report-surface) !important;
    border-color: var(--report-border-soft) !important;
}

/* Column headers */
html.dark body.report-2030 .metric-table thead th {
    background: #081526 !important;
    color: #c4b5fd !important;
    border-bottom: none !important;
}
html.dark body.report-2030 .metric-table thead th:first-child {
    background: #081526 !important;
    border-right-color: rgba(255,255,255,0.12) !important;
}

/* Row header cells */
html.dark body.report-2030 .metric-table tbody th {
    background: rgba(255,255,255,0.04) !important;
    color: var(--report-title) !important;
    border-right-color: rgba(255,255,255,0.1) !important;
    border-bottom-color: var(--report-border-soft) !important;
}

/* Data cells */
html.dark body.report-2030 .metric-table td {
    color: var(--report-text) !important;
    border-bottom-color: var(--report-border-soft) !important;
}

/* Alternating stripes */
html.dark body.report-2030 .metric-table tbody tr:nth-child(even) {
    background: rgba(255,255,255,0.025) !important;
}
html.dark body.report-2030 .metric-table tbody tr:nth-child(even) th {
    background: rgba(255,255,255,0.05) !important;
}

/* Hover */
html.dark body.report-2030 .metric-table tr:hover td,
html.dark body.report-2030 .metric-table tr:hover th {
    background: rgba(124,58,237,0.1) !important;
}

/* Peer analysis sticky first-td */
html.dark body.report-2030 .section--peers .metric-table td:first-child,
html.dark body.report-2030 .section--peer-analysis .metric-table td:first-child {
    background: var(--report-surface) !important;
    border-right-color: rgba(255,255,255,0.1) !important;
}
html.dark body.report-2030 .section--peers .metric-table tbody tr:nth-child(even) td:first-child,
html.dark body.report-2030 .section--peer-analysis .metric-table tbody tr:nth-child(even) td:first-child {
    background: rgba(255,255,255,0.025) !important;
}

/* === Charts === */
html.dark body.report-2030 .timeline-chart,
html.dark body.report-2030 .chart-container {
    background: var(--report-surface-alt) !important;
    border-color: var(--report-border-soft) !important;
}

/* === Scenario === */
html.dark body.report-2030 .section--scenario .summary-box > div:first-child > div,
html.dark body.report-2030 .section--illustrative-scenario-analysis .summary-box > div:first-child > div {
    background: var(--report-surface-alt) !important;
    border-color: var(--report-border-soft) !important;
}
html.dark body.report-2030 .section--scenario div[style*="font-family: monospace"],
html.dark body.report-2030 .section--scenario div[style*="background: #f"] {
    background: var(--report-surface-alt) !important;
    color: var(--report-text) !important;
    border-color: var(--report-border-soft) !important;
}

/* === News cards === */
html.dark body.report-2030 .section--news .numeric-section,
html.dark body.report-2030 .section--trending-news .numeric-section {
    background: var(--report-surface-raised) !important;
    border-color: var(--report-border-soft) !important;
}
html.dark body.report-2030 .section--news .numeric-section p,
html.dark body.report-2030 .section--trending-news .numeric-section p {
    color: var(--report-text) !important;
}
html.dark body.report-2030 .section--news .numeric-section a,
html.dark body.report-2030 .section--trending-news .numeric-section a {
    color: #a78bfa !important;
}

/* === Recent Updates === */
html.dark body.report-2030 .update-block {
    background: var(--report-surface-raised) !important;
    border-color: var(--report-border-soft) !important;
}
html.dark body.report-2030 .update-block p {
    color: var(--report-text) !important;
}

/* === SWOT === */
html.dark body.report-2030 .strengths {
    background: rgba(0,79,59,0.28) !important;
    border-color: rgba(0,188,125,0.18) !important;
}
html.dark body.report-2030 .weaknesses {
    background: rgba(130,24,26,0.28) !important;
    border-color: rgba(251,44,54,0.18) !important;
}
html.dark body.report-2030 .opportunities {
    background: rgba(2,74,112,0.28) !important;
    border-color: rgba(0,166,244,0.18) !important;
}
html.dark body.report-2030 .threats {
    background: rgba(123,51,6,0.28) !important;
    border-color: rgba(254,154,0,0.18) !important;
}
html.dark body.report-2030 .strengths h3 { color: #6ee7b7 !important; }
html.dark body.report-2030 .weaknesses h3 { color: #fca5a5 !important; }
html.dark body.report-2030 .opportunities h3 { color: #7dd3fc !important; }
html.dark body.report-2030 .threats h3 { color: #fcd34d !important; }
html.dark body.report-2030 .swot-card li { color: var(--report-text) !important; }

/* === Sentiment badges === */
html.dark body.report-2030 .sentiment-indicator.positive {
    background: rgba(0,79,59,0.3) !important;
    border-color: rgba(0,188,125,0.25) !important;
    color: #6ee7b7 !important;
}
html.dark body.report-2030 .sentiment-indicator.negative {
    background: rgba(130,24,26,0.3) !important;
    border-color: rgba(251,44,54,0.25) !important;
    color: #fca5a5 !important;
}
html.dark body.report-2030 .sentiment-indicator.neutral {
    background: rgba(123,51,6,0.3) !important;
    border-color: rgba(254,154,0,0.25) !important;
    color: #fcd34d !important;
}

/* === Summary box & description === */
html.dark body.report-2030 .section--description .numeric-section,
html.dark body.report-2030 .section--company-description .numeric-section {
    background: var(--report-surface-alt) !important;
}

/* === Report banner (Financial Statements header) === */
html.dark body.report-2030 .report-banner {
    background: var(--report-surface-alt) !important;
}
html.dark body.report-2030 .report-banner p {
    color: var(--report-muted) !important;
}

/* === Disclosure / footnote text === */
html.dark body.report-2030 .section p[style*="font-size: 0.8"],
html.dark body.report-2030 .section p[style*="font-size:0.8"] {
    color: var(--report-muted) !important;
}

/* === Sticky toolbar (MUI button bar) — dark mode === */
html.dark body.report-2030 > div:first-child {
    background: rgba(13, 27, 46, 0.95) !important;
    border-bottom-color: var(--report-border-soft) !important;
}

/* ============================================================
   BLOOMBERG-STYLE TYPOGRAPHY & NUMBER VISIBILITY
   ============================================================ */

/* Tabular number alignment throughout all metric values */
body.report-2030 .metric-table td,
body.report-2030 .metric-table th,
body.report-2030 .metric-grid-detail-card .metric-value,
body.report-2030 .metrics-value,
body.report-2030 .nav-metric {
    font-variant-numeric: tabular-nums;
}

/* Color-coded negative numbers — target inline red from HTML source */
body.report-2030 .metric-table td[style*="color: red"],
body.report-2030 .metric-table td[style*="color:red"],
body.report-2030 .metric-table td[style*="color: #dc3545"],
body.report-2030 .metric-table td[style*="color:#dc3545"],
body.report-2030 .metric-table td[style*="color: #c00"],
body.report-2030 .metric-table td[style*="color:#c00"],
body.report-2030 .metric-table td[style*="color: #e53e3e"],
body.report-2030 .metric-table td[style*="color:#e53e3e"] {
    color: var(--report-negative-text) !important;
    font-weight: 600;
}

/* Color-coded positive numbers */
body.report-2030 .metric-table td[style*="color: green"],
body.report-2030 .metric-table td[style*="color:green"],
body.report-2030 .metric-table td[style*="color: #28a745"],
body.report-2030 .metric-table td[style*="color:#28a745"],
body.report-2030 .metric-table td[style*="color: #38a169"],
body.report-2030 .metric-table td[style*="color:#38a169"] {
    color: var(--report-positive-text) !important;
    font-weight: 600;
}

/* Dark mode: override the same inline colors */
html.dark body.report-2030 .metric-table td[style*="color: red"],
html.dark body.report-2030 .metric-table td[style*="color:red"],
html.dark body.report-2030 .metric-table td[style*="color: #dc3545"],
html.dark body.report-2030 .metric-table td[style*="color:#dc3545"],
html.dark body.report-2030 .metric-table td[style*="color: #c00"],
html.dark body.report-2030 .metric-table td[style*="color:#c00"] {
    color: #fca5a5 !important;
}

html.dark body.report-2030 .metric-table td[style*="color: green"],
html.dark body.report-2030 .metric-table td[style*="color:green"],
html.dark body.report-2030 .metric-table td[style*="color: #28a745"],
html.dark body.report-2030 .metric-table td[style*="color:#28a745"] {
    color: #6ee7b7 !important;
}

/* Section card top accent: use accent gradient for hero */
body.report-2030 header.report-hero::before {
    background: linear-gradient(90deg, var(--report-secondary) 0%, var(--report-accent) 100%);
}


/* Section h2 label — slightly higher contrast */
body.report-2030 .section h2,
body.report-2030 .report-banner h2 {
    color: #3b0a8f !important;
}
html.dark body.report-2030 .section h2,
html.dark body.report-2030 .report-banner h2 {
    color: #b09ef7 !important;
}

/* Metric value numbers — boost weight for scannability */
body.report-2030 .metric-grid-detail-card .metric-value {
    font-size: 0.88rem !important;
    font-weight: 700 !important;
    color: var(--report-title) !important;
    letter-spacing: -0.01em;
}

/* Metric name label — more muted, tighter */
body.report-2030 .metric-grid-detail-card .metric-name {
    font-size: 0.64rem !important;
    color: var(--report-muted) !important;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* Scenario target prices: Bloomberg-style large mono numbers */
body.report-2030 .section--scenario [style*="font-size: 2rem"],
body.report-2030 .section--scenario [style*="font-size:2rem"],
body.report-2030 .section--illustrative-scenario-analysis [style*="font-size: 2rem"] {
    font-family: "IBM Plex Mono", monospace !important;
    font-size: 1.45rem !important;
    font-weight: 700 !important;
    letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
}
