/* ── ESG Intelligence Dashboard ─────────────────────────────────────────── */

/* Legal Disclaimer Strip */
.legal-disclaimer-strip {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  background: rgba(251,191,36,.06);
  border-top: 1px solid rgba(251,191,36,.2);
  border-bottom: 1px solid rgba(251,191,36,.2);
  padding: 10px 24px;
  font-size: .78rem;
  color: #92400e;
  color: #fbbf24;
  line-height: 1.5;
}
.legal-disclaimer-strip svg {
  flex-shrink: 0;
  margin-top: 2px;
  opacity: .7;
}

/* AI summary disclaimer line */
.dd-disclaimer {
  font-size: .72rem;
  color: #475569;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid rgba(255,255,255,.05);
  line-height: 1.5;
}

/* ── Hero stat row ─────────────────────────────────────────────────────────── */
.intel-hero-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
  margin-top: 28px;
  background: rgba(12,22,41,.6);
  backdrop-filter: blur(12px);
}
.intel-hero-stat {
  padding: 16px 20px;
  border-right: 1px solid var(--border);
}
.intel-hero-stat:last-child { border-right: none; }
.intel-hero-stat__val {
  font-family: var(--serif);
  font-size: 1.5rem;
  background: linear-gradient(90deg, var(--emerald), var(--cyan));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
  margin-bottom: 4px;
}
.intel-hero-stat__lbl {
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-20);
}
@media (max-width: 700px) {
  .intel-hero-stats { grid-template-columns: repeat(2, 1fr); }
  .intel-hero-stat:nth-child(2) { border-right: none; }
  .intel-hero-stat { border-bottom: 1px solid var(--border); }
  .intel-hero-stat:nth-child(3), .intel-hero-stat:last-child { border-bottom: none; }
}

/* Hero */
.intel-hero {
  background: var(--void);
  padding: 80px 0 52px;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--border);
}
.intel-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0,200,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,200,255,.025) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none;
}
.intel-hero__orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(80px);
}
.intel-hero__orb--1 {
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(52,211,153,.12) 0%, transparent 65%);
  top: -180px; right: -60px;
}
.intel-hero__orb--2 {
  width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(99,102,241,.10) 0%, transparent 65%);
  bottom: -60px; left: -60px;
}
.intel-hero__content { position: relative; max-width: 680px; }
.intel-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--emerald);
  margin-bottom: 16px;
  padding: 5px 14px;
  background: rgba(52,211,153,.06);
  border: 1px solid rgba(52,211,153,.22);
  border-radius: 100px;
}
.intel-hero__title {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3rem);
  color: #fff;
  letter-spacing: -.03em;
  line-height: 1.12;
  margin-bottom: 14px;
}
.intel-hero__title em {
  font-style: italic;
  background: linear-gradient(95deg, var(--emerald), #6366f1);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.intel-hero__sub {
  font-size: .95rem;
  color: var(--text-70);
  line-height: 1.75;
  max-width: 560px;
  margin-bottom: 20px;
}
.intel-hero__meta {
  font-size: .8rem;
  color: var(--text-70);
  font-style: italic;
}

/* Tabs */
.intel-tabs {
  display: flex;
  gap: 2px;
  padding: 12px 0 0;
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
  scrollbar-width: none;
  position: sticky;
  top: 62px;
  z-index: 180;
  background: rgba(3,6,13,.92);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.intel-tabs::-webkit-scrollbar { display: none; }
.intel-tab {
  padding: 10px 18px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--text-40);
  font-size: .82rem;
  font-weight: 500;
  font-family: var(--sans);
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--t-base), border-color var(--t-base);
  letter-spacing: .01em;
  flex-shrink: 0;
}
.intel-tab:hover { color: var(--text-70); }
.intel-tab--active {
  color: var(--emerald);
  border-bottom-color: var(--emerald);
  font-weight: 600;
}

/* Main layout */
.intel-main { padding: 40px 0 80px; }
.intel-panel { display: none; }
.intel-panel.active { display: block; animation: fadeIn .25s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* KPI cards */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
  gap: 14px;
  margin-bottom: 32px;
}
.kpi-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 22px 20px 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: border-color var(--t-base) var(--ease-smooth),
              box-shadow var(--t-base) var(--ease-smooth),
              transform var(--t-base) var(--ease-spring);
  position: relative;
  overflow: hidden;
}
.kpi-card::before {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--kc, var(--emerald)), transparent);
  opacity: .5;
}
.kpi-card:hover {
  border-color: var(--kc, var(--emerald));
  box-shadow: 0 0 18px rgba(52,211,153,.1);
  transform: translateY(-2px);
}
.kpi-card--red    { --kc: #f87171; }
.kpi-card--amber  { --kc: var(--amber); }
.kpi-card--green  { --kc: var(--emerald); }
.kpi-card--cyan   { --kc: var(--cyan); }
.kpi-card--violet { --kc: var(--violet); }
.kpi-card__value {
  font-family: var(--serif);
  font-size: 2.1rem;
  color: #fff;
  line-height: 1;
  letter-spacing: -.02em;
}
.kpi-card__value--red    { color: #f87171; }
.kpi-card__value--amber  { color: var(--amber); }
.kpi-card__value--green  { color: var(--emerald); }
.kpi-card__value--cyan   { color: var(--cyan); }
.kpi-card__label {
  font-size: .67rem;
  font-weight: 700;
  color: var(--text-20);
  text-transform: uppercase;
  letter-spacing: .09em;
}
.kpi-card__sub {
  font-size: .73rem;
  color: var(--text-40);
  line-height: 1.4;
  margin-top: 2px;
}

/* Chart cards */
.charts-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-bottom: 20px;
}
@media (max-width: 768px) { .charts-row { grid-template-columns: 1fr; } }
.chart-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 22px;
  transition: border-color var(--t-base) var(--ease-smooth);
}
.chart-card:hover { border-color: var(--border-hi); }
.chart-card__title {
  font-size: .72rem;
  font-weight: 700;
  color: var(--text-20);
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.chart-card__title::before {
  content: '';
  width: 3px; height: 14px;
  background: var(--grad-emerald-cyan);
  border-radius: 2px;
  flex-shrink: 0;
}

/* Screener controls */
/* ── Pre-built Screener Templates ─────────────────────────────────────────── */
.st-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 12px 0 20px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  margin-bottom: 20px;
}
.st-strip__label {
  font-size: .72rem;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: .07em;
  white-space: nowrap;
  margin-right: 4px;
}
.st-pill {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  color: #94a3b8;
  font-size: .76rem;
  font-weight: 500;
  padding: 5px 12px;
  border-radius: 999px;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
  white-space: nowrap;
}
.st-pill:hover { background: rgba(0,200,255,.08); border-color: rgba(0,200,255,.3); color: #00c8ff; }
.st-pill--active { background: rgba(0,200,255,.12); border-color: rgba(0,200,255,.4); color: #00c8ff; font-weight: 600; }
.st-pill--reset { background: transparent; border-color: transparent; color: #475569; font-size: .72rem; }
.st-pill--reset:hover { color: #f87171; border-color: rgba(248,113,113,.2); background: rgba(248,113,113,.06); }

.screener-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-bottom: 20px;
}
.screener-search {
  flex: 1;
  min-width: 200px;
  padding: 9px 14px;
  background: var(--surface);
  border: 1px solid var(--border-hi);
  border-radius: var(--r);
  color: var(--text);
  font-size: .88rem;
  font-family: var(--sans);
  outline: none;
  transition: border-color var(--t-base);
}
.screener-search:focus { border-color: rgba(52,211,153,.45); box-shadow: 0 0 0 3px rgba(52,211,153,.07); }
.screener-search::placeholder { color: var(--text-20); }
.screener-filter {
  padding: 9px 14px;
  background: var(--surface);
  border: 1px solid var(--border-hi);
  border-radius: var(--r);
  color: var(--text-70);
  font-size: .84rem;
  font-family: var(--sans);
  cursor: pointer;
  outline: none;
  transition: border-color var(--t-base);
}
.screener-filter:focus { border-color: rgba(52,211,153,.45); }
.screener-count {
  font-size: .8rem;
  color: var(--text-70);
  margin-left: auto;
}

/* Screener table */
.table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--surface);
}
.screener-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .82rem;
}
.screener-table th {
  background: rgba(7,13,26,.8);
  color: var(--text-20);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .65rem;
  padding: 11px 14px;
  text-align: left;
  white-space: nowrap;
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
}
.screener-table td {
  padding: 11px 14px;
  border-bottom: 1px solid var(--border);
  color: var(--text-70);
  vertical-align: middle;
  line-height: 1.4;
}
.screener-table tbody tr:last-child td { border-bottom: none; }
.screener-table tbody tr {
  transition: background var(--t-fast);
}
.screener-table tr:hover td { background: rgba(0,200,255,.025); }
.screener-table .company-name { font-weight: 600; color: #fff; max-width: 200px; }
.screener-table .sector-cell  { color: var(--text-40); max-width: 150px; font-size: .78rem; }

/* Risk badges */
.risk-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 9px;
  border-radius: 100px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
}
.risk-badge--High   { background: rgba(248,113,113,.12); color: #f87171; border: 1px solid rgba(248,113,113,.3); }
.risk-badge--Medium { background: rgba(251,191,36,.10);  color: #fbbf24; border: 1px solid rgba(251,191,36,.3); }
.risk-badge--Low    { background: rgba(52,211,153,.10);  color: var(--emerald); border: 1px solid rgba(52,211,153,.3); }

/* Score bar */
.score-bar {
  display: flex;
  align-items: center;
  gap: 6px;
}
.score-bar__track {
  width: 50px;
  height: 4px;
  background: #334155;
  border-radius: 2px;
  overflow: hidden;
}
.score-bar__fill {
  height: 100%;
  border-radius: 2px;
  background: var(--emerald);
  transition: width .3s;
}
.score-bar__fill--red    { background: #f87171; }
.score-bar__fill--amber  { background: #fbbf24; }

/* Regulation cards */
.reg-cards { display: flex; flex-direction: column; gap: 14px; }
.reg-card {
  background: #1e293b;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 20px 24px;
  border-left: 4px solid var(--border);
  transition: border-color .2s;
}
.reg-card--High   { border-left-color: #f87171; }
.reg-card--Medium { border-left-color: #fbbf24; }
.reg-card--Low    { border-left-color: var(--emerald); }
.reg-card__header { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 10px; flex-wrap: wrap; }
.reg-card__title  { font-weight: 600; color: #fff; font-size: .95rem; flex: 1; }
.reg-card__score  {
  font-size: .8rem; font-weight: 700;
  padding: 3px 9px; border-radius: 100px;
  background: rgba(99,102,241,.15); color: #818cf8;
  white-space: nowrap;
}
.reg-card__meta   { font-size: .78rem; color: var(--text-70); margin-bottom: 10px; }
.reg-card__body   { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 600px) { .reg-card__body { grid-template-columns: 1fr; } }
.reg-card__field  { font-size: .82rem; }
.reg-card__field strong { color: var(--emerald); display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 3px; }
.reg-card__sectors { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.reg-card__sector-pill {
  padding: 2px 9px; border-radius: 100px;
  background: rgba(52,211,153,.08);
  border: 1px solid rgba(52,211,153,.2);
  color: var(--emerald); font-size: .72rem;
}

/* Supply chain */
.sc-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 14px;
  margin-bottom: 28px;
}
.sc-summary-card {
  background: #1e293b;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 18px;
  text-align: center;
}
.sc-summary-card__val { font-size: 1.8rem; font-weight: 700; color: #fff; }
.sc-summary-card__lbl { font-size: .75rem; color: var(--text-70); margin-top: 4px; }
.sc-table-wrap { margin-top: 28px; }
.sc-section-title { font-size: .95rem; font-weight: 600; color: var(--text-70); margin-bottom: 12px; }

/* Material cards */
.material-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}
.material-card {
  background: #1e293b;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 22px;
}
.material-card__header { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.material-card__icon {
  width: 36px; height: 36px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem;
  background: rgba(52,211,153,.1);
}
.material-card__name { font-weight: 700; color: #fff; font-size: .95rem; }
.material-card__reg  { font-size: .75rem; color: var(--text-70); }
.material-card__stats { display: flex; flex-direction: column; gap: 8px; }
.material-card__stat { display: flex; justify-content: space-between; align-items: center; }
.material-card__stat-label { font-size: .8rem; color: var(--text-70); }
.material-card__stat-val   { font-size: .88rem; font-weight: 600; color: #fff; }
.material-card__epr {
  margin-top: 12px;
  padding: 5px 10px;
  border-radius: 6px;
  font-size: .75rem;
  font-weight: 600;
  text-align: center;
}
.material-card__epr--yes { background: rgba(248,113,113,.12); color: #f87171; }
.material-card__epr--no  { background: rgba(52,211,153,.10);  color: var(--emerald); }
.material-card__companies { margin-top: 10px; font-size: .75rem; color: var(--text-70); }
.material-card__companies strong { color: #fff; }

/* ── Global Search Bar ───────────────────────────────────────────────────── */
.intel-search-bar {
  padding: 20px 0 0;
}
.intel-search-wrap {
  display: flex;
  align-items: center;
  gap: 0;
  background: #1e293b;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0 16px;
  transition: border-color .2s;
}
.intel-search-wrap:focus-within { border-color: var(--emerald); }
.intel-search-icon { color: #475569; flex-shrink: 0; }
.intel-search-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: #e2e8f0;
  font-size: .95rem;
  padding: 14px 12px;
  font-family: inherit;
}
.intel-search-input::placeholder { color: #475569; }
.intel-search-btn {
  background: var(--emerald);
  color: #0f172a;
  border: none;
  border-radius: 6px;
  padding: 8px 18px;
  font-weight: 600;
  font-size: .85rem;
  cursor: pointer;
  white-space: nowrap;
  transition: background .2s;
}
.intel-search-btn:hover { background: #34d399; }

/* Search Results */
.search-results {
  background: #1e293b;
  border: 1px solid var(--border);
  border-radius: 10px;
  margin-top: 8px;
  padding: 16px;
  max-height: 500px;
  overflow-y: auto;
}
.search-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.search-query  { font-size: .85rem; color: var(--emerald); font-style: italic; }
.search-close  { background: none; border: none; color: #64748b; cursor: pointer; font-size: 1rem; }
.search-close:hover { color: #fff; }
.search-answer { background: rgba(99,102,241,.08); border: 1px solid rgba(99,102,241,.2); border-radius: 8px; padding: 14px; margin-bottom: 14px; }
.search-insight { font-size: .8rem; color: #818cf8; font-weight: 600; margin-bottom: 6px; }
.search-answer p { color: #cbd5e1; font-size: .9rem; line-height: 1.6; }
.search-section-title { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: #64748b; margin: 12px 0 8px; }
.search-companies { display: flex; flex-wrap: wrap; gap: 8px; }
.search-company-card {
  display: flex; align-items: center; gap: 8px;
  background: #0f172a; border: 1px solid var(--border);
  border-radius: 8px; padding: 8px 12px; cursor: pointer;
  transition: border-color .2s;
}
.search-company-card:hover { border-color: var(--emerald); }
.search-company-name { font-weight: 600; color: #fff; font-size: .82rem; }
.search-company-meta { font-size: .75rem; color: #64748b; }
.search-regs { padding-left: 20px; margin: 4px 0; }
.search-regs li { font-size: .82rem; color: #cbd5e1; margin-bottom: 4px; }
.search-followups { display: flex; flex-wrap: wrap; gap: 6px; }
.search-followup {
  background: rgba(52,211,153,.08); border: 1px solid rgba(52,211,153,.2);
  color: var(--emerald); border-radius: 100px; padding: 4px 12px;
  font-size: .78rem; cursor: pointer; transition: all .2s;
}
.search-followup:hover { background: rgba(52,211,153,.2); }
.search-loading { display: flex; align-items: center; gap: 10px; color: #64748b; font-size: .85rem; padding: 8px 0; }

/* ── Deep Dive Modal ─────────────────────────────────────────────────────── */
.deepdive-overlay {
  display: none;   /* hidden by default — JS adds .is-open to show */
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(0,0,0,.7);
  align-items: center; justify-content: center;
  padding: 20px;
  backdrop-filter: blur(4px);
}
.deepdive-overlay.is-open { display: flex; }
.search-results { display: none; }
.search-results.is-open { display: block; }
.deepdive-modal {
  background: #0f172a;
  border: 1px solid var(--border);
  border-radius: 14px;
  width: 100%; max-width: 780px;
  max-height: 88vh;
  display: flex; flex-direction: column;
  overflow: hidden;
}
.deepdive-header {
  display: flex; align-items: flex-start; justify-content: space-between;
  padding: 22px 24px 16px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.deepdive-company { font-family: var(--serif); font-size: 1.4rem; color: #fff; }
.deepdive-sector  { font-size: .82rem; color: var(--text-70); margin-top: 3px; }
.deepdive-header-right { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.deepdive-close {
  background: rgba(100,116,139,.15); border: none; color: #94a3b8;
  width: 30px; height: 30px; border-radius: 6px; cursor: pointer; font-size: .9rem;
}
.deepdive-close:hover { background: rgba(248,113,113,.15); color: #f87171; }
.deepdive-tabs {
  display: flex; gap: 0; border-bottom: 1px solid var(--border);
  overflow-x: auto; flex-shrink: 0;
  scrollbar-width: none;
}
.deepdive-tabs::-webkit-scrollbar { display: none; }
.dd-tab {
  padding: 10px 18px; background: transparent; border: none;
  border-bottom: 2px solid transparent; color: #64748b;
  font-size: .82rem; font-weight: 500; cursor: pointer;
  white-space: nowrap; transition: all .2s;
}
.dd-tab:hover { color: #fff; }
.dd-tab--active { color: var(--emerald); border-bottom-color: var(--emerald); }
.deepdive-body {
  overflow-y: auto; padding: 20px 24px;
  flex: 1;
}
.dd-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px; gap: 12px; color: #64748b; }
.dd-spinner {
  width: 28px; height: 28px; border: 2px solid #334155;
  border-top-color: var(--emerald); border-radius: 50%;
  animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Deep dive content */
.dd-overview-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 20px; }
@media (max-width: 600px) { .dd-overview-grid { grid-template-columns: repeat(2,1fr); } }
.dd-kpi { background: #1e293b; border-radius: 8px; padding: 14px; text-align: center; }
.dd-kpi-val { font-size: 1.1rem; font-weight: 700; color: #fff; }
.dd-kpi-val.green { color: var(--emerald); }
.dd-kpi-val.red   { color: #f87171; }
.dd-kpi-lbl { font-size: .72rem; color: #64748b; margin-top: 4px; }
.dd-section { margin-bottom: 20px; }
.dd-section-title { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: #64748b; margin-bottom: 10px; }
.dd-text { color: #cbd5e1; font-size: .88rem; line-height: 1.7; }
.dd-summary { background: rgba(52,211,153,.05); border-left: 2px solid var(--emerald); padding-left: 12px; }
.dd-insight-box { background: rgba(99,102,241,.08); border: 1px solid rgba(99,102,241,.2); border-radius: 8px; padding: 12px 14px; font-size: .85rem; color: #a5b4fc; margin-top: 12px; }
.dd-risk-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.dd-risk-pill { background: rgba(248,113,113,.1); border: 1px solid rgba(248,113,113,.2); color: #f87171; padding: 3px 10px; border-radius: 100px; font-size: .78rem; }
.dd-kv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.dd-kv { display: flex; flex-direction: column; }
.dd-kv-label { font-size: .72rem; color: #64748b; }
.dd-kv-val   { font-size: .85rem; color: #e2e8f0; }

/* Risks tab */
.dd-risk-bars { display: flex; flex-direction: column; gap: 10px; }
.dd-risk-row  { display: flex; align-items: center; gap: 10px; }
.dd-risk-label { font-size: .82rem; color: #94a3b8; width: 130px; flex-shrink: 0; }
.dd-risk-track { flex: 1; height: 6px; background: #1e293b; border-radius: 3px; overflow: hidden; }
.dd-risk-fill  { height: 100%; border-radius: 3px; background: var(--emerald); transition: width .4s; }
.dd-risk-fill--red   { background: #f87171; }
.dd-risk-fill--amber { background: #fbbf24; }
.dd-risk-score { font-size: .8rem; color: #94a3b8; width: 28px; text-align: right; }

/* Regulations tab */
.dd-reg-list { display: flex; flex-direction: column; gap: 10px; }
.dd-reg-item { background: #1e293b; border: 1px solid var(--border); border-radius: 8px; padding: 12px 14px; }
.dd-reg-name { font-weight: 600; color: #fff; font-size: .88rem; }
.dd-reg-auth { font-size: .75rem; color: #64748b; margin-top: 2px; }
.dd-reg-impact { font-size: .82rem; color: #fbbf24; margin-top: 6px; }
.dd-obligation { background: rgba(99,102,241,.06); border: 1px solid rgba(99,102,241,.15); border-radius: 8px; padding: 12px; margin-bottom: 8px; }
.dd-obligation-reg  { font-size: .72rem; color: #818cf8; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.dd-obligation-text { font-size: .85rem; color: #cbd5e1; margin: 4px 0; }
.dd-obligation-meta { display: flex; gap: 12px; font-size: .78rem; color: #64748b; }

/* Benchmarking tab */
.dd-bench-position {
  padding: 10px 14px; border-radius: 8px; font-size: .85rem; font-weight: 600; margin-bottom: 14px;
}
.bench-worse  { background: rgba(248,113,113,.1); color: #f87171; border: 1px solid rgba(248,113,113,.2); }
.bench-better { background: rgba(52,211,153,.1);  color: var(--emerald); border: 1px solid rgba(52,211,153,.2); }
.dd-peer-table { display: flex; flex-direction: column; gap: 8px; }
.dd-peer-row { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid rgba(51,65,85,.4); }
.dd-peer-row--current { background: rgba(52,211,153,.04); border-radius: 6px; padding: 8px; }
.dd-peer-name { font-size: .82rem; color: #cbd5e1; flex: 1; }
.dd-list { padding-left: 18px; margin: 6px 0; }
.dd-list li { font-size: .83rem; color: #94a3b8; margin-bottom: 4px; }

/* Actions tab */
.dd-actions-list { display: flex; flex-direction: column; gap: 10px; }
.dd-action { background: #1e293b; border: 1px solid var(--border); border-radius: 8px; padding: 14px; }
.dd-action-header { display: flex; align-items: baseline; gap: 8px; margin-bottom: 6px; }
.dd-action-priority { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.dd-action-title { font-size: .88rem; color: #e2e8f0; font-weight: 500; }
.dd-action-meta { display: flex; gap: 14px; font-size: .78rem; color: #64748b; flex-wrap: wrap; }

/* ── Double Materiality Tab ──────────────────────────────────────────────── */
.dm-intro { background:#1e293b; border:1px solid var(--border); border-radius:10px; padding:20px 24px; margin-bottom:24px; }
.dm-intro-title { font-size:1rem; font-weight:700; color:#fff; margin-bottom:8px; }
.dm-intro-text  { font-size:.85rem; color:#94a3b8; line-height:1.7; margin-bottom:12px; }
.dm-quadrant-legend { display:flex; flex-wrap:wrap; gap:8px; }
.dm-q { padding:4px 12px; border-radius:100px; font-size:.75rem; font-weight:600; }
.dm-q--dual       { background:rgba(248,113,113,.12); color:#f87171; border:1px solid rgba(248,113,113,.3); }
.dm-q--financial  { background:rgba(251,191,36,.10);  color:#fbbf24; border:1px solid rgba(251,191,36,.3); }
.dm-q--impact     { background:rgba(99,102,241,.12);  color:#818cf8; border:1px solid rgba(99,102,241,.3); }
.dm-q--watch      { background:rgba(100,116,139,.12); color:#94a3b8; border:1px solid rgba(100,116,139,.3); }

.dm-filter-row { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.dm-quadrant-table { margin-top:28px; }
.dm-quad-grid {
  display:grid;
  grid-template-columns: repeat(2,1fr);
  gap:14px;
}
@media (max-width:700px) { .dm-quad-grid { grid-template-columns:1fr; } }
.dm-quad-card { background:#1e293b; border:1px solid var(--border); border-radius:10px; padding:16px; }
.dm-quad-card--dual-materiality    { border-left:3px solid #f87171; }
.dm-quad-card--financially-material{ border-left:3px solid #fbbf24; }
.dm-quad-card--impact-material     { border-left:3px solid #6366f1; }
.dm-quad-card--watch-list          { border-left:3px solid #475569; }
.dm-quad-title { font-size:.85rem; font-weight:700; color:#fff; margin-bottom:10px; }
.dm-quad-title span { color:#64748b; font-weight:400; }
.dm-quad-companies { display:flex; flex-direction:column; gap:5px; }
.dm-quad-company { display:flex; align-items:center; justify-content:space-between; cursor:pointer; padding:4px 6px; border-radius:5px; transition:background .15s; }
.dm-quad-company:hover { background:rgba(255,255,255,.05); }
.dm-quad-company span:first-child { font-size:.8rem; color:#cbd5e1; }

/* Deep dive materiality */
.dm-dd-scores { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
@media (max-width:600px) { .dm-dd-scores { grid-template-columns:1fr; } }
.dm-dd-score-card { background:#1e293b; border-radius:8px; padding:14px; text-align:center; }
.dm-dd-score-val  { font-size:1.8rem; font-weight:700; }
.dm-dd-score-lbl  { font-size:.78rem; font-weight:600; color:#94a3b8; margin-top:4px; }
.dm-dd-score-desc { font-size:.72rem; color:#475569; margin-top:4px; line-height:1.4; }


/* ── Compare Button (screener row) ───────────────────────────────────────── */
.cmp-btn {
  width: 26px; height: 26px;
  border-radius: 6px;
  border: 1px solid rgba(255,255,255,.15);
  background: transparent;
  color: #64748b;
  font-size: .85rem;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .15s;
}
.cmp-btn:hover { border-color: var(--emerald); color: var(--emerald); }
.cmp-btn--active { background: rgba(52,211,153,.15); border-color: var(--emerald); color: var(--emerald); }

/* ── Compare Tray (fixed bottom bar) ─────────────────────────────────────── */
.cmp-tray {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: #0c1629ee;
  border-top: 1px solid rgba(52,211,153,.3);
  backdrop-filter: blur(12px);
  padding: 12px 28px;
  display: flex;
  align-items: center;
  gap: 16px;
  transform: translateY(100%);
  transition: transform .25s ease;
  z-index: 800;
  flex-wrap: wrap;
}
.cmp-tray--visible { transform: translateY(0); }
.cmp-tray__slots { display: flex; gap: 10px; flex: 1; flex-wrap: wrap; }
.cmp-slot {
  display: flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 8px;
  padding: 6px 10px;
}
.cmp-slot__score { font-weight: 800; font-size: .9rem; }
.cmp-slot__name  { font-size: .8rem; color: #cbd5e1; }
.cmp-slot__remove {
  background: none; border: none; color: #64748b;
  cursor: pointer; font-size: .85rem; padding: 0 2px;
}
.cmp-slot__remove:hover { color: #f87171; }
.cmp-tray__actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.cmp-tray__count  { font-size: .78rem; color: #64748b; }
.cmp-tray__btn {
  background: var(--emerald); color: #0a0f0a;
  border: none; border-radius: 8px;
  padding: 8px 18px; font-weight: 700; font-size: .85rem;
  cursor: pointer;
}
.cmp-tray__btn:disabled { opacity: .4; cursor: not-allowed; }
.cmp-tray__btn:not(:disabled):hover { opacity: .88; }
.cmp-tray__clear {
  background: none; border: 1px solid rgba(255,255,255,.1);
  color: #64748b; border-radius: 8px;
  padding: 7px 14px; font-size: .82rem; cursor: pointer;
}
.cmp-tray__clear:hover { color: #f87171; border-color: rgba(248,113,113,.3); }

/* ── Compare Modal ────────────────────────────────────────────────────────── */
.cmp-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.75);
  backdrop-filter: blur(6px);
  z-index: 900;
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding: 24px 16px;
  overflow-y: auto;
}
.cmp-overlay.is-open { display: flex; }
.cmp-modal {
  background: #0c1629;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 16px;
  width: 100%; max-width: 1080px;
  overflow: hidden;
}
.cmp-modal__header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.cmp-modal__title { font-size: 1.1rem; font-weight: 700; color: #e2e8f0; }
.cmp-modal__close {
  background: none; border: none; color: #64748b;
  font-size: 1.1rem; cursor: pointer; padding: 4px;
}
.cmp-modal__close:hover { color: #f87171; }
.cmp-modal__body { padding: 24px; overflow-x: auto; }

/* Compare table */
.cmp-table {
  display: flex;
  gap: 0;
  min-width: 500px;
}
.cmp-col {
  flex: 1;
  border-right: 1px solid rgba(255,255,255,.06);
}
.cmp-col:last-child { border-right: none; }
.cmp-col--label { flex: 0 0 160px; }
.cmp-cell {
  padding: 10px 14px;
  border-bottom: 1px solid rgba(255,255,255,.04);
  min-height: 44px;
  display: flex; flex-direction: column; justify-content: center;
}
.cmp-cell--head {
  background: rgba(255,255,255,.03);
  min-height: 72px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.cmp-cell--metric {
  font-size: .72rem;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 500;
}
.cmp-cell--section { border-top: 1px solid rgba(255,255,255,.07); }
.cmp-company-name   { font-size: .82rem; font-weight: 700; color: #e2e8f0; line-height: 1.3; margin-bottom: 4px; }
.cmp-company-sector { font-size: .7rem; color: #475569; line-height: 1.4; }
.cmp-big-score { font-size: 1.6rem; font-weight: 800; line-height: 1; }
.cmp-score-bar { margin-top: 4px; background: rgba(255,255,255,.06); border-radius: 2px; overflow: hidden; }
.cmp-val { font-size: .84rem; color: #cbd5e1; }

/* Share bar */
.cmp-share {
  display: flex; align-items: center; gap: 12px;
  margin-top: 20px; padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.07);
}
.cmp-share-btn {
  display: flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1);
  color: #94a3b8; border-radius: 8px;
  padding: 8px 14px; font-size: .82rem; cursor: pointer;
}
.cmp-share-btn:hover { border-color: var(--emerald); color: var(--emerald); }

/* ── Regulation Calendar ──────────────────────────────────────────────────── */
.cal-header {
  display: flex; align-items: flex-start; justify-content: space-between;
  flex-wrap: wrap; gap: 16px; margin-bottom: 28px;
}
.cal-title  { font-size: 1.15rem; font-weight: 700; color: #e2e8f0; margin-bottom: 6px; }
.cal-sub    { font-size: .84rem; color: #64748b; }
.cal-header__filters { display: flex; gap: 10px; flex-wrap: wrap; }

/* Timeline */
.cal-timeline { display: flex; flex-direction: column; gap: 32px; }
.cal-month { }
.cal-month--past .cal-month-label { color: #334155; }
.cal-month-label {
  font-size: .72rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .1em; color: var(--emerald);
  padding-bottom: 10px; border-bottom: 1px solid var(--border); margin-bottom: 12px;
}
.cal-items { display: flex; flex-direction: column; gap: 8px; }

/* Calendar item */
.cal-item {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 16px;
  transition: border-color .15s;
}
.cal-item:hover  { border-color: rgba(255,255,255,.15); }
.cal-item--past  { opacity: .55; }
.cal-item__top   {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 8px; margin-bottom: 6px;
}
.cal-cat-badge {
  padding: 2px 10px; border-radius: 12px;
  font-size: .7rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .05em;
}
.cal-urg-badge   { font-size: .72rem; font-weight: 600; }
.cal-days-label  { font-size: .72rem; color: #64748b; margin-left: auto; }
.cal-days-label--soon  { color: #fbbf24; font-weight: 600; }
.cal-days-label--today { color: #f87171; font-weight: 700; }
.cal-days-label--past  { color: #334155; }
.cal-item__date  { font-size: .78rem; color: #64748b; margin-bottom: 4px; }
.cal-item__title { font-size: .92rem; font-weight: 600; color: #e2e8f0; margin-bottom: 4px; }
.cal-item__rule  { font-size: .75rem; color: #475569; }

/* Expandable detail */
.cal-detail { margin-top: 8px; }
.cal-detail summary {
  font-size: .75rem; color: #64748b; cursor: pointer;
  list-style: none; display: inline-flex; align-items: center; gap: 4px;
}
.cal-detail summary::before { content: '▸'; }
.cal-detail[open] summary::before { content: '▾'; }
.cal-detail p {
  font-size: .8rem; color: #64748b; line-height: 1.6;
  margin-top: 6px; padding: 10px 12px;
  background: rgba(255,255,255,.03);
  border-radius: 6px;
}

/* Legend */
.cal-legend {
  display: flex; gap: 16px; flex-wrap: wrap;
  margin-top: 24px; padding-top: 16px;
  border-top: 1px solid var(--border);
}
.cal-leg {
  display: flex; align-items: center; gap: 6px;
  font-size: .75rem; color: #64748b;
}
.cal-leg::before {
  content: '';
  width: 10px; height: 10px; border-radius: 2px; flex-shrink: 0;
}
.cal-leg--critical::before { background: #f87171; }
.cal-leg--high::before     { background: #fbbf24; }
.cal-leg--medium::before   { background: #34d399; }
.cal-leg--passed::before   { background: #334155; }

/* ── Column Sort & Filter Row ────────────────────────────────────────────── */
.th-sort {
  cursor: pointer;
  user-select: none;
  transition: color .15s;
}
.th-sort:hover { color: var(--emerald); }
.th-sort--asc,
.th-sort--desc { color: var(--emerald); }
.sort-icon {
  font-size: .65rem;
  opacity: .5;
  margin-left: 3px;
}
.th-sort--asc .sort-icon,
.th-sort--desc .sort-icon { opacity: 1; }

.filter-row td {
  background: #0a1120;
  padding: 5px 6px;
  border-bottom: 2px solid var(--border-hi);
}
.col-filter {
  width: 100%;
  background: #1e293b;
  border: 1px solid var(--border);
  color: #e2e8f0;
  border-radius: 6px;
  padding: 4px 7px;
  font-size: .72rem;
  font-family: var(--sans);
  min-width: 0;
  transition: border-color .2s;
}
.col-filter:focus { outline: none; border-color: var(--emerald); }
.col-filter::placeholder { color: #64748b; }
.col-filter option {
  background: #1e293b;
  color: #e2e8f0;
}
.cf-score { max-width: 60px; text-align: center; }
.cf-reset-btn {
  background: rgba(248,113,113,.1);
  border: 1px solid rgba(248,113,113,.25);
  color: #f87171;
  border-radius: 6px;
  padding: 4px 8px;
  font-size: .68rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: all .2s;
}
.cf-reset-btn:hover { background: rgba(248,113,113,.2); }

/* -- Anomaly badges ---------------------------------------------------------- */
.anomaly-dot {
  display: inline-block;
  margin-left: 5px;
  font-size: .72rem;
  color: #fbbf24;
  cursor: default;
  vertical-align: middle;
}
.anomaly-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: .72rem;
  font-weight: 700;
  white-space: nowrap;
}
.anomaly-badge--high   { background: rgba(248,113,113,.12); color: #f87171; border: 1px solid rgba(248,113,113,.3); }
.anomaly-badge--medium { background: rgba(251,191,36,.10);  color: #fbbf24; border: 1px solid rgba(251,191,36,.3); }

/* ── ESG Heat Map redesign ───────────────────────────────────────────────── */
.hm-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.hm-title {
  font-size: 1.2rem;
  font-weight: 700;
  color: #f1f5f9;
  margin: 0 0 4px;
  letter-spacing: -.02em;
}
.hm-subtitle {
  font-size: .78rem;
  color: #64748b;
  margin: 0;
  line-height: 1.6;
}
.hm-controls {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.hm-select-wrap { position: relative; }
.hm-select-wrap::after {
  content: '▾';
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: #64748b;
  pointer-events: none;
  font-size: .75rem;
}
.hm-select-wrap select {
  -webkit-appearance: none;
  appearance: none;
  background: #1e293b;
  border: 1px solid #334155;
  color: #e2e8f0;
  font-size: .8rem;
  padding: 8px 28px 8px 12px;
  border-radius: 8px;
  cursor: pointer;
  min-width: 150px;
  font-family: inherit;
  transition: border-color .2s, box-shadow .2s;
}
.hm-select-wrap select:hover { border-color: #475569; }
.hm-select-wrap select:focus { outline: none; border-color: #10b981; box-shadow: 0 0 0 3px rgba(16,185,129,.12); }

/* KPI strip */
.hm-kpi-strip {
  display: flex;
  gap: 10px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.hm-kpi-card {
  flex: 1;
  min-width: 80px;
  background: #1e293b;
  border: 1px solid #2d3f55;
  border-radius: 10px;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  transition: border-color .2s;
}
.hm-kpi-card:hover { border-color: #475569; }
.hm-kpi-high { border-color: rgba(248,113,113,.35); background: rgba(248,113,113,.05); }
.hm-kpi-med  { border-color: rgba(251,191,36,.35);  background: rgba(251,191,36,.05);  }
.hm-kpi-low  { border-color: rgba(52,211,153,.35);  background: rgba(52,211,153,.05);  }
.hm-kpi-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: #f1f5f9;
  line-height: 1;
  letter-spacing: -.04em;
}
.hm-kpi-high .hm-kpi-value { color: #f87171; }
.hm-kpi-med  .hm-kpi-value { color: #fbbf24; }
.hm-kpi-low  .hm-kpi-value { color: #10b981; }
.hm-kpi-label {
  font-size: .68rem;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .07em;
  font-weight: 600;
}

/* Legend bar */
.hm-legend {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 11px 16px;
  background: #1e293b;
  border: 1px solid #2d3f55;
  border-top: none;
  border-radius: 0 0 8px 8px;
  flex-wrap: wrap;
}
.hm-legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .76rem;
  font-weight: 600;
}
.hm-legend-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}
.hm-legend-low  .hm-legend-dot { background: #10b981; }
.hm-legend-med  .hm-legend-dot { background: #fbbf24; }
.hm-legend-high .hm-legend-dot { background: #f87171; }
.hm-legend-low  { color: #10b981; }
.hm-legend-med  { color: #fbbf24; }
.hm-legend-high { color: #f87171; }
.hm-legend-hint {
  margin-left: auto;
  font-size: .7rem;
  color: #475569;
  font-style: italic;
}

/* ── Data Confidence Indicator (Feature #3) ──────────────────────────────────
   Four states: Assured · Reported · Estimated · Missing
   Applied to Financial Exposure KPIs in the company deep-dive and
   coverage mini-bars in the screener table.
   ──────────────────────────────────────────────────────────────────────────── */

.dc-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  vertical-align: middle;
  margin-left: 7px;
  white-space: nowrap;
}
.dc-badge::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.dc-assured   { background: rgba(52,211,153,.12); color: #34d399; border: 1px solid rgba(52,211,153,.28); }
.dc-assured::before   { background: #34d399; }
.dc-reported  { background: rgba(0,200,255,.10);  color: #00c8ff; border: 1px solid rgba(0,200,255,.25); }
.dc-reported::before  { background: #00c8ff; }
.dc-estimated { background: rgba(251,191,36,.10); color: #fbbf24; border: 1px solid rgba(251,191,36,.25); }
.dc-estimated::before { background: #fbbf24; }
.dc-missing   { background: rgba(100,116,139,.12); color: #64748b; border: 1px solid rgba(100,116,139,.25); }
.dc-missing::before   { background: #64748b; }

/* Legend strip inside deep-dive panels */
.dc-legend {
  display: flex;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
  padding: 7px 12px;
  background: rgba(255,255,255,.025);
  border-radius: 6px;
  margin-bottom: 14px;
}
.dc-legend__title {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #475569;
}
.dc-legend__item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: .72rem;
  color: #64748b;
}
.dc-legend__item .dc-badge { margin-left: 0; }

/* Coverage mini-bar in screener rows */
.dc-coverage {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 3px;
}
.dc-coverage__bar {
  width: 38px;
  height: 3px;
  background: rgba(255,255,255,.08);
  border-radius: 2px;
  overflow: hidden;
}
.dc-coverage__fill {
  height: 100%;
  border-radius: 2px;
  background: #00c8ff;
  transition: width .3s;
}
.dc-coverage__txt {
  font-size: .68rem;
  color: #475569;
  font-weight: 500;
}

/* Data coverage summary panel inside deep-dive overview */
.dc-summary-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: rgba(0,200,255,.04);
  border: 1px solid rgba(0,200,255,.12);
  border-radius: 8px;
  margin-bottom: 16px;
}
.dc-summary-row__label {
  font-size: .76rem;
  color: #64748b;
  white-space: nowrap;
}
.dc-summary-row__bar-wrap {
  flex: 1;
  height: 5px;
  background: rgba(255,255,255,.08);
  border-radius: 3px;
  overflow: hidden;
}
.dc-summary-row__bar {
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(90deg, #00c8ff, #34d399);
}
.dc-summary-row__count {
  font-size: .8rem;
  font-weight: 600;
  color: #00c8ff;
  white-space: nowrap;
}

/* Assurance provider banner inside deep-dive */
.dc-assurance-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  background: rgba(52,211,153,.06);
  border: 1px solid rgba(52,211,153,.22);
  border-radius: 8px;
  margin-bottom: 12px;
}
.dc-assurance-detail {
  font-size: .78rem;
  color: #34d399;
}

/* ── Sector Score Blending (Feature F-C) ─────────────────────────────────────

/* E/S/G sub-score pill row in deep-dive overview */
.esg-sub-scores {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  margin: 14px 0 18px;
  position: relative;
}
.esg-sub-score-meta {
  grid-column: 1 / -1;
  font-size: .72rem;
  color: #64748b;
  text-align: center;
  margin-top: -4px;
}
.esg-sub-score-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  padding: 12px 10px 10px;
  text-align: center;
}
.esg-sub-score-val {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.1;
  color: #94a3b8;
}
.esg-sub-score-val--red   { color: #f87171; }
.esg-sub-score-val--amber { color: #fbbf24; }
.esg-sub-score-val--green { color: #34d399; }
.esg-sub-score-lbl {
  font-size: .8rem;
  font-weight: 600;
  color: #cbd5e1;
  margin: 4px 0 3px;
}
.esg-sub-score-note {
  font-size: .68rem;
  color: #475569;
  line-height: 1.4;
}

/* Sector avg marker on risk bars */
.dd-risk-track {
  position: relative;
}
.dd-risk-sec-mark {
  position: absolute;
  top: 0;
  width: 2px;
  height: 100%;
  background: rgba(255,255,255,.55);
  border-radius: 1px;
  transform: translateX(-50%);
  pointer-events: none;
  z-index: 2;
}
.dd-risk-blended {
  font-size: .72rem;
  color: #818cf8;
  min-width: 28px;
  text-align: right;
  margin-left: 4px;
  font-weight: 600;
}
.dd-risk-blended-empty {
  display: inline-block;
  min-width: 28px;
}

/* E/S/G category badge on risk rows */
.dd-dim-badge {
  display: inline-block;
  font-size: .62rem;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 4px;
  margin-right: 5px;
  vertical-align: middle;
}
.dd-dim-badge--e { background: rgba(52,211,153,.18); color: #34d399; }
.dd-dim-badge--s { background: rgba(99,102,241,.18);  color: #818cf8; }
.dd-dim-badge--g { background: rgba(251,191,36,.18);  color: #fbbf24; }

/* Legend row for risk bars */
.dd-risks-legend-row {
  font-size: .72rem;
  color: #64748b;
  margin-bottom: 10px;
}
.dd-rl-mark { color: rgba(255,255,255,.55); font-weight: 700; }
.dd-rl-blend { color: #818cf8; }

/* ── Watchlist + Configurable Alerts (Feature #9) ───────────────────────────
   Watch button · Alert strip · Watchlist tab panel · Alert pref toggles
   ──────────────────────────────────────────────────────────────────────────── */

/* Star/watch button on screener rows */
.wl-btn {
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: .95rem;
  line-height: 1;
  padding: 2px 3px;
  color: #334155;
  transition: color .15s, transform .1s;
  display: block;
  margin-top: 4px;
}
.wl-btn:hover { color: #fbbf24; transform: scale(1.15); }
.wl-btn--active { color: #fbbf24; }

/* Tab badge (alert count) */
.wl-tab-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 17px;
  height: 17px;
  background: #f87171;
  color: #fff;
  border-radius: 50%;
  font-size: .65rem;
  font-weight: 700;
  margin-left: 5px;
  vertical-align: middle;
}

/* Alert strip */
.wl-alert-strip {
  background: rgba(251,191,36,.08);
  border-bottom: 1px solid rgba(251,191,36,.2);
  padding: 10px 0;
}
.wl-alert-inner {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.wl-alert-icon { color: #fbbf24; flex-shrink: 0; margin-top: 2px; }
.wl-alert-body { flex: 1; }
.wl-alert-title {
  font-size: .82rem;
  font-weight: 700;
  color: #fbbf24;
  margin-bottom: 4px;
}
.wl-alert-items { list-style: none; padding: 0; margin: 0; }
.wl-alert-items li {
  font-size: .8rem;
  color: #cbd5e1;
  padding: 2px 0;
}
.wl-alert-items li::before { content: '• '; color: #fbbf24; }
.wl-alert-dismiss {
  background: transparent;
  border: 1px solid rgba(251,191,36,.3);
  border-radius: 4px;
  color: #fbbf24;
  font-size: .72rem;
  padding: 4px 10px;
  cursor: pointer;
  flex-shrink: 0;
  transition: background .15s;
}
.wl-alert-dismiss:hover { background: rgba(251,191,36,.1); }

/* Watchlist tab panel */
.wl-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}
.wl-panel-title {
  font-family: var(--serif, Georgia, serif);
  font-size: 1.4rem;
  color: #fff;
}
.wl-panel-sub { font-size: .82rem; color: #64748b; margin-top: 4px; }

/* Empty state */
.wl-empty-state {
  text-align: center;
  padding: 80px 24px;
  color: #475569;
}
.wl-empty-state__icon { font-size: 2.8rem; margin-bottom: 16px; opacity: .4; }
.wl-empty-state__title { font-size: 1rem; color: #64748b; margin-bottom: 8px; }
.wl-empty-state__sub { font-size: .85rem; line-height: 1.6; }

/* Watchlist company grid */
.wl-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
}

/* Watchlist card */
.wl-card {
  background: #0c1629;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 12px;
  padding: 20px;
  transition: border-color .15s;
  position: relative;
}
.wl-card:hover { border-color: rgba(0,200,255,.2); }
.wl-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.wl-card__name {
  font-size: .92rem;
  font-weight: 600;
  color: #fff;
  line-height: 1.3;
  cursor: pointer;
}
.wl-card__name:hover { color: #00c8ff; }
.wl-card__sector {
  font-size: .72rem;
  color: #475569;
  margin-top: 3px;
}
.wl-card__remove {
  background: transparent;
  border: none;
  color: #334155;
  cursor: pointer;
  font-size: 1rem;
  padding: 2px;
  transition: color .15s;
  flex-shrink: 0;
}
.wl-card__remove:hover { color: #f87171; }
.wl-card__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.wl-card__risk-label {
  font-size: .72rem;
  color: #475569;
}
.wl-card__top-risk {
  font-size: .78rem;
  color: #94a3b8;
  border-top: 1px solid rgba(255,255,255,.06);
  padding-top: 10px;
  margin-top: 6px;
}
.wl-card__top-risk strong { color: #64748b; font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; display: block; margin-bottom: 3px; }

/* Alert pref toggles */
.wl-prefs {
  border-top: 1px solid rgba(255,255,255,.06);
  padding-top: 12px;
  margin-top: 10px;
}
.wl-prefs__title {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #475569;
  margin-bottom: 8px;
}
.wl-prefs__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 4px 0;
}
.wl-prefs__label { font-size: .78rem; color: #64748b; }
.wl-toggle {
  position: relative;
  width: 32px;
  height: 18px;
  flex-shrink: 0;
}
.wl-toggle input { opacity: 0; width: 0; height: 0; }
.wl-toggle__slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background: #1e293b;
  border-radius: 9px;
  transition: background .2s;
}
.wl-toggle__slider::before {
  content: '';
  position: absolute;
  width: 12px;
  height: 12px;
  left: 3px;
  top: 3px;
  background: #475569;
  border-radius: 50%;
  transition: transform .2s, background .2s;
}
.wl-toggle input:checked + .wl-toggle__slider { background: rgba(0,200,255,.25); }
.wl-toggle input:checked + .wl-toggle__slider::before { transform: translateX(14px); background: #00c8ff; }

/* Change indicator on watchlist card */
.wl-card__change {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: .72rem;
  padding: 2px 8px;
  border-radius: 999px;
  margin-left: 6px;
}
.wl-card__change--up   { background: rgba(248,113,113,.12); color: #f87171; }
.wl-card__change--down { background: rgba(52,211,153,.12);  color: #34d399; }
.wl-card__change--flat { background: rgba(100,116,139,.12); color: #64748b; }
.wl-card__change--tier { background: rgba(251,191,36,.12);  color: #fbbf24; }

/* Alert state on card */
.wl-card--alert {
  border-color: rgba(251,191,36,.35);
  box-shadow: 0 0 0 1px rgba(251,191,36,.15);
}
.wl-card__alert-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: .7rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(251,191,36,.12);
  color: #fbbf24;
  margin-left: 6px;
}

/* Tab badge for unread alerts */
.wl-tab-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 999px;
  background: #fbbf24;
  color: #03060d;
  font-size: .65rem;
  font-weight: 700;
  margin-left: 5px;
  vertical-align: middle;
}

@media (max-width: 640px) {
  .wl-grid { grid-template-columns: 1fr; }
}

/* ── BRSR Filing Tracker ──────────────────────────────────────────────────── */
.ft-kpi-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}
.ft-kpi {
  flex: 1 1 130px;
  background: #0c1629;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 12px;
  padding: 18px 20px;
  text-align: center;
}
.ft-kpi__val {
  font-size: 1.7rem;
  font-family: var(--serif);
  font-weight: 400;
  color: #fff;
  line-height: 1.1;
  margin-bottom: 6px;
}
.ft-kpi__lbl { font-size: .72rem; color: #64748b; text-transform: uppercase; letter-spacing: .06em; }
.ft-kpi--green .ft-kpi__val { color: #34d399; }
.ft-kpi--amber .ft-kpi__val { color: #fbbf24; }
.ft-kpi--red   .ft-kpi__val { color: #f87171; }
.ft-kpi--cyan  .ft-kpi__val { color: #00c8ff; }

.ft-controls {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 16px;
}

/* Assurance badge */
.ft-ass-badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 600;
}
.ft-ass--full    { background: rgba(52,211,153,.12); color: #34d399; }
.ft-ass--partial { background: rgba(251,191,36,.12); color: #fbbf24; }
.ft-ass--none    { background: rgba(100,116,139,.1); color: #64748b; }

/* Mandate badge */
.ft-mandate-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: .7rem;
  font-weight: 700;
}
.ft-mandate--top250 { background: rgba(0,200,255,.1); color: #00c8ff; }
.ft-mandate--other  { background: rgba(71,85,105,.12); color: #475569; }

/* BRSR Core status */
.ft-status { font-size: .75rem; font-weight: 600; }
.ft-status--ready   { color: #34d399; }
.ft-status--partial { color: #fbbf24; }
.ft-status--gap     { color: #f87171; }
.ft-status--na      { color: #475569; }

/* CIN link */
.ft-cin-link {
  font-size: .68rem;
  color: #334155;
  text-decoration: none;
  font-family: monospace;
  letter-spacing: .01em;
}
.ft-cin-link:hover { color: #00c8ff; text-decoration: underline; }

/* ── Filing Deadline Countdown Strip ──────────────────────────────────────── */
.ft-deadline-strip {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.ft-dl-item {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1 1 220px;
  padding: 14px 18px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.07);
  background: #0c1629;
}
.ft-dl-days {
  font-size: 1.55rem;
  font-family: var(--serif);
  font-weight: 400;
  min-width: 52px;
  text-align: center;
  line-height: 1;
}
.ft-dl-label { font-size: .82rem; color: #cbd5e1; font-weight: 600; margin-bottom: 3px; }
.ft-dl-who   { font-size: .72rem; color: #475569; }
.ft-dl--urgent { border-color: rgba(248,113,113,.25); }
.ft-dl--urgent .ft-dl-days { color: #f87171; }
.ft-dl--ok { border-color: rgba(52,211,153,.15); }
.ft-dl--ok .ft-dl-days { color: #34d399; }
.ft-dl--passed { opacity: .5; }
.ft-dl--passed .ft-dl-days { color: #475569; font-size: 1rem; }

/* ── F-E: Assured vs Standard Score Track ─────────────────────────────────── */

/* Screener score-track toggle button */
.stc-btn {
  padding: 6px 14px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 6px;
  color: #94a3b8;
  font-size: .78rem;
  font-weight: 500;
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
  white-space: nowrap;
}
.stc-btn:hover { background: rgba(255,255,255,.09); color: #e2e8f0; }
.stc-btn--active {
  background: rgba(129,140,248,.15);
  border-color: rgba(129,140,248,.35);
  color: #818cf8;
}

/* Score Track Comparison widget in deep-dive overview */
.stc-compare {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-template-rows: auto auto;
  gap: 0 12px;
  align-items: center;
  padding: 14px 16px;
  background: rgba(129,140,248,.05);
  border: 1px solid rgba(129,140,248,.14);
  border-radius: 10px;
  margin: 14px 0 18px;
}
.stc-card {
  text-align: center;
  padding: 10px 8px;
}
.stc-label {
  font-size: .7rem;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 4px;
}
.stc-val {
  font-size: 2rem;
  font-weight: 700;
  color: #94a3b8;
  line-height: 1.1;
}
.stc-val--red   { color: #f87171; }
.stc-val--amber { color: #fbbf24; }
.stc-val--green { color: #34d399; }
.stc-note {
  font-size: .68rem;
  color: #475569;
  margin-top: 4px;
  line-height: 1.4;
}
.stc-divider {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.stc-diff {
  font-size: 1rem;
  font-weight: 700;
}
.stc-diff--same { color: #475569; }
.stc-arrow { font-size: 1.2rem; color: #334155; }

/* Confidence bar */
.stc-confidence {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,.05);
}
.stc-conf-label { font-size: .7rem; color: #475569; white-space: nowrap; }
.stc-conf-bar-wrap {
  flex: 1;
  height: 4px;
  background: rgba(255,255,255,.07);
  border-radius: 2px;
  overflow: hidden;
}
.stc-conf-bar {
  height: 100%;
  border-radius: 2px;
  transition: width .4s;
}
.stc-conf-pct {
  font-size: .72rem;
  font-weight: 600;
  color: #64748b;
  min-width: 30px;
  text-align: right;
}

/* ── F-D: Live BRSR Filing Feed ──────────────────────────────────────────── */

/* "NEW BRSR" badge on screener rows */
.ft-new-badge {
  display: inline-block;
  font-size: .6rem;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 4px;
  background: rgba(52,211,153,.16);
  color: #34d399;
  border: 1px solid rgba(52,211,153,.3);
  margin-left: 5px;
  vertical-align: middle;
  animation: ft-pulse 2.4s ease-in-out infinite;
}
@keyframes ft-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .6; }
}

/* "New BRSR Filing" alert banner in the deep-dive panel */
.ft-dd-alert {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 16px;
  background: rgba(52,211,153,.07);
  border: 1px solid rgba(52,211,153,.25);
  border-radius: 10px;
  margin-bottom: 16px;
}
.ft-dd-alert__badge {
  display: inline-block;
  font-size: .65rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 4px;
  background: #34d399;
  color: #0a1628;
  width: fit-content;
}
.ft-dd-alert__text {
  font-size: .82rem;
  color: #cbd5e1;
  line-height: 1.5;
}
.ft-dd-alert__link {
  color: #34d399;
  text-decoration: underline;
}
.ft-dd-alert__note {
  font-size: .72rem;
  color: #475569;
}
.ft-dd-alert__note code {
  font-family: monospace;
  color: #64748b;
}

/* Recent filings section header in Filing Tracker tab */
.ft-recent-section {
  margin-bottom: 28px;
}
.ft-recent-header {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 12px;
}
.ft-recent-title {
  font-size: .9rem;
  font-weight: 600;
  color: #e2e8f0;
  margin: 0;
}
.ft-recent-hint {
  font-size: .72rem;
  color: #475569;
}
.ft-recent-hint code {
  color: #64748b;
  font-family: monospace;
}

/* Feed meta line */
.ft-feed-meta {
  font-size: .76rem;
  color: #64748b;
  margin-bottom: 10px;
}

/* Empty state */
.ft-feed-empty {
  padding: 20px;
  background: rgba(255,255,255,.02);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 8px;
  font-size: .82rem;
  color: #475569;
  line-height: 1.6;
}
.ft-feed-hint { color: #334155; font-size: .76rem; margin-top: 6px; }

/* Feed items */
.ft-feed-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ft-feed-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 14px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.ft-feed-item:hover {
  border-color: rgba(52,211,153,.25);
  background: rgba(52,211,153,.04);
}
.ft-feed-item__left {
  display: flex;
  flex-direction: column;
  min-width: 220px;
  max-width: 260px;
}
.ft-feed-item__name {
  font-size: .82rem;
  font-weight: 600;
  color: #e2e8f0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ft-feed-item__sector {
  font-size: .7rem;
  color: #475569;
}
.ft-feed-item__center {
  flex: 1;
  min-width: 0;
}
.ft-feed-item__headline {
  font-size: .76rem;
  color: #64748b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}
.ft-feed-item__right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.ft-feed-item__date {
  font-size: .72rem;
  color: #475569;
  white-space: nowrap;
}
.ft-feed-item__link {
  font-size: .72rem;
  color: #34d399;
  text-decoration: none;
  white-space: nowrap;
}
.ft-feed-item__link:hover { text-decoration: underline; }

/* ── BRSR Improvement Plan (CAP) ──────────────────────────────────────────── */
.cap-controls {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.cap-select { min-width: 300px; max-width: 480px; }

.cap-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  background: #0c1629;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 12px;
  padding: 20px 24px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.cap-header__name { font-size: 1.05rem; font-weight: 700; color: #f1f5f9; margin-bottom: 4px; }
.cap-header__meta { font-size: .8rem; color: #64748b; }
.cap-header__right { display: flex; align-items: center; gap: 14px; }

.cap-score-ring svg { display: block; }

.cap-badge {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 700;
}
.cap-badge--high   { background: rgba(248,113,113,.12); color: #f87171; }
.cap-badge--medium { background: rgba(251,191,36,.12);  color: #fbbf24; }
.cap-badge--low    { background: rgba(52,211,153,.12);  color: #34d399; }

.cap-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
}
.cap-card {
  background: #0c1629;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 12px;
  padding: 18px;
  transition: border-color .2s;
}
.cap-card--wip  { border-color: rgba(251,191,36,.3);  background: rgba(251,191,36,.03); }
.cap-card--done { border-color: rgba(52,211,153,.25); background: rgba(52,211,153,.03); opacity: .65; }

.cap-card__top {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.cap-pri {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: .67rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.cap-pri--high   { background: rgba(248,113,113,.15); color: #f87171; }
.cap-pri--medium { background: rgba(251,191,36,.12);  color: #fbbf24; }
.cap-pri--low    { background: rgba(52,211,153,.1);   color: #34d399; }

.cap-cat {
  font-size: .72rem;
  color: #64748b;
  padding: 2px 8px;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 999px;
}
.cap-status-sel {
  margin-left: auto;
  background: #071022;
  border: 1px solid rgba(255,255,255,.12);
  color: #cbd5e1;
  border-radius: 6px;
  padding: 3px 8px;
  font-size: .74rem;
  cursor: pointer;
}
.cap-card__title { font-size: .9rem; font-weight: 600; color: #f1f5f9; margin-bottom: 8px; line-height: 1.4; }
.cap-card__desc  { font-size: .8rem; color: #94a3b8; line-height: 1.6; margin-bottom: 12px; }
.cap-card__footer {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.cap-meta {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: .73rem;
  color: #475569;
}
.cap-meta svg { flex-shrink: 0; }
.cap-meta--cost { color: #34d399; }

/* ── Controversy Feed ──────────────────────────────────────────────────────── */
.ctv-feed {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ctv-card {
  background: #0c1629;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px;
  padding: 16px 18px;
  transition: border-color .2s;
}
.ctv-card:hover { border-color: rgba(255,255,255,.14); }
.ctv-card__badges { display: flex; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.ctv-sev {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: .67rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.ctv-sev--high   { background: rgba(248,113,113,.15); color: #f87171; }
.ctv-sev--medium { background: rgba(251,191,36,.12);  color: #fbbf24; }
.ctv-sev--low    { background: rgba(52,211,153,.1);   color: #34d399; }

.ctv-type-badge {
  font-size: .67rem;
  padding: 2px 9px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.1);
  color: #94a3b8;
}
.ctv-type--env { border-color: rgba(52,211,153,.3);  color: #34d399; }
.ctv-type--reg { border-color: rgba(248,113,113,.3); color: #f87171; }
.ctv-type--gov { border-color: rgba(99,102,241,.3);  color: #818cf8; }
.ctv-type--soc { border-color: rgba(251,191,36,.3);  color: #fbbf24; }

.ctv-card__title { font-size: .9rem; font-weight: 600; color: #e2e8f0; margin-bottom: 5px; }
.ctv-card__desc  { font-size: .8rem; color: #94a3b8; line-height: 1.55; margin-bottom: 10px; }
.ctv-card__footer {
  display: flex;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
  font-size: .75rem;
}
.ctv-company {
  color: #00c8ff;
  cursor: pointer;
  font-weight: 600;
}
.ctv-company:hover { text-decoration: underline; }
.ctv-sector { color: #475569; }
.ctv-score  { color: #64748b; }
.ctv-date   { color: #334155; margin-left: auto; }

/* ── BRSR Excellence Badge ─────────────────────────────────────────────────── */
.badge-disclaimer {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  background: rgba(251,191,36,.05);
  border: 1px solid rgba(251,191,36,.18);
  border-radius: 8px;
  padding: 10px 16px;
  font-size: .78rem;
  color: #fbbf24;
  margin-bottom: 24px;
  line-height: 1.5;
}
.badge-tiers {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}
.badge-tier {
  flex: 1 1 160px;
  background: #0c1629;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 12px;
  padding: 18px;
  text-align: center;
}
.badge-tier__icon { font-size: 1.8rem; margin-bottom: 8px; }
.badge-tier__name { font-size: .88rem; font-weight: 700; color: #f1f5f9; margin-bottom: 4px; }
.badge-tier__desc { font-size: .74rem; color: #64748b; }
.badge-tier--gold   { border-color: rgba(74,222,128,.2); }
.badge-tier--silver { border-color: rgba(129,140,248,.2); }
.badge-tier--bronze { border-color: rgba(251,191,36,.2); }

.badge-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
}
.badge-co-card {
  background: #0c1629;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px;
  padding: 14px;
  cursor: pointer;
  transition: border-color .2s, transform .15s;
}
.badge-co-card:hover { border-color: rgba(52,211,153,.3); transform: translateY(-2px); }
.badge-co-preview { margin-bottom: 10px; line-height: 0; }
.badge-co-preview svg { border-radius: 8px; max-width: 100%; }
.badge-co-name { font-size: .8rem; font-weight: 600; color: #e2e8f0; margin-bottom: 3px; }
.badge-co-meta { font-size: .72rem; color: #475569; }

.badge-embed-panel {
  margin-top: 28px;
  background: #0c1629;
  border: 1px solid rgba(52,211,153,.25);
  border-radius: 12px;
  padding: 20px 24px;
}
.badge-embed__title { font-size: .9rem; font-weight: 700; color: #34d399; margin-bottom: 12px; }
.badge-embed__code {
  background: #071022;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px;
  padding: 14px;
  font-size: .74rem;
  color: #94a3b8;
  overflow-x: auto;
  white-space: pre;
  font-family: 'Consolas', 'Monaco', monospace;
  margin-bottom: 0;
}
.badge-embed__note {
  margin-top: 12px;
  font-size: .75rem;
  color: #475569;
  line-height: 1.5;
}

/* ── India ESG Market Map ──────────────────────────────────────────────────── */
.mm-sector-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px;
  margin-top: 24px;
}
.mm-sector-card {
  background: #0c1629;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 8px;
  padding: 12px 14px;
}
.mm-sector-name  { font-size: .8rem; font-weight: 600; color: #e2e8f0; margin-bottom: 6px; }
.mm-sector-stats { display: flex; gap: 10px; font-size: .73rem; color: #64748b; flex-wrap: wrap; }

/* ── F-A: Supplier ESG Tracker tab ────────────────────────────────────────── */

/* Link generator card */
.supp-link-card {
  background: #0c1629;
  border: 1px solid rgba(0,200,255,.15);
  border-radius: 12px;
  padding: 20px 24px;
  margin-bottom: 20px;
}
.supp-link-header { margin-bottom: 14px; }
.supp-link-title  { font-size: .95rem; font-weight: 700; color: #e2e8f0; margin-bottom: 4px; }
.supp-link-sub    { font-size: .8rem; color: #64748b; }
.supp-link-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.supp-link-input {
  flex: 1;
  min-width: 200px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px;
  color: #e2e8f0;
  font-size: .88rem;
  padding: 9px 13px;
}
.supp-link-input:focus { outline: none; border-color: rgba(0,200,255,.35); }
.supp-gen-btn {
  background: linear-gradient(135deg, #34d399, #00c8ff);
  border: none;
  border-radius: 8px;
  color: #04101f;
  cursor: pointer;
  font-size: .85rem;
  font-weight: 700;
  padding: 9px 20px;
  white-space: nowrap;
  transition: opacity .15s;
}
.supp-gen-btn:hover { opacity: .85; }

/* Generated URL output */
.supp-link-output {
  margin-top: 14px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 8px;
  padding: 12px 14px;
}
.supp-link-url-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.supp-link-url {
  flex: 1;
  font-size: .8rem;
  color: #00c8ff;
  font-family: 'Consolas', monospace;
  word-break: break-all;
  line-height: 1.4;
}
.supp-copy-btn {
  background: rgba(0,200,255,.1);
  border: 1px solid rgba(0,200,255,.25);
  border-radius: 6px;
  color: #00c8ff;
  cursor: pointer;
  font-size: .78rem;
  font-weight: 600;
  padding: 5px 14px;
  white-space: nowrap;
  transition: background .15s;
}
.supp-copy-btn:hover { background: rgba(0,200,255,.18); }
.supp-copy-btn--done { background: rgba(52,211,153,.12); border-color: rgba(52,211,153,.3); color: #34d399; }
.supp-link-hint { font-size: .76rem; color: #475569; line-height: 1.5; }

/* KPI row */
.supp-kpi-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  background: #0c1629;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 16px;
}
.supp-kpi {
  padding: 16px 18px;
  border-right: 1px solid rgba(255,255,255,.06);
  text-align: center;
}
.supp-kpi:last-child { border-right: none; }
.supp-kpi__val {
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 1.45rem;
  background: linear-gradient(90deg, #34d399, #00c8ff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
  margin-bottom: 4px;
}
.supp-kpi__lbl { font-size: .72rem; color: #64748b; line-height: 1.3; }

/* MSME tag */
.supp-msme-tag {
  display: inline-block;
  background: rgba(251,191,36,.1);
  border: 1px solid rgba(251,191,36,.25);
  border-radius: 4px;
  color: #fbbf24;
  font-size: .68rem;
  font-weight: 700;
  padding: 1px 6px;
  margin-left: 4px;
  vertical-align: middle;
}

/* Empty state */
.supp-empty-state {
  text-align: center;
  padding: 60px 24px;
  color: #475569;
}
.supp-empty-icon  { font-size: 2.5rem; margin-bottom: 14px; opacity: .4; }
.supp-empty-title { font-size: .95rem; color: #64748b; margin-bottom: 8px; font-weight: 600; }
.supp-empty-sub   { font-size: .83rem; line-height: 1.6; }

@media (max-width: 900px) {
  .supp-kpi-row { grid-template-columns: repeat(3, 1fr); }
  .supp-kpi:nth-child(3) { border-right: none; }
  .supp-kpi:nth-child(4) { border-top: 1px solid rgba(255,255,255,.06); }
}

@media (max-width: 640px) {
  .cap-grid { grid-template-columns: 1fr; }
  .badge-grid { grid-template-columns: 1fr; }
  .mm-sector-grid { grid-template-columns: 1fr 1fr; }
  .cap-select { min-width: 100%; }
  .supp-kpi-row { grid-template-columns: 1fr 1fr; }
  .supp-link-row { flex-direction: column; }
  .supp-link-input { min-width: 100%; }
}

/* ── P2-A: Net Zero Trajectory ───────────────────────────────────────────────*/

.nz-kpi-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 6px;
}
.nz-kpi {
  padding: 16px 18px;
  border-right: 1px solid rgba(255,255,255,.06);
  background: rgba(12,22,41,.35);
}
.nz-kpi:last-child { border-right: none; }
.nz-kpi--align { background: rgba(12,22,41,.55); }
.nz-kpi__val {
  font-size: 1.2rem;
  font-weight: 700;
  color: #e2e8f0;
  line-height: 1.2;
  margin-bottom: 5px;
}
.nz-kpi__lbl { font-size: .75rem; color: #64748b; }

.nz-proxy-note {
  font-size: .78rem;
  color: #fbbf24;
  background: rgba(251,191,36,.08);
  border: 1px solid rgba(251,191,36,.2);
  border-radius: 6px;
  padding: 8px 12px;
  margin: 10px 0;
}

.nz-legend-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  padding: 4px 0 12px;
}
.nz-leg {
  font-size: .74rem;
  color: #94a3b8;
  display: flex;
  align-items: center;
  gap: 6px;
}
.nz-leg::before {
  content: '';
  display: inline-block;
  width: 22px;
  height: 2px;
  border-radius: 1px;
}
.nz-leg--bau::before    { background: #f87171; }
.nz-leg--1p5::before    { background: #34d399; }
.nz-leg--2deg::before   { background: #fbbf24; }
.nz-leg--target::before { background: #00c8ff; }

.nz-insight-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 12px;
}
.nz-insight-card {
  background: rgba(12,22,41,.45);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 8px;
  padding: 14px 16px;
}
.nz-insight-card__label { font-size: .74rem; color: #64748b; margin-bottom: 6px; }
.nz-insight-card__val   { font-size: 1.05rem; font-weight: 700; color: #e2e8f0; margin-bottom: 3px; }
.nz-insight-card__sub   { font-size: .71rem; color: #475569; }

.nz-no-data {
  text-align: center;
  padding: 48px 24px;
  color: #475569;
}
.nz-no-data__icon  { font-size: 2.5rem; margin-bottom: 12px; opacity: .4; }
.nz-no-data__title { font-size: .95rem; color: #64748b; font-weight: 600; margin-bottom: 8px; }
.nz-no-data__sub   { font-size: .82rem; line-height: 1.6; max-width: 480px; margin: 0 auto; }

@media (max-width: 900px) {
  .nz-kpi-row { grid-template-columns: repeat(2, 1fr); }
  .nz-kpi:nth-child(2) { border-right: none; }
  .nz-kpi:nth-child(3) { border-top: 1px solid rgba(255,255,255,.06); }
  .nz-insight-row { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .nz-kpi-row { grid-template-columns: 1fr 1fr; }
  .nz-insight-row { grid-template-columns: 1fr; }
}

/* ── P2-B: ESG Score Decomposition Waterfall ─────────────────────────────────*/

.wf-summary-row {
  display: flex;
  gap: 12px;
  margin-bottom: 4px;
}
.wf-total-card {
  background: rgba(12,22,41,.45);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 10px;
  padding: 16px 20px;
  min-width: 160px;
  text-align: center;
}
.wf-total-card--sec { opacity: .85; }
.wf-total-card__label { font-size: .74rem; color: #64748b; margin-bottom: 6px; }
.wf-total-card__score { font-size: 2rem; font-weight: 800; line-height: 1; margin-bottom: 8px; }
.wf-total-card__tag   { display: inline-block; font-size: .72rem; font-weight: 600; padding: 3px 10px; border-radius: 20px; }

.wf-dim-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 8px;
  font-size: .82rem;
}
.wf-dim-table th {
  text-align: left;
  color: #475569;
  font-weight: 500;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: 6px 8px 6px 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.wf-dim-table td {
  padding: 8px 8px 8px 0;
  border-bottom: 1px solid rgba(255,255,255,.04);
  vertical-align: middle;
}
.wf-dim-table tr:last-child td { border-bottom: none; }

.wf-missing-note {
  font-size: .78rem;
  color: #fbbf24;
  background: rgba(251,191,36,.07);
  border: 1px solid rgba(251,191,36,.18);
  border-radius: 6px;
  padding: 8px 12px;
  margin-top: 10px;
}

@media (max-width: 640px) {
  .wf-summary-row { flex-direction: column; }
  .wf-total-card  { min-width: unset; }
}

/* ── P2-C: Sector ESG Distribution ──────────────────────────────────────────*/

.sd-controls {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.sd-sector-select { min-width: 220px; }

.sd-stats-row {
  display: flex;
  gap: 0;
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 10px;
  overflow: hidden;
  margin: 6px 0;
}
.sd-stat {
  flex: 1;
  padding: 12px 14px;
  border-right: 1px solid rgba(255,255,255,.06);
  background: rgba(12,22,41,.35);
  text-align: center;
}
.sd-stat:last-child { border-right: none; }
.sd-stat__val { font-size: 1rem; font-weight: 700; color: #e2e8f0; }
.sd-stat__lbl { font-size: .7rem; color: #64748b; margin-top: 3px; }

.sd-outlier-row {
  margin: 8px 0 12px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.sd-outlier-title {
  font-size: .75rem;
  color: #64748b;
  font-weight: 500;
  margin-right: 4px;
  flex-basis: 100%;
}
.sd-outlier-chip {
  font-size: .75rem;
  padding: 3px 10px;
  border-radius: 20px;
  border: 1px solid;
  background: transparent;
}
.sd-outlier-chip b { margin-left: 5px; }

@media (max-width: 900px) {
  .sd-stats-row { flex-wrap: wrap; }
  .sd-stat { flex: 1 1 30%; }
}
@media (max-width: 640px) {
  .sd-sector-select { min-width: 100%; }
  .sd-stat { flex: 1 1 45%; }
}

/* ── P2-D: BRSR Disclosure Heatmap ──────────────────────────────────────────*/

.bh-controls {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.bh-sector-select { min-width: 220px; }

.bh-chart-wrap { width: 100%; }

.bh-trunc-note {
  font-size: .76rem;
  color: #fbbf24;
  background: rgba(251,191,36,.07);
  border: 1px solid rgba(251,191,36,.15);
  border-radius: 6px;
  padding: 7px 12px;
  margin-bottom: 10px;
}

.bh-legend-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.bh-leg {
  font-size: .73rem;
  color: #94a3b8;
  display: flex;
  align-items: center;
  gap: 6px;
}
.bh-leg::before {
  content: '';
  width: 14px;
  height: 14px;
  border-radius: 3px;
  display: inline-block;
}
.bh-leg--low::before  { background: rgba(52,211,153,.45); }
.bh-leg--med::before  { background: rgba(251,191,36,.45); }
.bh-leg--high::before { background: rgba(248,113,113,.45); }
.bh-leg--na::before   { background: #1a2540; border: 1px solid #2d3f5e; }

.bh-scroll-wrap { overflow-x: auto; }

.bh-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .78rem;
  min-width: 640px;
}
.bh-th {
  padding: 7px 8px;
  color: #475569;
  font-size: .7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  border-bottom: 1px solid rgba(255,255,255,.06);
  white-space: nowrap;
  text-align: center;
}
.bh-th--name { text-align: left; min-width: 180px; }

.bh-row {
  cursor: pointer;
  transition: background .12s;
}
.bh-row:hover { background: rgba(255,255,255,.03); }

.bh-name {
  padding: 6px 8px 6px 0;
  color: #cbd5e1;
  border-bottom: 1px solid rgba(255,255,255,.04);
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bh-cell {
  width: 60px;
  padding: 5px 4px;
  text-align: center;
  font-size: .72rem;
  font-weight: 600;
  border-bottom: 1px solid rgba(255,255,255,.04);
  border-left: 2px solid rgba(12,22,41,.8);
  transition: opacity .12s;
}
.bh-row:hover .bh-cell { opacity: .85; }

.bh-total {
  padding: 6px 10px;
  text-align: center;
  font-weight: 700;
  font-size: .8rem;
  border-bottom: 1px solid rgba(255,255,255,.04);
  border-left: 2px solid rgba(12,22,41,.8);
}
.bh-cov {
  padding: 6px 10px;
  text-align: center;
  font-size: .75rem;
  color: #64748b;
  border-bottom: 1px solid rgba(255,255,255,.04);
}

@media (max-width: 640px) {
  .bh-sector-select { min-width: 100%; }
  .bh-controls { flex-direction: column; align-items: stretch; }
}

/* ── P2-E: Sector Percentile Badge ──────────────────────────────────────────*/

.pct-badge {
  display: inline-block;
  font-size: .78rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
  white-space: nowrap;
}
.pct-badge sup { font-size: .58em; vertical-align: super; }
.pct-badge--high { background: rgba(248,113,113,.12); color: #f87171; border: 1px solid rgba(248,113,113,.25); }
.pct-badge--mid  { background: rgba(251,191,36,.10);  color: #fbbf24; border: 1px solid rgba(251,191,36,.25); }
.pct-badge--low  { background: rgba(52,211,153,.10);  color: #34d399; border: 1px solid rgba(52,211,153,.25); }
.pct-badge--na   { background: transparent; color: #475569; border: 1px solid rgba(255,255,255,.06); }

.dd-kpi-sub { font-size: .68rem; color: #475569; margin-top: 3px; }

/* ── P3-A: Water & Waste Peer Benchmarking ───────────────────────────────────*/

.ww-stat-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 4px;
}
.ww-stat-card {
  background: rgba(12,22,41,.45);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 10px;
  padding: 16px 18px;
}
.ww-stat-card__label { font-size: .76rem; color: #64748b; margin-bottom: 8px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.ww-stat-card__score { font-size: 1.8rem; font-weight: 800; line-height: 1; margin-bottom: 10px; }
.ww-stat-card__row   { display: flex; justify-content: space-between; font-size: .78rem; color: #64748b; padding: 3px 0; border-bottom: 1px solid rgba(255,255,255,.04); }
.ww-stat-card__row:last-of-type { border-bottom: none; }
.ww-stat-card__row b { color: #e2e8f0; }
.ww-stat-card__flag  { font-size: .75rem; font-weight: 600; margin-top: 10px; }
.ww-stat-card__raw   { font-size: .72rem; color: #475569; margin-top: 6px; }
.ww-stat-card__na    { color: #475569; font-size: .82rem; padding: 20px 0; }

@media (max-width: 640px) {
  .ww-stat-row { grid-template-columns: 1fr; }
}

/* ── P3-E: ESG Data Completeness Advisor ─────────────────────────────────────*/

.dg-summary-row {
  display: grid;
  grid-template-columns: auto auto 1fr;
  gap: 16px;
  align-items: start;
  margin-bottom: 16px;
}
.dg-gauge { display: flex; align-items: center; justify-content: center; }
.dg-summary-stats {
  background: rgba(12,22,41,.4);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 8px;
  padding: 14px 16px;
  min-width: 180px;
}
.dg-sum-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: .78rem;
  color: #64748b;
  padding: 4px 0;
  border-bottom: 1px solid rgba(255,255,255,.04);
}
.dg-sum-row:last-child { border-bottom: none; }
.dg-sum-row b { color: #e2e8f0; }

.dg-top3 {
  background: rgba(12,22,41,.4);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 8px;
  padding: 14px 16px;
}
.dg-top3-title { font-size: .75rem; color: #64748b; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 10px; }
.dg-top3-item  { display: flex; align-items: center; gap: 8px; font-size: .8rem; color: #cbd5e1; padding: 5px 0; border-bottom: 1px solid rgba(255,255,255,.04); }
.dg-top3-item:last-child { border-bottom: none; }
.dg-top3-num   { background: rgba(248,113,113,.15); color: #f87171; border-radius: 50%; width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; font-size: .7rem; font-weight: 700; flex-shrink: 0; }
.dg-top3-impact { margin-left: auto; color: #f59e0b; font-size: .75rem; white-space: nowrap; }

.dg-table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.dg-table th { text-align: left; color: #475569; font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; font-weight: 500; padding: 6px 8px; border-bottom: 1px solid rgba(255,255,255,.06); }
.dg-table td { padding: 6px 8px; border-bottom: 1px solid rgba(255,255,255,.04); vertical-align: middle; }
.dg-group-label { font-size: .7rem; color: #475569; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; background: rgba(255,255,255,.02); padding: 8px; }
.dg-field-name  { color: #94a3b8; }
.dg-field-val   { color: #e2e8f0; font-size: .78rem; }
.dg-field-weight { color: #f59e0b; font-size: .7rem; letter-spacing: 2px; }
.dg-field-status { text-align: center; font-weight: 700; }
.dg-ok  { color: #34d399; }
.dg-gap { color: #f87171; }
.dg-missing { color: #475569; font-style: italic; }

@media (max-width: 900px) {
  .dg-summary-row { grid-template-columns: auto 1fr; }
  .dg-top3 { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .dg-summary-row { grid-template-columns: 1fr; }
}

/* ── P3-B: CCTS Remediation Scorecard ────────────────────────────────────────*/

.ccts-scope-banner {
  border-radius: 8px;
  padding: 12px 16px;
  font-size: .82rem;
  margin-bottom: 14px;
  line-height: 1.6;
}
.ccts-scope-banner--in  { background: rgba(248,113,113,.08); border: 1px solid rgba(248,113,113,.2); color: #fca5a5; }
.ccts-scope-banner--out { background: rgba(100,116,139,.08); border: 1px solid rgba(100,116,139,.2); color: #94a3b8; }

.ccts-loading {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #64748b;
  font-size: .85rem;
  padding: 28px 0;
}
.ccts-spinner {
  width: 16px; height: 16px;
  border: 2px solid rgba(255,255,255,.1);
  border-top-color: #34d399;
  border-radius: 50%;
  animation: spin .7s linear infinite;
  flex-shrink: 0;
}
@keyframes spin { to { transform: rotate(360deg); } }

.ccts-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .8rem;
  margin-bottom: 12px;
}
.ccts-table th {
  text-align: left;
  color: #475569;
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: 6px 8px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.ccts-row td { padding: 9px 8px; border-bottom: 1px solid rgba(255,255,255,.04); vertical-align: top; }
.ccts-obligation { color: #cbd5e1; font-weight: 500; min-width: 160px; }
.ccts-deadline   { color: #64748b; font-size: .75rem; white-space: nowrap; }
.ccts-desc       { color: #64748b; font-size: .76rem; line-height: 1.5; }

.ccts-green { color: #34d399; font-weight: 600; }
.ccts-amber { color: #fbbf24; font-weight: 600; }
.ccts-red   { color: #f87171; font-weight: 600; }
.ccts-na    { color: #475569; font-weight: 500; }

.ccts-actions {
  background: rgba(12,22,41,.45);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 8px;
  padding: 14px 16px;
  margin-top: 10px;
}
.ccts-actions-title { font-size: .75rem; color: #64748b; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 10px; }
.ccts-actions ul { margin: 0; padding-left: 0; list-style: none; }
.ccts-actions li { font-size: .8rem; color: #cbd5e1; padding: 5px 0; border-bottom: 1px solid rgba(255,255,255,.04); line-height: 1.6; }
.ccts-actions li:last-child { border-bottom: none; }

.ccts-narrative {
  font-size: .82rem;
  color: #94a3b8;
  background: rgba(12,22,41,.4);
  border: 1px solid rgba(255,255,255,.05);
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 12px;
  line-height: 1.7;
}

/* ── P3-C: TCFD Gap Analysis ─────────────────────────────────────────────────*/

.tcfd-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 12px 0;
}
.tcfd-pillar {
  background: rgba(12,22,41,.4);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 10px;
  overflow: hidden;
}
.tcfd-pillar-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  background: rgba(12,22,41,.3);
}
.tcfd-pillar-icon  { font-size: 1.1rem; }
.tcfd-pillar-label { font-size: .85rem; font-weight: 700; color: #e2e8f0; flex: 1; }
.tcfd-pillar-pct   { font-size: .82rem; font-weight: 700; }
.tcfd-elements     { padding: 10px 14px; }
.tcfd-element {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 6px;
  align-items: start;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255,255,255,.04);
  font-size: .78rem;
}
.tcfd-element:last-child { border-bottom: none; }
.tcfd-el-icon  { font-size: .85rem; font-weight: 700; padding-top: 1px; }
.tcfd-el-label { color: #94a3b8; }
.tcfd-el-note  { grid-column: 2; font-size: .7rem; color: #475569; margin-top: 2px; line-height: 1.4; }

@media (max-width: 640px) {
  .tcfd-grid { grid-template-columns: 1fr; }
}

/* ── P3-D: AI Query Assistant ────────────────────────────────────────────────*/

.aiq-input-wrap {
  display: flex;
  gap: 10px;
  margin-bottom: 10px;
}
.aiq-input {
  flex: 1;
  background: rgba(12,22,41,.6);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px;
  padding: 12px 16px;
  font-size: .9rem;
  color: #e2e8f0;
  font-family: inherit;
  outline: none;
  transition: border-color .2s;
}
.aiq-input::placeholder { color: #475569; }
.aiq-input:focus { border-color: rgba(52,211,153,.4); }
.aiq-btn {
  background: linear-gradient(135deg, #059669, #34d399);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 12px 22px;
  font-size: .88rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity .15s;
}
.aiq-btn:hover { opacity: .9; }

.aiq-examples {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
}
.aiq-ex-label { font-size: .75rem; color: #64748b; margin-right: 4px; }
.aiq-chip {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 20px;
  padding: 4px 12px;
  font-size: .75rem;
  color: #94a3b8;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s, color .15s;
}
.aiq-chip:hover { background: rgba(52,211,153,.1); color: #34d399; border-color: rgba(52,211,153,.25); }

.aiq-status {
  padding: 10px 14px;
  border-radius: 8px;
  font-size: .82rem;
  margin-bottom: 10px;
}
.aiq-status--loading { background: rgba(52,211,153,.07); color: #34d399; border: 1px solid rgba(52,211,153,.15); }
.aiq-status--error   { background: rgba(248,113,113,.07); color: #f87171; border: 1px solid rgba(248,113,113,.15); }

.aiq-result-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.aiq-explain {
  font-size: .78rem;
  color: #64748b;
  font-style: italic;
}

@media (max-width: 640px) {
  .aiq-input-wrap { flex-direction: column; }
  .aiq-btn { width: 100%; }
}

/* ── P4-B: CAP Workflow Tracker (upgraded) ───────────────────────────────── */
.cap-progress-wrap {
  margin: 16px 0 12px;
}
.cap-progress-bar {
  height: 8px;
  background: rgba(255,255,255,.07);
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 8px;
}
.cap-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #059669, #34d399);
  border-radius: 4px;
  transition: width .4s ease;
}
.cap-progress-stats {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  font-size: .72rem;
}
.cap-ps { padding: 2px 8px; border-radius: 10px; font-weight: 600; }
.cap-ps--done { background: rgba(52,211,153,.12); color: #34d399; }
.cap-ps--wip  { background: rgba(251,191,36,.12);  color: #fbbf24; }
.cap-ps--arch { background: rgba(148,163,184,.1);  color: #94a3b8; }
.cap-ps--pct  { color: #64748b; padding: 0; margin-left: auto; }

.cap-filter-bar {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.cap-filter-btn {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 20px;
  padding: 4px 14px;
  font-size: .75rem;
  color: #94a3b8;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s, color .15s, border-color .15s;
}
.cap-filter-btn:hover { background: rgba(52,211,153,.08); color: #34d399; }
.cap-filter-btn--active { background: rgba(52,211,153,.15); color: #34d399; border-color: rgba(52,211,153,.3); }

.cap-card--arch {
  opacity: .5;
  border-color: rgba(148,163,184,.15);
}
.cap-card__footer {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.cap-details-toggle {
  margin-left: auto;
  background: none;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 6px;
  color: #64748b;
  font-size: .7rem;
  padding: 2px 8px;
  cursor: pointer;
  font-family: inherit;
  transition: color .15s, border-color .15s;
}
.cap-details-toggle:hover { color: #94a3b8; border-color: rgba(255,255,255,.2); }

.cap-details {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.06);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.cap-detail-row {
  display: grid;
  grid-template-columns: 90px 1fr;
  align-items: center;
  gap: 10px;
}
.cap-detail-row--notes { align-items: flex-start; }
.cap-detail-lbl {
  font-size: .72rem;
  color: #64748b;
  font-weight: 600;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.cap-detail-input {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 7px;
  padding: 6px 10px;
  font-size: .82rem;
  color: #e2e8f0;
  font-family: inherit;
  width: 100%;
  box-sizing: border-box;
  outline: none;
  transition: border-color .2s;
}
.cap-detail-input:focus { border-color: rgba(52,211,153,.35); }
.cap-detail-input--date { color: #cbd5e1; }
.cap-detail-textarea {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 7px;
  padding: 7px 10px;
  font-size: .82rem;
  color: #e2e8f0;
  font-family: inherit;
  width: 100%;
  box-sizing: border-box;
  outline: none;
  resize: vertical;
  transition: border-color .2s;
}
.cap-detail-textarea:focus { border-color: rgba(52,211,153,.35); }

/* ── P4-C: India Physical Climate Risk ───────────────────────────────────── */
.cr-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .82rem;
}
.cr-table th {
  text-align: left;
  padding: 8px 10px;
  font-size: .72rem;
  color: #64748b;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(255,255,255,.07);
  white-space: nowrap;
}
.cr-table td {
  padding: 7px 10px;
  border-bottom: 1px solid rgba(255,255,255,.04);
  vertical-align: middle;
}
.cr-state { font-weight: 600; color: #e2e8f0; }
.cr-score { font-weight: 700; font-size: .85rem; }
.cr-count { color: #94a3b8; text-align: center; }
.cr-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.cr-chip {
  background: rgba(52,211,153,.08);
  border: 1px solid rgba(52,211,153,.15);
  border-radius: 10px;
  padding: 2px 8px;
  font-size: .7rem;
  color: #34d399;
  cursor: pointer;
  transition: background .15s;
}
.cr-chip:hover { background: rgba(52,211,153,.18); }
.cr-more { font-size: .7rem; color: #475569; padding: 2px 4px; }
.cr-legend-row {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  font-size: .74rem;
  margin-bottom: 4px;
}
.cr-leg { display: flex; align-items: center; gap: 6px; }
.cr-leg::before { content:''; display:inline-block; width:10px; height:10px; border-radius:2px; }
.cr-leg--high::before { background: #f87171; }
.cr-leg--med::before  { background: #fbbf24; }
.cr-leg--low::before  { background: #34d399; }
.cr-leg--na { color: #475569; }
.cr-leg--na::before { display:none; }

/* ── P4-D: ESG Event Alert Feed ──────────────────────────────────────────── */
.ev-filters {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 16px;
}
.ev-filter-group { display: flex; flex-wrap: wrap; gap: 6px; }
.ev-filter-btn {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 18px;
  padding: 4px 12px;
  font-size: .74rem;
  color: #94a3b8;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s, color .15s;
}
.ev-filter-btn:hover { background: rgba(52,211,153,.08); color: #34d399; }
.ev-filter-btn--active { background: rgba(52,211,153,.14); color: #34d399; border-color: rgba(52,211,153,.28); }
.ev-search {
  width: 100%;
  max-width: 360px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 8px;
  padding: 7px 12px;
  font-size: .82rem;
  color: #e2e8f0;
  font-family: inherit;
  outline: none;
  box-sizing: border-box;
}
.ev-search:focus { border-color: rgba(52,211,153,.35); }
.ev-cards-wrap { display: flex; flex-direction: column; gap: 12px; }
.ev-card {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-left: 3px solid rgba(255,255,255,.12);
  border-radius: 10px;
  padding: 14px 16px;
  transition: border-color .15s;
}
.ev-card--critical { border-left-color: #f87171; }
.ev-card--high     { border-left-color: #fb923c; }
.ev-card--medium   { border-left-color: #fbbf24; }
.ev-card:hover { border-color: rgba(255,255,255,.14); }
.ev-card__top {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.ev-source { font-size: .74rem; font-weight: 700; color: #94a3b8; letter-spacing: .03em; text-transform: uppercase; }
.ev-date   { font-size: .72rem; color: #475569; margin-left: auto; }
.ev-sev    { font-size: .72rem; font-weight: 700; letter-spacing: .04em; }
.ev-title  { font-size: .92rem; font-weight: 700; color: #e2e8f0; margin-bottom: 6px; line-height: 1.4; }
.ev-summary { font-size: .82rem; color: #94a3b8; line-height: 1.55; margin-bottom: 10px; }
.ev-footer {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  font-size: .72rem;
  color: #475569;
  border-top: 1px solid rgba(255,255,255,.05);
  padding-top: 8px;
}
.ev-sectors { color: #64748b; }
.ev-cos { display: flex; gap: 4px; flex-wrap: wrap; }
.ev-co-chip {
  background: rgba(99,102,241,.1);
  border: 1px solid rgba(99,102,241,.2);
  border-radius: 10px;
  padding: 1px 7px;
  color: #a5b4fc;
  cursor: pointer;
  font-size: .7rem;
  transition: background .15s;
}
.ev-co-chip:hover { background: rgba(99,102,241,.22); }
.ev-ref { color: #334155; font-style: italic; }

/* ── P4-A: GHG Estimate badge in Net Zero tab ────────────────────────────── */
.nz-proxy-note--est {
  background: rgba(251,191,36,.08);
  border-color: rgba(251,191,36,.2);
}
.est-badge {
  display: inline-block;
  background: rgba(251,191,36,.18);
  color: #fbbf24;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .05em;
  border-radius: 4px;
  padding: 1px 5px;
  margin-right: 4px;
  vertical-align: middle;
}

/* ── P4-F: Weekly Digest subscription ────────────────────────────────────── */
.digest-card {
  background: linear-gradient(135deg, rgba(5,150,105,.08), rgba(52,211,153,.04));
  border: 1px solid rgba(52,211,153,.18);
  border-radius: 14px;
  padding: 24px 28px;
  max-width: 520px;
  margin: 40px auto;
}
.digest-card__title { font-size: 1.1rem; font-weight: 700; color: #e2e8f0; margin-bottom: 8px; }
.digest-card__sub   { font-size: .85rem; color: #94a3b8; margin-bottom: 18px; line-height: 1.5; }
.digest-form        { display: flex; flex-direction: column; gap: 10px; }
.digest-input {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 9px;
  padding: 10px 14px;
  font-size: .88rem;
  color: #e2e8f0;
  font-family: inherit;
  outline: none;
}
.digest-input:focus { border-color: rgba(52,211,153,.4); }
.digest-btn {
  background: linear-gradient(135deg, #059669, #34d399);
  color: #fff;
  border: none;
  border-radius: 9px;
  padding: 11px 20px;
  font-size: .88rem;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: opacity .15s;
}
.digest-btn:hover { opacity: .88; }
.digest-note { font-size: .74rem; color: #475569; text-align: center; }
.digest-success {
  text-align: center;
  padding: 20px;
  color: #34d399;
  font-size: .95rem;
  font-weight: 600;
}

