/* ==========================================================================
   01 — DESIGN TOKENS
   ========================================================================== */
:root {
  /* Palette */
  --ra-purple: #6b4cf6;
  --ra-purple2: #8b73ff;
  --ra-soft: #f5f2ff;
  --ra-text: #272c3e;
  --ra-muted: #747b90;
  --ra-line: #e5e7f0;
  --ra-surface: #ffffff;
  --ra-surface-soft: #fafafe;
  --ra-green: #168c68;
  --ra-green-soft: #edf9f4;
  --ra-red: #c75a68;
  --ra-red-soft: #fff1f3;
  --ra-amber: #b98219;
  --ra-amber-soft: #fff8e9;

  /* Typography */
  --ra-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --ra-font-xs: 10px;
  --ra-font-sm: 11px;
  --ra-font-md: 12px;
  --ra-font-body: 13px;
  --ra-font-lg: 14px;
  --ra-font-xl: 16px;
  --ra-font-2xl: 18px;
  --ra-font-3xl: 20px;
  --ra-font-title: 26px;

  --ra-weight-medium: 500;
  --ra-weight-semibold: 600;
  --ra-weight-bold: 700;
  --ra-weight-extrabold: 800;
  --ra-weight-black: 800;

  /* Content typography — aligned with cleaned Contacts / Feedback / Shareholding.
     10px is reserved for labels; 11px for metadata; prose starts at 12–13px. */
  --ra-type-label-size: var(--ra-font-xs);
  --ra-type-meta-size: var(--ra-font-sm);
  --ra-type-helper-size: var(--ra-font-md);
  --ra-type-body-size: var(--ra-font-body);
  --ra-type-card-title-size: var(--ra-font-lg);
  --ra-type-section-title-size: var(--ra-font-xl);
  --ra-type-label-weight: var(--ra-weight-extrabold);
  --ra-type-meta-weight: var(--ra-weight-semibold);
  --ra-type-body-weight: var(--ra-weight-semibold);
  --ra-type-strong-weight: var(--ra-weight-extrabold);
  --ra-type-line-helper: 1.45;
  --ra-type-line-body: 1.55;

  /* Geometry */
  --ra-control-h: 44px;
  --ra-control-h-sm: 36px;
  --ra-icon-control: 34px;
  --ra-radius-sm: 10px;
  --ra-radius-md: 14px;
  --ra-radius-lg: 18px;
  --ra-drawer-width: 560px;
  --ra-upload-width: 560px;
  --ra-email-width: 560px;
  --ra-email-control-h: 42px;

  /* Page header — aligned with the canonical IRCC page hierarchy */
  --ra-page-title-size: 30px;
  --ra-page-title-weight: 800;
  --ra-page-eyebrow-size: 10px;
  --ra-page-eyebrow-weight: 800;
  --ra-page-subtitle-size: 12px;
  --ra-page-subtitle-weight: 500;
  --ra-header-control-h: 42px;
  --ra-header-company-w: 260px;
  --ra-header-period-w: 205px;
  --ra-header-control-radius: 12px;
  --ra-header-control-font-size: 12px;
  --ra-header-button-font-size: 12px;
  --ra-header-icon-size: 16px;
  --ra-header-icon-slot: 18px;
  --ra-header-icon-control: 42px;
  --ra-header-gap: 8px;

  /* Canonical page-heading treatment — matches Shareholding / Feedback. */
  --ra-page-eyebrow-color: #7564ce;
  --ra-page-eyebrow-dot-size: 6px;
  --ra-page-eyebrow-gap: 8px;
  --ra-page-eyebrow-track: 1.15px;
  --ra-page-title-track: -.9px;

  /* Canonical icon geometry. Components consume these instead of ad-hoc offsets. */
  --ra-icon-glyph-xs: 11px;
  --ra-icon-glyph-sm: 13px;
  --ra-icon-glyph-md: 15px;
  --ra-icon-box-sm: 28px;
  --ra-icon-box-md: 34px;
  --ra-metric-icon-box: 34px;
  --ra-metric-icon-glyph: 15px;
  --ra-metric-icon-optical-x: 0px;
  --ra-metric-icon-optical-y: 0px;

  /* Research report-card footer geometry */
  --ra-report-footer-gap: 7px;
  --ra-report-footer-action-gap: 4px;
  --ra-report-footer-analyst-max: 118px;
  --ra-report-footer-analyst-max-compact: 96px;

  /* Estimate intelligence / market comparison */
  --ra-estimate-refresh-h: 36px;
  --ra-market-estimate-col-w: 31%;
  --ra-market-estimate-bg: #faf8ff;
  --ra-market-estimate-border: #e7e1ff;
  --ra-forecast-card-gap: 10px;
  --ra-forecast-mini-row-h: 40px;
  --ra-forecast-line-col-w: 43%;
  --ra-forecast-broker-col-w: 26%;
  --ra-forecast-period-h: 30px;
  --ra-forecast-period-pad-x: 11px;
  --ra-forecast-period-gap: 5px;
  --ra-estimate-detail-min-w: 760px;
  --ra-estimate-detail-max-h: 240px;
  --ra-valuation-table-min-w: 720px;

  /* Manual-report estimate intelligence — intentionally dense. */
  --ra-manual-broker-col-w: 220px;
  --ra-manual-metric-col-w: 100px;
  --ra-manual-row-h: 52px;
  --ra-estimate-table-head-size: var(--ra-font-sm);
  --ra-estimate-table-period-size: var(--ra-font-sm);
  --ra-estimate-table-name-size: var(--ra-font-md);
  --ra-estimate-table-meta-size: var(--ra-font-sm);
  --ra-estimate-table-value-size: var(--ra-font-md);
  --ra-estimate-table-sub-size: var(--ra-font-sm);
  --ra-manual-table-radius: 12px;
  --ra-manual-cell-pad-y: 6px;
  --ra-manual-cell-pad-x: 10px;
  --ra-revision-broker-col-w: 190px;
  --ra-revision-metric-col-w: 92px;
  --ra-revision-cell-h: 38px;
}



/* ==========================================================================
   02 — BASE & SHARED COMPONENTS
   ========================================================================== */

.ra-app{width:100%;min-width:0;color:var(--ra-text);font-family:var(--ra-font-family);}

.ra-app *{box-sizing:border-box;}

/* Lucide icons render as inline SVG by default. Force a single alignment model so
   icons sit consistently in buttons, tabs, pills, cards and modal controls. */
.ra-app svg{display:block;flex:0 0 auto;margin:0;padding:0;vertical-align:middle;}
.ra-app button,.ra-app a,.ra-app label{line-height:1;}

.ra-app .hidden{display:none !important;}

.ra-section-kicker{display:inline-flex;align-items:center;gap:6px;color:var(--ra-purple);font-size:var(--ra-font-sm);font-weight:var(--ra-weight-black);letter-spacing:.14em;text-transform:uppercase;}

.ra-btn{height:var(--ra-header-control-h);display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 14px;border-radius:var(--ra-header-control-radius);border:1px solid transparent;font-size:var(--ra-header-button-font-size);font-weight:var(--ra-weight-bold);line-height:1;white-space:nowrap;cursor:pointer;transition:.18s ease;}

.ra-btn svg{width:var(--ra-header-icon-size);height:var(--ra-header-icon-size);align-self:center;stroke-width:1.9;}

/* Every icon-bearing control uses true flex/grid centering; no baseline offsets. */
.ra-btn>svg,.ra-tabs button>svg,.ra-icon-btn>svg,.ra-report-footer svg,.ra-broker-analyst svg{align-self:center;margin:0;transform:none;}
.ra-select-leading,.ra-metric-icon,.ra-summary-icon,.ra-kicker-icon,.ra-theme-icon,.ra-stance-stat-icon,.ra-street-callout-icon,.ra-upload-drop-icon,.ra-upload-check,.ra-empty-icon{line-height:0;}

.ra-btn-secondary{border-color:#ddd8f7;background:#fff;color:var(--ra-purple);box-shadow:0 5px 14px rgba(70,54,145,.05);}

.ra-btn-secondary:hover{background:#f8f6ff;border-color:#cfc5ff;}

.ra-btn-primary{background:linear-gradient(135deg,var(--ra-purple),#7658f8);color:#fff;box-shadow:0 9px 20px rgba(107,76,246,.16);}

.ra-btn-primary:hover{transform:translateY(-1px);box-shadow:0 12px 25px rgba(107,76,246,.22);}

.ra-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}

.ra-spinner{width:18px;height:18px;border:2px solid #ddd6ff;border-top-color:var(--ra-purple);border-radius:50%;animation:raSpin .7s linear infinite;}

.ra-spinner.inline{display:inline-block;margin-right:7px;vertical-align:-4px;}

.ra-rating{display:inline-flex;justify-content:center;padding:4px 6px;border-radius:999px;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);}

.ra-rating.bullish{background:#e9f8f2;color:#14785b;}

.ra-rating.neutral{background:#fff6df;color:#9f741d;}

.ra-rating.bearish{background:#fff0f2;color:#b64d5c;}

.ra-rating.unknown{background:#eff0f4;color:#72788c;}

.ra-icon-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e0e2eb;border-radius:11px;background:#fff;color:#6d7488;line-height:0;cursor:pointer;}

.ra-icon-btn:hover{color:var(--ra-purple);border-color:#d0c8fb;background:#faf8ff;}

.ra-icon-btn svg{width:16px;height:16px;}

.ra-ask-form .ra-btn{justify-self:end;height:37px;font-size:var(--ra-font-sm);}

.ra-placeholder{padding:13px;border:1px dashed #dedee7;border-radius:11px;color:#9297a9;text-align:center;font-size:var(--ra-font-sm);}

.ra-placeholder.slim{padding:9px;}

.ra-toast{position:fixed;right:24px;bottom:76px;z-index:1200;max-width:390px;padding:10px 13px;border-radius:11px;background:#2f3448;color:#fff;box-shadow:0 12px 30px rgba(20,23,35,.22);font-size:var(--ra-font-sm);font-weight:var(--ra-weight-bold);opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s ease;}

.ra-toast.show{opacity:1;transform:translateY(0);}

.ra-toast.error{background:#b64d5c;}

.ra-section-kicker svg{width:15px;height:15px;stroke-width:2.1;}

.ra-hero-narrative{font-weight:var(--ra-weight-medium);max-width:960px;margin:11px 0 11px;font-size:var(--ra-type-body-size);line-height:var(--ra-type-line-body);color:#60687d;}

.ra-section-kicker{display:inline-flex;align-items:center;gap:7px;font-size:var(--ra-font-sm);line-height:1;letter-spacing:.13em;}

.ra-overview-themes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--ra-line);background:#fff;overflow:hidden;margin-top:12px;border-radius:18px;box-shadow:none;}

.ra-broker-drawer .ra-drawer-head .ra-icon-btn{width:32px;height:32px;border-radius:10px;}

.ra-broker-drawer .ra-drawer-head .ra-icon-btn svg{width:14px;height:14px;}

.ra-upload-backdrop.hidden{display:none !important;}

.ra-upload-file-list.hidden{display:none !important;}


/* ==========================================================================
   03 — PAGE HEADER & CONTROLS
   ========================================================================== */

.ra-topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;padding:0 0 8px;margin-bottom:8px;border:0;border-radius:0;background:transparent;box-shadow:none;}

.ra-brand{display:flex;align-items:flex-end;min-width:0;}

.ra-brand>div{min-width:0;}

.ra-brand h1{margin:6px 0 5px;font-size:var(--ra-page-title-size);line-height:1;font-weight:var(--ra-page-title-weight);letter-spacing:var(--ra-page-title-track);white-space:nowrap;}

.ra-brand h1 strong{color:var(--ra-purple);font-weight:inherit;}

.ra-brand p{margin:0;color:var(--ra-muted);font-size:var(--ra-page-subtitle-size);font-weight:var(--ra-page-subtitle-weight);line-height:1.45;}

.ra-eyebrow{display:inline-flex;align-items:center;gap:var(--ra-page-eyebrow-gap);color:var(--ra-page-eyebrow-color);font-size:var(--ra-page-eyebrow-size);font-weight:var(--ra-page-eyebrow-weight);letter-spacing:var(--ra-page-eyebrow-track);line-height:1;text-transform:uppercase;}

.ra-eyebrow-dot{width:var(--ra-page-eyebrow-dot-size);height:var(--ra-page-eyebrow-dot-size);flex:0 0 var(--ra-page-eyebrow-dot-size);border-radius:50%;background:var(--ra-purple);}

.ra-top-tools{display:flex;align-items:center;justify-content:flex-end;gap:var(--ra-header-gap);min-width:0;}

.ra-picker{position:relative;min-width:0;z-index:45;}

.ra-company-wrap{width:var(--ra-header-company-w);}

.ra-period-wrap{width:var(--ra-header-period-w);}

.ra-picker-trigger{width:100%;height:var(--ra-header-control-h);display:grid;grid-template-columns:var(--ra-header-icon-slot) minmax(0,1fr) 14px;align-items:center;gap:8px;padding:0 11px;border:1px solid #dfe1eb;border-radius:var(--ra-header-control-radius);background:#fff;box-shadow:0 3px 10px rgba(55,50,91,.025);color:#34394d;font-family:inherit;text-align:left;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;}

.ra-picker-trigger:hover{border-color:#d2caff;background:#fdfcff;}
.ra-picker.open .ra-picker-trigger,.ra-picker-trigger:focus-visible{border-color:#bcaeff;box-shadow:0 0 0 3px rgba(108,76,245,.07);outline:none;}
.ra-picker-trigger:disabled{cursor:not-allowed;background:#f8f8fb;color:#9a9eae;opacity:.74;}
.ra-picker-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ra-header-control-font-size);font-weight:var(--ra-weight-bold);line-height:1.2;}

.ra-select-leading{width:var(--ra-header-icon-slot);height:var(--ra-header-icon-slot);display:inline-flex;align-items:center;justify-content:center;align-self:center;color:var(--ra-purple);line-height:0;}

.ra-select-leading svg{width:var(--ra-header-icon-size);height:var(--ra-header-icon-size);align-self:center;stroke-width:1.9;}

.ra-select-chevron{width:14px;height:14px;align-self:center;color:#7d8496;pointer-events:none;stroke-width:1.8;transition:transform .16s ease;}
.ra-picker.open .ra-select-chevron{transform:rotate(180deg);}
.ra-picker-native{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;opacity:0!important;pointer-events:none!important;}

.ra-picker-menu{position:absolute;top:calc(100% + 8px);left:0;width:100%;min-width:260px;padding:7px;border:1px solid #e1dfeb;border-radius:14px;background:#fff;box-shadow:0 18px 50px rgba(42,35,84,.18);z-index:240;}
.ra-company-picker-menu{width:max(100%,330px);}
.ra-period-picker-menu{width:max(100%,235px);}
.ra-picker-search{height:38px;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:7px;padding:0 10px;margin-bottom:6px;border:1px solid #e6e5ed;border-radius:10px;background:#fafafe;}
.ra-picker-search:focus-within{border-color:#cbbfff;box-shadow:0 0 0 3px rgba(108,76,245,.06);background:#fff;}
.ra-picker-search svg{width:15px;height:15px;color:#7866da;stroke-width:1.8;}
.ra-picker-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#34394d;font:inherit;font-size:12.5px;font-weight:600;}
.ra-picker-search input::placeholder{color:#9aa0b1;}
.ra-picker-search input::-webkit-search-cancel-button{display:none;}
.ra-picker-options{max-height:310px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d9d6e7 transparent;}
.ra-picker-option{width:100%;min-height:42px;display:grid;grid-template-columns:30px minmax(0,1fr) 16px;align-items:center;gap:9px;padding:6px 8px;border:0;border-radius:10px;background:transparent;color:#4b5266;font-family:inherit;text-align:left;cursor:pointer;}
.ra-picker-option:hover,.ra-picker-option:focus-visible{background:#f7f5ff;color:#5f48d0;outline:none;}
.ra-picker-option.selected{background:#f1edff;color:#5f48d0;}
.ra-picker-option.hidden{display:none;}
.ra-picker-option-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#f4f1ff;color:#6b4cf6;}
.ra-picker-option-icon svg{width:14px;height:14px;stroke-width:1.8;}
.ra-picker-option-copy{min-width:0;}
.ra-picker-option-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit;font-size:12.5px;font-weight:750;line-height:1.2;}
.ra-picker-option-copy small{display:block;margin-top:2px;color:#969caf;font-size:10.5px;font-weight:600;line-height:1.15;}
.ra-picker-option-check{width:15px;height:15px;color:#654bdd;opacity:0;stroke-width:2;}
.ra-picker-option.selected .ra-picker-option-check{opacity:1;}
.ra-picker-empty{padding:18px 10px;text-align:center;color:#969caf;font-size:12px;font-weight:600;}
.ra-picker-menu.hidden,.ra-picker-empty.hidden{display:none;}


.ra-top-tools .ra-btn{flex:0 0 auto;}

/* Header utilities follow the same compact icon-control model used by the
   Shareholding and Contacts pages. Upload / Download / Email do not consume
   text width; their accessible label and tooltip carry the action name. */
.ra-top-tools .ra-header-icon-btn{
  position:relative;
  width:var(--ra-header-icon-control);
  min-width:var(--ra-header-icon-control);
  height:var(--ra-header-icon-control);
  padding:0;
  gap:0;
  border-radius:var(--ra-header-control-radius);
  line-height:0;
}
.ra-top-tools .ra-header-icon-btn svg{
  width:var(--ra-header-icon-size);
  height:var(--ra-header-icon-size);
  stroke-width:1.9;
}
.ra-header-icon-btn[data-tooltip]::after{
  content:attr(data-tooltip);
  position:absolute;
  z-index:260;
  top:calc(100% + 8px);
  left:50%;
  transform:translate(-50%,-3px);
  padding:6px 8px;
  border:1px solid #e5e1f3;
  border-radius:8px;
  background:#2f3142;
  color:#fff;
  box-shadow:0 8px 22px rgba(34,31,54,.16);
  font-size:var(--ra-font-xs);
  font-weight:var(--ra-weight-bold);
  line-height:1;
  white-space:nowrap;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transition:opacity .14s ease,transform .14s ease,visibility .14s ease;
}
.ra-header-icon-btn[data-tooltip]:hover::after,
.ra-header-icon-btn[data-tooltip]:focus-visible::after{
  opacity:1;
  visibility:visible;
  transform:translate(-50%,0);
}

/* ==========================================================================
   04 — LOADING & EMPTY STATES
   ========================================================================== */

.ra-progress{display:grid;gap:10px;margin-bottom:12px;padding:13px 15px;border:1px solid #ded9f7;border-radius:15px;background:#faf8ff;}

.ra-progress-copy{display:flex;align-items:center;gap:10px;}

.ra-progress-copy div{display:flex;flex-direction:column;gap:2px;}

.ra-progress-copy strong{font-size:var(--ra-font-body);}

.ra-progress-copy span:last-child{font-size:var(--ra-font-sm);color:var(--ra-muted);}

.ra-progress-track{height:5px;border-radius:999px;background:#ebe7fb;overflow:hidden;}

.ra-progress-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--ra-purple),#9b87ff);border-radius:inherit;transition:width .25s ease;}

.ra-empty{min-height:320px;display:grid;place-items:center;align-content:center;gap:9px;text-align:center;padding:30px;border:1px dashed #dcdde8;border-radius:20px;background:#fff;}

.ra-empty-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;background:var(--ra-soft);color:var(--ra-purple);}

.ra-empty-icon svg{width:25px;height:25px;}

.ra-empty h2{margin:0;font-size:var(--ra-font-2xl);}

.ra-empty p{margin:0;max-width:550px;color:var(--ra-muted);font-size:var(--ra-font-body);line-height:1.55;}


/* ==========================================================================
   05 — NAVIGATION
   ========================================================================== */

.ra-dashboard{display:grid;gap:12px;}

.ra-tabs{display:flex;align-items:center;gap:4px;padding:5px;border:1px solid var(--ra-line);border-radius:15px;background:#fff;overflow-x:auto;scrollbar-width:none;}

.ra-tabs::-webkit-scrollbar{display:none;}

.ra-tabs button{height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:#6d7488;font-size:var(--ra-font-sm);font-weight:var(--ra-weight-bold);line-height:1;white-space:nowrap;cursor:pointer;}

.ra-tabs button svg{width:var(--ra-icon-glyph-sm);height:var(--ra-icon-glyph-sm);align-self:center;stroke-width:1.9;}

.ra-tabs button:hover{background:#f8f7fc;color:#474e64;}

.ra-tabs button.active{background:#f0ecff;color:var(--ra-purple);box-shadow:inset 0 0 0 1px #d8d0ff;}

.ra-tab-panel{display:none;}

.ra-tab-panel.active{display:block;}


/* ==========================================================================
   06 — RESEARCH REPORT CARDS
   ========================================================================== */

.ra-report-card.pending::before{background:#e1ad3a;}

.ra-report-card.failed::before{background:#df6272;}

.ra-report-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}

.ra-report-card:hover, .ra-report-card:focus-visible{transform:translateY(-3px);border-color:#cfc7ff;background:radial-gradient(circle at 100% 0%,rgba(111,76,246,.10),transparent 34%),
    linear-gradient(180deg,#fff 0%,#fbf9ff 100%);box-shadow:0 16px 34px rgba(75,61,162,.10);}

.ra-report-card.ready::before, .ra-report-card.pending::before, .ra-report-card.failed::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 8px 8px 0;background:#7a5cff;display:none;}

.ra-report-logo span{position:relative;z-index:1;}

.ra-report-logo.icici{background:linear-gradient(135deg,#ee6b2c,#ffad61);}

.ra-report-logo.jm{background:linear-gradient(135deg,#263b7e,#4e6fd7);}

.ra-report-logo.nomura{background:linear-gradient(135deg,#cf342f,#f06d61);}

.ra-report-logo.nuvama{background:linear-gradient(135deg,#202057,#7755d8);}

.ra-report-logo.equirus{background:linear-gradient(135deg,#4d8e37,#99c66d);}

.ra-report-logo.choice{background:linear-gradient(135deg,#1342a0,#46a6ff);}

.ra-report-logo.uljk{background:linear-gradient(135deg,#4d4f68,#8b91b4);}

.ra-report-broker-copy{min-width:0;}

.ra-report-status.ready{background:#e8f8f1;color:#127b5a;}

.ra-report-status.failed{background:#fff0f2;color:#bf5261;}

.ra-report-metrics .ra-rating-value.bullish{color:#0f7d59;}

.ra-report-metrics .ra-rating-value.neutral{color:#a4740b;}

.ra-report-metrics .ra-rating-value.bearish{color:#bf5261;}

.ra-report-footer a{color:#72798d;}

.ra-report-footer button:hover{color:#5844e2;}

.ra-report-footer a:hover{color:#4f566a;}

.ra-report-card{grid-template-columns:40px minmax(0,1fr) auto;align-items:start;position:relative;min-width:0;display:flex;flex-direction:column;gap:0;border:1px solid #e1def0;background:radial-gradient(circle at 100% 0%,rgba(111,76,246,.075),transparent 30%),
    linear-gradient(180deg,#fff 0%,#fdfcff 100%);box-shadow:0 8px 22px rgba(42,47,70,.035);cursor:default;overflow:hidden;outline:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;min-height:194px;padding:13px 14px 12px;border-radius:17px;}

.ra-report-card::after{content:"";position:absolute;top:0;height:2px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,#6b4cf6,#aa98ff);opacity:.7;left:14px;right:14px;}

.ra-report-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;}

.ra-report-brand{min-width:0;display:flex;align-items:center;gap:9px;}

.ra-report-logo{position:relative;flex:0 0 58px;display:grid;place-items:center;overflow:hidden;color:#fff;font-weight:var(--ra-weight-black);letter-spacing:.01em;box-shadow:0 10px 22px rgba(64,52,135,.15);background:linear-gradient(135deg,#6b4cf6,#9b86ff);width:46px;height:46px;flex-basis:46px;border-radius:14px;font-size:var(--ra-font-body);}

.ra-report-logo img{position:absolute;inset:0;z-index:2;width:100%;height:100%;object-fit:contain;background:#fff;padding:7px;}

.ra-report-broker-copy strong{display:block;color:#292e41;line-height:1.2;font-weight:var(--ra-weight-black);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--ra-font-lg);}

.ra-report-status{flex:0 0 auto;border-radius:999px;background:#f2eefc;color:var(--ra-purple);line-height:1;font-weight:var(--ra-type-label-weight);padding:4px 7px;font-size:var(--ra-type-meta-size);}

.ra-report-metrics{display:grid;margin-top:auto;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;}

.ra-report-metrics>div{min-width:0;border:1px solid #eceaf4;background:rgba(248,248,252,.82);padding:6px 7px 6px;border-radius:10px;}

.ra-report-metrics span{display:block;color:#9196a8;font-weight:var(--ra-weight-extrabold);text-transform:uppercase;font-size:var(--ra-font-xs);line-height:1.05;letter-spacing:.055em;white-space:nowrap;}

.ra-report-metrics strong{display:block;color:#34394d;line-height:1.1;font-weight:var(--ra-weight-black);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px;font-size:var(--ra-font-md);}

.ra-report-metrics .ra-move-metric.positive strong{color:#0f7d59;}

.ra-report-metrics .ra-move-metric.negative strong{color:#c15362;}

.ra-report-metrics .ra-move-metric.flat strong{color:#8a6a14;}

.ra-report-footer button, .ra-report-footer a{display:inline-flex;align-items:center;justify-content:center;gap:var(--ra-report-footer-action-gap);padding:0;border:0;background:transparent;color:#6b5adb;text-decoration:none;font-weight:var(--ra-weight-bold);line-height:1;cursor:pointer;min-height:24px;font-size:var(--ra-type-meta-size);white-space:nowrap;flex:0 0 auto;}

.ra-report-footer svg{width:12px;height:12px;display:block;stroke-width:1.9;}

.ra-report-strip{margin:16px 0 18px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;margin-top:8px;}

.ra-report-broker-copy small{display:block;color:#858ca1;font-weight:var(--ra-weight-semibold);font-size:var(--ra-type-meta-size);margin-top:2px;}

.ra-report-thesis{color:#596077;font-weight:var(--ra-type-body-weight);display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;min-height:30px;margin:10px 0 8px;font-size:var(--ra-type-body-size);line-height:var(--ra-type-line-helper);-webkit-line-clamp:2;margin-top:8px;}

.ra-report-footer{display:flex;align-items:center;gap:var(--ra-report-footer-gap);border-top:1px solid #efedf5;margin-top:8px;padding-top:8px;justify-content:flex-start;min-width:0;}

.ra-report-footer-right{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:var(--ra-report-footer-gap);margin-left:auto;flex:1 1 auto;}

.ra-report-footer-analyst{min-width:0;max-width:var(--ra-report-footer-analyst-max);display:inline-flex;align-items:center;gap:4px;color:#737b90;font-size:var(--ra-type-meta-size);line-height:1;font-weight:var(--ra-weight-semibold);white-space:nowrap;flex:1 1 auto;}

.ra-report-footer-analyst>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.ra-report-footer-analyst svg{width:11px;height:11px;flex:0 0 11px;stroke-width:1.8;}


/* ==========================================================================
   07 — OVERVIEW & STREET VIEW
   ========================================================================== */

.ra-metric-strip>div{min-width:0;padding:11px 14px;border-right:1px solid #eef0f5;}

.ra-metric-strip>div:last-child{border-right:0;}

.ra-metric-strip span{display:block;color:#8a90a3;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);text-transform:uppercase;letter-spacing:.08em;}

.ra-metric-strip strong{display:block;margin-top:4px;color:#34394d;font-size:var(--ra-font-body);line-height:1.25;font-weight:var(--ra-weight-extrabold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.ra-section-head,.ra-side-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}

.ra-stance-pill.bullish{background:#e9f8f2;color:#14785b;}

.ra-stance-pill.neutral{background:#fff6df;color:#9f741d;}

.ra-stance-pill.bearish{background:#fff0f2;color:#b64d5c;}

.ra-stance-pill.split{background:#f0edff;color:#6553ce;}

.ra-summary-row:last-child{border-bottom:0;}

.ra-summary-row svg{flex:0 0 auto;width:12px;height:12px;margin-top:1px;color:var(--ra-purple);}

.ra-theme-column:last-child{border-right:0;}

.ra-theme-column.positive .ra-theme-title{color:var(--ra-green);}

.ra-theme-column.warning .ra-theme-title{color:var(--ra-amber);}

.ra-theme-column.negative .ra-theme-title{color:var(--ra-red);}

.ra-theme-row:first-child{border-top:0;}

.ra-metric-icon.purple{background:#f3efff;color:#694cf2;border-color:#e8e0ff;}

.ra-metric-icon.blue{background:#eef5ff;color:#4978e8;border-color:#dce9ff;}

.ra-metric-icon.violet{background:#f5f1ff;color:#7959ee;border-color:#e7dfff;}

.ra-metric-icon.green{background:#edf9f4;color:#168c68;border-color:#d9f0e7;}

.ra-metric-icon.amber{background:#fff7e8;color:#b47a12;border-color:#f6e8c8;}

.ra-metric-copy{min-width:0;min-height:var(--ra-metric-icon-box);display:flex;flex-direction:column;justify-content:center;}

.ra-overview-main{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:0;border:1px solid var(--ra-line);background:#fff;overflow:hidden;border-radius:20px;box-shadow:0 10px 28px rgba(47,51,75,.025);}

.ra-stance-pill,.ra-agreement{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;background:#f2f0f8;color:#687084;font-weight:var(--ra-weight-extrabold);padding:6px 10px;font-size:var(--ra-font-sm);letter-spacing:.01em;}

.ra-summary-list{display:grid;gap:0;border-top:1px solid #ececf4;border-top-color:#e8eaf1;}

.ra-street-read strong{font-size:var(--ra-type-body-size);font-weight:var(--ra-type-strong-weight);color:#353a4e;}

.ra-street-read p{margin:4px 0 0;margin-top:5px;}

.ra-theme-column.positive{background:linear-gradient(180deg,rgba(237,249,244,.45),#fff 38%);}

.ra-theme-column.warning{background:linear-gradient(180deg,rgba(255,248,233,.48),#fff 38%);}

.ra-theme-column.negative{background:linear-gradient(180deg,rgba(255,241,243,.45),#fff 38%);}

.ra-theme-column.positive::before{background:linear-gradient(90deg,#25ad82,transparent 72%);}

.ra-theme-column.warning::before{background:linear-gradient(90deg,#d09a2d,transparent 72%);}

.ra-theme-column.negative::before{background:linear-gradient(90deg,#d86573,transparent 72%);}

.ra-theme-row-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}

.ra-debate-label.bull{background:#e9f8f2;color:#14785b;}

.ra-debate-label.cautious{background:#fff4df;color:#9f741d;}

.ra-synthesis{background:radial-gradient(circle at 92% 12%,rgba(107,76,246,.075),transparent 27%),linear-gradient(135deg,#fff,#fcfbff);padding:18px 20px 17px;}

.ra-street-side{border-left:1px solid var(--ra-line);background:#fff;padding:18px 18px;}

.ra-section-head h2{margin:5px 0 0;margin-top:6px;max-width:880px;font-size:var(--ra-font-xl);line-height:1.34;font-weight:var(--ra-weight-black);letter-spacing:-.022em;}

.ra-summary-row{display:flex;align-items:flex-start;border-bottom:1px solid #f0f1f5;color:#40475c;min-height:34px;gap:9px;padding:7px 0;font-size:var(--ra-type-body-size);line-height:var(--ra-type-line-helper);font-weight:var(--ra-type-body-weight);}

.ra-summary-icon{width:18px;height:18px;flex:0 0 18px;display:inline-flex;align-items:center;justify-content:center;margin-top:0;background:#f2eeff;color:var(--ra-purple);border-radius:6px;line-height:0;}

.ra-summary-icon svg{stroke-width:2.5;width:10px;height:10px;display:block;margin:0;}

.ra-kicker-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;border-radius:7px;background:#f2eeff;color:var(--ra-purple);line-height:0;}

.ra-kicker-icon svg{width:11px;height:11px;display:block;margin:0;padding:0;stroke-width:2.2;}

.ra-side-head h3{margin:5px 0 0;margin-top:7px;font-size:var(--ra-font-lg);line-height:1.2;font-weight:var(--ra-weight-extrabold);letter-spacing:-.015em;}

.ra-agreement{padding:5px 8px;font-size:var(--ra-font-xs);background:#f4f2fa;}

.ra-street-bars{gap:11px;display:block;margin-top:16px;}

.ra-stance-track{display:flex;width:100%;height:10px;overflow:hidden;border-radius:999px;background:#eef0f4;box-shadow:inset 0 0 0 1px rgba(43,47,66,.025);}

.ra-stance-track>span{display:block;height:100%;min-width:0;}

.ra-stance-track .bullish{background:linear-gradient(90deg,#21aa7d,#35c193);}

.ra-stance-track .neutral{background:linear-gradient(90deg,#d6a337,#e5bc5d);}

.ra-stance-track .bearish{background:linear-gradient(90deg,#d85e70,#e57d8d);}

.ra-stance-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;}

.ra-stance-stat{display:flex;align-items:center;gap:8px;min-width:0;padding:8px 9px;border:1px solid #eceef4;border-radius:11px;background:#fff;}

.ra-stance-stat-icon{width:var(--ra-icon-box-sm);height:var(--ra-icon-box-sm);flex:0 0 var(--ra-icon-box-sm);display:inline-flex;align-items:center;justify-content:center;border-radius:9px;line-height:0;}

.ra-stance-stat-icon svg{width:13px;height:13px;display:block;margin:0;stroke-width:2.2;}

.ra-stance-stat.bullish .ra-stance-stat-icon{background:#e9f8f2;color:#168664;}

.ra-stance-stat.neutral .ra-stance-stat-icon{background:#fff5df;color:#a87313;}

.ra-stance-stat.bearish .ra-stance-stat-icon{background:#ffedf0;color:#bf5364;}

.ra-stance-stat>span:last-child{display:flex;flex-direction:column;min-width:0;}

.ra-stance-stat small{color:#81889a;font-size:var(--ra-font-xs);line-height:1;font-weight:var(--ra-weight-extrabold);text-transform:uppercase;letter-spacing:.06em;}

.ra-stance-stat strong{margin-top:4px;color:#343a4e;font-size:var(--ra-font-md);line-height:1;font-weight:var(--ra-weight-black);}

.ra-stance-stat strong em{margin-left:3px;color:#959bad;font-size:var(--ra-font-xs);font-style:normal;font-weight:var(--ra-weight-bold);}

.ra-street-read{color:#626a80;font-size:var(--ra-type-body-size);line-height:var(--ra-type-line-body);margin-top:12px;padding-top:12px;border-top:1px solid #eef0f4;}

.ra-street-callout{display:flex;align-items:flex-start;gap:10px;}

.ra-street-callout-icon{width:31px;height:31px;flex:0 0 31px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:#f2effa;color:#6b5c9b;line-height:0;}

.ra-street-callout-icon svg{width:14px;height:14px;display:block;margin:0;stroke-width:2.2;}

.ra-street-callout.bullish .ra-street-callout-icon{background:#eaf8f3;color:#168664;}

.ra-street-callout.neutral .ra-street-callout-icon{background:#fff5df;color:#a87313;}

.ra-street-callout.bearish .ra-street-callout-icon{background:#ffedf0;color:#bf5364;}

.ra-street-callout strong{display:block;color:#343a4e;font-size:var(--ra-type-body-size);font-weight:var(--ra-type-strong-weight);line-height:1.3;}

.ra-street-callout p{margin:4px 0 0;color:#687084;font-size:var(--ra-type-helper-size);line-height:var(--ra-type-line-helper);}

.ra-metric-strip{display:grid;grid-template-columns:.65fr 1.2fr .8fr .8fr 1.1fr;gap:0;margin-bottom:12px;border:1px solid var(--ra-line);background:#fff;overflow:hidden;border-radius:18px;box-shadow:0 8px 22px rgba(52,56,82,.025);min-height:62px;}

.ra-metric-strip>div.ra-metric-item{display:grid;grid-template-columns:var(--ra-metric-icon-box) minmax(0,1fr);align-items:center;justify-items:stretch;column-gap:10px;padding:10px 14px;}

.ra-metric-icon{width:var(--ra-metric-icon-box);height:var(--ra-metric-icon-box);display:grid;place-items:center;align-self:center;justify-self:center;position:relative;overflow:hidden;border:1px solid transparent;border-radius:10px;line-height:0;}

.ra-metric-icon svg{position:absolute;left:50%;top:50%;width:var(--ra-metric-icon-glyph);height:var(--ra-metric-icon-glyph);display:block;margin:0;padding:0;transform:translate(calc(-50% + var(--ra-metric-icon-optical-x)),calc(-50% + var(--ra-metric-icon-optical-y)));transform-origin:center;stroke-width:2;}

.ra-metric-copy>span{color:#858ca0;line-height:1.15;font-weight:var(--ra-weight-black);letter-spacing:.085em;font-size:var(--ra-font-xs);}

.ra-metric-copy>strong{line-height:1.15;letter-spacing:-.012em;margin-top:4px;font-size:var(--ra-font-lg);}

.ra-theme-column{min-width:0;border-right:1px solid var(--ra-line);position:relative;padding:14px 16px 13px;background:#fff;}

.ra-theme-column::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;opacity:.65;}

.ra-theme-title{display:flex;align-items:center;line-height:1.15;letter-spacing:-.012em;gap:8px;margin-bottom:7px;font-size:var(--ra-type-card-title-size);font-weight:var(--ra-type-strong-weight);}

.ra-theme-icon{width:var(--ra-icon-box-sm);height:var(--ra-icon-box-sm);flex:0 0 var(--ra-icon-box-sm);display:inline-flex;align-items:center;justify-content:center;border-radius:9px;line-height:0;}

.ra-theme-icon svg{width:13px;height:13px;display:block;margin:0;padding:0;stroke-width:2.1;}

.ra-theme-column.positive .ra-theme-icon{background:#e9f8f2;color:#168664;}

.ra-theme-column.warning .ra-theme-icon{background:#fff5df;color:#a87313;}

.ra-theme-column.negative .ra-theme-icon{background:#ffedf0;color:#bf5364;}

.ra-theme-title>svg{display:none;}

.ra-theme-row{border-top:1px solid #f0f1f5;border-top-color:#eceef3;padding:8px 0;}

.ra-theme-row strong{font-weight:var(--ra-type-strong-weight);color:#373d50;font-size:var(--ra-type-body-size);line-height:1.3;}

.ra-theme-row-head span{font-weight:var(--ra-type-label-weight);flex:0 0 auto;border-radius:999px;background:#f3f2f7;color:#7f869a;line-height:1.15;padding:2px 6px;font-size:var(--ra-type-meta-size);}

.ra-theme-row p{margin:5px 0 0;color:#687084;margin-top:4px;font-size:var(--ra-type-helper-size);line-height:var(--ra-type-line-helper);}

.ra-debate-row>p{display:grid;align-items:start;grid-template-columns:59px minmax(0,1fr);gap:6px;}

.ra-debate-label{display:inline-flex;align-items:center;justify-content:center;line-height:1;font-weight:var(--ra-type-label-weight);min-height:18px;padding:2px 5px;font-size:var(--ra-type-meta-size);border-radius:6px;}


/* ==========================================================================
   08 — ESTIMATES & VALUATION
   ========================================================================== */

.ra-workspace{padding:18px 19px;border:1px solid var(--ra-line);border-radius:18px;background:#fff;}

.ra-workspace-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid #eceef3;}

.ra-workspace-head h2{margin:5px 0 0;font-size:var(--ra-font-2xl);font-weight:var(--ra-weight-black);letter-spacing:-.025em;}

.ra-workspace-head p{margin:5px 0 0;color:#7a8195;font-size:var(--ra-type-helper-size);line-height:var(--ra-type-line-helper);}

.ra-forecast-block,.ra-quarter-estimates-block{margin-bottom:16px;padding:12px 13px;border:1px solid #e8e9f1;border-radius:14px;background:#fbfbfe;}

.ra-forecast-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px;}

.ra-forecast-head h3{margin:0;font-size:var(--ra-font-body);font-weight:var(--ra-weight-extrabold);color:#3f4559;}

.ra-forecast-head p{margin:4px 0 0;color:#81879a;font-size:var(--ra-type-helper-size);}

.ra-forecast-head>span{display:inline-flex;padding:5px 8px;border:1px solid #e3defa;border-radius:999px;background:#fff;color:#6953d4;font-size:var(--ra-estimate-table-meta-size);font-weight:var(--ra-weight-bold);white-space:nowrap;}

.ra-estimate-pair--annual .ra-forecast-head{margin-bottom:8px;}
.ra-estimate-pair--annual .ra-forecast-head p{display:none;}
.ra-estimate-pair--annual .ra-forecast-block{padding-top:14px;}


.ra-forecast-table{display:grid;}

.ra-forecast-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ra-forecast-card-gap);padding-top:10px;}

.ra-forecast-broker-card{border:1px solid #ececf4;border-radius:14px;background:#fff;overflow:hidden;min-width:0;}

.ra-forecast-broker-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid #f0f1f6;background:linear-gradient(180deg,#fff,#fcfbff);}

.ra-forecast-broker-head>div{min-width:0;}

.ra-forecast-broker-head strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#34394d;font-size:var(--ra-type-helper-size);font-weight:var(--ra-type-strong-weight);}

.ra-forecast-broker-head span{display:block;margin-top:2px;color:#848ba0;font-size:var(--ra-type-meta-size);font-weight:var(--ra-type-meta-weight);}

.ra-forecast-period-badge{flex:0 0 auto!important;margin:0!important;padding:4px 7px;border:1px solid #ded8ff;border-radius:999px;background:var(--ra-soft);color:var(--ra-purple)!important;font-size:var(--ra-font-xs)!important;font-weight:var(--ra-weight-extrabold)!important;line-height:1;white-space:nowrap;}

.ra-forecast-compact-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:10px 10px 9px;border-bottom:1px solid #eceef4;background:#fff;}

.ra-forecast-toolbar-label{display:block;margin-bottom:5px;color:#9399aa;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);letter-spacing:.04em;text-transform:uppercase;}

.ra-estimate-periods{display:flex;align-items:center;gap:var(--ra-forecast-period-gap);flex-wrap:wrap;}

.ra-estimate-period{height:var(--ra-forecast-period-h);padding:0 var(--ra-forecast-period-pad-x);border:1px solid #e3e4ec;border-radius:9px;background:#fff;color:#6d7487;font-family:inherit;font-size:var(--ra-font-sm);font-weight:var(--ra-weight-bold);cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease;}

.ra-estimate-period:hover{border-color:#cec4ff;color:var(--ra-purple);}

.ra-estimate-period.active{border-color:#cfc2ff;background:var(--ra-soft);color:var(--ra-purple);box-shadow:0 0 0 1px rgba(107,76,246,.04) inset;}

.ra-forecast-toolbar-note{display:flex;align-items:center;justify-content:flex-end;gap:6px;color:#7d8599;font-size:var(--ra-estimate-table-meta-size);font-weight:var(--ra-weight-medium);text-align:right;line-height:1.3;}

.ra-forecast-toolbar-note svg{width:13px;height:13px;flex:0 0 auto;color:var(--ra-purple);}

.ra-forecast-mini-wrap{overflow:hidden;}

.ra-forecast-mini-table{width:100%;border-collapse:collapse;table-layout:fixed;}

.ra-forecast-mini-table thead th{padding:6px 8px;border-bottom:1px solid #eceef4;background:#fafafe;color:#8f96a8;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);letter-spacing:.04em;text-transform:uppercase;text-align:right;white-space:nowrap;}

.ra-forecast-mini-table thead th:first-child,.ra-forecast-mini-table tbody th{width:var(--ra-forecast-line-col-w);text-align:left;}

.ra-forecast-mini-table thead th:nth-child(2),.ra-forecast-mini-table tbody td:nth-child(2){width:var(--ra-forecast-broker-col-w);}

.ra-forecast-mini-table thead th.market,.ra-forecast-mini-table tbody td.market{width:var(--ra-market-estimate-col-w);background:var(--ra-market-estimate-bg);border-left:1px solid var(--ra-market-estimate-border);}

.ra-forecast-mini-table tbody th,.ra-forecast-mini-table tbody td{height:var(--ra-forecast-mini-row-h);padding:5px 8px;border-bottom:1px solid #f1f2f6;vertical-align:middle;text-align:right;}

.ra-forecast-mini-table tbody tr:last-child th,.ra-forecast-mini-table tbody tr:last-child td{border-bottom:0;}

.ra-forecast-mini-table tbody tr:hover th,.ra-forecast-mini-table tbody tr:hover td{background:#fcfbff;}

.ra-forecast-mini-table tbody tr:hover td.market{background:#f7f4ff;}

.ra-forecast-mini-table tbody th strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3b4155;font-size:var(--ra-font-sm);font-weight:var(--ra-weight-extrabold);line-height:1.2;}

.ra-broker-estimate-cell,.ra-compact-market-cell{text-align:right;min-width:0;}

.ra-broker-estimate-cell>strong,.ra-compact-market-cell>strong{display:block;color:#333a4e;font-size:var(--ra-font-sm);font-weight:var(--ra-weight-extrabold);white-space:nowrap;}

.ra-broker-estimate-cell>span,.ra-compact-market-cell>span,.ra-compact-market-cell>small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8f96a8;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-semibold);line-height:1.18;}

.ra-broker-estimate-cell>span.up,.ra-compact-market-cell>small.up{color:var(--ra-green);}

.ra-broker-estimate-cell>span.down,.ra-compact-market-cell>small.down{color:var(--ra-red);}

.ra-compact-market-cell>strong{color:#493d73;}

.ra-compact-market-cell.empty>strong,.ra-compact-market-cell.empty>span{color:#a0a5b4;}

/* Market estimate styling is also reused by the revision-history table. */
.ra-market-estimate-cell{text-align:right;}
.ra-market-estimate-cell strong{display:block;color:#433c69;font-size:var(--ra-font-sm);font-weight:var(--ra-weight-extrabold);white-space:nowrap;}
.ra-market-estimate-cell span{display:block;margin-top:2px;color:#81799f;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-semibold);line-height:1.25;white-space:nowrap;}
.ra-market-estimate-cell small{display:block;margin-top:2px;color:#777f92;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-bold);line-height:1.25;white-space:nowrap;}
.ra-market-estimate-cell small.up{color:var(--ra-green);}
.ra-market-estimate-cell small.down{color:var(--ra-red);}
.ra-market-estimate-cell.mixed strong{color:var(--ra-amber);}
.ra-market-estimate-cell.empty strong,.ra-market-estimate-cell.empty span{color:#a0a5b4;}
.ra-market-estimate-cell.compact strong{font-size:var(--ra-font-xs);color:#4b5164;white-space:normal;}
.ra-market-estimate-cell.compact small{white-space:normal;}

.ra-forecast-matrix{width:100%;min-width:520px;border-collapse:collapse;}

.ra-forecast-matrix thead th{padding:6px 8px;border-bottom:1px solid #eceef4;background:#fafafe;color:#8f96a8;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);letter-spacing:.04em;text-transform:uppercase;text-align:right;white-space:nowrap;}

.ra-forecast-matrix thead th:first-child,.ra-forecast-matrix tbody th{text-align:left;}

.ra-forecast-matrix tbody th,.ra-forecast-matrix tbody td{padding:7px 8px;border-bottom:1px solid #f1f2f6;vertical-align:top;}

.ra-forecast-matrix tbody tr:last-child th,.ra-forecast-matrix tbody tr:last-child td{border-bottom:0;}

.ra-forecast-cell{text-align:right;}

.ra-forecast-cell strong{display:block;color:#353b4f;font-size:var(--ra-font-sm);font-weight:var(--ra-weight-extrabold);white-space:nowrap;}

.ra-forecast-cell span{display:block;margin-top:2px;color:#8a91a4;font-size:var(--ra-font-xs);line-height:1.25;}

.ra-forecast-cell.up strong,.ra-forecast-cell.up span{color:var(--ra-green);}

.ra-forecast-cell.down strong,.ra-forecast-cell.down span{color:var(--ra-red);}


.ra-estimate-refresh-btn{height:var(--ra-estimate-refresh-h);align-self:flex-start;padding-inline:12px;}


/* Manual-style estimate tables: one broker per row, one metric per narrow column. */
.ra-forecast-manual-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:9px;padding:0 1px;}
.ra-forecast-manual-toolbar--minimal{justify-content:flex-end;margin-bottom:10px;padding-top:2px;}
.ra-forecast-manual-toolbar>div{min-width:0;}
.ra-compact-toggle{height:30px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;border:1px solid #e3e4ec;border-radius:9px;background:#fff;color:#626a7e;font-family:inherit;font-size:var(--ra-font-sm);font-weight:var(--ra-weight-bold);white-space:nowrap;cursor:pointer;}
.ra-compact-toggle:hover{border-color:#d5cdfd;color:var(--ra-purple);background:#fbfaff;}
.ra-compact-toggle svg{width:13px;height:13px;color:var(--ra-purple);}
.ra-manual-table-shell{width:max-content;max-width:100%;overflow-x:auto;border:1px solid #e7e8f0;border-radius:var(--ra-manual-table-radius);background:#fff;}
.ra-manual-estimate-table{width:max-content;min-width:0;border-collapse:separate;border-spacing:0;table-layout:fixed;}
.ra-manual-estimate-table th,.ra-manual-estimate-table td{height:var(--ra-manual-row-h);padding:var(--ra-manual-cell-pad-y) var(--ra-manual-cell-pad-x);border-right:1px solid #eef0f5;border-bottom:1px solid #eef0f5;vertical-align:middle;}
.ra-manual-estimate-table tr>*:last-child{border-right:0;}
.ra-manual-estimate-table tbody tr:last-child>*{border-bottom:0;}
.ra-manual-estimate-table thead th{height:30px;background:#fafafe;color:#7f879a;font-size:var(--ra-estimate-table-head-size);font-weight:var(--ra-weight-bold);letter-spacing:.035em;text-transform:uppercase;text-align:right;white-space:nowrap;}
.ra-manual-estimate-table thead th:first-child{text-align:left;width:var(--ra-manual-broker-col-w);min-width:var(--ra-manual-broker-col-w);}
.ra-manual-estimate-table thead th:not(:first-child),.ra-manual-estimate-table tbody td{width:var(--ra-manual-metric-col-w);min-width:var(--ra-manual-metric-col-w);text-align:right;}
.ra-manual-estimate-table thead th.ra-manual-broker-head{width:var(--ra-manual-broker-col-w);min-width:var(--ra-manual-broker-col-w);text-align:left;vertical-align:middle;}
.ra-manual-estimate-table thead th.ra-manual-group-head{width:auto;min-width:0;text-align:center;color:#596178;background:#f7f7fc;border-bottom:1px solid #e9eaf2;}
.ra-manual-estimate-table thead th.ra-manual-period-head{width:var(--ra-manual-metric-col-w);min-width:var(--ra-manual-metric-col-w);text-align:right;color:#7a8296;background:#fcfcff;font-size:var(--ra-estimate-table-period-size);font-weight:var(--ra-weight-bold);letter-spacing:0;text-transform:none;}
.ra-all-periods-table thead tr:first-child th{border-bottom:1px solid #e9eaf2;}
.ra-all-periods-table thead tr:nth-child(2) th{height:28px;}

.ra-manual-estimate-table tbody tr:hover:not(.ra-manual-consensus-row):not(.ra-manual-actual-row):not(.ra-quarter-surprise-row)>*{background:#fcfbff;}
.ra-manual-broker{width:var(--ra-manual-broker-col-w);min-width:var(--ra-manual-broker-col-w);text-align:left;background:#fff;}
.ra-manual-broker-wrap{display:flex;align-items:center;gap:10px;min-width:0;}
.ra-manual-broker-copy{min-width:0;flex:1 1 auto;}
.ra-manual-broker strong,.ra-manual-broker-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#33394d;font-size:var(--ra-estimate-table-name-size);font-weight:var(--ra-weight-bold);line-height:1.22;}
.ra-manual-broker small,.ra-manual-broker-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;color:#858da1;font-size:var(--ra-estimate-table-meta-size);font-weight:var(--ra-weight-medium);line-height:1.2;}
.ra-manual-broker--summary .ra-manual-broker-wrap{display:block;}
.ra-manual-broker-mark{position:relative;flex:0 0 32px;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,#6b4cf6,#9b86ff);box-shadow:0 8px 18px rgba(64,52,135,.14);color:#fff;font-size:11px;font-weight:var(--ra-weight-black);letter-spacing:.04em;}
.ra-manual-broker-mark img{position:absolute;inset:0;z-index:2;width:100%;height:100%;object-fit:contain;background:#fff;padding:5px;}
.ra-manual-broker-mark-fallback{position:relative;z-index:1;}
.ra-manual-estimate{display:flex;min-height:30px;flex-direction:column;align-items:flex-end;justify-content:center;line-height:1.1;}
.ra-manual-estimate strong{color:#343a4d;font-size:var(--ra-estimate-table-value-size);font-weight:var(--ra-weight-bold);white-space:nowrap;}
.ra-manual-estimate small{margin-top:5px;color:#81899d;font-size:var(--ra-estimate-table-sub-size);font-weight:var(--ra-weight-medium);white-space:nowrap;}
.ra-manual-change-pill{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:0 8px;border-radius:999px;background:#f2f3f7;color:#6f768a;font-size:var(--ra-estimate-table-sub-size);font-weight:var(--ra-weight-bold);line-height:1;}
.ra-manual-change-pill.up{background:#e9f8f2;color:#147b5e;}
.ra-manual-change-pill.down{background:#fff1f3;color:#cf5568;}
.ra-manual-change-pill.flat{background:#f2f3f7;color:#7e8598;}
.ra-manual-estimate small.up,.ra-manual-estimate.up small{color:var(--ra-green);}
.ra-manual-estimate small.down,.ra-manual-estimate.down small{color:var(--ra-red);}
.ra-manual-estimate.empty{color:#9aa2b3;font-size:var(--ra-estimate-table-meta-size);}
.ra-manual-consensus-row>*{background:#f7f4ff;border-top:1px solid #ddd6ff;}
.ra-manual-consensus-row .ra-manual-broker strong{color:#5d46c7;}
.ra-manual-consensus-row .ra-manual-estimate strong{color:#5a46bf;}
.ra-manual-consensus-row .ra-manual-estimate small{color:#8178ad;}
.ra-manual-actual-row>*{background:#f1faf6;border-top:1px solid #d8eee5;}
.ra-manual-actual-row .ra-manual-broker strong,.ra-manual-actual-row .ra-manual-estimate strong{color:#147b5e;}
.ra-quarter-surprise-row>*{background:#fbfcfe;border-top:1px solid #e4e7ef;}
.ra-quarter-surprise-row .ra-manual-broker strong{color:#444b60;}
.ra-quarter-surprise-row .ra-manual-broker small{color:#8b92a4;}
.ra-quarter-surprise-cell{display:flex;align-items:center;justify-content:flex-end;min-height:30px;}
.ra-quarter-surprise-row .ra-manual-change-pill{min-width:90px;}
.ra-quarter-percent-guide{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 9px;padding:0 1px;color:#7d8497;font-size:var(--ra-estimate-table-meta-size);line-height:1.2;}
.ra-quarter-percent-guide strong{color:#555d72;font-weight:var(--ra-weight-extrabold);}
.ra-quarter-percent-guide span{display:inline-flex;align-items:center;gap:3px;padding-left:8px;border-left:1px solid #e2e5ec;}
.ra-quarter-percent-guide span b{color:#636b80;font-weight:var(--ra-weight-bold);}
.ra-quarter-estimate-table .ra-manual-estimate-table{width:max-content;}

/* Compact estimate-revision heatmap. The full audit trail is opt-in. */
.ra-revision-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:0 0 8px;}
.ra-revision-matrix-shell{width:max-content;max-width:100%;overflow-x:auto;border:1px solid #e9eaf1;border-radius:11px;background:#fff;}
.ra-revision-matrix{width:max-content;border-collapse:separate;border-spacing:0;table-layout:fixed;}
.ra-revision-matrix th,.ra-revision-matrix td{height:var(--ra-revision-cell-h);padding:5px 8px;border-right:1px solid #eef0f4;border-bottom:1px solid #eef0f4;vertical-align:middle;}
.ra-revision-matrix tr>*:last-child{border-right:0;}
.ra-revision-matrix tbody tr:last-child>*{border-bottom:0;}
.ra-revision-matrix thead th{height:28px;background:#fafafe;color:#8e95a7;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);letter-spacing:.04em;text-transform:uppercase;text-align:center;white-space:nowrap;}
.ra-revision-matrix thead th:first-child,.ra-revision-matrix tbody th{width:var(--ra-revision-broker-col-w);min-width:var(--ra-revision-broker-col-w);text-align:left;}
.ra-revision-matrix thead th:not(:first-child),.ra-revision-matrix tbody td{width:var(--ra-revision-metric-col-w);min-width:var(--ra-revision-metric-col-w);text-align:center;}
.ra-revision-heat{display:inline-flex;min-width:56px;height:24px;align-items:center;justify-content:center;padding:0 7px;border-radius:999px;background:#f3f4f8;color:#6f768a;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);white-space:nowrap;}
.ra-revision-heat.up{background:var(--ra-green-soft);color:var(--ra-green);}
.ra-revision-heat.down{background:var(--ra-red-soft);color:var(--ra-red);}
.ra-revision-heat.flat{background:#f2f3f7;color:#7e8598;}
.ra-revision-heat.empty{background:transparent;color:#a8adba;}
.ra-estimate-audit{margin-top:9px;}

.ra-estimate-summary{display:grid;gap:8px;margin-bottom:9px;}

.ra-estimate-summary-copy{color:#667086;font-size:var(--ra-type-helper-size);line-height:var(--ra-type-line-helper);}

.ra-estimate-summary-stats{display:flex;flex-wrap:wrap;gap:6px;}

.ra-estimate-summary-stats span{display:inline-flex;align-items:center;gap:4px;padding:5px 7px;border:1px solid #e8e8f0;border-radius:999px;background:#fafafe;color:#737b8f;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-semibold);}

.ra-estimate-summary-stats b{color:#343a4e;font-size:var(--ra-font-sm);}

.ra-estimate-summary-stats .up b{color:var(--ra-green);}

.ra-estimate-summary-stats .down b{color:var(--ra-red);}

.ra-estimate-detail-wrap{max-height:var(--ra-estimate-detail-max-h);overflow:auto;border:1px solid #ececf3;border-radius:12px;background:#fff;}

.ra-estimate-detail-table{width:100%;min-width:var(--ra-estimate-detail-min-w);border-collapse:separate;border-spacing:0;}

.ra-estimate-detail-table th,.ra-estimate-detail-table td{padding:8px 9px;border-bottom:1px solid #eff0f5;text-align:left;vertical-align:middle;font-size:var(--ra-font-sm);color:#5e667a;white-space:nowrap;}

.ra-estimate-detail-table thead th{position:sticky;top:0;z-index:2;background:#fafafe;color:#8b92a5;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);letter-spacing:.04em;text-transform:uppercase;}

.ra-estimate-detail-table tbody tr:last-child td{border-bottom:0;}

.ra-estimate-detail-table tbody tr:hover td{background:#fbfaff;}

.ra-estimate-detail-table td:first-child,.ra-estimate-detail-table td:nth-child(2){white-space:normal;}

.ra-estimate-detail-table td strong{display:block;color:#353b4f;font-size:var(--ra-font-sm);font-weight:var(--ra-weight-extrabold);}

.ra-estimate-detail-table td small{display:block;margin-top:2px;color:#9298aa;font-size:var(--ra-font-xs);}

.ra-estimate-detail-table td.up{color:var(--ra-green);font-weight:var(--ra-weight-extrabold);}

.ra-estimate-detail-table td.down{color:var(--ra-red);font-weight:var(--ra-weight-extrabold);}

.ra-revision-pill{display:inline-flex;padding:4px 7px;border-radius:999px;background:#f1f2f6;color:#6f7688;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);}

.ra-revision-pill.up{background:var(--ra-green-soft);color:var(--ra-green);}

.ra-revision-pill.down{background:var(--ra-red-soft);color:var(--ra-red);}

.ra-valuation-table-wrap{display:grid;gap:8px;overflow-x:auto;}

.ra-valuation-table{width:100%;min-width:var(--ra-valuation-table-min-w);border-collapse:collapse;}

.ra-valuation-table th,.ra-valuation-table td{padding:8px 7px;border-bottom:1px solid #f0f1f5;text-align:left;vertical-align:top;font-size:var(--ra-font-sm);color:#646c80;}

.ra-valuation-table thead th{color:#9297a9;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}

.ra-valuation-table td strong{display:block;color:#353b4f;font-weight:var(--ra-weight-extrabold);}

.ra-valuation-table td small{display:block;margin-top:2px;color:#9298aa;font-size:var(--ra-font-xs);}

.ra-valuation-table td.up{color:var(--ra-green);font-weight:var(--ra-weight-extrabold);}

.ra-valuation-table td.down{color:var(--ra-red);font-weight:var(--ra-weight-extrabold);}

.ra-valuation-consensus{display:flex;align-items:center;gap:7px;padding:8px 9px;border:1px solid #e5e0fb;border-radius:11px;background:#faf8ff;color:#6f7590;font-size:var(--ra-font-sm);}

.ra-valuation-consensus svg{width:14px;height:14px;color:var(--ra-purple);}

.ra-valuation-consensus strong{color:#3f355f;font-size:var(--ra-font-md);}

.ra-valuation-consensus small{margin-left:auto;color:#8b90a1;font-size:var(--ra-font-xs);}

.ra-direction-strip{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px;}

.ra-direction-strip span{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border-radius:999px;background:#f8f8fb;color:#70778b;font-size:var(--ra-font-sm);font-weight:var(--ra-weight-bold);}

.ra-direction-strip svg{width:12px;height:12px;}

.ra-direction-strip b{color:#363b50;}

.ra-estimates-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:22px;}

.ra-subhead{margin:0 0 9px;font-size:var(--ra-font-body);font-weight:var(--ra-weight-extrabold);color:#42485d;}

.ra-subhead-gap{margin-top:18px;}

.ra-estimate-summary{padding:9px 0;margin-bottom:8px;color:#62697d;font-size:var(--ra-type-helper-size);line-height:var(--ra-type-line-helper);border-bottom:1px solid #f0f1f5;}

.ra-estimate-table{display:grid;}

.ra-estimate-row{display:grid;grid-template-columns:100px 72px 64px 68px minmax(0,1fr);gap:7px;padding:8px 6px;border-bottom:1px solid #f0f1f5;font-size:var(--ra-font-sm);}

.ra-estimate-row.header{color:#9297a9;font-size:var(--ra-font-xs);text-transform:uppercase;font-weight:var(--ra-weight-extrabold);}

.ra-estimate-row strong{font-size:var(--ra-font-sm);}

.ra-estimate-row .up{color:var(--ra-green);font-weight:var(--ra-weight-extrabold);}

.ra-estimate-row .down{color:var(--ra-red);font-weight:var(--ra-weight-extrabold);}

.ra-warning-note{display:flex;gap:7px;margin-top:9px;padding:9px 10px;border-radius:10px;background:#fff9eb;color:#996f20;font-size:var(--ra-font-sm);line-height:1.45;}

.ra-warning-note svg{width:13px;height:13px;flex:0 0 auto;margin-top:1px;}

.ra-change-list,.ra-valuation-list{display:grid;}

.ra-change-item{padding:9px 0;border-bottom:1px solid #f0f1f5;}

.ra-change-item>div{display:flex;align-items:center;gap:7px;}

.ra-change-item strong{font-size:var(--ra-font-sm);}

.ra-direction{display:inline-flex;padding:3px 6px;border-radius:999px;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);}

.ra-direction.positive{background:#e9f8f2;color:#14785b;}

.ra-direction.negative{background:#fff0f2;color:#b64d5c;}

.ra-direction.mixed{background:#fff6df;color:#9f741d;}

.ra-change-item p{margin:4px 0 0;color:#676e82;font-size:var(--ra-type-helper-size);line-height:var(--ra-type-line-helper);}

.ra-valuation-row{display:grid;grid-template-columns:105px minmax(0,1fr) auto;gap:8px;padding:8px 0;border-bottom:1px solid #f0f1f5;align-items:start;}

.ra-valuation-row strong{font-size:var(--ra-font-sm);}

.ra-valuation-row span{color:#6f768a;font-size:var(--ra-type-helper-size);line-height:var(--ra-type-line-helper);}

.ra-valuation-row b{font-size:var(--ra-font-xs);color:#565e73;text-align:right;}

.ra-forecast-line-item{align-items:baseline;gap:6px;min-width:105px;display:block;}

.ra-forecast-line-item strong{color:#394054;font-size:var(--ra-font-sm);font-weight:var(--ra-weight-extrabold);white-space:nowrap;}

.ra-forecast-line-item small{color:#9aa0b1;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;display:none;}


/* V47.16 — estimate intelligence section rearrangement
   Row 1: quarterly estimates + rating/target/thesis + valuation.
   Row 2: annual estimates + compact revision matrix.
   Bottom: full all-revisions trail. */
.ra-estimate-pair{
  display:grid;
  align-items:start;
  gap:22px;
  margin-bottom:18px;
  min-width:0;
}

.ra-estimate-pair--quarter{
  grid-template-columns:minmax(0,1.55fr) minmax(520px,1fr);
}

.ra-estimate-pair--annual{
  grid-template-columns:minmax(0,1.8fr) minmax(390px,.8fr);
}

.ra-estimate-pair>.ra-forecast-block,
.ra-estimate-pair>.ra-quarter-estimates-block{
  min-width:0;
  margin-bottom:0;
}

.ra-estimate-side{
  min-width:0;
  padding:2px 0 0;
}

.ra-estimate-side .ra-subhead-gap{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid #eceef3;
}

.ra-estimate-side--quarter .ra-valuation-table-wrap{
  width:100%;
}

.ra-estimate-side--quarter .ra-valuation-table{
  min-width:620px;
}

.ra-estimate-side--annual{
  --ra-revision-broker-col-w:145px;
  --ra-revision-metric-col-w:70px;
}

.ra-estimate-side--annual .ra-revision-matrix-shell{
  width:100%;
}

.ra-estimate-side--annual .ra-revision-toolbar{
  margin-bottom:8px;
}

.ra-estimate-pair--quarter.quarter-missing{
  grid-template-columns:1fr;
}

.ra-estimate-pair--quarter.quarter-missing .ra-estimate-side--quarter{
  width:100%;
}

.ra-revision-trail-block{
  margin-top:2px;
  padding-top:16px;
  border-top:1px solid #e7e9f1;
}

.ra-revision-trail-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:10px;
}

.ra-revision-trail-head h3{
  margin:0;
  color:#42485d;
  font-size:var(--ra-font-body);
  font-weight:var(--ra-weight-extrabold);
}

.ra-revision-trail-head p{
  margin:4px 0 0;
  color:#81879a;
  font-size:var(--ra-type-helper-size);
  line-height:var(--ra-type-line-helper);
}

.ra-revision-trail-collapsed{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:8px 10px;
  border:1px dashed #e1def0;
  border-radius:10px;
  background:#fbfaff;
  color:#777f93;
  font-size:var(--ra-font-sm);
  font-weight:var(--ra-weight-semibold);
}

.ra-revision-trail-collapsed svg{
  width:14px;
  height:14px;
  color:var(--ra-purple);
}

.ra-revision-trail-block .ra-estimate-audit{
  margin-top:0;
}

.ra-revision-trail-block .ra-estimate-detail-wrap{
  max-height:290px;
}

.ra-revision-trail-block .ra-warning-note{
  margin-top:9px;
}


/* ==========================================================================
   09 — GUIDANCE & OUTLOOK
   ========================================================================== */

.ra-guidance-table{display:grid;margin-bottom:20px;}

.ra-guidance-row{display:grid;grid-template-columns:minmax(130px,1.1fr) minmax(160px,1.8fr) 80px 115px 70px;gap:10px;padding:9px 7px;border-bottom:1px solid #eef0f4;align-items:start;font-size:var(--ra-type-helper-size);}

.ra-guidance-row.header{padding-top:2px;color:#9297a9;text-transform:uppercase;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);}

.ra-guidance-row strong{font-size:var(--ra-type-helper-size);}

.ra-guidance-row span{color:#687084;line-height:1.4;}

.ra-status-dot{display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#a9adba;}

.ra-status-dot.good{background:#2caf83;}

.ra-status-dot.warn{background:#daa634;}

.ra-outlook-split{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-top:3px;}

.ra-timeline{display:grid;}

.ra-timeline-item{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;padding:0 0 14px;}

.ra-timeline-item:not(:last-child):before{content:"";position:absolute;left:11px;top:22px;bottom:0;width:1px;background:#e1ddf7;}

.ra-timeline-node{position:relative;z-index:1;width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#f0edff;color:var(--ra-purple);font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);}

.ra-timeline-item strong{font-size:var(--ra-type-helper-size);}

.ra-timeline-item p{margin:4px 0 0;color:#6c7387;font-size:var(--ra-type-helper-size);line-height:var(--ra-type-line-helper);}

.ra-timing{display:inline-flex;margin-left:5px;padding:2px 5px;border-radius:999px;background:#f0edff;color:var(--ra-purple);font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);}

.ra-watch-list{display:grid;}

.ra-watch-item{display:flex;gap:9px;padding:9px 0;border-bottom:1px solid #f0f1f5;}

.ra-watch-item>svg{width:15px;height:15px;color:var(--ra-purple);flex:0 0 auto;margin-top:1px;}

.ra-watch-item strong{font-size:var(--ra-type-helper-size);}

.ra-watch-item p{margin:4px 0 0;color:#6c7387;font-size:var(--ra-type-helper-size);line-height:var(--ra-type-line-helper);}


/* ==========================================================================
   10 — IR ACTIONS
   ========================================================================== */

.ra-actions-workspace{background:radial-gradient(circle at 96% 4%,rgba(107,76,246,.05),transparent 24%),#fff;}

.ra-action-tabs{display:flex;gap:4px;padding:4px;border:1px solid #e5e4ee;border-radius:11px;background:#fafafe;width:max-content;max-width:100%;overflow-x:auto;}

.ra-action-tabs button{border:0;background:transparent;padding:7px 10px;border-radius:8px;color:#6d7488;font-size:var(--ra-font-sm);font-weight:var(--ra-weight-extrabold);cursor:pointer;white-space:nowrap;}

.ra-action-tabs button.active{background:#fff;color:var(--ra-purple);box-shadow:0 3px 10px rgba(65,50,138,.08);}

.ra-action-content{display:grid;margin-top:13px;}

.ra-action-item{display:grid;grid-template-columns:36px minmax(0,1fr);gap:9px;padding:11px 0;border-bottom:1px solid #eef0f4;}

.ra-action-no{font-size:var(--ra-font-sm);color:#a0a5b5;font-weight:var(--ra-weight-extrabold);}

.ra-action-item header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}

.ra-action-item strong{font-size:var(--ra-type-body-size);line-height:1.4;}

.ra-priority{padding:3px 6px;border-radius:999px;background:#f0edff;color:var(--ra-purple);font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);white-space:nowrap;}

.ra-action-item p{margin:5px 0 0;color:#687084;font-size:var(--ra-type-helper-size);line-height:var(--ra-type-line-helper);}

.ra-broker-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;}

.ra-broker-badges span{padding:3px 6px;border-radius:999px;background:#f3f2f7;color:#747b8e;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);}


/* ==========================================================================
   11 — DRAWERS & ASK VAL.AI
   ========================================================================== */

.ra-ask-fab{position:fixed;right:26px;bottom:24px;z-index:980;height:42px;display:inline-flex;align-items:center;gap:7px;padding:0 14px;border:0;border-radius:999px;background:linear-gradient(135deg,var(--ra-purple),#7658f8);color:#fff;box-shadow:0 12px 28px rgba(80,55,196,.28);font-size:var(--ra-font-sm);font-weight:var(--ra-weight-extrabold);cursor:pointer;}

.ra-ask-fab:hover{transform:translateY(-1px);}

.ra-ask-fab svg{width:15px;height:15px;}

.ra-drawer-backdrop{position:fixed;inset:0;z-index:1000;background:rgba(33,34,48,.28);backdrop-filter:blur(3px);}

.ra-drawer{position:fixed;z-index:1010;top:0;right:0;width:min(480px,92vw);height:100vh;display:flex;flex-direction:column;background:#fff;box-shadow:-24px 0 50px rgba(30,31,45,.18);transform:translateX(104%);transition:transform .25s cubic-bezier(.2,.75,.25,1);visibility:hidden;}

.ra-drawer.open{transform:translateX(0);visibility:visible;}

.ra-broker-drawer{width:min(560px,94vw);}

.ra-ask-drawer{width:min(540px,94vw);}

.ra-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:19px 18px 15px;border-bottom:1px solid var(--ra-line);background:linear-gradient(180deg,#fff,#fdfcff);}

.ra-drawer-head h2{margin:5px 0 0;font-size:var(--ra-font-2xl);font-weight:var(--ra-weight-black);}

.ra-drawer-head p{margin:5px 0 0;color:#7a8195;font-size:var(--ra-type-helper-size);}

.ra-drawer-body{flex:1;min-height:0;overflow-y:auto;padding:15px 18px 22px;}

body.ra-drawer-open{overflow:hidden;}

.ra-broker-detail-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-bottom:15px;border:1px solid var(--ra-line);border-radius:13px;overflow:hidden;}

.ra-broker-detail-metrics>div{padding:10px;border-right:1px solid #eef0f4;}

.ra-broker-detail-metrics>div:last-child{border-right:0;}

.ra-broker-detail-metrics span{display:block;color:#8b91a4;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);text-transform:uppercase;}

.ra-broker-detail-metrics strong{display:inline-flex;margin-top:5px;font-size:var(--ra-font-body);}

.ra-drawer-section{padding:13px 0;border-top:1px solid #eef0f4;}

.ra-drawer-section h3{margin:0 0 8px;font-size:var(--ra-font-md);}

.ra-drawer-section p,.ra-drawer-section li{color:#61697d;font-size:var(--ra-type-helper-size);line-height:var(--ra-type-line-body);}

.ra-drawer-section p{margin:0;}

.ra-drawer-section ul,.ra-drawer-section ol{margin:0;padding-left:18px;}

.ra-drawer-line{padding:7px 0;border-top:1px solid #f2f2f6;}

.ra-drawer-line:first-of-type{border-top:0;}

.ra-drawer-line strong{display:block;font-size:var(--ra-type-helper-size);}

.ra-drawer-line span{display:block;margin-top:3px;color:#6d7488;font-size:var(--ra-type-meta-size);line-height:var(--ra-type-line-helper);}

.ra-open-report{height:39px;display:flex;align-items:center;justify-content:center;gap:7px;margin-top:12px;border:1px solid #d9d2fb;border-radius:11px;background:#faf8ff;color:var(--ra-purple);text-decoration:none;font-size:var(--ra-font-sm);font-weight:var(--ra-weight-extrabold);}

.ra-open-report svg{width:14px;height:14px;}

.ra-ask-form{display:grid;gap:8px;}

.ra-ask-form textarea{width:100%;resize:vertical;min-height:100px;padding:11px 12px;border:1px solid #dfe0ea;border-radius:12px;outline:0;background:#fff;color:#3d4358;font:inherit;font-size:var(--ra-type-helper-size);line-height:var(--ra-type-line-helper);}

.ra-ask-form textarea:focus{border-color:#cfc5ff;box-shadow:0 0 0 3px rgba(107,76,246,.06);}

.ra-prompt-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;}

.ra-prompt-chips button{padding:6px 8px;border:1px solid #e1def4;border-radius:999px;background:#fff;color:#666d83;font-size:var(--ra-type-meta-size);font-weight:var(--ra-weight-bold);cursor:pointer;}

.ra-prompt-chips button:hover{color:var(--ra-purple);border-color:#cbc1ff;}

.ra-answer{margin-top:13px;padding-top:13px;border-top:1px solid #eceef3;}

.ra-answer>strong{font-size:var(--ra-font-md);}

.ra-answer p{margin:6px 0 0;color:#555d72;font-size:var(--ra-type-helper-size);line-height:var(--ra-type-line-body);}

.ra-answer ul{margin:8px 0 0;padding-left:17px;color:#5e6579;font-size:var(--ra-type-helper-size);line-height:var(--ra-type-line-body);}

.ra-answer-sources{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px;}

.ra-answer-sources span{padding:4px 7px;border-radius:999px;background:#f0edff;color:#6553ce;font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);}

.ra-broker-drawer .ra-drawer-head h2{font-size:var(--ra-font-3xl);line-height:1.15;letter-spacing:-.02em;}

.ra-broker-drawer .ra-drawer-head p{margin-top:6px;font-size:var(--ra-font-body);line-height:1.35;}

.ra-broker-drawer .ra-eyebrow{font-size:var(--ra-font-sm);letter-spacing:.15em;}

.ra-broker-drawer .ra-drawer-section{padding:15px 0;}

.ra-broker-drawer .ra-drawer-section h3{margin-bottom:9px;font-size:var(--ra-font-body);line-height:1.25;}

.ra-broker-drawer .ra-drawer-section p, .ra-broker-drawer .ra-drawer-section li{font-size:var(--ra-font-md);line-height:1.62;}

.ra-broker-drawer .ra-drawer-section ul, .ra-broker-drawer .ra-drawer-section ol{padding-left:19px;}

.ra-broker-drawer .ra-drawer-line{padding:9px 0;}

.ra-broker-drawer .ra-drawer-line strong{font-size:var(--ra-font-md);line-height:1.3;}

.ra-broker-drawer .ra-drawer-line span{margin-top:4px;font-size:var(--ra-font-sm);line-height:1.5;}

.ra-broker-drawer .ra-open-report{height:42px;font-size:var(--ra-font-md);}

.ra-broker-drawer .ra-broker-drawer-head{align-items:flex-start;padding:11px 14px 9px;min-height:0;}

.ra-broker-drawer-title-wrap{min-width:0;}

.ra-broker-drawer .ra-broker-drawer-head .ra-section-kicker{font-size:var(--ra-font-xs);line-height:1;letter-spacing:.14em;}

.ra-broker-drawer .ra-broker-drawer-head h2{margin:3px 0 0;font-size:var(--ra-font-2xl);line-height:1.05;letter-spacing:-.02em;}

.ra-broker-drawer-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:5px;color:#747c91;font-size:var(--ra-font-sm);line-height:1.25;font-weight:var(--ra-weight-semibold);}

.ra-broker-analyst{display:inline-flex;align-items:center;gap:4px;color:#555e75;font-weight:var(--ra-weight-extrabold);}

.ra-broker-analyst svg{width:11px;height:11px;stroke-width:1.8;}

.ra-broker-meta-sep{color:#b0b4c1;}

.ra-broker-drawer .ra-drawer-body{padding-top:10px;}

.ra-broker-drawer .ra-broker-detail-metrics{margin-bottom:9px;border-radius:11px;}

.ra-broker-drawer .ra-broker-detail-metrics>div{padding:7px 10px;}

.ra-broker-drawer .ra-broker-detail-metrics span{font-size:var(--ra-font-xs);line-height:1.1;}

.ra-broker-drawer .ra-broker-detail-metrics strong{margin-top:3px;font-size:var(--ra-font-body);line-height:1.1;}

.ra-broker-forecast-section{padding-top:6px;padding-bottom:7px;}

.ra-broker-forecast-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px;}

.ra-broker-forecast-head h3{margin:0;font-size:var(--ra-font-md);line-height:1.1;}

.ra-broker-forecast-head span{padding:2px 6px;border-radius:999px;background:#f4f1ff;color:#6a54d8;font-size:var(--ra-font-xs);line-height:1.15;font-weight:var(--ra-weight-extrabold);white-space:nowrap;}

.ra-broker-forecast-wrap{overflow-x:auto;border:1px solid #eceef4;border-radius:9px;}

.ra-broker-forecast-table{width:100%;min-width:360px;border-collapse:collapse;background:#fff;}

.ra-broker-forecast-table th,.ra-broker-forecast-table td{padding:3px 7px;border-bottom:1px solid #f0f1f5;text-align:right;font-size:var(--ra-font-sm);line-height:1.12;white-space:nowrap;}

.ra-broker-forecast-table thead th{padding-top:4px;padding-bottom:4px;background:#fafafe;color:#8d93a6;font-size:var(--ra-font-xs);line-height:1.08;font-weight:var(--ra-weight-extrabold);text-transform:uppercase;letter-spacing:.04em;}

.ra-broker-forecast-table th:first-child{text-align:left;}

.ra-broker-forecast-table tbody th{text-align:left;min-width:132px;}

.ra-broker-forecast-table tbody th strong{display:block;color:#3b4155;font-size:var(--ra-font-sm);line-height:1.06;font-weight:var(--ra-weight-extrabold);white-space:nowrap;}

.ra-broker-forecast-table tbody th small{display:none;margin:0 0 0 4px;color:#959aab;font-size:var(--ra-font-xs);line-height:1;font-weight:var(--ra-weight-extrabold);text-transform:uppercase;letter-spacing:.015em;}

.ra-broker-forecast-table td{color:#3e4559;font-size:var(--ra-font-sm);line-height:1.08;font-weight:var(--ra-weight-extrabold);}

.ra-broker-forecast-table tbody tr:last-child th,.ra-broker-forecast-table tbody tr:last-child td{border-bottom:0;}


/* ==========================================================================
   12 — RESEARCH UPLOAD MODAL
   ========================================================================== */

.ra-upload-backdrop{position:fixed;inset:0;z-index:1300;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(34,38,55,.38);backdrop-filter:blur(4px);}

.ra-upload-modal{width:min(var(--ra-upload-width),calc(100vw - 32px));max-height:min(720px,calc(100vh - 40px));overflow:auto;background:#fff;border:1px solid #e5e5ef;border-radius:20px;box-shadow:0 24px 70px rgba(37,31,70,.22);}

.ra-upload-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px 13px;border-bottom:1px solid #ececf3;}

.ra-upload-head .ra-section-kicker{display:flex;align-items:center;gap:6px;}

.ra-upload-head .ra-section-kicker svg{width:13px;height:13px;}

.ra-upload-head h2{margin:4px 0 0;font-size:var(--ra-font-2xl);line-height:1.05;color:#292d40;font-weight:var(--ra-weight-extrabold);}

.ra-upload-form{display:grid;gap:12px;padding:16px 18px 18px;}

.ra-upload-period{display:grid;gap:6px;}

.ra-upload-period>span{font-size:var(--ra-font-xs);font-weight:var(--ra-weight-extrabold);letter-spacing:.08em;text-transform:uppercase;color:#838a9d;}

.ra-upload-period input{width:100%;height:42px;padding:0 12px;border:1px solid #dfe1eb;border-radius:11px;background:#fff;color:#34394c;font-family:var(--ra-font-family);font-size:var(--ra-type-helper-size);font-weight:var(--ra-weight-bold);line-height:1;outline:none;}

.ra-upload-period input:focus{border-color:#b9abff;box-shadow:0 0 0 3px rgba(107,76,246,.08);}

.ra-upload-drop{min-height:132px;border:1px dashed #cfc9ef;border-radius:15px;background:#fbfaff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:18px;text-align:center;cursor:pointer;transition:.16s ease;}

.ra-upload-drop:hover{border-color:#9e8afa;background:#f8f6ff;}

.ra-upload-drop input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;}

.ra-upload-drop-icon{width:38px;height:38px;border-radius:12px;background:#efeaff;color:#6b4cf6;display:inline-flex;align-items:center;justify-content:center;margin-bottom:3px;}

.ra-upload-drop-icon svg{width:18px;height:18px;stroke-width:1.8;}

.ra-upload-drop strong{font-size:var(--ra-type-body-size);color:#34394c;}

.ra-upload-drop small{font-size:var(--ra-type-meta-size);color:#8a91a3;}

.ra-upload-file-list{display:grid;gap:5px;padding:8px;border:1px solid #ededf3;border-radius:11px;background:#fcfcfe;}

.ra-upload-file-list>div{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:26px;padding:2px 4px;color:#5d657a;font-size:var(--ra-type-meta-size);}

.ra-upload-file-list svg{width:14px;height:14px;color:#6b4cf6;}

.ra-upload-file-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--ra-weight-bold);}

.ra-upload-file-list small{color:#9298a9;}

.ra-upload-run{display:flex;align-items:center;gap:10px;padding:10px 11px;border:1px solid #eceaf6;border-radius:12px;background:#faf9ff;cursor:pointer;}

.ra-upload-run>input{position:absolute;opacity:0;pointer-events:none;}

.ra-upload-check{width:20px;height:20px;border-radius:7px;border:1px solid #cbc4ef;background:#fff;color:transparent;display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;}

.ra-upload-check svg{width:12px;height:12px;stroke-width:2;}

.ra-upload-run>input:checked+.ra-upload-check{background:#6b4cf6;border-color:#6b4cf6;color:#fff;}

.ra-upload-run>span:last-child{display:grid;gap:2px;}

.ra-upload-run strong{font-size:var(--ra-type-helper-size);color:#3e4356;}

.ra-upload-run small{font-size:var(--ra-type-meta-size);color:#858c9f;}

.ra-upload-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:3px;}

body.ra-upload-open{overflow:hidden;}


/* ==========================================================================
   13 — RESPONSIVE PROFILES
   ========================================================================== */

@media (max-width:1250px) {

  .ra-topbar{align-items:flex-end;}

  .ra-top-tools{flex-wrap:wrap;justify-content:flex-end;max-width:720px;}

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

  .ra-metric-strip>div:nth-child(3){border-right:0;}

  .ra-metric-strip>div:nth-child(n/**/+4){border-top:1px solid #eef0f5;}

  .ra-overview-main{grid-template-columns:1.2fr .8fr;}

  .ra-estimates-layout{grid-template-columns:1fr;}

  .ra-estimate-pair--quarter,
  .ra-estimate-pair--annual{grid-template-columns:1fr;}

  .ra-estimate-side--quarter .ra-valuation-table{min-width:680px;}

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

  .ra-metric-strip>div.ra-metric-item{padding:11px 13px;}

  .ra-metric-icon{width:32px;height:32px;flex-basis:32px;}

  .ra-metric-copy>strong{font-size:var(--ra-font-lg);}

  .ra-section-head h2{font-size:var(--ra-font-xl);}

  .ra-stance-legend{grid-template-columns:1fr;}

}

@media (max-width:1150px) {


}

@media (max-width:950px) {

  .ra-estimate-pair{gap:16px;margin-bottom:16px;}

  .ra-estimate-side--quarter .ra-valuation-table{min-width:620px;}

  .ra-revision-trail-head{align-items:stretch;flex-direction:column;}

  .ra-revision-trail-head #raRevisionTrailControls{align-self:flex-start;}

  .ra-forecast-groups{grid-template-columns:1fr;}

  .ra-topbar{flex-direction:column;align-items:stretch;}

  .ra-top-tools{width:100%;justify-content:flex-start;max-width:none;}

  .ra-picker{width:auto;min-width:0;flex:1;}

  .ra-overview-main{grid-template-columns:1fr;}

  .ra-overview-themes{grid-template-columns:1fr;}

  .ra-theme-column{border-right:0;border-bottom:1px solid var(--ra-line);}

  .ra-theme-column:last-child{border-bottom:0;}

  .ra-guidance-row{grid-template-columns:minmax(120px,1fr) minmax(150px,1.5fr) 70px 100px;}

  .ra-guidance-row>:last-child{display:none;}

  .ra-street-side{border-left:0;border-top:1px solid var(--ra-line);padding:16px 18px;}

  .ra-stance-legend{grid-template-columns:repeat(3,minmax(0,1fr));}

}

@media (max-width:650px) {

  .ra-top-tools{display:grid;grid-template-columns:repeat(3,var(--ra-header-icon-control)) minmax(0,1fr);gap:8px;}

  .ra-company-wrap,.ra-period-wrap{grid-column:1/-1;width:100%;}

  .ra-top-tools .ra-header-icon-btn{width:var(--ra-header-icon-control);min-width:var(--ra-header-icon-control);}

  .ra-top-tools #raAnalyzeBtn{width:100%;min-width:0;}

  .ra-brand h1{font-size:var(--ra-page-title-size);}

  .ra-metric-strip{grid-template-columns:1fr 1fr;}

  .ra-metric-strip>div{border-top:0;border-right:1px solid #eef0f5;}

  .ra-metric-strip>div:nth-child(even){border-right:0;}

  .ra-metric-strip>div:nth-child(n/**/+3){border-top:1px solid #eef0f5;}

  .ra-metric-strip>div:last-child{grid-column:1/-1;border-right:0;}

  .ra-synthesis,.ra-street-side,.ra-workspace{padding:14px;}

  .ra-section-head{flex-direction:column;}

  .ra-estimate-row{grid-template-columns:90px 68px 60px 60px;}

  .ra-estimate-row>:last-child{display:none;}

  .ra-guidance-row{grid-template-columns:minmax(110px,1fr) minmax(140px,1.5fr) 90px;}

  .ra-guidance-row>:nth-child(3),.ra-guidance-row>:last-child{display:none;}

  .ra-forecast-matrix{min-width:460px;}


  .ra-workspace-head{flex-direction:column;}

  .ra-ask-fab span{display:none;}

  .ra-ask-fab{width:42px;padding:0;justify-content:center;}

  .ra-drawer{width:100vw;}

  .ra-broker-detail-metrics{grid-template-columns:1fr;}

  .ra-broker-detail-metrics>div{border-right:0;border-bottom:1px solid #eef0f4;}

  .ra-broker-detail-metrics>div:last-child{border-bottom:0;}

  .ra-report-strip{padding:10px;border-radius:15px;}

  .ra-report-cards{grid-template-columns:1fr;}

  .ra-report-card{grid-template-columns:38px minmax(0,1fr) auto;padding:10px;}

  .ra-report-logo{width:38px;height:38px;border-radius:12px;}

  .ra-synthesis,.ra-street-side{padding:16px;}

  .ra-summary-row{font-size:var(--ra-font-md);}

  .ra-theme-column{padding:15px 16px;}

  .ra-section-head h2{font-size:var(--ra-font-xl);}

  .ra-hero-narrative{font-size:var(--ra-font-md);}

  .ra-stance-legend{grid-template-columns:1fr;}

  .ra-theme-icon{width:26px;height:26px;flex-basis:26px;}

  .ra-upload-backdrop{padding:10px;align-items:flex-end;}

  .ra-upload-modal{width:100%;max-height:90vh;border-radius:18px 18px 8px 8px;}

  .ra-upload-actions{display:grid;grid-template-columns:1fr 1fr;}

}

@media (max-width:1220px) {

  .ra-report-cards{grid-template-columns:repeat(2,minmax(0,1fr));}

}

@media (max-width:720px) {

  .ra-report-strip{padding:0;border-radius:0;}

  .ra-report-cards{grid-template-columns:1fr;}

  .ra-report-card{min-height:220px;padding:15px;}

  .ra-report-logo{width:52px;height:52px;flex-basis:52px;border-radius:15px;}

  .ra-report-broker-copy strong{font-size:var(--ra-font-lg);}

}

@media (max-width:1449px) and (min-width:1221px) {

  .ra-report-cards{grid-template-columns:repeat(3,minmax(0,1fr));}

}

@media (min-width:1450px) {

  .ra-report-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}

  .ra-report-card{max-height:215px;}

}

@media (max-width:620px) {

  .ra-report-card{min-height:205px;max-height:none;}

  .ra-report-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}

}

@media (max-width:760px) {

  .ra-report-footer-right{gap:var(--ra-report-footer-gap);}

  .ra-report-footer-analyst{max-width:var(--ra-report-footer-analyst-max-compact);font-size:var(--ra-font-xs);}

}


/* ==========================================================================
   14 — ACCESSIBILITY
   ========================================================================== */
.ra-app :focus-visible {
  outline: 2px solid color-mix(in srgb, var(--ra-purple) 72%, white);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .ra-app *,
  .ra-app *::before,
  .ra-app *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* V47.15 — normalized all-period estimate tables */
.ra-forecast-manual-toolbar .ra-forecast-toolbar-note{justify-content:flex-start;text-align:left;}

/* ==========================================================================
   V47.17 — ESTIMATE PANEL ALIGNMENT + OVERFLOW REPAIR
   Keeps the requested desktop composition while making each column own its
   width. Wide tables scroll inside their panel instead of spilling into the
   adjacent panel.
   ========================================================================== */

/* Shared two-column rhythm. */
.ra-estimate-pair{
  gap:18px;
  align-items:start;
  min-width:0;
}

/* Quarter row: enough room for the broker table while reserving a proper
   analysis column for rating/target/thesis and valuation. */
.ra-estimate-pair--quarter{
  grid-template-columns:minmax(0,3fr) minmax(0,2fr);
}

/* Annual row needs materially more width because it carries 3 periods for
   each financial metric. The revision panel remains compact on the right. */
.ra-estimate-pair--annual{
  grid-template-columns:minmax(0,2.35fr) minmax(390px,1fr);
}

.ra-estimate-pair>.ra-forecast-block,
.ra-estimate-pair>.ra-quarter-estimates-block,
.ra-estimate-pair>.ra-estimate-side,
.ra-forecast-table,
.ra-estimate-table{
  min-width:0;
  max-width:100%;
}

/* Align right-column headings with the titles inside the bordered estimate
   cards instead of letting them sit 10–12px too high. */
.ra-estimate-side{
  padding-top:12px;
  overflow:hidden;
}

/* ---------- Quarterly estimate table ---------- */
.ra-quarter-estimates-block .ra-manual-table-shell{
  width:100%;
  max-width:100%;
  overflow-x:auto;
}

.ra-quarter-estimates-block .ra-manual-estimate-table{
  width:100%;
  min-width:620px;
}

/* ---------- Rating / target / thesis + valuation ---------- */
.ra-estimate-side--quarter .ra-change-list,
.ra-estimate-side--quarter .ra-valuation-list,
.ra-estimate-side--quarter .ra-valuation-table-wrap{
  width:100%;
  min-width:0;
  max-width:100%;
}

.ra-estimate-side--quarter .ra-valuation-table-wrap{
  overflow:visible;
}

.ra-estimate-side--quarter .ra-valuation-table{
  width:100%;
  min-width:0;
  table-layout:fixed;
}

.ra-estimate-side--quarter .ra-valuation-table th,
.ra-estimate-side--quarter .ra-valuation-table td{
  padding:7px 6px;
  min-width:0;
  overflow-wrap:anywhere;
}

.ra-estimate-side--quarter .ra-valuation-table thead th{
  white-space:normal;
  line-height:1.25;
}

.ra-estimate-side--quarter .ra-valuation-table th:nth-child(1),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(1){width:14%;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(2),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(2){width:13%;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(3),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(3){width:10%;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(4),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(4){width:14%;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(5),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(5){width:14%;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(6),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(6){width:35%;}

.ra-estimate-side--quarter .ra-valuation-table td:nth-child(1) strong,
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(3) strong{
  white-space:nowrap;
}

.ra-estimate-side--quarter .ra-valuation-consensus{
  width:100%;
  min-width:0;
}

.ra-estimate-side--quarter .ra-valuation-consensus small{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* ---------- Annual estimate table ---------- */
.ra-estimate-pair--annual .ra-forecast-block{
  --ra-manual-broker-col-w:205px;
  --ra-manual-metric-col-w:86px;
  --ra-manual-cell-pad-x:8px;
  --ra-manual-row-h:50px;
}

.ra-estimate-pair--annual .ra-forecast-manual-toolbar{
  width:100%;
  min-width:0;
  align-items:center;
}

.ra-estimate-pair--annual .ra-forecast-manual-toolbar .ra-forecast-toolbar-note{
  min-width:0;
  overflow:hidden;
}

.ra-estimate-pair--annual .ra-forecast-manual-toolbar .ra-forecast-toolbar-note span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ra-estimate-pair--annual .ra-forecast-manual-toolbar .ra-compact-toggle{
  flex:0 0 auto;
}

/* This is the key containment repair: the annual table may be wider than its
   card, but it is never allowed to paint underneath the revision panel. */
.ra-estimate-pair--annual .ra-manual-table-shell{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
}

.ra-estimate-pair--annual .ra-all-periods-table{
  width:max-content;
  min-width:100%;
}

/* ---------- Estimate revisions panel ---------- */
.ra-estimate-side--annual{
  --ra-revision-broker-col-w:128px;
  --ra-revision-metric-col-w:62px;
}

.ra-estimate-side--annual .ra-estimate-summary,
.ra-estimate-side--annual .ra-estimate-summary-copy,
.ra-estimate-side--annual .ra-estimate-summary-stats,
.ra-estimate-side--annual .ra-revision-toolbar,
.ra-estimate-side--annual .ra-revision-matrix-shell{
  width:100%;
  min-width:0;
  max-width:100%;
}

.ra-estimate-side--annual .ra-estimate-summary{
  padding-top:6px;
}

.ra-estimate-side--annual .ra-estimate-summary-stats{
  gap:5px;
}

.ra-estimate-side--annual .ra-estimate-summary-stats span{
  padding:4px 6px;
}

.ra-estimate-side--annual .ra-revision-matrix-shell{
  width:100%;
  overflow-x:auto;
}

.ra-estimate-side--annual .ra-revision-matrix{
  width:100%;
  min-width:370px;
  table-layout:fixed;
}

.ra-estimate-side--annual .ra-revision-matrix th,
.ra-estimate-side--annual .ra-revision-matrix td{
  padding:5px;
}

.ra-estimate-side--annual .ra-revision-heat{
  min-width:48px;
  padding:0 5px;
}

/* Full revision trail owns its own row and can never inherit a side-column
   width from the two paired sections above. */
.ra-revision-trail-block{
  clear:both;
  width:100%;
  min-width:0;
}

.ra-revision-trail-block .ra-estimate-detail-wrap{
  width:100%;
  max-width:100%;
}

/* 1280×720 compact laptop and smaller: use a true single-column layout.
   This avoids compressing financial tables below readable widths. */
@media (max-width:1399px){
  .ra-estimate-pair--quarter,
  .ra-estimate-pair--annual{
    grid-template-columns:minmax(0,1fr);
  }

  .ra-estimate-side{
    padding-top:0;
    overflow:visible;
  }

  .ra-estimate-side--quarter .ra-valuation-table{
    table-layout:auto;
    min-width:720px;
  }

  .ra-estimate-side--quarter .ra-valuation-table-wrap{
    overflow-x:auto;
  }

  .ra-estimate-side--annual .ra-revision-matrix{
    width:max-content;
    min-width:440px;
  }
}

/* Mobile keeps dense financial tables readable with local horizontal scroll;
   the page itself never gains a horizontal scrollbar. */
@media (max-width:720px){
  .ra-estimate-pair{gap:14px;}

  .ra-quarter-estimates-block .ra-manual-estimate-table{
    width:max-content;
    min-width:620px;
  }

  .ra-estimate-side--quarter .ra-valuation-table{
    width:620px;
    min-width:620px;
  }

  .ra-estimate-side--annual .ra-revision-matrix{
    width:440px;
    min-width:440px;
  }
}

/* ==========================================================================
   V47.18 — ESTIMATE SECTION VISUAL RHYTHM + SEPARATION
   Refines the V47.17 structure without changing the requested information
   architecture. Left and right panels now use one consistent card language,
   row groups are clearly separated, and the annual table fits the desktop
   card without an unnecessary horizontal scrollbar.
   ========================================================================== */

/* Keep paired blocks visually related, but not crowded. */
.ra-estimate-pair{
  gap:16px;
  margin-bottom:16px;
}

.ra-estimate-pair--quarter{
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
}

.ra-estimate-pair--annual{
  grid-template-columns:minmax(0,2.4fr) minmax(390px,1fr);
  margin-top:2px;
  padding-top:18px;
  border-top:1px solid #eceef3;
}

/* Right-hand analysis blocks use the same shell as the estimate tables.
   They are sibling cards, not nested cards, which makes the two-column
   composition easier to scan and removes the floating-panel look. */
.ra-estimate-side{
  padding:12px 13px;
  border:1px solid #e8e9f1;
  border-radius:14px;
  background:#fbfbfe;
  overflow:hidden;
}

.ra-estimate-side>.ra-subhead:first-child{
  margin-bottom:10px;
}

.ra-estimate-side .ra-subhead-gap{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid #e7e9f1;
}

/* Give the right column the same internal horizontal rhythm as the left. */
.ra-estimate-side--quarter .ra-change-item:first-child{
  padding-top:2px;
}

.ra-estimate-side--quarter .ra-change-item:last-child{
  border-bottom:0;
  padding-bottom:2px;
}

.ra-estimate-side--quarter .ra-valuation-table-wrap{
  margin-top:2px;
}

.ra-estimate-side--quarter .ra-valuation-table thead th{
  background:#f8f8fc;
  border-top:1px solid #eef0f5;
}

.ra-estimate-side--quarter .ra-valuation-table tbody tr:last-child td{
  border-bottom:0;
}

.ra-estimate-side--quarter .ra-valuation-consensus{
  margin-top:6px;
  background:#f8f6ff;
}

/* Annual table: on desktop the 3×3 metric grid should fit the card rather
   than showing a scrollbar at rest. Narrow screens still get local scroll. */
.ra-estimate-pair--annual .ra-forecast-block{
  --ra-manual-broker-col-w:200px;
  --ra-manual-metric-col-w:78px;
  --ra-manual-cell-pad-x:7px;
}

.ra-estimate-pair--annual .ra-manual-table-shell{
  overflow-x:hidden;
}

.ra-estimate-pair--annual .ra-all-periods-table{
  width:100%;
  min-width:0;
}

/* Revisions gets a cleaner hierarchy: summary, controls, matrix. */
.ra-estimate-side--annual .ra-estimate-summary{
  padding:2px 0 11px;
  margin-bottom:10px;
}

.ra-estimate-side--annual .ra-estimate-summary-copy{
  max-width:420px;
}

.ra-estimate-side--annual .ra-estimate-summary-stats{
  margin-top:1px;
}

.ra-estimate-side--annual .ra-revision-toolbar{
  margin:0 0 9px;
  padding-top:0;
}

.ra-estimate-side--annual .ra-revision-matrix-shell{
  border-color:#e5e7ef;
  background:#fff;
}

/* The full audit trail reads as a third, independent band. */
.ra-revision-trail-block{
  margin-top:0;
  padding-top:18px;
  border-top:1px solid #e7e9f1;
}

/* Compact laptop: stacked cards keep their own boundaries. The annual table
   remains readable, and scrolling is contained locally only when needed. */
@media (max-width:1399px){
  .ra-estimate-pair--annual{
    padding-top:16px;
  }

  .ra-estimate-side{
    padding:12px 13px;
    border:1px solid #e8e9f1;
    border-radius:14px;
    background:#fbfbfe;
    overflow:hidden;
  }

  .ra-estimate-pair--annual .ra-manual-table-shell{
    overflow-x:auto;
  }

  .ra-estimate-pair--annual .ra-all-periods-table{
    width:max-content;
    min-width:900px;
  }
}

@media (max-width:720px){
  .ra-estimate-pair{
    gap:12px;
    margin-bottom:14px;
  }

  .ra-estimate-pair--annual{
    padding-top:14px;
  }

  .ra-estimate-side{
    padding:11px;
  }

  .ra-estimate-pair--annual .ra-all-periods-table{
    min-width:900px;
  }
}


/* ==========================================================================
   V47.23 — COMBINE ANNUAL ESTIMATES + ESTIMATE REVISIONS
   The annual table already displays each extracted revision percentage under
   the broker estimate. Remove the duplicate right-side revision matrix and
   let the annual estimate table use the complete content width.
   ========================================================================== */
.ra-estimate-pair--annual-combined{
  display:block;
  grid-template-columns:none;
  width:100%;
  padding-top:18px;
}

.ra-estimate-pair--annual-combined>.ra-forecast-block{
  width:100%;
  max-width:100%;
  margin-bottom:0;
}

.ra-estimate-pair--annual-combined .ra-manual-table-shell{
  width:100%;
  max-width:100%;
}

.ra-estimate-pair--annual-combined .ra-all-periods-table{
  width:100%;
  min-width:0;
}

/* With the duplicate matrix gone, give broker/analyst names a little more
   breathing room while keeping the nine estimate cells compact. */
.ra-estimate-pair--annual-combined .ra-forecast-block{
  --ra-manual-broker-col-w:220px;
  --ra-manual-metric-col-w:84px;
}

@media (max-width:1399px){
  .ra-estimate-pair--annual-combined{
    display:block;
    padding-top:16px;
  }

  .ra-estimate-pair--annual-combined .ra-manual-table-shell{
    overflow-x:auto;
  }

  .ra-estimate-pair--annual-combined .ra-all-periods-table{
    width:max-content;
    min-width:900px;
  }
}

@media (max-width:720px){
  .ra-estimate-pair--annual-combined{padding-top:14px;}
}


/* ==========================================================================
   V47.25 — QUARTERLY SECTION SIMPLIFICATION
   Reduce the quarterly table footprint, trim heading copy, and flatten nested
   panel/card styling so the row reads as one clean workspace composition.
   ========================================================================== */

/* Make the quarterly estimates area deliberately narrower and give the
   interpretation/valuation column more breathing room. */
.ra-estimate-pair--quarter{
  grid-template-columns:minmax(0,1.22fr) minmax(0,1fr);
  gap:22px;
  align-items:start;
}

/* The outer Estimates workspace is already a card. Do not place another pair
   of heavy cards inside it. These two sections are now flat siblings. */
.ra-estimate-pair--quarter>.ra-quarter-estimates-block,
.ra-estimate-pair--quarter>.ra-estimate-side--quarter{
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

/* A simple divider separates the analysis column instead of another card. */
.ra-estimate-pair--quarter>.ra-estimate-side--quarter{
  padding-left:22px;
  border-left:1px solid #e7e9f1;
  overflow:visible;
}

/* Cleaner, denser quarter heading. */
.ra-estimate-pair--quarter .ra-forecast-head{
  align-items:center;
  margin-bottom:10px;
  min-height:30px;
}
.ra-estimate-pair--quarter .ra-forecast-head p{display:none;}
.ra-estimate-pair--quarter .ra-forecast-head h3{font-size:var(--ra-font-body);}
.ra-estimate-pair--quarter .ra-forecast-head>span{
  padding:4px 8px;
  background:#fff;
}

/* The data grid keeps one subtle outline; no additional container chrome. */
.ra-quarter-estimates-block .ra-manual-table-shell{
  border-color:#e5e7ef;
  border-radius:12px;
  background:#fff;
}
.ra-quarter-estimates-block .ra-manual-estimate-table{
  width:100%;
  min-width:0;
}

/* Compact column allocation for the narrower table. */
.ra-quarter-estimates-block{
  --ra-manual-broker-col-w:225px;
  --ra-manual-metric-col-w:118px;
  --ra-manual-cell-pad-x:10px;
  --ra-manual-row-h:58px;
}

/* Right-side headings read as sections, not cards. */
.ra-estimate-side--quarter>.ra-subhead:first-child{
  margin:2px 0 10px;
}
.ra-estimate-side--quarter .ra-subhead-gap{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid #e7e9f1;
}

/* Strip the valuation table of extra box/card treatment. */
.ra-estimate-side--quarter .ra-valuation-table-wrap{
  margin-top:0;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
}
.ra-estimate-side--quarter .ra-valuation-table{
  background:transparent;
}
.ra-estimate-side--quarter .ra-valuation-table thead th{
  background:transparent;
  border-top:0;
}
.ra-estimate-side--quarter .ra-valuation-consensus{
  margin-top:6px;
  border:1px solid #e5e0ff;
  border-radius:10px;
  background:#faf9ff;
}

/* Compact laptop: keep the two columns until the available width is genuinely
   too tight, then stack cleanly. */
@media (max-width:1399px){
  .ra-estimate-pair--quarter{
    grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
    gap:18px;
  }
  .ra-quarter-estimates-block{
    --ra-manual-broker-col-w:205px;
    --ra-manual-metric-col-w:108px;
    --ra-manual-cell-pad-x:8px;
  }
  .ra-quarter-estimates-block .ra-manual-table-shell{overflow-x:auto;}
  .ra-quarter-estimates-block .ra-manual-estimate-table{min-width:590px;}
  .ra-estimate-pair--quarter>.ra-estimate-side--quarter{padding-left:18px;}
}

@media (max-width:1180px){
  .ra-estimate-pair--quarter{grid-template-columns:1fr;}
  .ra-estimate-pair--quarter>.ra-estimate-side--quarter{
    padding-left:0;
    padding-top:16px;
    border-left:0;
    border-top:1px solid #e7e9f1;
  }
}

@media (max-width:720px){
  .ra-quarter-estimates-block{
    --ra-manual-broker-col-w:190px;
    --ra-manual-metric-col-w:104px;
  }
}

/* Keep the annual section consistent with the same flat hierarchy: section
   divider + table, rather than a card nested inside the workspace card. */
.ra-estimate-pair--annual-combined>.ra-forecast-block{
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}


/* V47.26 — percentage semantics are explicit in the quarterly table. */
.ra-quarter-estimates-block .ra-manual-change-pill{min-height:21px;padding:0 8px;font-size:calc(var(--ra-estimate-table-sub-size) - .1px);}
.ra-quarter-estimates-block .ra-manual-estimate small{margin-top:5px;}
@media (max-width: 1280px){
  .ra-quarter-percent-guide{gap:6px;}
  .ra-quarter-percent-guide span{padding-left:6px;}
}
@media (max-width: 760px){
  .ra-quarter-percent-guide{font-size:11px;}
  .ra-quarter-percent-guide strong{width:100%;}
  .ra-quarter-percent-guide span:first-of-type{border-left:0;padding-left:0;}
}


/* ========================================================================== 
   V47.27 — QUARTERLY FULL METRICS RESTORE
   Restore readable YoY capsules, keep EBITDA margin visible, and preserve
   additional quarterly metrics behind the compact More metrics control.
   ========================================================================== */
.ra-quarter-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 9px;}
.ra-quarter-toolbar .ra-quarter-percent-guide{margin:0;min-width:0;}
.ra-quarter-toolbar .ra-compact-toggle{flex:0 0 auto;height:28px;padding-inline:9px;}
.ra-quarter-estimates-block{--ra-manual-metric-col-w:106px;}
.ra-quarter-estimates-block .ra-manual-estimate-table{width:max-content;min-width:100%;}
.ra-quarter-estimates-block .ra-manual-table-shell{overflow-x:auto;}
.ra-quarter-estimates-block .ra-manual-change-pill{max-width:100%;padding-inline:7px;font-size:11px;letter-spacing:-.01em;}
.ra-quarter-estimates-block .ra-manual-estimate strong{font-size:var(--ra-estimate-table-value-size);}
.ra-quarter-estimates-block .ra-manual-group-head{white-space:nowrap;}

@media (max-width:1399px){
  .ra-quarter-estimates-block{--ra-manual-metric-col-w:100px;}
  .ra-quarter-toolbar{align-items:flex-start;}
}
@media (max-width:760px){
  .ra-quarter-toolbar{flex-direction:column;align-items:stretch;gap:7px;}
  .ra-quarter-toolbar .ra-compact-toggle{align-self:flex-end;}
  .ra-quarter-estimates-block{--ra-manual-metric-col-w:96px;}
}


/* ========================================================================== 
   V47.28 — QUARTERLY TABLE WIDTH COMPACTING
   Shrink the Research House / Analyst column and metric columns so the core
   quarterly table fits without needing horizontal scroll for the PAT column.
   ========================================================================== */
.ra-quarter-estimates-block{
  --ra-manual-broker-col-w:180px;
  --ra-manual-metric-col-w:88px;
}
.ra-quarter-estimates-block .ra-manual-broker-head,
.ra-quarter-estimates-block .ra-manual-broker{
  width:var(--ra-manual-broker-col-w);
  min-width:var(--ra-manual-broker-col-w);
}
.ra-quarter-estimates-block .ra-manual-table-shell{
  overflow-x:hidden;
}
.ra-quarter-estimates-block .ra-manual-estimate-table{
  width:100%;
  min-width:0;
  table-layout:fixed;
}
.ra-quarter-estimates-block .ra-manual-broker-wrap{gap:8px;}
.ra-quarter-estimates-block .ra-manual-broker-mark{
  flex:0 0 28px;
  width:28px;
  height:28px;
  border-radius:9px;
}
.ra-quarter-estimates-block .ra-manual-broker-mark img{padding:4px;}
.ra-quarter-estimates-block .ra-manual-broker-copy strong{font-size:13px;}
.ra-quarter-estimates-block .ra-manual-broker-copy small{font-size:11px;}
.ra-quarter-estimates-block .ra-manual-estimate strong{font-size:13px;}
.ra-quarter-estimates-block .ra-manual-change-pill{
  min-height:20px;
  padding-inline:6px;
  font-size:10.5px;
}
.ra-quarter-estimates-block .ra-manual-group-head,
.ra-quarter-estimates-block .ra-manual-period-head{
  font-size:11px;
}
.ra-quarter-estimates-block .ra-manual-estimate-table thead th:not(:first-child),
.ra-quarter-estimates-block .ra-manual-estimate-table tbody td{
  width:var(--ra-manual-metric-col-w);
  min-width:var(--ra-manual-metric-col-w);
}

@media (max-width:1399px){
  .ra-quarter-estimates-block{
    --ra-manual-broker-col-w:170px;
    --ra-manual-metric-col-w:84px;
  }
}
@media (max-width:1279px){
  .ra-quarter-estimates-block .ra-manual-table-shell{overflow-x:auto;}
}
@media (max-width:760px){
  .ra-quarter-estimates-block{
    --ra-manual-broker-col-w:180px;
    --ra-manual-metric-col-w:96px;
  }
  .ra-quarter-estimates-block .ra-manual-table-shell{overflow-x:auto;}
}


/* ==========================================================================
   V47.29 — VALUATION BROKER LOGOS
   Reuse the same research-house brand resolver as the estimate tables so the
   valuation section has consistent broker identity.
   ========================================================================== */
.ra-valuation-broker{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.ra-valuation-broker .ra-manual-broker-mark{
  flex:0 0 28px;
  width:28px;
  height:28px;
  border-radius:8px;
  box-shadow:0 5px 12px rgba(64,52,135,.10);
}
.ra-valuation-broker .ra-manual-broker-mark img{padding:4px;}
.ra-valuation-broker-copy{min-width:0;}
.ra-valuation-broker-copy strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ra-valuation-broker-copy small{
  display:block;
  margin-top:2px;
  white-space:nowrap;
}
.ra-valuation-table th:first-child,
.ra-valuation-table td:first-child{min-width:138px;}


/* ========================================================================== 
   V47.30 — VALUATION COLUMN FIT + WRAPPING
   Prevent cross-column overlap by using a true fixed-width column budget,
   removing the conflicting first-column minimum, and allowing the valuation
   method to wrap naturally into two lines when needed.
   ========================================================================== */
.ra-estimate-side--quarter .ra-valuation-table{
  width:100%;
  min-width:0;
  table-layout:fixed;
}
.ra-estimate-side--quarter .ra-valuation-table th,
.ra-estimate-side--quarter .ra-valuation-table td{
  min-width:0;
  padding:8px 6px;
  vertical-align:middle;
}

/* Balanced desktop column budget. The valuation text is intentionally narrower
   and wraps; the reclaimed width is given to broker/rating/target fields. */
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(1),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(1){width:21%;min-width:0;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(2),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(2){width:13%;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(3),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(3){width:10%;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(4),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(4){width:11%;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(5),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(5){width:13%;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(6),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(6){width:32%;}

/* Cancel the earlier global first-column minimum that could force overlap in
   this narrower side panel. */
.ra-estimate-side--quarter .ra-valuation-table th:first-child,
.ra-estimate-side--quarter .ra-valuation-table td:first-child{
  min-width:0;
}

/* Keep compact numeric/rating fields inside their own columns. */
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(2),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(3),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(4),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(5){
  overflow-wrap:normal;
  word-break:normal;
}
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(3) strong,
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(4),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(5){
  white-space:nowrap;
}

/* Valuation method is the flexible text column: wrap to 2+ lines and let the
   row grow vertically rather than spilling into adjacent columns. */
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(6),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(6){
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  line-height:1.28;
}
.ra-estimate-side--quarter .ra-valuation-table tbody td{
  height:auto;
}
.ra-estimate-side--quarter .ra-valuation-table tbody tr{
  height:auto;
}

/* Broker logo + copy must shrink as one unit rather than widening the cell. */
.ra-estimate-side--quarter .ra-valuation-broker{
  width:100%;
  min-width:0;
}
.ra-estimate-side--quarter .ra-valuation-broker-copy{
  min-width:0;
  max-width:100%;
}
.ra-estimate-side--quarter .ra-valuation-broker-copy strong,
.ra-estimate-side--quarter .ra-valuation-broker-copy small{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}

@media (max-width:1399px){
  .ra-estimate-side--quarter .ra-valuation-table th,
  .ra-estimate-side--quarter .ra-valuation-table td{padding-inline:5px;}
  .ra-estimate-side--quarter .ra-valuation-table th:nth-child(1),
  .ra-estimate-side--quarter .ra-valuation-table td:nth-child(1){width:22%;}
  .ra-estimate-side--quarter .ra-valuation-table th:nth-child(2),
  .ra-estimate-side--quarter .ra-valuation-table td:nth-child(2){width:13%;}
  .ra-estimate-side--quarter .ra-valuation-table th:nth-child(3),
  .ra-estimate-side--quarter .ra-valuation-table td:nth-child(3){width:10%;}
  .ra-estimate-side--quarter .ra-valuation-table th:nth-child(4),
  .ra-estimate-side--quarter .ra-valuation-table td:nth-child(4){width:11%;}
  .ra-estimate-side--quarter .ra-valuation-table th:nth-child(5),
  .ra-estimate-side--quarter .ra-valuation-table td:nth-child(5){width:13%;}
  .ra-estimate-side--quarter .ra-valuation-table th:nth-child(6),
  .ra-estimate-side--quarter .ra-valuation-table td:nth-child(6){width:31%;}
}


/* ==========================================================================
   V47.31 — VALUATION CONSENSUS TERMINOLOGY + HEADER FIT
   Rebalance columns so Previous TP and Vs Consensus stay readable while the
   flexible valuation-method column wraps into additional lines as needed.
   ========================================================================== */
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(1),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(1){width:20%;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(2),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(2){width:13%;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(3),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(3){width:11%;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(4),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(4){width:14%;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(5),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(5){width:16%;}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(6),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(6){width:26%;}

.ra-estimate-side--quarter .ra-valuation-table thead th{
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
  line-height:1.18;
}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(4),
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(5){
  min-width:0;
}
.ra-estimate-side--quarter .ra-valuation-table th:nth-child(6),
.ra-estimate-side--quarter .ra-valuation-table td:nth-child(6){
  white-space:normal;
  overflow-wrap:break-word;
  line-height:1.3;
}

@media (max-width:1399px){
  .ra-estimate-side--quarter .ra-valuation-table th:nth-child(1),
  .ra-estimate-side--quarter .ra-valuation-table td:nth-child(1){width:20%;}
  .ra-estimate-side--quarter .ra-valuation-table th:nth-child(2),
  .ra-estimate-side--quarter .ra-valuation-table td:nth-child(2){width:13%;}
  .ra-estimate-side--quarter .ra-valuation-table th:nth-child(3),
  .ra-estimate-side--quarter .ra-valuation-table td:nth-child(3){width:11%;}
  .ra-estimate-side--quarter .ra-valuation-table th:nth-child(4),
  .ra-estimate-side--quarter .ra-valuation-table td:nth-child(4){width:14%;}
  .ra-estimate-side--quarter .ra-valuation-table th:nth-child(5),
  .ra-estimate-side--quarter .ra-valuation-table td:nth-child(5){width:16%;}
  .ra-estimate-side--quarter .ra-valuation-table th:nth-child(6),
  .ra-estimate-side--quarter .ra-valuation-table td:nth-child(6){width:26%;}
}


/* ========================================================================== 
   V47.32 — ALL REVISIONS MATRIX
   Match the Research Analyzer's main estimate-table language: research-house
   logos at left, period next, and financial metrics as the primary headers.
   Each metric cell shows Previous → Current plus the revision capsule.
   ========================================================================== */
.ra-revision-trail-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.ra-revision-matrix-shell{width:100%;overflow:hidden;border:1px solid #e7e8f0;border-radius:12px;background:#fff;}
.ra-revision-trail-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;}
.ra-revision-trail-table th,.ra-revision-trail-table td{padding:9px 10px;border-right:1px solid #eef0f5;border-bottom:1px solid #eef0f5;vertical-align:middle;}
.ra-revision-trail-table tr>*:last-child{border-right:0;}
.ra-revision-trail-table tbody tr:last-child>*{border-bottom:0;}
.ra-revision-trail-table thead th{background:#f8f8fc;color:#737b90;font-size:11px;font-weight:var(--ra-weight-extrabold);letter-spacing:.045em;text-transform:uppercase;text-align:center;white-space:nowrap;}
.ra-revision-trail-table thead th:first-child{width:220px;text-align:left;}
.ra-revision-trail-table thead th:nth-child(2){width:92px;text-align:left;}
.ra-revision-trail-table .ra-revision-metric-head{color:#596178;background:#f7f7fc;}
.ra-revision-trail-table tbody tr:hover td{background:#fcfbff;}
.ra-revision-broker-cell{display:flex;align-items:center;gap:9px;min-width:0;}
.ra-revision-broker-cell>div:last-child{min-width:0;}
.ra-revision-broker-cell strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#33394d;font-size:13px;font-weight:var(--ra-weight-bold);line-height:1.2;}
.ra-revision-broker-cell small{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8d94a6;font-size:10.5px;line-height:1.2;}
.ra-revision-broker-cell .ra-manual-broker-mark{flex:0 0 30px;width:30px;height:30px;border-radius:9px;}
.ra-revision-broker-cell .ra-manual-broker-mark img{padding:4px;}
.ra-revision-period-cell{text-align:left;color:#5f667a;}
.ra-revision-period-cell strong{display:block;color:#3c4255;font-size:12px;font-weight:var(--ra-weight-bold);white-space:nowrap;}
.ra-revision-period-cell small{display:block;margin-top:3px;color:#9399a9;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ra-revision-metric-cell{display:flex;min-height:38px;flex-direction:column;align-items:flex-end;justify-content:center;gap:5px;}
.ra-revision-metric-cell.empty{color:#a1a7b5;font-size:12px;}
.ra-revision-value-flow{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:0;white-space:nowrap;}
.ra-revision-value-flow span{color:#8a91a4;font-size:11px;font-weight:var(--ra-weight-medium);}
.ra-revision-value-flow strong{color:#33394d;font-size:12.5px;font-weight:var(--ra-weight-extrabold);}
.ra-revision-value-flow svg{width:11px;height:11px;flex:0 0 11px;color:#aaaebe;stroke-width:1.8;}
.ra-revision-metric-cell .ra-revision-pill{padding:3px 7px;font-size:10.5px;}
.ra-revision-matrix-shell.has-extra-metrics{overflow-x:auto;}
.ra-revision-matrix-shell.has-extra-metrics .ra-revision-trail-table{min-width:980px;}

@media (max-width:1399px){
  .ra-revision-trail-table thead th:first-child{width:190px;}
  .ra-revision-trail-table thead th:nth-child(2){width:82px;}
  .ra-revision-trail-table th,.ra-revision-trail-table td{padding:8px 8px;}
  .ra-revision-broker-cell{gap:7px;}
  .ra-revision-broker-cell .ra-manual-broker-mark{flex-basis:27px;width:27px;height:27px;}
}
@media (max-width:980px){
  .ra-revision-matrix-shell{overflow-x:auto;}
  .ra-revision-trail-table{min-width:760px;}
  .ra-revision-trail-controls{justify-content:flex-start;}
}


/* ==========================================================================
   V47.36 — CROSS-PERIOD ESTIMATE HISTORY TRAIL
   ========================================================================== */
.ra-revision-metric-cell--history{gap:6px;}
.ra-revision-value-flow--history{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0;flex-wrap:wrap;line-height:1.15;}
.ra-revision-value-flow--history span{color:#8a93a8;white-space:nowrap;}
.ra-revision-value-flow--history strong{color:#30374c;white-space:nowrap;}
.ra-revision-value-flow--history svg{width:12px;height:12px;flex:0 0 12px;color:#aab1c1;stroke-width:1.8;}
.ra-revision-step-pills{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap;}
.ra-revision-step-pills .ra-revision-pill{margin:0;}
@media (max-width:1280px){.ra-revision-value-flow--history{gap:4px}.ra-revision-step-pills{gap:4px}}


/* ==========================================================================
   V47.38 — REVISION REASON TOOLTIPS
   Revision capsules expose the broker's stated driver/reason on hover/focus.
   ========================================================================== */
.ra-revision-pill.has-reason{cursor:help;position:relative;outline:none;box-shadow:0 0 0 1px rgba(91,72,198,.04) inset;}
.ra-revision-pill.has-reason:hover,.ra-revision-pill.has-reason:focus-visible{box-shadow:0 0 0 2px rgba(107,76,246,.13);}
.ra-revision-reason-tooltip{position:fixed;z-index:10050;width:min(330px,calc(100vw - 24px));padding:11px 12px;border:1px solid #ddd8fa;border-radius:12px;background:#fff;box-shadow:0 14px 36px rgba(42,35,83,.18);color:#4e566b;opacity:0;visibility:hidden;transform:translateY(3px);transition:opacity .12s ease,transform .12s ease,visibility .12s ease;pointer-events:none;}
.ra-revision-reason-tooltip.show{opacity:1;visibility:visible;transform:translateY(0);}
.ra-revision-reason-tooltip strong{display:block;margin:0 0 5px;color:#3b4054;font-size:12px;font-weight:var(--ra-weight-extrabold);}
.ra-revision-reason-tooltip p{margin:0;color:#596176;font-size:12px;line-height:1.42;font-weight:var(--ra-weight-medium);}
.ra-revision-reason-tooltip small{display:block;margin-top:7px;padding-top:7px;border-top:1px solid #efeff5;color:#9097aa;font-size:10.5px;line-height:1.25;}


/* V47.39 — robust revision tooltip behavior. Every revision pill is hoverable;
   pills without a captured source reason explain that a refresh is required. */
.ra-revision-pill.reason-missing{cursor:help;outline:none;}
.ra-revision-pill.reason-missing:hover,.ra-revision-pill.reason-missing:focus-visible{box-shadow:0 0 0 2px rgba(107,76,246,.10);}
.ra-revision-reason-tooltip.is-missing{border-color:#e6e2f6;background:#fcfbff;}
.ra-revision-reason-tooltip p b{color:#4d42a6;font-weight:var(--ra-weight-extrabold);}


/* ==========================================================================
   V47.40 — PRE-ANALYSIS REPORT LIBRARY
   Keep uploaded research cards visible before consensus/Street View exists.
   ========================================================================== */
.ra-dashboard.ra-preanalysis-mode .ra-tabs,
.ra-dashboard.ra-preanalysis-mode .ra-metric-strip,
.ra-dashboard.ra-preanalysis-mode .ra-overview-main,
.ra-dashboard.ra-preanalysis-mode .ra-overview-themes{
  display:none!important;
}
.ra-dashboard.ra-preanalysis-mode .ra-tab-panel{display:none!important;}
.ra-dashboard.ra-preanalysis-mode .ra-tab-panel[data-ra-panel="overview"]{display:block!important;}
.ra-dashboard.ra-preanalysis-mode .ra-report-strip{
  margin:0;
  padding:0;
}
.ra-dashboard.ra-preanalysis-mode .ra-report-cards{
  margin-top:0;
}
.ra-dashboard.ra-preanalysis-mode .ra-report-card.pending .ra-report-metrics{
  opacity:.72;
}
.ra-report-awaiting{
  min-width:0;
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:#7566cf;
  font-size:var(--ra-type-meta-size);
  font-weight:var(--ra-weight-bold);
  white-space:nowrap;
}
.ra-report-awaiting svg{width:11px;height:11px;flex:0 0 11px;stroke-width:1.9;}


/* V47.41 — custom searchable header pickers */
.ra-topbar{position:relative;z-index:80;}
@media (max-width: 900px){
  .ra-company-picker-menu,.ra-period-picker-menu{width:100%;min-width:100%;}
}
@media (max-width: 760px){
  .ra-picker-menu{position:absolute;left:0;right:0;width:100%;min-width:0;}
  .ra-picker-options{max-height:260px;}
}


/* ==========================================================================
   15 — EMAIL RESEARCH PDF
   ========================================================================== */
body.ra-email-open{overflow:hidden;}
.ra-email-backdrop{position:fixed;inset:0;z-index:1400;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(34,38,55,.38);backdrop-filter:blur(4px);}
.ra-email-backdrop.hidden{display:none!important;}
.ra-email-modal{width:min(var(--ra-email-width),calc(100vw - 24px));overflow:hidden;border:1px solid var(--ra-line);border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(37,31,70,.22);}
.ra-email-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px;border-bottom:1px solid var(--ra-line);background:#faf9ff;}
.ra-email-title-wrap{display:flex;align-items:flex-start;gap:12px;min-width:0;}
.ra-email-title-icon,.ra-email-preview-icon{width:34px;height:34px;flex:0 0 34px;display:inline-flex;align-items:center;justify-content:center;border-radius:11px;background:var(--ra-soft);color:var(--ra-purple);}
.ra-email-title-icon svg,.ra-email-preview-icon svg{width:15px;height:15px;}
.ra-email-head h2{margin:5px 0 3px;color:var(--ra-text);font-size:var(--ra-font-3xl);line-height:1.15;font-weight:var(--ra-weight-extrabold);}
.ra-email-head p{margin:0;color:var(--ra-muted);font-size:var(--ra-font-md);line-height:1.45;}
.ra-email-body{display:grid;gap:14px;padding:18px;}
.ra-email-field{display:grid;gap:7px;}
.ra-email-field>span{color:#555d72;font-size:var(--ra-font-md);font-weight:var(--ra-weight-bold);}
.ra-email-input{position:relative;}
.ra-email-input>svg{position:absolute;left:12px;top:50%;width:15px;height:15px;color:var(--ra-purple);transform:translateY(-50%);pointer-events:none;}
.ra-email-input input{width:100%;height:var(--ra-email-control-h);padding:0 12px 0 38px;border:1px solid var(--ra-line);border-radius:11px;background:#fff;color:var(--ra-text);font-family:inherit;font-size:var(--ra-font-body);outline:none;}
.ra-email-input input:focus{border-color:#a99af9;box-shadow:0 0 0 3px rgba(107,76,246,.09);}
.ra-email-preview{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--ra-line);border-radius:12px;background:var(--ra-surface-soft);}
.ra-email-preview>div{min-width:0;}
.ra-email-preview strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ra-text);font-size:var(--ra-font-body);font-weight:var(--ra-weight-extrabold);line-height:1.35;}
.ra-email-preview span:not(.ra-email-preview-icon){display:block;margin-top:3px;color:var(--ra-muted);font-size:var(--ra-font-sm);line-height:1.4;}
.ra-email-alert{padding:10px 12px;border:1px solid transparent;border-radius:10px;font-size:var(--ra-font-body);line-height:1.4;font-weight:var(--ra-weight-semibold);}
.ra-email-alert.is-info{border-color:#ded8ff;background:#faf8ff;color:#5d50b7;}
.ra-email-alert.is-success{border-color:#cdebdc;background:#effaf5;color:#147453;}
.ra-email-alert.is-error{border-color:#f0d4da;background:#fff5f7;color:#a43a52;}
.ra-email-footer{display:flex;justify-content:flex-end;gap:9px;padding:0 18px 18px;}
.ra-email-footer .ra-btn{height:40px;}
.ra-email-footer .ra-btn.is-success{background:#17815e;border-color:#17815e;}
