/* EquiSense — Kavach Deep-Dive Tab Styles */

/* ─── Kavach Deep-Dive Sections ──────────────────────────────────────── */
.kavach-sections {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Score card — gauge left, verdict prose right */
.kavach-score-card {
  padding: 24px 28px;
}
.kavach-hero-row {
  display: flex;
  align-items: center;
  gap: 28px;
}
.kavach-hero-gauge {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
/* Verdict ring — label-only, no score number */
.kavach-verdict-ring {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  border: 4px solid;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kavach-verdict-label {
  font-size: 16px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.kavach-hero-symbol {
  font-size: 14px;
  font-weight: 800;
  color: var(--text-primary);
  font-family: var(--font-heading);
  letter-spacing: -0.02em;
}
.kavach-hero-prose {
  flex: 1;
  min-width: 0;
}
.kavach-hero-prose .kavach-prose {
  font-size: 13px;
  line-height: 1.7;
  color: var(--text-secondary);
}
.kavach-hero-prose .kavach-prose strong {
  color: var(--text-primary);
}
.kavach-hero-prose .kavach-prose + .kavach-prose {
  margin-top: 6px;
}

/* Inline extend toggle (legacy — used by 360° tab) */
.kavach-extend-btn {
  font-size: 11px;
  font-weight: 500;
  color: var(--text-tertiary);
  cursor: pointer;
  background: none;
  border: none;
  padding: 6px 0;
  font-family: inherit;
  letter-spacing: 0.02em;
}
.kavach-extend-btn:hover {
  color: var(--accent);
}

/* Overview "Show details" toggle — pill chip with rotating chevron.
   Replaces the body-text style so the affordance reads as a real button.
   Shared across every section in the Overview tab. */
.ov-toggle-bordered {
  border-top: 1px solid var(--tint-5);
  padding-top: 12px;
}
.ov-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  background: var(--tint-3);
  border: 1px solid var(--tint-5);
  border-radius: 999px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: 0.02em;
  font-family: inherit;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.05s ease;
}
.ov-toggle-btn:hover {
  background: var(--tint-5);
  border-color: var(--tint-10);
}
.ov-toggle-btn:active {
  transform: scale(0.98);
}
.ov-toggle-chevron {
  transition: transform 0.2s ease;
  color: var(--text-secondary);
  flex-shrink: 0;
}
.ov-toggle-open .ov-toggle-chevron {
  transform: rotate(180deg);
  color: var(--text-primary);
}
@media (max-width: 600px) {
  .ov-toggle-btn { padding: 9px 16px; font-size: 14px; min-height: 40px; }
}

/* When expanded, hide the top pill — the only close affordance is the
   trailing link at the bottom of the expanded body, where the eye
   naturally lands when the user finishes reading. Closed state keeps
   the labelled pill so the affordance is discoverable. */
.ov-toggle.ov-toggle-open > .ov-toggle-btn {
  display: none;
}
.ov-collapse-trail-wrap {
  display: none;
  text-align: right;
  margin-top: 16px;
}
.ov-toggle-open .ov-collapse-trail-wrap { display: block; }
.ov-collapse-trail {
  padding: 4px 8px;
  font-size: 12px;
  font-family: inherit;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--text-tertiary);
  background: none;
  border: 0;
  cursor: pointer;
  transition: color 0.15s ease;
}
.ov-collapse-trail:hover { color: var(--text-secondary); }
.ov-collapse-arrow {
  display: inline-block;
  margin-left: 4px;
  font-size: 13px;
  vertical-align: -1px;
}
@media (max-width: 600px) {
  .ov-collapse-trail { padding: 8px 12px; font-size: 14px; min-height: 32px; }
}

/* TAM tile — bounded hero-style metric for INDUSTRY OVERVIEW.
   Capped at ~360px so a single tile reads as "anchor for the prose
   above," not a row missing siblings. Uses tint tokens that resolve
   to visible contrast in both light and dark themes. */
.ov-tam-tile {
  display: inline-block;
  max-width: 360px;
  margin-top: 16px;
  padding: 14px 18px;
  background: var(--tint-3);
  border: 1px solid var(--tint-8);
  border-radius: 10px;
}
.ov-tam-tile-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-tertiary);
}
.ov-tam-tile-value {
  font-size: 22px;
  font-weight: 700;
  color: var(--text-primary);
  font-family: var(--font-data, system-ui);
  margin-top: 4px;
  line-height: 1.15;
}
.ov-tam-tile-context {
  font-size: 11px;
  color: var(--text-secondary);
  margin-top: 6px;
  line-height: 1.4;
}

/* Inside Show details — readability bump.
   Scoped to .ov-toggle-body so the 360°/Kavach tab styling stays untouched.
   - Sub-labels reclaim hierarchy over body prose (12px primary vs 14px body).
   - Prose moves to 14px for comfortable investor reading.
   - Sibling sub-sections get visible vertical rhythm (~22px). */
.ov-toggle-body .kavach-sub-label {
  font-size: 12px;
  color: var(--text-primary);
  margin-bottom: 12px;
  letter-spacing: 0.06em;
}
.ov-toggle-body .kavach-sub-label-accent {
  color: var(--text-primary);
}
.ov-toggle-body .kavach-prose {
  font-size: 14px;
  line-height: 1.7;
}
.ov-toggle-body .kavach-prose + .kavach-prose { margin-top: 12px; }

/* Unified type scale inside expanded "Show details" sections.
   Three sizes only — body 14px, sub-label 12px, micro 11px.
   Without this, body text rendered at 14/13/12/11px depending on class
   (kavach-moat-fact at 11px next to kavach-prose at 14px was the worst). */
.ov-toggle-body .kavach-list li,
.ov-toggle-body .kavach-moat-fact,
.ov-toggle-body .ov-flag-text,
.ov-toggle-body .ov-aio-q-reason,
.ov-toggle-body .ov-aio-reasoning {
  font-size: 14px;
  line-height: 1.7;
  color: var(--text-secondary);
}
.ov-toggle-body .kavach-moat-fact { font-weight: 500; }
.ov-toggle-body .ov-flag-text { line-height: 1.5; }
.ov-toggle-body .kms-type,
.ov-toggle-body .cv-client-name {
  font-size: 12px;
}
.ov-toggle-body .kl-num,
.ov-toggle-body .kms-label,
.ov-toggle-body .cv-client-badge,
.ov-toggle-body .ov-aio-q-label {
  font-size: 11px;
}

/* Block-level rhythm — consistent 22px gap between every sub-section.
   Helper wraps content in .ov-detail-stack so call sites stay simple. */
.ov-detail-stack > * + * { margin-top: 22px; }

/* Competition: pillar rows (Regulatory / Infrastructure / Distribution / Scale)
   need clear separation — currently stack tight. */
.ov-toggle-body .kavach-moat-source {
  padding: 12px 0;
}
.ov-toggle-body .kavach-moat-source + .kavach-moat-source {
  border-top: 1px solid var(--tint-4);
}
.ov-toggle-body .kavach-moat-source .kms-evidence {
  font-size: 14px;
  line-height: 1.7;
  margin-top: 6px;
  color: var(--text-secondary);
}

/* Competition: 3-fact box — give each fact its own breathing row */
.ov-toggle-body .kavach-moat-facts .kavach-moat-fact + .kavach-moat-fact {
  margin-top: 10px;
}

/* Money Trail: per-assessment block (Debt / Working Capital / Cash Flow) */
.ov-toggle-body .kavach-fin-assessment-block + .kavach-fin-assessment-block {
  margin-top: 22px;
}

/* Section header */
.kavach-section-hdr {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--tint-5);
}
.kavach-section-hdr h3 {
  font-size: 13px;
  font-weight: 800;
  color: var(--text-primary);
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 18px;
}
/* Sub-label (used inside sections) — visible divider, subordinate to section header */
.kavach-sub-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 8px;
}
/* Accent variant removed — all sub-labels are gray for consistency */
.kavach-sub-label-accent {
  color: var(--text-tertiary);
}

/* Prose / paragraph text — clearly subordinate to headers */
.kavach-prose {
  font-size: 13px;
  line-height: 1.7;
  color: var(--text-secondary);
  margin: 0;
}
.kavach-prose + .kavach-prose { margin-top: 10px; }
.kavach-prose strong {
  color: var(--text-primary);
  font-weight: 700;
}
.kavach-prose em {
  color: var(--text-primary);
  font-style: normal;
  font-weight: 600;
}

/* Core Business card — prose-focused, full-width */
.kavach-biz-card {
  padding: 20px 24px;
}
.kavach-biz-card .kavach-prose {
  font-size: 13px;
  line-height: 1.7;
}
/* EquiSense Score card */
/* ─── ECS Score Card — Ive-clean layout ────────────────────────────────── */
.kavach-ecs-card {
  border: 1px solid var(--tint-8);
}
.kavach-ecs-title-row {
  padding-bottom: 16px;
  border-bottom: 1px solid var(--tint-5);
  margin-bottom: 20px;
}
.kavach-ecs-title-left h3 {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-primary);
  margin: 0;
}
.kavach-ecs-title-ecs {
  font-weight: 400;
  color: var(--text-tertiary);
  text-transform: none;
  letter-spacing: 0;
}
.kavach-ecs-title-ring {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1.5px solid;
  font-size: 11px;
  font-weight: 700;
  font-family: var(--font-data, system-ui);
  text-transform: none;
  letter-spacing: 0;
  margin-left: 8px;
  vertical-align: middle;
}
.kavach-ecs-meta {
  font-size: 10px;
  font-weight: 400;
  color: var(--text-tertiary);
  text-transform: none;
  letter-spacing: 0;
}

/* ── Two-pillar grid ── */
.kavach-ecs-pillars {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.kavach-ecs-pillar {
  padding: 20px;
  border-radius: 12px;
  background: var(--tint-2);
  border: 1px solid var(--tint-5);
  display: flex;
  flex-direction: column;
}
.kavach-ecs-pillar-title {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-tertiary);
  margin-bottom: 12px;
}

/* Score + label stacked vertically, not jammed on one line */
.kavach-ecs-pillar-hero {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 12px;
}
.kavach-ecs-pillar-score {
  font-size: 36px;
  font-weight: 800;
  font-family: var(--font-data, system-ui);
  line-height: 1;
  letter-spacing: -0.02em;
}
.kavach-ecs-pillar-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.85;
}

/* Full-width score bar */
.ecs-mini-bar {
  width: 100%;
  height: 4px;
  border-radius: 2px;
  background: var(--tint-5);
  overflow: hidden;
  margin-bottom: 4px;
}
.ecs-mini-bar-fill {
  height: 100%;
  border-radius: 2px;
  transition: width 0.4s ease-out;
}

/* Breakdown rows — single column by default, 2-col variant for Business Quality */
.kavach-ecs-breakdown {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.kavach-ecs-breakdown.two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 16px;
}
.kavach-ecs-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  gap: 8px;
}
.kavach-ecs-row-name {
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.kavach-ecs-row-value {
  font-weight: 700;
  font-size: 11px;
  text-align: right;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── Footer with hover disclaimer ── */
.kavach-ecs-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 16px;
}
.kavach-ecs-disclaimer-trigger {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--text-secondary);
  background: var(--tint-4);
  border: 1px solid var(--tint-8);
  border-radius: 20px;
  cursor: help;
  transition: border-color 0.15s, color 0.15s;
  line-height: 1;
}
.kavach-ecs-disclaimer-trigger:hover,
.kavach-ecs-disclaimer-trigger:focus-visible {
  opacity: 1;
  border-color: var(--text-tertiary);
}
.kavach-ecs-disclaimer-card {
  display: none;
  position: absolute;
  bottom: calc(100% + 8px);
  right: 0;
  width: 320px;
  padding: 12px 14px;
  font-size: 11px;
  line-height: 1.6;
  color: var(--text-secondary);
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
  z-index: 20;
  pointer-events: none;
}
.kavach-ecs-disclaimer-trigger:hover .kavach-ecs-disclaimer-card,
.kavach-ecs-disclaimer-trigger:focus-visible .kavach-ecs-disclaimer-card {
  display: block;
}

@media (max-width: 480px) {
  .kavach-ecs-pillars { grid-template-columns: 1fr; }
  .kavach-ecs-pillar-score { font-size: 28px; }
  .kavach-ecs-breakdown.two-col { grid-template-columns: 1fr; }
  .kavach-ecs-disclaimer-card { width: 260px; right: -8px; }
}

/* ── AI Forward Estimates (expandable section in Valuation pillar) ──── */
.kavach-growth-est {
  margin-top: 12px; border-top: 1px solid var(--border); padding-top: 10px;
}
.kavach-growth-est-header {
  display: flex; align-items: center; gap: 6px; cursor: pointer;
  font-size: 11px; font-weight: 700; color: var(--accent);
}
.kavach-growth-est-header:hover { opacity: 0.8; }
.kavach-growth-conf { font-weight: 500; color: var(--text-tertiary); font-size: 10px; margin-left: auto; }
.kavach-growth-toggle { font-size: 8px; transition: transform 0.2s; }
.kavach-growth-est.expanded .kavach-growth-toggle { transform: rotate(180deg); }

.kavach-growth-est-body {
  display: none; margin-top: 10px; flex-direction: column; gap: 10px;
}
.kavach-growth-est.expanded .kavach-growth-est-body { display: flex; }

.kavach-growth-q {
  padding: 8px 10px; border-radius: 6px;
  background: var(--tint-2); border: 1px solid var(--border);
}
.kavach-growth-q-label {
  font-family: var(--font-data); font-size: 11px; font-weight: 700;
  color: var(--accent); display: inline;
}
.kavach-growth-q-rev {
  font-family: var(--font-data); font-size: 13px; font-weight: 800;
  color: var(--text-primary); margin-left: 8px;
}
.kavach-growth-q-reason {
  font-size: 11px; color: var(--text-secondary); line-height: 1.5; margin-top: 4px;
}
.kavach-growth-reasoning {
  font-size: 11px; color: var(--text-tertiary); line-height: 1.5;
  padding: 8px 10px; border-radius: 6px;
  background: var(--tint-1); border-left: 2px solid var(--accent);
}

/* KPI cards in Reality Check */
.kavach-kpi-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
  margin-top: 18px;
}
.kavach-kpi-card {
  padding: 12px 14px;
  border-radius: 8px;
  background: var(--tint-2);
  border: 1px solid var(--tint-4);
}
.kavach-kpi-name {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-tertiary);
  margin-bottom: 4px;
}
.kavach-kpi-asof {
  font-weight: 400;
  font-size: 9px;
  text-transform: none;
  color: var(--text-quaternary, #666);
  margin-left: 6px;
}
.kavach-kpi-value {
  font-size: 18px;
  font-weight: 800;
  color: var(--text-primary);
  font-family: var(--font-data, system-ui);
}
.kavach-kpi-context {
  font-size: 11px;
  line-height: 1.4;
  color: var(--text-tertiary);
  margin-top: 4px;
}

.kavach-tagline {
  font-size: 16px;
  font-weight: 600;
  font-style: italic;
  color: var(--text-secondary);
  margin-bottom: 16px;
  line-height: 1.5;
}
.kavach-tam-line {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  margin-top: 14px;
  padding: 6px 12px;
  background: var(--tint-2);
  border-radius: 6px;
  border: 1px solid var(--tint-4);
}
.kavach-tam-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-tertiary);
}
.kavach-tam-value {
  font-size: 14px;
  font-weight: 800;
  color: var(--text-primary);
  font-family: var(--font-data, system-ui);
}
.kavach-tam-growth {
  font-size: 11px;
  color: var(--text-secondary);
}
.kavach-story-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 10px;
}
.kavach-story-tags .badge {
  font-size: 10px !important;
  padding: 2px 8px;
}

/* Competitive Moat card */
.kavach-moat-card {
  padding: 20px 24px;
}
.kavach-moat-meta {
  font-size: 13px;
  color: var(--text-tertiary);
  line-height: 1.5;
  margin-bottom: 12px;
}
.kavach-moat-strength {
  color: var(--text-primary);
  font-weight: 700;
  letter-spacing: 0.03em;
}
.kavach-moat-facts {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
  padding: 12px 16px;
  background: var(--tint-2);
  border-radius: 8px;
  border: 1px solid var(--tint-4);
}
.kavach-moat-fact {
  font-size: 11px;
  line-height: 1.6;
  color: var(--text-secondary);
}
.kavach-moat-sources {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.kavach-moat-source {
  display: grid;
  grid-template-columns: 110px 55px 1fr;
  align-items: baseline;
  gap: 4px 8px;
  font-size: 11px;
  padding: 6px 0;
  border-bottom: 1px solid var(--tint-3);
}
.kavach-moat-source:last-child { border-bottom: none; }
.kms-type {
  font-weight: 700;
  color: var(--text-primary);
  text-transform: capitalize;
}
.kms-label {
  font-weight: 700;
  font-size: 11px;
}
.kms-evidence {
  color: var(--text-tertiary);
  font-size: 11px;
  line-height: 1.5;
  grid-column: 1 / -1;
}
.kavach-moat-competitors {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.kavach-comp-chip {
  padding: 6px 12px;
  border-radius: 8px;
  background: var(--tint-3);
  border: 1px solid var(--tint-5);
}
.kcc-name {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-primary);
}
.kcc-meta {
  font-size: 10px;
  color: var(--text-tertiary);
  display: block;
  margin-top: 2px;
}
@media (max-width: 480px) {
  .kavach-moat-source { grid-template-columns: 1fr; }
}

/* Promoters card — compact inline */
.kavach-promoter-card {
  padding: 20px 24px;
}
/* Section header icons */
.kavach-section-icon {
  margin-right: 8px;
  font-size: 16px;
}

/* Section flags — labeled green/red groups */
.kavach-section-flags {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.kavach-section-flags-compact {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 14px;
  border-radius: 8px;
  background: var(--tint-2);
  border: 1px solid var(--tint-4);
}
.kavach-flag-inline {
  font-size: 11px;
  line-height: 1.5;
}
.kavach-sf-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.kavach-sf-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.kavach-leadership-stats {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.kavach-leadership-stats .kls-item {
  display: flex;
  align-items: center;
  gap: 8px;
}
.kavach-leadership-stats .kls-label {
  font-size: 11px;
  color: var(--text-tertiary);
  font-weight: 500;
}
.kavach-leadership-stats .kls-value {
  font-size: 15px;
  font-weight: 700;
}

/* Company Verification card — clean grid with status indicators */
.kavach-team-card {
  padding: 20px 24px;
}
.kavach-team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
}
.kvt-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 16px;
  background: var(--tint-2);
  border-radius: 10px;
  border: 1px solid var(--tint-5);
  text-align: center;
  transition: border-color 0.15s;
}
.kvt-item:hover {
  border-color: var(--tint-10);
}
.kvt-label {
  font-size: 10px;
  font-weight: 700;
  color: var(--text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.kvt-value {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-tertiary);
}

/* Company Verification — Show details readability ────────────────────── */
/* Key Clients: chip row instead of stacked full-width cards.
   Names sit next to their status badge so the eye doesn't have to
   travel across 600px of whitespace. */
.cv-clients {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.cv-client {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px 6px 12px;
  border-radius: 999px;
  background: var(--tint-2);
  border: 1px solid var(--tint-4);
  line-height: 1.3;
}
.cv-client-name {
  font-size: 12px;
  font-weight: 700;
  color: var(--text-primary);
  white-space: nowrap;
}
.cv-client-badge {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 3px 7px;
  border-radius: 999px;
}
.cv-client-verified .cv-client-badge {
  background: rgba(34, 197, 94, 0.14);
  color: var(--green);
}
.cv-client-unverified .cv-client-badge {
  background: rgba(245, 158, 11, 0.14);
  color: var(--amber);
}

/* Flag band — tinted rows in two color families so green strengths and
   red watch-outs are scannable at a glance instead of a flat list.
   Shared across every Overview section that lists flags. */
.ov-flags {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ov-flag {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.55;
  border: 1px solid transparent;
}
.ov-flag-green {
  background: rgba(34, 197, 94, 0.07);
  border-color: rgba(34, 197, 94, 0.18);
}
.ov-flag-red {
  background: rgba(239, 68, 68, 0.07);
  border-color: rgba(239, 68, 68, 0.18);
}
.ov-flag-icon {
  font-weight: 700;
  flex-shrink: 0;
  font-size: 13px;
  line-height: 1.5;
}
.ov-flag-green .ov-flag-icon { color: var(--green); }
.ov-flag-red   .ov-flag-icon { color: var(--red); }
.ov-flag-text {
  font-weight: 600;
  color: var(--text-primary);
}

/* Executive summary blocks — breathing room between sections */

/* Metric grid: 3-col desktop, 1-col mobile */
.kavach-metric-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.kavach-metric-card {
  padding: 14px;
  background: var(--tint-3);
  border-radius: 10px;
  border: 1px solid var(--tint-4);
}
.kavach-metric-card .km-label {
  font-size: 10px;
  font-weight: 700;
  color: var(--text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 8px;
}
.kavach-metric-card .km-value {
  font-size: 18px;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.01em;
  line-height: 1.1;
  margin-bottom: 2px;
}
.kavach-metric-card .km-sub {
  font-size: 11px;
  color: var(--text-tertiary);
  line-height: 1.5;
}

/* Financial metric rows inside cards */
.kavach-fin-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 5px 0;
  border-bottom: 1px solid var(--tint-3);
}
.kavach-fin-row:last-of-type { border-bottom: none; }
.kavach-fin-row .kfr-key {
  font-size: 11px;
  color: var(--text-tertiary);
  font-weight: 600;
}
.kavach-fin-row .kfr-val {
  font-size: 14px;
  font-weight: 700;
  color: var(--text-primary);
}
.kavach-fin-trend {
  margin-top: 8px;
}
.kavach-fin-assessments {
  padding: 14px 16px;
  background: var(--tint-1);
  border-radius: 8px;
  border: 1px solid var(--tint-4);
}
.kavach-fin-assessments .kavach-prose { font-size: 13px; }

/* Segment / percentage bars */
.kavach-bar-group { display: flex; flex-direction: column; gap: 10px; }
.kavach-segment-bar {
  display: flex;
  align-items: center;
  gap: 10px;
}
.kavach-segment-bar .ksb-label {
  flex: 0 0 180px;
  font-size: 13px;
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.kavach-segment-bar .ksb-track {
  flex: 1;
  height: 10px;
  background: var(--tint-5);
  border-radius: 5px;
  overflow: hidden;
}
.kavach-segment-bar .ksb-fill {
  height: 100%;
  border-radius: 5px;
  transition: width 0.6s ease;
}
.kavach-segment-bar .ksb-pct {
  flex: 0 0 48px;
  text-align: right;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-primary);
}

/* Executive cards grid */
.kavach-exec-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 10px;
}
.kavach-exec-card {
  padding: 14px 16px;
  background: var(--tint-3);
  border-radius: 10px;
  border: 1px solid var(--tint-4);
}
.kavach-exec-card .ke-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 2px;
}
.kavach-exec-card .ke-role {
  font-size: 11px;
  color: var(--accent);
  font-weight: 600;
  margin-bottom: 8px;
}
.kavach-exec-card .ke-bio {
  font-size: 11px;
  color: var(--text-secondary);
  line-height: 1.6;
  margin-bottom: 6px;
}
.kavach-exec-card .ke-detail {
  font-size: 11px;
  color: var(--text-tertiary);
  line-height: 1.5;
  margin-bottom: 4px;
}
.kavach-exec-card .ke-boards {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.kavach-exec-card .ke-board-tag {
  font-size: 10px;
  padding: 1px 6px;
  border-radius: 3px;
  background: var(--accent-tint-bg);
  color: var(--accent);
  font-weight: 600;
}

/* Board composition stat */
.kavach-board-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 60px;
}
.kavach-board-stat .kbs-num {
  font-size: 22px;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.2;
  letter-spacing: -0.02em;
}
.kavach-board-stat .kbs-label {
  font-size: 10px;
  color: var(--text-tertiary);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Moat assessment prose — slightly inset for visual break */

/* 2-column layout for flags, advantages/threats */
.kavach-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

/* Flag items */
.kavach-flag-item {
  display: flex;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
  line-height: 1.5;
}
.kavach-flag-item .kf-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.5;
}
.kavach-flag-item .kf-desc {
  font-size: 13px;
  font-weight: 400;
  color: var(--text-secondary);
  margin-top: 4px;
  line-height: 1.7;
}
.kavach-flag-green {
  background: transparent;
  border: none;
  border-left: 3px solid var(--accent-border-vivid);
}
.kavach-flag-red {
  background: transparent;
  border: none;
  border-left: 3px solid var(--red-border-vivid);
}

/* Status badge in section headers — Clean / Caution / Risky */
.kavach-status {
  margin-left: auto;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}
.kavach-status-icon {
  font-size: 11px;
  line-height: 1;
}

/* List items for priorities, drivers, risks */
.kavach-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.kavach-list li {
  display: flex;
  gap: 10px;
  font-size: 13px;
  line-height: 1.7;
  color: var(--text-secondary);
}
.kavach-list li .kl-num {
  flex-shrink: 0;
  font-weight: 700;
  font-size: 11px;
  margin-top: 2px;
}

/* Promoter / board info rows */
.kavach-info-row {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px solid var(--tint-4);
  font-size: 11px;
}
.kavach-info-row:last-child { border-bottom: none; }
.kavach-info-row .kir-label { color: var(--text-tertiary); }
.kavach-info-row .kir-value { color: var(--text-primary); font-weight: 700; }

/* Financial snapshot strip — REMOVED: Financial data now inline in section */

/* ─── Kavach Responsive: Tablet (≤768px) ───────────────────────── */
@media (max-width: 768px) {
  .kavach-metric-grid { grid-template-columns: 1fr 1fr; }
  .kavach-2col { grid-template-columns: 1fr; }
  .kavach-exec-grid { grid-template-columns: 1fr; }
  .kavach-segment-bar .ksb-label { flex: 0 0 110px; }
  .kavach-team-grid { grid-template-columns: 1fr 1fr; }
}

/* ─── Kavach Responsive: Mobile (≤480px) ───────────────────────── */
@media (max-width: 480px) {
  /* Sections: tighter rhythm */
  .kavach-sections { gap: 10px; }

  /* All cards: consistent compact padding */
  .kavach-score-card,
  .kavach-biz-card,
  .kavach-moat-card,
  .kavach-promoter-card,
  .kavach-team-card { padding: 14px 16px; }

  /* Hero: stack, center gauge only — prose stays left-aligned */
  .kavach-hero-row {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }
  .kavach-hero-prose { text-align: left; align-self: stretch; }
  .kavach-verdict-ring { width: 72px; height: 72px; }
  .kavach-verdict-label { font-size: 14px; }
  .kavach-hero-prose .kavach-prose { font-size: 13px; line-height: 1.6; }

  /* Section headers: compact */
  .kavach-section-hdr { padding: 10px 14px; }
  .kavach-section-hdr h3 { font-size: 13px; }

  /* Metrics: single column, tight */
  .kavach-metric-grid { grid-template-columns: 1fr; gap: 8px; }
  .kavach-metric-card { padding: 10px 12px; }
  .kavach-metric-card .km-value { font-size: 16px; }
  .kavach-metric-card .km-label { font-size: 9px; margin-bottom: 4px; }

  /* Exec cards: single column, compact */
  .kavach-exec-grid { grid-template-columns: 1fr; gap: 8px; }
  .kavach-exec-card { padding: 12px 14px; }
  .kavach-exec-card .ke-name { font-size: 13px; }
  .kavach-exec-card .ke-role { font-size: 11px; }
  .kavach-exec-card .ke-bio { font-size: 11px; }
  .kavach-exec-card .ke-meta { font-size: 10px; }

  /* Flags: readable, tight */
  .kavach-flag-item { padding: 8px 10px; }
  .kavach-flag-item .kf-title { font-size: 11px; }
  .kavach-flag-item .kf-body { font-size: 11px; line-height: 1.5; }
  .kavach-sf-label { font-size: 10px; }

  /* Segment bars: short labels */
  .kavach-segment-bar .ksb-label { flex: 0 0 80px; font-size: 11px; }
  .kavach-segment-bar .ksb-pct { font-size: 11px; flex: 0 0 40px; }

  /* Financial rows */
  .kavach-fin-row .kfr-val { font-size: 13px; }
  .kavach-fin-row .kfr-key { font-size: 10px; }

  /* Board stats */
  .kavach-board-stat .kbs-num { font-size: 18px; }

  /* Team grid: single column */
  .kavach-team-grid { grid-template-columns: 1fr; gap: 8px; }
  .kvt-item { padding: 10px 12px; }

  /* Leadership stats */
  .kavach-leadership-stats { gap: 12px; }
  .kavach-leadership-stats .kls-value { font-size: 14px; }

  /* Prose: readable */
  .kavach-prose { font-size: 13px; line-height: 1.6; }

  /* Extend button: bigger tap target */
  .kavach-extend-btn { padding: 8px 0; font-size: 13px; min-height: 44px; }

  /* Sub-labels */
  .kavach-sub-label { font-size: 10px; margin-bottom: 6px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Kavach Flags — Left-border accent (updated from full border)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Override: remove full border, use left-border accent */
