/* Index identity. The asset URL stays stable; financial status colors are semantic. */
:root {
  --navy:#1e242b;
  --navy-hover:#f1f4fb;
  --ivory:#ffffff;
  --gold:#e9b724;
  --ink:#1e242b;
  --muted:#66707e;
  --line:#e3e7ed;
  --surface:#f5f6f8;
  --blue:#2455e6;
  --red:#bd293d;
  --sidebar-width:236px;
}
body { background:var(--ivory); font-size:13px; }
::selection { background:#dfe7ff; color:var(--ink); }
:focus-visible { outline-color:var(--blue); }
.site-header { background:#fff; border-color:var(--line); }
.site-header .brand,.site-header .research-info,.site-header .language-switch,
.site-header .arraf-menu-toggle { color:var(--ink); }
.site-header .brand [lang=en] { font:800 39px/1 Arial,sans-serif; text-transform:none; }
.site-header .brand [lang=en]::after { content:"."; color:var(--blue); }
.site-header .language-switch,.site-header .arraf-menu-toggle { background:transparent; border-color:var(--line); }
.site-header .market-label,.site-header nav a { color:var(--muted); }
.site-header nav a:hover,.site-header nav a.active,.site-header nav a[aria-current=page] { color:var(--blue); border-color:var(--blue); }
.site-header .language-switch:hover,.site-header .arraf-menu-toggle:hover,.site-header .research-info:hover { background:var(--navy-hover); }
.site-header :focus-visible { outline-color:var(--blue); }
.site-header .arraf-mobile-nav { border-color:var(--line); }
.site-header .arraf-mobile-nav a[aria-current=page] { background:var(--navy-hover); }
.market-overview,.broker-hero { background:#fff; color:var(--ink); border-bottom:1px solid var(--line); padding-block:30px 24px; }
.market-overview h1,.broker-hero .hero-line h1 { font-size:27px; line-height:1.6; font-weight:700; }
.overview-summary { display:flex; flex-wrap:wrap; gap:0 5px; margin:8px 0 0; font-size:12px; color:var(--muted); }
.market-overview .record-link,.broker-hero .eyebrow { color:var(--blue); }
.broker-hero .hero-description,.broker-hero .broker-stats span { color:var(--muted); }
.broker-hero .broker-stats strong { color:var(--ink); }
.broker-hero .broker-stats>div,.broker-hero .broker-tabs { border-color:var(--line); }
.broker-hero .broker-tabs button { color:var(--muted); }
.broker-hero .broker-tabs button[aria-selected=true] { color:var(--blue); border-color:var(--blue); }
.market-heading { margin-bottom:12px; }
.market-heading .forecast-label { padding:0; border:0; }
.market-toolbar input,.market-toolbar select,.icon-button,.watchlist-toggle,.mobile-filter-toggle { border-color:#ccd4df; }
.search-field input:focus { border-color:var(--blue); }
.section-label,.text-button,.footer-about,.about-links a,.about-index>a:hover,
.live-full-link,.company-dialog-panel h3,.method-link,.reset-button,.company-rank-link,
.company-open:not(:disabled):hover,.forecast-more button,.mobile-filter-toggle,
.company-ranking .ranking-heading h3>span:not(.brand-logo),.independent-placeholder>svg { color:var(--ink); }
.icon-button:hover:not(:disabled),.mobile-filter-toggle[aria-expanded=true],
.arraf-menu-sheet nav a[aria-current=page] { background:#e8edf4; color:var(--navy); border-color:#aebed3; }
.arraf-menu-sheet,.company-dialog,dialog { background:var(--ivory); }
dialog::backdrop,.arraf-menu-sheet::backdrop { background:#10233f80; }
.mobile-filter-toggle b { background:#e8edf4; }
.period-switch { padding:0; gap:16px; border-radius:0; background:transparent; border-bottom:1px solid var(--line); }
.period-switch button { position:relative; border-radius:0; min-height:44px; padding:8px 12px; }
.period-switch [aria-pressed=true],.period-switch [data-period=annual][aria-pressed=true] { background:transparent; box-shadow:none; color:var(--navy); }
.period-switch [aria-pressed=true]::after { content:""; position:absolute; bottom:-1px; inset-inline:10px; height:3px; background:var(--navy); border-radius:2px; }
.forecast-table { background:white; }
.forecast-table .company-cell { text-align:start; }
.forecast-table .company-identity { align-items:center; }
.forecast-table .company-identity>div { min-width:0; text-align:start; }
:is(.logo-box,.brand-logo.logo-companies,.fh-logo:not(.fh-provider-logo)) { width:56px; height:38px; flex:0 0 56px; box-sizing:border-box; padding:0; margin-block:0; overflow:hidden; vertical-align:middle; }
:is(.logo-box,.brand-logo.logo-companies,.fh-logo:not(.fh-provider-logo))>img,
.logo-box>svg.company-logo { width:100%; height:100%; max-width:100%; max-height:100%; padding:3px; box-sizing:border-box; object-fit:contain; object-position:center; }
.forecast-scope-label { color:var(--ink); font-size:12px; font-weight:600; }
.forecast-scope-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 12px; }
.forecast-current-period { display:inline-flex; flex-wrap:wrap; gap:0 4px; align-items:baseline; color:var(--blue); font-size:12px; line-height:1.8; }
.forecast-current-period>span,.forecast-current-period>time { white-space:nowrap; }
.forecast-row .common-period { display:none!important; }
.forecast-period .period-notice { display:flex; flex-basis:100%; align-items:center; gap:5px; color:#96600c; font-size:10px; font-weight:600; }
.period-notice svg { width:13px; height:13px; flex:0 0 13px; }
.forecast-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:20px 0 0; padding:16px 0; border-block:1px solid var(--line); background:var(--surface); }
.forecast-summary>div { min-width:0; padding-inline:20px; border-inline-start:1px solid var(--line); }
.forecast-summary>div:first-child { border:0; }
.forecast-summary dt { color:var(--muted); font-size:11px; line-height:1.7; }
.forecast-summary dd { margin:5px 0 0; color:var(--ink); font:600 25px/1.4 Arial,sans-serif; font-variant-numeric:tabular-nums; }
.forecast-summary [data-summary=announced] { color:var(--blue); }
.site-header nav .language-switch,.arraf-menu-sheet nav .language-switch { justify-content:flex-start; margin:8px 0 0; padding:12px 10px; min-height:44px; border:0; border-top:1px solid var(--line); border-radius:0; color:var(--ink); background:transparent; }
.company-dialog-panels:has(>.company-dialog-panel:only-child) { grid-template-columns:minmax(0,1fr); }
.forecast-table .company-meta>bdi { color:var(--muted); }
.forecast-period { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:flex-start; font-size:10px; line-height:1.8; text-align:start; margin-top:2px; }
.forecast-period .fiscal-period,.forecast-period .period-end { white-space:nowrap; color:var(--muted); font-size:inherit; font-weight:400; }
.forecast-period .period-separator { padding-inline:4px; }
.forecast-table .group-head th { background:#edf1f6; color:var(--navy); }
.forecast-table .group-head .quarter-heading { background:#edf1f6; color:var(--navy); border-top-color:var(--navy); }
.forecast-table .group-head .annual-heading { background:#f3f5f8; border-top-color:#92a8c1; }
.forecast-table .column-head th { background:#f6f8fa; color:var(--muted); }
.forecast-row:nth-child(even) td,.forecast-row:nth-child(even) th { background:#fcfcfb; }
.forecast-row:hover td,.forecast-row:hover th { background:#f3f6fa; }
.table-scroll { scrollbar-color:#a9b7ca #f0f3f6; }
.live-record,.tr-overview,.fh-controls { background:#f0f3f6; }
.live-count strong,.tr-summary strong,.tr-cohort strong { color:var(--navy); }
.live-summary dd { color:var(--red); }
.site-footer .footer-top:hover,.supervisor-social:hover { background:#e8edf4; }
.company-dialog-panel+section h3 { color:var(--blue); }
.company-dialog-periods .forecast-period,.company-dialog-panel .forecast-period { font-size:11px; }
.broker-filters,.comparison-method { background:transparent; border-color:var(--line); }
.ranking-table th,.broker-table th,.fh-table th { background:var(--surface); color:var(--muted); }
.ranking-table .rank-number,.ranking-table .rank-value,.rank-brand,.profit-amount { color:var(--navy); }
.ranking-table .ranking-winner { background:#f7f9ff; border-inline-start:0; }
.ranking-table .ranking-winner td { border-bottom-color:var(--line); }
.ranking-table .ranking-winner td:first-child { box-shadow:inset -2px 0 var(--blue); }
html[lang=en] .ranking-table .ranking-winner td:first-child { box-shadow:inset 2px 0 var(--blue); }
.ranking-table .rank-identity .winner-badge { display:inline-flex; align-items:center; gap:6px; min-height:28px; max-width:100%; box-sizing:border-box; padding:2px 0; margin:3px 0; margin-inline-start:12px; border:0; border-radius:0; background:transparent; color:var(--ink); font:600 11px/1.4 Arial,Tahoma,sans-serif; vertical-align:middle; }
.ranking-table .rank-identity .winner-badge svg { width:28px; height:28px; flex:0 0 28px; margin:0; color:#f5bb00; fill:#ffd21a; stroke-width:1.2; filter:drop-shadow(0 1px 0 #fff); }
.ranking-table .rank-identity .winner-badge span { font-size:12px; }
.ranking-table .rank-error,.broker-table .error-value { color:var(--red); }
.details-button,#comparison-help,.pagination button,.tr-icon-button,.fh-info-button,
.fh-pagination button,#fh-detail-close { color:var(--navy); border-color:var(--line); }
body .fh-tabs button[aria-selected=true] { color:var(--navy); border-color:var(--navy); }
body .fh-controls,body .fh-controls label,body .fh-summary strong,body #fh-detail { color:var(--ink); }
body .fh-info-button,body .fh-source a,body .tr-detail-link,body .tr-metric-details>summary { color:var(--navy); }
body .fh-tabs button:focus-visible { outline-color:var(--blue); }
.company-dialog .dialog-heading,.dialog-header,.tr-dialog-heading,.fh-dialog-heading { background:var(--ivory); }
@media(max-width:700px) {
  .forecast-summary { margin-top:16px; padding-block:12px; }
  .forecast-summary>div { padding-inline:12px; }
  .forecast-summary dt { font-size:10px; }
  html[lang=en] .forecast-summary dt { min-block-size:3.4em; }
  .forecast-summary dd { font-size:22px; }
  :is(.logo-box,.brand-logo.logo-companies,.fh-logo:not(.fh-provider-logo)) { width:48px; height:34px; flex-basis:48px; }
  .company-ranking .ranking-table .ranking-winner { padding-inline:10px; border-inline-start:2px solid var(--blue); }
  .ranking-table .ranking-winner td:first-child,
  html[lang=en] .company-ranking .ranking-table .ranking-winner td:first-child { box-shadow:none; }
  .ranking-table .rank-identity .winner-badge { margin:5px 0 0; margin-inline-start:14px; }
  .company-ranking .ranking-table .ranking-item { grid-template-columns:repeat(6,minmax(0,1fr)); }
  .company-ranking .ranking-table .rank-identity { grid-column:2/6; }
  .company-ranking .ranking-table .rank-detail { grid-column:6; }
  .company-ranking .ranking-table td:nth-child(3) { grid-column:1/4; grid-row:2; }
  .company-ranking .ranking-table td:nth-child(4) { grid-column:4/7; grid-row:2; }
  .company-ranking .ranking-table td:nth-child(5) { grid-column:1/-1; grid-row:3; }
  .company-ranking .ranking-table .rank-value,
  .company-ranking .ranking-table .rank-error { white-space:nowrap; overflow-wrap:normal; overflow-x:auto; }
  .company-ranking .ranking-table .rank-value::before,
  .company-ranking .ranking-table .rank-error::before { white-space:normal; }
  .site-header .header-inner { min-height:64px; }
  .site-header .brand [lang=en] { font-size:32px; }
  .site-header .language-switch,.site-header .arraf-menu-toggle { border-color:transparent; }
  .market-overview,.broker-hero { padding-block:12px 20px; }
  .market-overview h1,.broker-hero .hero-line h1 { font-size:22px; line-height:1.6; }
  .overview-summary { font-size:11px; margin-top:5px; }
  .market { padding-top:14px; }
  .market-heading { margin-bottom:10px; }
  .market-toolbar .watchlist-toggle { flex:0 1 auto; margin-inline-end:auto; background:transparent; border-color:transparent; padding-inline:4px; }
  .forecast-view { padding-block:8px 0; }
  .period-switch { width:100%; gap:12px; }
  .period-switch button { flex:1; padding-inline:4px; }
  .forecast-table .column-head { border-top:0; }
  .forecast-table .column-head th { background:transparent; }
  .forecast-table { background:transparent; }
  .forecast-row { position:relative; padding:18px 0 50px; background:transparent; }
  .forecast-row .company-identity { position:static; }
  .forecast-row:nth-child(even),.forecast-row:hover { background:#ffffff80; }
  .forecast-row:nth-child(even) td,.forecast-row:nth-child(even) th,
  .forecast-row:hover td,.forecast-row:hover th { background:transparent; }
  .forecast-row th.company-cell { padding:0 0 10px; }
  .forecast-row .company-open { font-size:15px; min-height:32px; }
  .forecast-row .company-meta { font-size:10px; line-height:1.6; }
  .forecast-row .forecast-period { position:absolute; bottom:12px; inset-inline:8px; font-size:10px; line-height:1.6; margin:0; text-align:start; }
  .forecast-row td.amount { padding:10px 8px 0; font-size:25px; }
  .forecast-row td.amount::before { font-size:11px; margin-bottom:5px; }
  .forecast-row td.amount+td.amount { border-inline-start:1px solid var(--line); }
  .forecast-row .growth { font-size:13px; }
  .arraf-bottom-nav { background:#fff; border-color:var(--line); box-shadow:none; }
  .arraf-bottom-nav a,.arraf-bottom-nav button { position:relative; color:var(--muted); background:transparent; }
  .arraf-bottom-nav .active,.arraf-bottom-nav [aria-current=page] { color:var(--blue); background:#f1f5ff; }
  .arraf-bottom-nav [aria-current=page]::before { content:""; position:absolute; top:-5px; width:22px; height:2px; background:var(--blue); }
  .arraf-bottom-nav :focus-visible { outline-color:var(--blue); }
  .arraf-menu-sheet { background:var(--ivory); }
  body .dialog-heading,body .dialog-header,body .tr-dialog-heading,body .fh-dialog-heading { background:var(--ivory); }
}
/* Shared working surfaces, deliberately flat and quiet. */
button,input,select { accent-color:var(--blue); }
.section-label,.record-link,.text-button,.live-full-link,
.about-links a,.method-link,.reset-button,.fh-source a { color:var(--blue); }
.site-header .research-info { display:none; }
.market-stats { margin-top:18px; padding-bottom:0; }
.market-stats dd,.published-stat dd { color:var(--ink); }
.market-stats dt { color:var(--muted); }
.period-switch [aria-pressed=true],.period-switch [data-period=annual][aria-pressed=true] { color:var(--blue); }
.period-switch [aria-pressed=true]::after { background:var(--blue); border-radius:0; height:2px; }
.forecast-scroll,.broker-table-wrap { border-radius:4px; position:relative; }
.forecast-table .group-head .quarter-heading { border-top-color:var(--blue); background:#f1f5ff; color:var(--blue); }
.forecast-table .group-head .annual-heading { border-top-color:#a2adba; background:#f5f6f8; color:var(--ink); }
.forecast-row .amount,.profit-amount,.ranking-table .rank-value,.ranking-table .rank-error { font-variant-numeric:tabular-nums; }
.forecast-row .company-open { color:var(--ink); font-weight:600; }
.forecast-row .company-open:hover { color:var(--ink); }
.live-record,.tr-overview { background:#fafbfc; }
.broker-stats { padding-bottom:0; margin-top:22px; }
.broker-stats strong { font-size:25px; font-weight:600; }
.broker-filters { border:0; border-bottom:1px solid var(--line); border-radius:0; padding:20px 0; }
.shared-filters .broker-filters label { color:var(--muted); }
.broker-filters input,.broker-filters select,.ranking-controls select { min-height:42px; border-color:#d5dbe4; }
.broker-content { padding-top:24px; }
.broker-table th,.ranking-table th { background:#f6f7f9; color:var(--muted); }
.broker-table { min-width:920px; }
.broker-table th,.broker-table td { padding-inline:10px; }
.broker-table th { white-space:normal; }
.broker-table th:first-child { width:18%; }
.broker-table th:nth-child(2) { width:13%; }
.broker-table th:nth-child(3) { width:9%; }
.broker-table th:nth-child(6) { width:13%; }
.broker-table th:nth-child(7) { width:15%; }
.broker-table th:last-child { width:6%; }
.broker-table .company-cell { border-inline-end:0; }
.broker-table .profit-amount { color:var(--ink); font-size:15px; }
.broker-table .status-pill { border-radius:3px; }
.broker-table .error-value,.ranking-table .rank-error { color:var(--red)!important; }
.broker-table .percent-pair { align-items:flex-start; }
#view-overview .broker-table-wrap { margin-top:16px; }
.tr-kpi,.tr-metric,.fh-summary { border-radius:0; }
body .fh-tabs button[aria-selected=true] { color:var(--blue); border-color:var(--blue); }
.fh-controls { background:#fff; }
.site-footer,.broker-footer { color:var(--muted); }
.arraf-menu-sheet nav a[aria-current=page] { background:#f1f5ff; color:var(--blue); }
.independent-initiative { max-width:880px; }
.initiative-launch { border-inline-start-color:var(--blue); background:#f6f8fe; }
.initiative-faq summary:hover,.initiative-links a { color:var(--blue); }

/* Company index and comparison share the existing selection and ranking data. */
.ranking-workspace { display:grid; grid-template-columns:186px minmax(0,1fr); gap:30px; padding-block:24px 48px; }
.ranking-company-index { min-width:0; border-inline-end:1px solid var(--line); padding-inline-end:18px; }
.ranking-company-index h2 { font-size:13px; color:var(--muted); margin:0 8px 14px; font-weight:500; }
.ranking-company-options { display:grid; gap:3px; max-height:620px; overflow:auto; scrollbar-width:thin; }
.ranking-company-option { width:100%; min-height:58px; display:flex; align-items:center; gap:10px; text-align:start; padding:9px 10px; border:0; border-inline-start:2px solid transparent; border-radius:0; background:#fff; font-size:12px; }
.ranking-company-option>span:last-child { min-width:0; overflow-wrap:break-word; }
.ranking-company-option .brand-logo { width:28px; height:28px; flex-basis:28px; }
.ranking-company-option:hover { background:#f7f8fa; }
.ranking-company-option[aria-pressed=true] { color:var(--ink); border-inline-start-color:var(--blue); background:#f1f5ff; font-weight:600; }
body[data-broker-view=ranking]:has(.ranking-company-option) .shared-filters label:has(#ranking-company) { display:none; }
.ranking-workspace .company-ranking { min-width:0; padding:0; scroll-margin-top:20px; }
.ranking-workspace .section-top { align-items:center; }
.ranking-workspace .section-top h2 { font-size:13px; font-weight:500; color:var(--muted); }
.ranking-workspace .ranking-controls { gap:12px; }
.ranking-workspace .ranking-controls label { min-width:120px; max-width:180px; }
.ranking-workspace .ranking-heading { display:flex; flex-wrap:wrap; align-items:center; gap:6px 18px; margin:22px 0 0; }
.ranking-workspace #ranking-company-title { font-size:23px; line-height:1.55; }
.ranking-workspace #ranking-company-title>span:not(.brand-logo) { font-size:23px; font-weight:700; }
.ranking-workspace #ranking-company-title .ranking-company-identity { display:flex; flex-direction:column; align-items:flex-start; gap:1px; min-width:0; }
.ranking-company-identity>strong { overflow-wrap:anywhere; }
.ranking-company-code { color:var(--muted); font:400 11px/1.5 Arial,sans-serif; }
.ranking-workspace #ranking-company-title .brand-logo { width:42px; height:42px; flex-basis:42px; }
.ranking-workspace #ranking-summary { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 16px; margin:18px 0 0; color:var(--muted); font-size:10px; text-align:start; }
.ranking-summary-item { display:inline-flex; align-items:baseline; gap:4px; white-space:nowrap; }
.ranking-actual { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:5px 18px; margin:18px 0 22px; padding:16px 20px; border:1px solid #d8e0ee; border-inline-start:3px solid var(--blue); border-radius:4px; background:#f5f7fc; }
.ranking-actual-label { grid-column:1; grid-row:1; font-size:12px; font-weight:600; color:var(--ink); }
.ranking-actual-unit { grid-column:1; grid-row:2; font-size:10px; color:var(--muted); }
.ranking-actual-value { grid-column:2; grid-row:1/3; font:700 32px/1.2 Arial,sans-serif; color:var(--ink); font-variant-numeric:tabular-nums; }
.ranking-leader { display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; padding:18px 0; border-top:2px solid var(--blue); border-bottom:1px solid var(--line); margin-bottom:22px; }
.ranking-leader-name { flex:1; min-width:130px; display:flex; flex-direction:column; gap:8px; }
.ranking-leader-name>small { color:var(--muted); font-size:11px; }
.ranking-leader .rank-brand { font-size:15px; font-weight:700; }
.ranking-leader .brand-logo { width:32px; height:24px; flex-basis:32px; }
.ranking-leader-medal { display:inline-flex; align-items:center; padding:0; margin:0; border:0; background:none; color:var(--ink); }
.ranking-leader-medal svg { width:30px; height:30px; stroke-width:1.2; }
.ranking-leader-metric { display:flex; flex-direction:column; align-items:center; gap:6px; min-width:96px; padding-inline-start:20px; border-inline-start:1px solid var(--line); text-align:center; }
.ranking-leader-metric small { color:var(--muted); font-size:11px; }
.ranking-leader-metric strong { font:700 23px/1.3 Arial,sans-serif; }
.ranking-leader-error strong { color:var(--red); }
.ranking-forecast-line { display:none; margin:28px 0 0; padding-top:20px; border-top:1px solid var(--line); }
.ranking-forecast-line figcaption { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.ranking-forecast-line figcaption strong { font-size:13px; font-weight:600; }
.ranking-forecast-line figcaption small { color:var(--muted); font-size:11px; }
.forecast-line-plot { position:relative; width:100%; min-height:110px; }
.forecast-line-plot>svg { position:absolute; inset:0; overflow:visible; }
.forecast-line-axis,.forecast-line-stem { stroke:#cdd3dd; stroke-width:1; }
.forecast-line-point { fill:var(--ink); stroke:#fff; stroke-width:1.5; }
.forecast-line-actual { fill:var(--blue); stroke:#fff; stroke-width:1.5; }
.forecast-line-tick { fill:var(--muted); font:11px Arial,sans-serif; }
.forecast-line-label { position:absolute; z-index:1; display:flex; flex-direction:column; gap:4px; width:max-content; min-width:76px; max-width:148px; padding:2px 5px; box-sizing:border-box; background:#fff; text-align:center; font-size:11px; line-height:1.5; }
.forecast-line-label strong { color:var(--ink); font:600 13px/1.4 Arial,sans-serif; }
.forecast-line-label span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.forecast-line-label.is-actual strong { color:var(--blue); }
.ranking-forecast-line:not([hidden]) { display:block; }
.company-ranking .ranking-table td { padding:16px 10px; }
.company-ranking .ranking-table th { padding:11px 10px; font-size:11px; font-weight:500; }
.ranking-table .rank-number { font-size:15px; color:var(--muted); }
.ranking-table .rank-value,.ranking-table .rank-error { font-size:17px; font-weight:600; }
.company-ranking .ranking-table th:nth-child(3),.company-ranking .ranking-table th:nth-child(4),.company-ranking .ranking-table th:nth-child(5),
html[lang] .company-ranking .ranking-table .rank-value,html[lang] .company-ranking .ranking-table .rank-error { text-align:center; }
.ranking-table .rank-identity .rank-brand>span:last-child { font-size:14px; font-weight:700; }
.ranking-table .rank-identity .brand-logo { width:30px; height:25px; flex-basis:30px; }
.ranking-table .publication-timing { max-width:270px; font-size:10px; line-height:1.7; }
.ranking-table .rank-detail button { min-width:32px; min-height:32px; }

@media(min-width:1101px) {
  html { scroll-padding-top:24px; }
  body { padding-inline-start:var(--sidebar-width); }
  .section-inner { width:calc(100% - 64px); max-width:1440px; }
  .site-header { position:fixed; inset-block:0; inset-inline-start:0; width:var(--sidebar-width); border-bottom:0; border-inline-end:1px solid var(--line); overflow-y:auto; }
  .site-header .header-inner { width:100%; min-height:100%; padding:32px 18px 20px; display:flex; flex-direction:column; align-items:stretch; gap:0; flex-wrap:nowrap; }
  .site-header .brand-group { display:block; }
  .site-header .brand { justify-content:flex-end; padding:0 15px; margin-bottom:38px; }
  html[lang=en] .site-header .brand { justify-content:flex-start; }
  .site-header .brand [lang=en] { font-size:42px; }
  .site-header nav { display:flex; flex-direction:column; flex:0 0 auto; align-items:stretch; gap:8px; order:0; border:0; padding:0; margin:0 0 28px; }
  .site-header nav a { position:relative; display:flex; flex-direction:row; width:100%; max-width:none; min-height:52px; justify-content:flex-start; text-align:start; border:0; border-inline-start:2px solid transparent; border-radius:0; padding:12px 10px; gap:12px; font-size:13px; line-height:1.8; white-space:normal; }
  .site-header nav a svg { width:19px; height:19px; flex-basis:19px; }
  .site-header nav a.active,.site-header nav a[aria-current=page] { background:#f1f5ff; color:var(--blue); border-inline-start-color:var(--blue); }
  .site-header .market-label { order:2; margin:0 10px 12px; font-size:10px; white-space:normal; }
  .site-header .language-switch { order:1; margin-top:auto; margin-bottom:14px; justify-content:flex-start; border:0; border-top:1px solid var(--line); border-radius:0; padding:20px 10px 4px; min-height:50px; }
  .site-header .draft-label { margin:0 0 20px; white-space:normal; }
  .market-overview,.broker-hero { padding-top:36px; }
  .market-overview h1,.broker-hero .hero-line h1 { font-size:28px; }
}
@media(min-width:701px) and (max-width:1100px) {
  .site-header .header-inner { padding-block:15px 8px; gap:12px; }
  .site-header nav { order:5; flex-basis:100%; gap:6px 16px; }
  .site-header nav a { font-size:11px; max-width:180px; padding-block:6px; }
  .ranking-workspace { grid-template-columns:150px minmax(0,1fr); gap:20px; }
  .ranking-company-option { padding-inline:6px; gap:6px; font-size:11px; }
  .ranking-leader { gap:12px; }
  .ranking-leader-metric { padding-inline-start:12px; }
}
@media(max-width:1100px) { .broker-table { min-width:0; } }
@media(max-width:700px) {
  .market-overview,.broker-hero { padding-block:20px 18px; }
  .market-overview h1,.broker-hero .hero-line h1 { font-size:21px; line-height:1.6; }
  .broker-stats { gap:8px; margin-top:18px; padding-bottom:0; }
  .broker-stats strong { font-size:22px; }
  .market-stats { margin-top:14px; }
  .forecast-row td.amount { font-size:25px; font-weight:600; }
  .forecast-row td.amount::before { font-weight:400; }
  .broker-filters { padding:14px 0; gap:10px; }
  body[data-broker-view=ranking] .shared-filters .broker-filters { padding:12px 0 4px; border:0; align-items:end; }
  body[data-broker-view=ranking] .shared-filters .broker-filters .search-label { flex:1 1 160px; }
  .ranking-workspace { display:block; padding-block:0 30px; }
  .ranking-company-index { padding:0; border:0; margin:0 0 22px; }
  .ranking-company-index h2 { display:none; }
  .ranking-company-options { display:flex; gap:20px; overflow-x:auto; max-height:none; border-bottom:1px solid var(--line); scrollbar-width:thin; }
  .ranking-company-option { flex:0 0 auto; width:auto; max-width:180px; min-height:50px; padding:10px 2px; border:0; border-bottom:2px solid transparent; font-size:12px; }
  .ranking-company-option .brand-logo { display:none; }
  .ranking-company-option[aria-pressed=true] { background:transparent; border-bottom-color:var(--blue); }
  .ranking-workspace .section-top { align-items:center; gap:12px; }
  .ranking-workspace .section-top h2 { font-size:12px; }
  .ranking-workspace .section-top { padding-block:0 12px; }
  .ranking-workspace .ranking-controls label { flex-direction:row; align-items:center; gap:8px; font-size:10px; }
  .ranking-workspace .ranking-controls select { width:136px; min-height:38px; height:38px; }
  .ranking-workspace .ranking-controls label { min-width:100px; }
  .ranking-workspace .ranking-heading { margin-top:20px; }
  .ranking-workspace #ranking-company-title>span:not(.brand-logo) { font-size:20px; }
  .ranking-workspace #ranking-summary { flex-basis:100%; font-size:10px; }
  .ranking-workspace .ranking-heading span { display:inline-flex; margin-top:0; }
  .ranking-actual { margin-block:14px 20px; gap:5px 12px; padding:14px; }
  .ranking-actual-value { font-size:29px; }
  .ranking-leader { display:none; }
  .ranking-forecast-line figcaption strong { font-size:12px; }
  .ranking-forecast-line figcaption small,.forecast-line-tick { font-size:10px; }
  .forecast-line-label { min-width:64px; max-width:124px; gap:5px; padding:2px 4px; font-size:10px; }
  .forecast-line-label strong { font-size:11px; line-height:1.5; }
  .company-ranking .ranking-table .ranking-item { padding:18px 0; gap:10px 12px; }
  .company-ranking .ranking-table td { padding:0; }
  .company-ranking .ranking-table .rank-identity { grid-column:2/6; }
  .company-ranking .ranking-table .rank-number { font-size:14px; }
  .company-ranking .ranking-table td:nth-child(3) { grid-column:1/4; grid-row:2; }
  .company-ranking:has(#ranking-actual:not([hidden])) .ranking-table td:nth-child(4) { display:none; }
  .company-ranking:has(#ranking-actual:not([hidden])) .ranking-table td:nth-child(5) { grid-column:4/7; grid-row:2; }
  .company-ranking .ranking-table .rank-value,.company-ranking .ranking-table .rank-error { font-size:23px; text-align:center; }
  .company-ranking .ranking-table .rank-value::before,.company-ranking .ranking-table .rank-error::before { font-size:11px; font-weight:400; margin-bottom:5px; color:var(--muted); }
  .company-ranking .ranking-table .ranking-winner { padding-inline:10px; background:#f7f9ff; }
  .company-ranking .ranking-table .publication-timing { font-size:11px; max-width:none; }
  .company-ranking .ranking-table .rank-identity .winner-badge { display:inline-flex; margin-inline-start:8px; min-height:24px; }
  .company-ranking .ranking-table .rank-identity .winner-badge svg { width:26px; height:26px; flex-basis:26px; }
  .company-ranking .ranking-table .rank-identity .winner-badge span { font-size:10px; }
  .broker-footer { padding-bottom:18px; }
}
.tr-page .tr-primary { display:flex; flex-direction:column; align-items:center; padding:20px 16px; text-align:center; }
.tr-page .tr-primary dt { min-height:38px; display:flex; align-items:center; justify-content:center; }
.tr-page .tr-primary dd { width:100%; margin:4px 0 12px; text-align:center; }
.tr-page .tr-metric-context { justify-content:center; gap:6px 18px; }
.tr-page .tr-support-metrics>div { padding:10px 14px; text-align:center; }
.tr-page .tr-support-metrics dt { min-height:42px; }
.tr-page .tr-support-metrics dd { display:flex; flex-direction:column; gap:4px; align-items:center; margin-top:4px; }
.tr-page .tr-support-metrics dd small { margin:0; }
.tr-page .tr-table-scroll { border-radius:4px; }
.tr-page .tr-table .tr-number { text-align:center; font-size:14px; }
.tr-page .tr-table .tr-error { background:none; }
.tr-page .tr-table th,.tr-page .tr-table td { padding:14px 10px; }
.tr-page .tr-table .tr-row-period { font-size:9px; margin-top:8px; text-align:start; }
.tr-page .tr-table tbody tr:nth-child(even) { background:#fafbfc; }
.tr-page .tr-table tbody tr:hover { background:#f3f6fc; }
@media(min-width:701px) {
  .tr-page .tr-table { min-width:960px; }
  .tr-page .tr-company-col { width:26%; }
  .tr-page .tr-amount-col { width:9%; }
  .tr-page .tr-ape-col { width:8%; }
  .tr-page .tr-direction-col { width:14%; }
  .tr-page .tr-action-col { width:8%; }
}
@media(max-width:700px) {
  .tr-page .tr-primary { padding:14px 10px; }
  .tr-page .tr-metric-context { align-items:center; }
  .tr-page .tr-support-metrics>div { padding:8px 6px; }
  .tr-page .tr-table tbody tr { position:relative; gap:16px 8px; padding:18px 10px 54px; }
  .tr-page .tr-table tbody th,.tr-page .tr-table tbody td { padding:0; }
  .tr-page .tr-table tbody .tr-number { font-size:18px; font-weight:600; text-align:center; white-space:nowrap; overflow-x:auto; }
  .tr-page .tr-table tbody .tr-number::before { min-height:34px; display:flex; align-items:center; justify-content:center; text-align:center; white-space:normal; font-weight:400; line-height:1.6; }
  .tr-page .tr-table .tr-row-period { position:absolute; bottom:12px; inset-inline:10px; margin:0; font-size:9px; line-height:1.6; text-align:start; }
  .tr-page .tr-table .company-identity { position:static; }
  .tr-page .tr-table .company-identity>div { min-width:0; }
}
.forecast-row .amount>bdi,.forecast-row .profit-basis-value>bdi,
.ranking-table .rank-value:nth-child(3),.ranking-leader-metric:not(.ranking-leader-error) strong,
.tr-table .tr-number:nth-child(2)>bdi,.tr-table .tr-number:nth-child(4)>bdi,
.fh-table .fh-number:nth-child(4),.tr-detail-table tbody td:nth-child(2)>bdi,
.forecast-figure { color:var(--blue); }
.ranking-actual-value,.ranking-table .rank-value:nth-child(4),
.tr-table .tr-number:nth-child(3)>bdi,.tr-table .tr-number:nth-child(5)>bdi,
.fh-table .fh-number:nth-child(5),.tr-detail-table tbody td:nth-child(3)>bdi,
.tr-history tbody td:nth-child(3)>bdi,.tr-history tbody td:nth-child(4)>bdi,
.actual-figure { color:var(--ink); }
.broker-table .profit-amount[data-field=forecast] { color:var(--blue)!important; }
.broker-table .profit-amount[data-field=actual] { color:var(--ink)!important; }

.forecast-row[data-result-announced=true] .company-open,
#company-dialog-title.is-announced { color:var(--ink); }
.forecast-actual { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:3px 8px; margin-top:10px; padding-top:8px; border-top:1px solid #dce5fa; color:var(--blue); text-align:start; white-space:normal; }
.forecast-actual>.actual-label { font-size:10px; font-weight:500; }
.actual-value-group { display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.actual-value-group>bdi { font:600 16px/1.5 Arial,sans-serif; font-variant-numeric:tabular-nums; white-space:nowrap; }
.actual-growth { display:block; margin-top:3px; font:500 11px/1.6 Arial,sans-serif; font-variant-numeric:tabular-nums; white-space:nowrap; }
.actual-growth.positive { color:var(--green); }
.actual-growth.negative { color:var(--red); }
.actual-growth.neutral { color:var(--muted); }
.company-dialog-metric .forecast-actual { max-width:240px; }
@media(max-width:700px) {
  .forecast-row { padding-bottom:20px; }
  .forecast-row:has(.fiscal-period-exception) { padding-bottom:68px; }
  .forecast-current-period { font-size:11px; }
  .forecast-actual { justify-content:flex-start; }
  .forecast-row .forecast-actual { margin-top:12px; padding-top:10px; }
  .forecast-actual>.actual-label { font-size:11px; }
  .actual-value-group { order:-1; }
  .actual-value-group>bdi { font-size:20px; }
}

body .fh-summary { grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin-block:22px 26px; padding:0; border-block:1px solid var(--line); background:var(--surface); }
body .fh-summary-metric { display:flex; flex-direction:column; align-items:flex-start; min-width:0; padding:20px; border-inline-start:1px solid var(--line); }
body .fh-summary-metric:first-child { border-inline-start:0; }
body .fh-summary .fh-summary-label { min-block-size:3.4em; color:var(--muted); font-size:12px; font-weight:500; line-height:1.7; }
body .fh-summary strong { max-width:100%; margin-top:6px; font:600 30px/1.3 Arial,sans-serif; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
body .fh-summary .fh-error { color:var(--red)!important; }
@media(max-width:800px) {
  body .fh-summary { grid-template-columns:repeat(2,minmax(0,1fr)); margin-block:18px 24px; }
  body .fh-summary-metric { padding:16px; }
  body .fh-summary-metric:nth-child(odd) { border-inline-start:0; }
  body .fh-summary-metric:nth-child(n+3) { border-top:1px solid var(--line); }
  body .fh-summary strong { font-size:30px; }
}

@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Editorial Precision: a company-first reading surface, shared by both locales. */
:root { --blue:#245fe5; --ink:#20252b; --muted:#707780; --line:#e5e8ec; --surface:#f7f8fa; }
html { scroll-padding-top:96px; }
body { padding-inline-start:0; }
.section-inner { max-width:1240px; width:calc(100% - 64px); }
.site-header { position:sticky; inset:auto; top:0; width:auto; border:0; border-bottom:1px solid var(--line); overflow:visible; z-index:30; }
.site-header .header-inner { width:calc(100% - 64px); max-width:1380px; min-height:84px; padding:0; margin-inline:auto; display:flex; flex-direction:row; align-items:center; flex-wrap:nowrap; gap:32px; }
.site-header .brand-group { display:flex; align-items:center; }
.site-header .brand { margin:0; padding:0; justify-content:flex-start; }
.site-header .brand [lang=en] { text-transform:none; letter-spacing:0; }
.site-header .brand { flex-shrink:0; gap:0; min-height:44px; position:relative; left:16px; }
.site-header .brand-wordmark { display:block; width:132px; height:44px; object-fit:contain; filter:brightness(0); }
.site-header .brand [lang=en]::after { content:none; }
.site-header nav { display:flex; flex-direction:row; flex:1; order:0; margin:0; padding:0; gap:28px; border:0; justify-content:center; align-items:center; }
.site-header nav a { display:inline-flex; width:auto; min-height:84px; max-width:none; padding:0; gap:7px; border:0; border-bottom:2px solid transparent; border-radius:0; white-space:nowrap; font-size:12px; }
.site-header nav a.active,.site-header nav a[aria-current=page] { border:0; border-bottom:2px solid var(--blue); background:transparent; }
.site-header nav a svg { width:17px; height:17px; flex-basis:17px; }
.site-header nav a[data-nav-primary=false] { display:none; }
.site-header .arraf-menu-toggle { display:inline-flex; order:3; flex:0 0 44px; width:44px; height:44px; border:0; margin:0; }
.site-header .market-label { display:none; }
.site-header .draft-label { font-size:10px; margin:0; }
.market-overview,.broker-hero { padding-block:34px 26px; }
.market-overview h1,.broker-hero .hero-line h1 { font-size:26px; }
.forecast-summary { background:transparent; border-bottom:0; margin-top:24px; padding:22px 0 0; }
.forecast-summary>div { padding-inline:28px; }
.forecast-summary>div:first-child { padding-inline-start:0; }
.forecast-summary dd { font-size:28px; }
.forecast-table .column-head th,.forecast-table .group-head th { background:var(--surface); }
.forecast-row:nth-child(even) td,.forecast-row:nth-child(even) th { background:white; }
.forecast-row:hover td,.forecast-row:hover th { background:#f8faff; }
.forecast-row td.amount,.forecast-table .column-head th { text-align:start; }
.forecast-table .sort-button,.forecast-table .metric-label,.forecast-row .profit-basis-value { justify-content:flex-start; }
.forecast-row .forecast-actual { color:var(--ink); border-color:var(--line); justify-content:flex-start; }
.forecast-row .actual-value-group { order:-1; }
.forecast-actual>.actual-label { color:var(--muted); }
.company-heading-link { display:inline-flex; align-items:center; gap:12px; color:var(--ink); text-decoration:none; }
.ranking-workspace #ranking-company-title .ranking-company-identity { color:var(--ink); font-size:23px; font-weight:700; }
.company-heading-link:hover strong,.participant-profile-link:hover strong,.participant-profile-link:hover>span:last-child { text-decoration:underline; text-underline-offset:4px; }
.participant-profile-link { color:inherit; text-decoration:none; }
.ranking-actual { grid-template-columns:max-content auto; justify-content:start; background:transparent; border:0; border-block:1px solid var(--line); border-radius:0; padding:18px 0; }
.ranking-actual-label { grid-column:1/-1; grid-row:1; }
.ranking-actual-value { grid-column:1; grid-row:2; color:var(--ink); }
.ranking-actual-unit { grid-column:2; grid-row:2; align-self:end; padding-bottom:3px; }
.broker-table .profit-amount[data-field=actual] { font-weight:700; }
.ranking-leader { background:transparent; border:0; padding-inline:0; }
.ranking-table .ranking-winner { background:#fafbff; }
.ranking-table .ranking-winner td:first-child { box-shadow:none; }
.ranking-table .ranking-winner td { border-color:var(--line); }
.ranking-forecast-line { border-radius:0; background:transparent; padding-inline:0; }
.forecast-line-point { fill:var(--blue); }
.forecast-line-actual { fill:var(--ink); }
.forecast-line-label strong { color:var(--blue); }
.forecast-line-label.is-actual strong { color:var(--ink); }
.company-hub-tabs { display:flex; gap:30px; margin-top:24px; border-bottom:1px solid var(--line); }
.company-hub-tabs button { background:none; color:var(--muted); border:0; border-bottom:2px solid transparent; border-radius:0; min-height:50px; padding:10px 0; font-family:inherit; font-size:13px; font-weight:500; line-height:1.6; cursor:pointer; }
.company-hub-tabs button[aria-selected=true] { color:var(--blue); border-bottom-color:var(--blue); }
[data-broker-view=company] .broker-hero { padding-block:16px; border-bottom:0; }
[data-broker-view=company] .broker-hero .hero-line h1 { font-size:13px; color:var(--muted); font-weight:500; }
[data-broker-view=company] .ranking-workspace { display:block; padding-top:18px; max-width:1080px; }
[data-broker-view=company] .shared-filters { max-width:1080px; }
[data-broker-view=company] .ranking-company-index { display:none; }
[data-broker-view=company] .ranking-heading { margin-top:20px; }
[data-broker-view=company] .ranking-company-identity strong { font-size:26px; font-weight:700; }
[data-broker-view=company] .ranking-company-code { font-size:11px; }
[data-broker-view=company] .ranking-heading .logo-companies { width:70px; flex-basis:70px; height:52px; }
[data-broker-view=company] .shared-filters .broker-filters { border:0; border-bottom:1px solid var(--line); padding:8px 0 20px; }
[data-broker-view=company] .ranking-workspace .section-top { margin:0; padding:0; }
[data-broker-view=company] .ranking-workspace .section-top { display:none; }
.company-hub-filters { margin-block:8px; }
.company-hub-filters>summary { display:flex; align-items:center; gap:8px; width:max-content; min-height:44px; color:var(--muted); font-size:11px; cursor:pointer; }
.company-hub-filters>summary svg { width:16px; height:16px; }
.company-hub-filters .shared-filters { width:100%; margin:0; }
.company-hub-filters .broker-filters select { min-height:44px; }
.hub-company-tools { display:flex; align-items:center; flex-wrap:wrap; gap:12px 20px; padding:0 0 18px; border-bottom:1px solid var(--line); }
.hub-company-tools a { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; font-size:12px; color:var(--blue); }
.hub-company-tools a:hover { text-decoration:underline; }
.hub-company-tools .hub-back { margin-inline-end:auto; color:var(--muted); }
.hub-period-picker { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:12px; }
.hub-period-picker select { width:160px; max-width:100%; min-height:44px; border:1px solid var(--line); border-radius:4px; background:#fff; color:var(--ink); padding:8px; font:inherit; }
.hub-copy-status { color:var(--muted); font-size:11px; }
.hub-copy-status:empty { display:none; }
.hub-chart-link { gap:6px; }
.hub-chart-link svg { width:18px; height:18px; }
.hub-provider-filters { display:flex; flex-wrap:wrap; gap:14px; align-items:end; padding:20px 0 12px; }
.hub-provider-filters label { display:grid; gap:6px; font-size:11px; color:var(--muted); flex:0 1 220px; min-width:0; }
.hub-provider-filters input,.hub-provider-filters select { width:100%; min-height:44px; border:1px solid var(--line); border-radius:4px; background:#fff; color:var(--ink); font:inherit; font-size:13px; padding:8px 10px; }
.hub-provider-filters output { font-size:11px; color:var(--muted); margin-inline-start:auto; padding-block:10px; }
.hub-provider-identity:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
@media (max-width:600px) {
  .hub-company-tools { gap:8px 12px; padding-bottom:12px; }
  .hub-company-tools .hub-back { display:none; }
  .hub-company-tools .hub-period-picker { flex:1 1 120px; min-width:0; }
  .hub-company-tools .hub-period-picker select { width:100%; min-width:0; font-size:16px; }
  .hub-company-tools .hub-chart-link { flex:0 0 44px; justify-content:center; border:1px solid var(--line); border-radius:4px; }
  .hub-chart-link>span { display:none; }
  .hub-company-tools .hub-copy-status { order:5; flex-basis:100%; }
  .hub-provider-filters { gap:12px; }
  .hub-provider-filters label { flex:1 1 100%; }
  .hub-provider-filters input,.hub-provider-filters select { font-size:16px; }
  .hub-provider-filters output { padding-block:0; }
}
[data-company-tab=analysts] #ranking-leader { display:none; }
[data-broker-view=company][data-company-tab=analysts] .company-hub-filters { display:none; }
.hub-history-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.hub-history-table th { text-align:start; color:var(--muted); background:var(--surface); font-weight:500; font-size:11px; padding:12px; }
.hub-history-table th:nth-child(2) { width:30%; }
.hub-history-table td { border-bottom:1px solid var(--line); padding:18px 12px; font-size:13px; overflow-wrap:anywhere; }
.hub-history-table td:nth-child(n+3) { font:600 17px/1.5 Arial,sans-serif; font-variant-numeric:tabular-nums; }
.hub-error { color:var(--red); }
.hub-unit,.hub-message { font-size:12px; color:var(--muted); margin-block:24px; }
.hub-providers { list-style:none; padding:0; margin:8px 0 24px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 30px; }
.hub-providers li { display:flex; align-items:center; gap:14px; min-height:84px; border-bottom:1px solid var(--line); }
.hub-providers svg { width:22px; height:22px; color:var(--muted); flex:0 0 22px; }
.hub-providers .brand-logo { width:64px; height:40px; flex:0 0 64px; }
.hub-provider-identity { display:flex; align-items:center; gap:14px; min-width:0; min-height:84px; width:100%; }
.hub-provider-identity>div { min-width:0; overflow-wrap:anywhere; }
.hub-providers strong { font-size:13px; font-weight:600; }
.hub-providers small { display:block; font-size:11px; color:var(--muted); margin-top:4px; }
.hub-join { display:inline-flex; align-items:center; min-height:44px; color:var(--blue); font-size:12px; }
.house-profile-header { min-width:0; width:100%; margin-bottom:24px; }
.house-profile-back { display:inline-flex; align-items:center; min-height:44px; color:var(--muted); font-size:11px; text-decoration:none; }
.house-profile-identity { display:flex; align-items:center; gap:16px; margin-block:12px 22px; }
.house-profile-identity h1 { margin:0; color:var(--ink); font-size:26px; overflow-wrap:anywhere; }
.house-profile-identity :is(.brand-logo,.fh-logo) { width:84px; height:52px; flex:0 0 84px; }
.house-profile-tabs { display:flex; gap:28px; border-bottom:1px solid var(--line); }
.house-profile-tabs a { display:flex; align-items:center; min-height:48px; border-bottom:2px solid transparent; font-size:13px; color:var(--muted); text-decoration:none; }
.house-profile-tabs a[aria-current=page] { color:var(--blue); border-bottom-color:var(--blue); }
.house-profile .broker-hero .hero-line { align-items:flex-start; }
.house-profile .broker-hero .hero-line #comparison-help { margin-top:48px; }
.house-profile :is(#fh-tabs,label:has(#fh-provider),label:has(#broker-house),.broker-stats>div:has(#count-houses)) { display:none; }
.house-profile .fh-history { padding-top:24px; }
.house-profile .fh-history>h1 { font-size:22px; }
.house-profile .fh-controls { padding:0 0 16px; border:0; border-bottom:1px solid var(--line); background:transparent; }
.house-profile .fh-controls label { flex:0 1 240px; }
.house-profile .broker-stats { margin-top:0; }
.ai-profile-logo { width:52px; height:52px; object-fit:contain; }

.ai-profile .tr-heading { display:block; }
.ai-profile .tr-period-label { margin-top:18px; }
.ai-profile #live-record { display:none; }
.hub-averages { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:12px 0 24px; padding:18px 0; border-block:1px solid var(--line); }
.hub-averages>div { min-width:0; padding-inline:24px; }
.hub-averages>div:first-child { padding-inline-start:0; border-inline-end:1px solid var(--line); }
.hub-averages dt { font-size:12px; color:var(--muted); }
.hub-averages dd { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; margin:8px 0 0; color:var(--blue); }
.hub-averages dd bdi { font:600 26px/1.4 Arial,sans-serif; font-variant-numeric:tabular-nums; }
.hub-averages dd small,.hub-average-count { color:var(--muted); font-size:10px; }
.hub-average-count { display:block; margin-top:5px; }
.hub-averages .hub-average-empty { color:var(--muted); font-size:12px; line-height:1.8; }
.hub-averages .hub-average-error { gap:4px 8px; color:var(--muted); font-size:11px; line-height:1.7; }
.hub-averages .hub-average-error bdi { color:var(--red); font:700 13px/1.7 Arial,sans-serif; }
.hub-average-pending span:last-child { font-size:10px; }
.hub-independent-notice { display:block; margin-top:8px; color:var(--muted); font-size:10px; line-height:1.7; }
@media(max-width:700px) {
  .hub-averages>div { padding-inline:12px; }
  .hub-averages dt { font-size:11px; }
  .hub-averages dd bdi { font-size:23px; }
}
@media(min-width:701px) and (max-width:1000px) {
  .site-header .header-inner { gap:20px; min-height:76px; }
  .site-header nav { gap:18px; }
  .site-header nav a { min-height:76px; font-size:11px; }
  .site-header nav a svg { display:none; }
  .site-header .brand [lang=en] { font-size:29px; }
}
@media(max-width:700px) {
  html { scroll-padding-top:78px; }
  .section-inner,.site-header .header-inner { width:calc(100% - 32px); }
  .site-header .header-inner { min-height:68px; gap:16px; }
  .site-header .brand-wordmark { width:108px; height:36px; }
  .site-header .arraf-menu-toggle { margin-inline-start:auto; }
  .arraf-bottom-nav { background:white; border-color:var(--line); box-shadow:none; }
  .arraf-bottom-nav a.active,.arraf-bottom-nav a[aria-current=page] { color:var(--blue); }
  .market-overview,.broker-hero { padding-block:24px 20px; }
  .market-overview h1,.broker-hero .hero-line h1 { font-size:21px; }
  .forecast-summary { margin-top:18px; padding-top:16px; }
  .forecast-summary>div { padding-inline:12px; }
  .forecast-summary dt { font-size:10px; }
  .forecast-summary dd { font-size:25px; }
  .forecast-row { padding-block:18px; }
  .forecast-row .company-open { font-size:15px; }
  .forecast-row td.amount { font-size:24px; padding:12px 8px 0; }
  .forecast-row .forecast-actual { display:flex; flex-direction:row; gap:3px 8px; margin-top:12px; padding-top:10px; }
  .forecast-row .actual-value-group>bdi { font-size:21px; }
  .forecast-row .actual-label { font-size:10px; }
  .forecast-row .growth { font-size:11px; }
  .ranking-workspace #ranking-company-title { flex-wrap:wrap; gap:12px; }
  .ranking-workspace #ranking-company-title .ranking-company-identity { font-size:20px; }
  .house-profile-identity h1 { font-size:22px; }
  .house-profile-identity :is(.brand-logo,.fh-logo) { width:68px; height:44px; flex-basis:68px; }
  .house-profile-tabs { gap:24px; }
  .ranking-actual { padding:16px 0; gap:8px 12px; }
  .ranking-actual-value { font-size:28px; }
  .company-ranking .ranking-table .ranking-item { grid-template-columns:24px repeat(4,minmax(0,1fr)) 40px; gap:10px 8px; padding:18px 0; }
  .company-ranking .ranking-table .rank-identity { grid-column:2/6; }
  .company-ranking .ranking-table .rank-detail { grid-column:6; }
  .company-ranking .ranking-table .rank-detail button { width:40px; min-height:44px; }
  .company-ranking .ranking-table .rank-brand>span:last-child { font-size:13px; }
  .company-ranking .ranking-table .rank-brand { max-width:100%; }
  .company-ranking .ranking-table .rank-value,.company-ranking .ranking-table .rank-error { font-size:21px; }
  .company-ranking .ranking-table td:nth-child(4) { grid-column:4/7; }
  .company-ranking .ranking-table td:nth-child(5) { grid-column:1/-1; grid-row:3; }
  .company-ranking:has(#ranking-actual:not([hidden])) .ranking-table td:nth-child(5) { grid-column:4/7; grid-row:2; }
  .company-ranking .ranking-table .rank-identity .winner-badge { margin:4px 8px; }
  .forecast-line-label { padding:2px 4px; font-size:9px; }
  .forecast-line-label strong { font-size:10px; }
  [data-broker-view=company] .shared-filters .broker-filters>.search-label { flex:1 1 100%; }
  [data-broker-view=company] .shared-filters .broker-filters>label:has(#ranking-company) { flex:1 1 0; }
  [data-broker-view=company] .ranking-workspace { padding-top:16px; }
  [data-broker-view=company] .ranking-company-identity strong { font-size:22px; }
  [data-broker-view=company] .ranking-heading .logo-companies { width:60px; flex-basis:60px; height:44px; }
  .company-hub-tabs { gap:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:20px; }
  .company-hub-tabs button { font-size:12px; min-height:50px; }
  .hub-providers { grid-template-columns:1fr; }
  .hub-history-table,.hub-history-table tbody { display:block; }
  .hub-history-table thead { display:none; }
  .hub-history-table tr { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 8px; padding:18px 0; border-bottom:1px solid var(--line); }
  .hub-history-table td { border:0; padding:0; }
  .hub-history-table td:first-child { grid-column:3; grid-row:1; text-align:end; font:11px/1.7 Arial,sans-serif; color:var(--muted); }
  .hub-history-table td:nth-child(2) { grid-column:1/3; grid-row:1; font-weight:600; }
  .hub-history-table td:nth-child(n+3) { font-size:18px; }
  .hub-history-table td:nth-child(n+3)::before { content:attr(data-label); display:block; margin-bottom:6px; color:var(--muted); font:10px/1.7 'Noto Sans Arabic',Arial,sans-serif; }
}

/* Numeric emphasis follows the value's meaning across every forecast surface. */
body .forecast-row .amount>bdi,body .profit-basis-value>bdi,
body .company-dialog-metric dd>bdi,body .forecast-figure,
body .broker-table .profit-amount[data-field=forecast],
body .company-ranking .ranking-table .rank-value:nth-child(3),
body .ranking-leader-metric:not(.ranking-leader-error) strong,
body .forecast-line-label:not(.is-actual) strong,
body .hub-averages dd:not(.hub-average-error)>bdi,
body .tr-table .tr-number:nth-child(2)>bdi,body .tr-table .tr-number:nth-child(4)>bdi,
body .fh-table .fh-number:nth-child(4),body .tr-detail-table tbody td:nth-child(2)>bdi,
body .tr-history tbody td:nth-child(3)>bdi { font-weight:400; }
body .actual-value-group>bdi,body .actual-figure,
body .broker-table .profit-amount[data-field=actual],body .ranking-actual-value,
body .company-ranking .ranking-table .rank-value:nth-child(4),
body .forecast-line-label.is-actual strong,
body .tr-table .tr-number:nth-child(3)>bdi,body .tr-table .tr-number:nth-child(5)>bdi,
body .fh-table .fh-number:nth-child(5),body .tr-detail-table tbody td:nth-child(3)>bdi,
body .tr-history tbody td:nth-child(4)>bdi { font-weight:700; }

/* Shared logo frames keep wide wordmarks and compact symbols optically balanced. */
body :is(.logo-box,.brand-logo,.fh-logo,.analyst-logo) { background:#fff; border:1px solid #edf0f4; border-radius:4px; box-sizing:border-box; }
body :is(.logo-box.logo-inverse,.brand-logo.logo-inverse,.fh-logo.fh-logo-inverse,.analyst-logo.is-inverse) { background:#fff; }
body :is(.logo-box,.brand-logo,.fh-logo)>img { padding:6px; object-fit:contain; object-position:center; }
body :is(.logo-inverse,.fh-logo-inverse,.analyst-logo.is-inverse)>img { filter:brightness(0); opacity:.78; }
body .brand-logo.logo-houses,body .fh-logo.fh-provider-logo,
#view-overview .house-identity .logo-houses,
.ranking-table .rank-identity .brand-logo,.ranking-leader .brand-logo {
  width:56px; height:36px; flex:0 0 56px;
}
@media(max-width:700px) {
  body .brand-logo.logo-houses,body .fh-logo.fh-provider-logo,
  #view-overview .house-identity .logo-houses,
  .ranking-table .rank-identity .brand-logo,.ranking-leader .brand-logo {
    width:48px; height:32px; flex-basis:48px;
  }
  body :is(.logo-box,.brand-logo,.fh-logo)>img { padding:5px; }
}

.forecast-hub-heading { padding-block:32px 0; }
.forecast-hub-heading h1 { font-size:28px; margin:0 0 20px; }
.forecast-hub-tabs { display:flex; gap:32px; border-bottom:1px solid var(--line); }
.forecast-hub-tabs button { background:none; border:0; border-bottom:3px solid transparent; border-radius:0; padding:12px 0; color:var(--muted); font:500 14px/1.7 'Noto Sans Arabic',Arial,sans-serif; cursor:pointer; min-height:48px; }
.forecast-hub-tabs button[aria-selected=true] { color:var(--blue); border-bottom-color:var(--blue); }
.forecast-hub-tabs button:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
body[data-forecast-hub] [role=tabpanel][hidden],.forecast-hub-heading[hidden] { display:none; }
body[data-forecast-hub] .market-overview h2 { font-size:24px; margin:0; }
body[data-forecast-hub] .broker-hero { padding-block:20px; }
body[data-forecast-hub] .broker-stats { margin-top:0; }
body[data-forecast-hub] .broker-content>.section-top { margin-top:8px; }
body[data-forecast-hub] .independent-initiative { padding-block:28px; }
body[data-forecast-hub] .initiative-intro>h2 { font-size:24px; line-height:1.7; }
@media(max-width:700px) {
  .forecast-hub-heading { padding-top:20px; }
  .forecast-hub-heading h1 { font-size:23px; margin-bottom:12px; }
  .forecast-hub-tabs { display:grid; grid-template-columns:1fr .85fr 1fr 1.3fr; gap:10px; }
  .forecast-hub-tabs button { font-size:11px; min-height:60px; padding:8px 0; }
  body[data-forecast-hub] .market-overview h2,body[data-forecast-hub] .initiative-intro>h2 { font-size:20px; }
  .arraf-bottom-nav a,.arraf-bottom-nav button { display:grid; grid-template-rows:22px 30px; align-content:center; justify-items:center; gap:2px; }
  .arraf-bottom-nav a>span,.arraf-bottom-nav button>span { align-self:center; }
}
