/* Mock insight report styles extracted from Combined LH #209.html. */

/* === decoded mock report from Combined LH #209.html: style-1 === */
:root{
    --bg:#05060a;
    --text:rgba(255,255,255,.92);
    --muted:rgba(255,255,255,.70);
    --soft:rgba(255,255,255,.56);

    --panel:rgba(255,255,255,.06);
    --panel2:rgba(255,255,255,.04);

    --border-subtle:rgba(255,255,255,.10);
    --border-strong:rgba(255,255,255,.18);

    --accent:#22d3ee;
    --accent-soft:rgba(34,211,238,.16);
    --accent-strong:rgba(34,211,238,.88);

    --pos:#32b963;
    --neu:#1da2b6;
    --neg:#d61f3f;

    --a1:#24c75f;
    --a2:#0facc4;
    --a3:#a855f7;

    --danger:#f43f5e;

    --chart-blue:#1da2b6;
    --chart-green:#32b963;
    --chart-red:#d61f3f;
    --chart-purple:#8d75da;
    --chart-lime:#99c35f;
    --chart-blue-border:rgba(29,162,182,.88);
    --chart-green-border:rgba(50,185,99,.88);
    --chart-red-border:rgba(214,31,63,.9);
    --decision-score-gradient:linear-gradient(90deg, rgba(214,31,63,.98) 0%, rgba(214,31,63,.98) 30.75%, rgba(29,162,182,.98) 36.25%, rgba(29,162,182,.98) 63.75%, rgba(50,185,99,.98) 69.25%, rgba(50,185,99,.98) 100%);

    --shadow: 0 18px 40px rgba(0,0,0,.65);

    --max: 1240px;
    --pad: 18px;

    --metric-header-cue-size:22px;
    --metric-header-gap:1px;
    --info-icon-size:20px;
    --info-glyph-dot-size:3px;
    --info-glyph-gap:1px;
    --info-glyph-stem-width:3px;
    --info-glyph-stem-height:8px;
  }

  *{ box-sizing:border-box; }

  html, body{
    margin:0; padding:0;
    overflow-x:hidden;
    overflow-y:hidden;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;
    background: radial-gradient(900px 700px at 70% 120%, rgba(163,230,53,.08), transparent 55%),
                linear-gradient(180deg, rgba(255,255,255,.02), transparent 26%);
    background-color:var(--bg);
    color:var(--text);
  }

  .container{
    width:min(var(--max), calc(100% - (var(--pad) * 2)));
    margin-inline:auto;
  }

  .topbar{
    position:relative; top:auto; z-index:2;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    background: linear-gradient(180deg, rgba(5,6,10,.92), rgba(5,6,10,.68));
    border-bottom:1px solid rgba(148,163,184,.28);
    overflow:visible;
  }
  .topbarInner{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:16px;
    padding:13px 0;
    min-height:74px;
    overflow:visible;
    position:relative;
  }

  .brandRow{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-width:0;
    overflow:visible;
    text-align:center;
  }

  /* Gradient wordmark logo (matches Prospalytics landing page) */
  .brandLogo{
    font-weight:880;
    letter-spacing:.12px;
    font-size:clamp(1.58rem, 2.35vw, 2.05rem);
    line-height:1.16;
    display:inline-block;
    padding:2px 0 3px;
    overflow:visible;
  }
  .glow{
    background:linear-gradient(90deg, #22d3ee, #7c3aed);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color: transparent;
    color:transparent;
  }

.logo{
    width:28px; height:28px; border-radius:10px;
    background:
      radial-gradient(circle at 25% 20%, rgba(252,211,77,.96), transparent 55%),
      radial-gradient(circle at 80% 20%, rgba(34,211,238,.95), transparent 55%),
      radial-gradient(circle at 50% 90%, rgba(59,130,246,.95), transparent 55%);
    box-shadow:0 0 0 1px rgba(15,23,42,.75), 0 14px 30px rgba(15,23,42,.9);
    position:relative;
  }
  .logo::after{
    content:"";
    position:absolute; inset:4px;
    border-radius:8px;
    border:1px solid rgba(15,23,42,.75);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.26);
  }
  .brandTitle{
    font-weight:650; letter-spacing:.02em; text-transform:uppercase;
    font-size:.74rem;
    color:rgba(226,232,240,.82);
  }
  .brandSubtitle{
    font-size:.78rem; color:rgba(148,163,184,.90);
  }
  .brandText{
    display:flex; flex-direction:column; gap:3px;
  }

  .topbarRight{
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    font-size:0.98rem;
    color:rgba(148,163,184,.92);
    min-width:0;
    overflow:visible;
  }
  .topbarRight:empty{ display:none; }

  .chipInline{
    font-size:.80rem;
    padding: 7px 10px;
    border-radius:999px;
    border:1px solid rgba(148,163,184,.45);
    background:radial-gradient(circle at 10% 0%, rgba(148,163,184,.26), transparent 60%);
    box-shadow:0 0 0 1px rgba(15,23,42,.85);
    display:inline-flex; align-items:flex-start; gap:8px;
    white-space:normal;
    line-height:1.25;
    max-width:min(720px, 100%);
  }
  .chipInline strong{ font-weight:600; color:rgba(226,232,240,.96); }

  .headerDetails{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    flex:0 0 auto;
  }
  .headerDetailsButton{
    appearance:none;
    border:1px solid rgba(148,163,184,.45);
    border-radius:999px;
    background:radial-gradient(circle at 10% 0%, rgba(148,163,184,.26), transparent 60%), rgba(15,23,42,.90);
    color:rgba(226,232,240,.96);
    box-shadow:0 0 0 1px rgba(15,23,42,.85);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:34px;
    padding:7px 12px;
    font:inherit;
    font-size:.78rem;
    line-height:1;
    font-weight:650;
    letter-spacing:.01em;
    cursor:pointer;
    white-space:nowrap;
    transition:border-color .14s ease, background-color .14s ease, box-shadow .14s ease, transform .14s ease;
  }
  .headerDetailsButton::after{
    content:"";
    width:7px;
    height:7px;
    border-right:1.5px solid rgba(226,232,240,.88);
    border-bottom:1.5px solid rgba(226,232,240,.88);
    transform:rotate(45deg) translateY(-1px);
    transform-origin:center;
    transition:transform .14s ease;
  }
  .headerDetailsButton:hover,
  .headerDetailsButton:focus-visible,
  .headerDetailsButton[aria-expanded="true"]{
    outline:none;
    border-color:rgba(34,211,238,.75);
    background-color:rgba(30,58,138,.35);
    box-shadow:0 0 0 1px rgba(34,211,238,.28), 0 10px 26px rgba(0,0,0,.36);
  }
  .headerDetailsButton:active{
    transform:translateY(1px);
  }
  .headerDetailsButton[aria-expanded="true"]::after{
    transform:rotate(225deg) translate(-1px, -1px);
  }

  .headerDetailsMenu{
    position:absolute;
    right:0;
    top:calc(100% + 10px);
    width:min(520px, calc(100vw - 36px));
    max-height:min(72vh, 460px);
    overflow:visible;
    padding:12px;
    border-radius:18px;
    border:1px solid rgba(148,163,184,.45);
    background:
      radial-gradient(circle at 0 0, rgba(34,211,238,.16), transparent 52%),
      radial-gradient(circle at 100% 0, rgba(129,140,248,.14), transparent 55%),
      rgba(10,12,18,.98);
    box-shadow:0 22px 52px rgba(0,0,0,.72), 0 0 0 1px rgba(15,23,42,.85);
    z-index:90;
  }
  .headerDetailsMenu[hidden]{
    display:none !important;
  }
  .headerDetailsMenu::before{
    content:"";
    position:absolute;
    top:-6px;
    right:22px;
    width:10px;
    height:10px;
    transform:rotate(45deg);
    border-left:1px solid rgba(148,163,184,.45);
    border-top:1px solid rgba(148,163,184,.45);
    background:rgba(10,12,18,.98);
  }
  .headerDetailsMenuTitle{
    margin:0 0 10px;
    font-size:.70rem;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:rgba(148,163,184,.96);
  }
  .headerDetailsGrid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
  }
  .headerDetailItem{
    min-width:0;
    padding:9px 10px;
    border-radius:14px;
    border:1px solid rgba(148,163,184,.28);
    background:rgba(15,23,42,.78);
  }
  .headerDetailItem--full{
    grid-column:1 / -1;
  }
  .headerDetailLabel{
    display:block;
    margin-bottom:4px;
    font-size:.68rem;
    line-height:1.1;
    letter-spacing:.10em;
    text-transform:uppercase;
    color:rgba(148,163,184,.94);
  }
  .headerDetailValue{
    display:block;
    font-size:.82rem;
    line-height:1.35;
    color:rgba(248,250,252,.96);
    overflow-wrap:anywhere;
  }

  .objectiveDetailsSlot .headerDetails{
    z-index:35;
  }

  @media (max-width: 720px){
    .topbarInner{
      justify-content:center;
      align-items:center;
      padding:11px 0;
      min-height:68px;
    }
    .brandLogo{
      font-size:clamp(1.45rem, 6.5vw, 1.9rem);
    }
    .topbarRight{ display:none; }
    .objectiveHeroLayout{
      grid-template-columns:minmax(0, 1fr);
      align-items:start;
      gap:10px;
    }
    .objectiveDetailsSlot{
      justify-self:start;
      margin-left:0;
    }
    .objectiveHero .headerDetailsMenu{
      left:0;
      right:auto;
      width:min(520px, calc(100vw - (var(--pad) * 2)));
      max-height:min(72vh, 460px);
    }
    .headerDetailsMenu::before{ left:22px; right:auto; }
    .headerDetailsGrid{ grid-template-columns:1fr; }
  }

  main{
    padding:18px 0 28px;
  }

  .card{
    background: radial-gradient(circle at 0 0, rgba(248,250,252,.10), transparent 55%),
                radial-gradient(circle at 100% 0, rgba(129,140,248,.10), transparent 55%),
                linear-gradient(135deg, rgba(15,23,42,.96), rgba(15,23,42,.96));
    border-radius:22px;
    border:1px solid rgba(148,163,184,.45);
    box-shadow:var(--shadow);
  }
  .pad{ padding:18px; }
  @media (max-width: 640px){ .pad{ padding:14px; } }

  .sectionHead{
    display:flex; align-items:flex-end; justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
  }
  .sectionHead .right{ text-align:right; }
  @media (max-width: 720px){
    .sectionHead{ flex-direction:column; align-items:flex-start; }
    .sectionHead .right{ text-align:left; }
  }

  h2{ margin:0; font-size:1.25rem; letter-spacing:-.02em; }
  h3{ margin:0; font-size:1rem; letter-spacing:-.01em; }
  .micro{ font-size:.80rem; }
  .muted{ color:var(--muted); }

  .pillRow{
    display:flex; flex-wrap:wrap; gap:8px;
    margin-bottom:14px;
  }
  .pill{
    display:inline-flex; align-items:center; gap:6px;
    padding:4px 9px;
    border-radius:999px;
    border:1px solid rgba(148,163,184,.40);
    background:radial-gradient(circle at 0 0, rgba(148,163,184,.22), transparent 55%);
    font-size:.80rem;
    color:rgba(226,232,240,.94);
  }
  .pillIcon{
    width:18px; height:18px;
    border-radius:999px;
    display:inline-flex; align-items:center; justify-content:center;
    background:rgba(15,23,42,.88);
    font-size:.78rem;
  }
  .pillLabel{ opacity:.78; }
  .pillValue{ font-weight:600; }

  /* Premium hero Objective (outside Overview, no box) */
  .objectiveHero{
    margin:10px 0 20px;
    padding-top:4px;
  }
  .objectiveHeroLayout{
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    align-items:start;
    gap:18px;
    position:relative;
    z-index:20;
  }
  .objectiveHeroCopy{
    min-width:0;
  }
  .objectiveDetailsSlot{
    justify-self:end;
    align-self:start;
    margin-left:18px;
    margin-top:0;
    padding-top:0;
    flex:0 0 auto;
  }
  .objectiveHero-label{
    font-size:.78rem;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:rgba(148,163,184,.96);
    margin-bottom:6px;
    line-height:1.1;
  }
  .objectiveHero-text{
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Display","Segoe UI",sans-serif;
    font-size:1.28rem;
    line-height:1.5;
    font-weight:520;
    letter-spacing:-.015em;
    max-width:880px;
    color:rgba(248,250,252,.98);
  }
  .objectiveHero-accent{
    margin-top:10px;
    width:78px;
    height:3px;
    border-radius:999px;
    background:linear-gradient(90deg, rgba(45,212,191,1), rgba(56,189,248,1), rgba(129,140,248,.9));
  }

  .kpiGrid{
    display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px;
  }
  @media (max-width: 980px){
    .kpiGrid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  }
  @media (max-width: 640px){
    .kpiGrid{ grid-template-columns:1fr; }
  }

  .flipcard{
    position:relative;
    border-radius:18px;
    overflow:hidden;
    background: radial-gradient(circle at 0 0, rgba(34,211,238,.25), transparent 60%),
                radial-gradient(circle at 100% 0, rgba(129,140,248,.20), transparent 60%),
                rgba(15,23,42,.95);
    border:1px solid rgba(148,163,184,.45);
    cursor:pointer;
    min-height:120px;
  }
  .flipInner{
    position:relative;
    padding:14px 14px 14px 14px;
    display:flex; flex-direction:column; justify-content:space-between;
    height:100%;
  }
  .flipTop{
    display:flex; align-items:flex-start; justify-content:space-between;
    gap:6px;
  }
  .kpiLabel{
    font-size:.80rem; text-transform:uppercase;
    letter-spacing:.12em;
    color:rgba(148,163,184,.92);
  }
  .kpiValue{
    font-size:1.4rem;
    font-weight:650;
    letter-spacing:-.03em;
    margin-top:8px;
  }
  .kpiSub{
    font-size:.78rem;
    color:rgba(148,163,184,.92);
  }
  .kpiDetail{
    font-size:.90rem;
    color:rgba(226,232,240,.90);
    margin-top:6px;
  }

  .flipFront,
  .flipBack{
    position:absolute; inset:0;
    opacity:1;
    transition:opacity .2s ease;
  }
  .flipBack{ opacity:0; pointer-events:none; }

  /* Center "How to read" content vertically on the back of KPI cards */
  .flipBack.flipInner{
    justify-content:center;
  }

  .flipcard:hover .flipFront{ opacity:0; pointer-events:none; }
  .flipcard:hover .flipBack{ opacity:1; pointer-events:auto; }

  .chartGrid{
    display:grid;
    grid-template-columns: minmax(0,2.1fr) minmax(0,1.3fr);
    gap:12px;
    margin-top:18px;
  }
  .chartGrid > .card{ min-width:0; }
  @media (max-width: 980px){
    .chartGrid{ grid-template-columns:1fr; }
  }

  .chartCardTitle{
    display:flex; align-items:center; justify-content:space-between;
    gap:8px; margin-bottom:10px;
  }
  .chartCardTitle h3{ display:flex; align-items:center; gap:6px; }

  .chart{
    width:100%;
    max-width:100%;
    height:210px;
    overflow:hidden;
  }
  .chartTall{
    width:100%;
    max-width:100%;
    height:260px;
    overflow:hidden;
  }
  .chartPie{
    height:260px;
    overflow:visible;
    }

  .topic-sentmix .chart{ overflow:visible; }
.chartCaption{
    margin-top:6px;
    font-size:.78rem;
    color:rgba(148,163,184,.94);
  }

  .topicSection{
    margin-top:16px;
  }

  .topicHeader{
    display:flex;
    flex-direction:column;
    gap:6px;
  }
  .topicHeader h2{ font-size:1.1rem; }
  .topicSummary{
    margin-top:4px;
    font-size:.88rem;
    color:rgba(226,232,240,.92);
  }
  .topicStats{
    margin-top:12px;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    font-size:.80rem;
  }
  .stat{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:5px 10px;
    border-radius:999px;
    border:1px solid rgba(148,163,184,.55);
    background:rgba(15,23,42,.98);
    color:rgba(226,232,240,.96);
    transition:border-color .14s ease, background-color .14s ease, box-shadow .14s ease, color .14s ease;
  }
  .topicStats .stat[data-tip]{
    cursor:help;
  }
  .topicStats .stat[data-tip] strong{
    transition:color .14s ease;
  }
  .topicStats .stat[data-tip]:hover,
  .topicStats .stat[data-tip]:focus-visible{
    outline:none;
    border-color:rgba(96,165,250,.95);
    background-color:rgba(30,58,138,.55);
    box-shadow:0 0 0 1px rgba(96,165,250,.35), 0 6px 18px rgba(0,0,0,.30);
    color:rgba(248,250,252,.98);
  }
  .topicStats .stat[data-tip]:hover strong,
  .topicStats .stat[data-tip]:focus-visible strong{
    color:rgba(255,255,255,.98);
  }

  .topicGrid{
    display:grid;
    grid-template-columns:minmax(0,3.4fr) minmax(0,1.6fr);
    gap:12px;
    margin-top:10px;
    align-items:stretch;
  }
  .topicGrid > .card{
    height:100%;
  }
  @media (max-width: 980px){
    .topicGrid{ grid-template-columns:1fr; }
  }

  .topicDetailGrid{
    display:grid;
    grid-template-columns:minmax(0,3fr) minmax(0,2.2fr);
    gap:12px;
    margin-top:14px;
    align-items:stretch;
  }
  .topicDetailGrid > .card{
    height:100%;
  }
  @media (max-width: 980px){
    .topicDetailGrid{ grid-template-columns:1fr; }
  }

  .tableWrap{
    margin-top:2px;
    border-radius:16px;
    border:1px solid rgba(148,163,184,.45);
    background:rgba(15,23,42,.94);
    overflow-x:visible;
    overflow-y:visible;
  }

  table{
    width:100%;
    border-collapse:separate;
    border-spacing:0 8px;
    font-size:.86rem;
  }

  thead th{
    text-align:left;
    padding:7px 12px 6px;
    color:rgba(148,163,184,.92);
    font-weight:500;
    position:sticky; top:0;
    background:rgba(15,23,42,.94);
    z-index:4;
    vertical-align:bottom;
  }

  #topic-table thead th:first-child,
  .aspectSubTable thead th:first-child{
    color:rgba(248,250,252,.96);
    padding-top:2px;
    padding-bottom:4px;
    vertical-align:top;
  }

  .tablePrimaryHeader{
    display:grid;
    grid-template-rows:var(--metric-header-cue-size) auto;
    justify-items:start;
    align-content:start;
    row-gap:var(--metric-header-gap);
    width:100%;
    line-height:1.05;
    padding-top:0;
    color:rgba(248,250,252,.96);
  }
  .tablePrimaryHeader::before{
    content:"";
    display:block;
    width:100%;
    height:var(--metric-header-cue-size);
  }

  .bubbleMetricHeader{
    display:grid;
    grid-template-rows:var(--metric-header-cue-size) auto;
    justify-items:center;
    align-content:start;
    row-gap:var(--metric-header-gap);
    width:100%;
    min-height:0;
    padding-top:0;
    line-height:1.03;
    color:rgba(148,163,184,.92);
    white-space:normal;
    text-align:center;
  }

  .bubbleCue{
    width:18px;
    height:18px;
    flex:0 0 auto;
    display:grid;
    place-items:center;
    align-self:center;
    position:relative;
    opacity:0;
    transition:opacity .55s ease, color .55s ease, text-shadow .55s ease, transform .55s ease;
    color:rgba(148,163,184,.92);
    font-size:1rem;
    font-weight:700;
    line-height:1;
    background:none;
    transform:translateY(0);
    text-shadow:0 0 0 rgba(168,85,247,0);
  }
  .bubbleCue::after{
    content:none;
  }

  .bubbleMetricLabel{
    display:block;
    width:100%;
    margin:0;
    line-height:1.05;
    text-align:center;
  }

  .bubbleMetricHeader.isBubbleActive .bubbleCue{
    opacity:.98;
    color:rgba(196,181,253,.96);
    text-shadow:0 0 10px rgba(168,85,247,.18);
  }

  #topic-table thead th .bubbleMetricHeader,
  .aspectSubTable thead th .bubbleMetricHeader{
    color:rgba(148,163,184,.92);
  }

  #topic-table thead th:nth-child(n+2),
  .aspectSubTable thead th:nth-child(n+2){
    padding-top:2px;
    padding-bottom:4px;
    vertical-align:top;
  }

  #topic-table thead th:nth-child(n+2) .bubbleMetricHeader,
  .aspectSubTable thead th:nth-child(n+2) .bubbleMetricHeader{
    text-align:center;
  }

  tbody tr{
    background:none;
  }

  tbody td{
    padding:8px 12px;
    background:rgba(255,255,255,.04);
    border:1px solid rgba(148,163,184,.35);
  }
  tbody td:first-child{
    border-top-left-radius:12px;
    border-bottom-left-radius:12px;
  }
  tbody td:last-child{
    border-top-right-radius:12px;
    border-bottom-right-radius:12px;
  }
  #topic-table tbody tr[data-topic]{
    cursor:pointer;
  }
  #topic-table tbody tr[data-topic] td{
    transition:background-color .14s ease, border-color .14s ease, box-shadow .14s ease;
  }
  #topic-table tbody tr[data-topic]:hover td,
  #topic-table tbody tr[data-topic]:focus-within td,
  #topic-table tbody tr[data-topic]:focus-visible td{
    background:rgba(34,211,238,.08);
    border-color:rgba(34,211,238,.55);
  }
  #topic-table tbody tr[data-topic]:focus-visible{
    outline:none;
  }

  .aspectTableWrap{
    max-height:none;
    overflow:visible;
    overflow-x:visible;
    overflow-y:visible;
    position:relative;
  }

  .aspectTwoCol{
    display:grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap:12px;
    margin-top:0;
    position:relative;
  }
  /* Visual split between the two aspect tables */
  .aspectTwoCol::after{
    content:"";
    position:absolute;
    left:50%;
    top:6px;
    bottom:6px;
    width:1px;
    background:rgba(148,163,184,.22);
    pointer-events:none;
  }
  .aspectSubTable{
    width:100%;
  }

  /* Combined Decision + In-depth split (single long box) */
  .topicActionSplit{
    display:grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap:0;
    margin-top:4px;
  }
  .topicActionLeft{
    min-width:0;
    padding-right:16px;
  }
  .topicActionRight{
    min-width:0;
    padding-left:16px;
    border-left:1px solid rgba(148,163,184,.22);
  }
  .topicActionRight .inDepthText{
    margin-top:10px;
  }
  @media (max-width: 980px){
    .topicActionSplit{ grid-template-columns: minmax(0,1fr); gap:12px; }
    .topicActionRight{
      border-left:none;
      border-top:1px solid rgba(148,163,184,.22);
      padding-left:0;
      padding-top:12px;
    }
    .topicActionLeft{ padding-right:0; }
  }
  .aspectSubTable thead th{
    padding:8px 10px;
    font-size:.82rem;
    white-space:normal;
  }
  .aspectSubTable tbody td{
    padding:7px 10px;
    font-size:.82rem;
  }
  .aspectSubTable thead th:nth-child(n+2),
  .aspectSubTable tbody td:nth-child(n+2){
    text-align:right;
  }

  /* In aspect tables we don't need sticky headers (prevents odd stacking while page scrolls). */
  .aspectTwoCol thead th{
    position:static;
    top:auto;
  }
  @media (max-width: 980px){
    .aspectTwoCol{ grid-template-columns: minmax(0,1fr); }
    .aspectTwoCol::after{ display:none; }
  }

  .aspectTableWrap::-webkit-scrollbar{
    width:8px;
  }
  .aspectTableWrap::-webkit-scrollbar-track{
    background:rgba(15,23,42,.98);
    border-radius:999px;
  }
  .aspectTableWrap::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg, rgba(148,163,184,.9), rgba(51,65,85,.9));
    border-radius:999px;
  }

  .tag{
    display:inline-flex; align-items:center; gap:4px;
    padding:4px 7px;
    border-radius:999px;
    border:1px solid rgba(148,163,184,.50);
    background:rgba(15,23,42,.96);
    font-size:.78rem;
    color:rgba(226,232,240,.94);
    text-decoration:none;
  }
  .tagStrong{
    border-color:rgba(34,211,238,.85);
    background:radial-gradient(circle at 0 0, rgba(34,211,238,.28), transparent 60%);
  }
  /* Accent bubble without glow for global decision cards */
  .tagAccent{
    border-color:rgba(34,211,238,.75);
    background:rgba(15,23,42,.96);
  }
  .decisionTopicLabelCompact{
    font-size:.74rem;
    padding:4px 6px;
    letter-spacing:-.01em;
  }

  .dLine{
    font-size:.90rem;
    color:rgba(226,232,240,.96);
    margin-top:4px;
  }
  .dSub{
    font-size:.88rem;
    color:rgba(226,232,240,.80);
    margin-top:4px;
  }
  .noteBox{
    margin-top:8px;
    padding:8px 9px;
    border-radius:12px;
    border:1px solid rgba(148,163,184,.45);
    background:rgba(15,23,42,.96);
    font-size:.78rem;
    color:rgba(226,232,240,.92);
  }

  .scoreRow{
    display:flex; flex-wrap:wrap; gap:10px;
    align-items:stretch;
  }
  .score{
    flex:1 1 180px;
    min-width:0;
    padding:8px 9px;
    border-radius:14px;
    border:1px solid rgba(148,163,184,.55);
    background: radial-gradient(circle at 0 0, rgba(34,211,238,.15), transparent 55%),
                rgba(15,23,42,.98);
  }
  .scoreTop{
    display:flex; align-items:center; justify-content:space-between; gap:6px;
    margin-bottom:6px;
    font-size:.80rem;
  }
  .scoreLabel{ color:rgba(148,163,184,.96); }
  .scoreVal{ font-weight:650; color:rgba(226,232,240,.96); }
  .bar{
    width:100%; height:7px; border-radius:999px;
    background:rgba(15,23,42,1);
    overflow:hidden;
    position:relative;
  }
  .barFill{
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:0;
    max-width:100%;
    border-radius:999px;
    background: linear-gradient(90deg, rgba(34,211,238,.2), rgba(79,70,229,.12));
    background-image: var(--barFill);
    background-repeat:no-repeat;
    background-position:left center;
    background-size: calc(100% / var(--scorePct, 1)) 100%;
  }

  .inDepthText{
    font-size:.95rem;
    line-height:1.45;
    color:rgba(255,255,255,.86);
    white-space:pre-line;
    word-wrap:break-word;
  }

  /* In-depth: keep the outer card neutral; glow lives on the inner text box */
  .inDepthCard{
    border-color: rgba(148,163,184,.45);
    box-shadow: var(--shadow);
    background: radial-gradient(circle at 0 0, rgba(248,250,252,.10), transparent 55%),
                radial-gradient(circle at 100% 0, rgba(129,140,248,.10), transparent 55%),
                linear-gradient(135deg, rgba(15,23,42,.96), rgba(15,23,42,.96));
  }
  /* Keep the title above the inner glow */
  .inDepthCard .chartCardTitle{
    position:relative;
    z-index:2;
  }
  .inDepthInner{
    margin-top:12px;
    padding:14px 14px;
    border-radius:16px;
    border:1px solid rgba(34,211,238,.56);
    background:rgba(15,23,42,.96);
    box-shadow:
      0 0 0 1px rgba(34,211,238,.28),
      0 14px 28px rgba(34,211,238,.18),
      0 18px 36px rgba(15,23,42,.88);
    position:relative;
    z-index:1;
  }
  .inDepthInner .inDepthText{ margin-top:0; }


  [data-tip]{
    position:relative;
    cursor:help;
  }
  /* Use JS bounded tooltips (keeps tooltips inside their nearest card/section).
     Disable legacy CSS pseudo-element tooltips to prevent overflow/hanging. */
  [data-tip]::before,
  [data-tip]::after{
    display:none !important;
    content:"" !important;
  }

  [data-tip]::after{
    content:attr(data-tip);
    position:absolute;
    top:calc(100% + 10px);
    left:0;
    background:rgba(10,12,18,.96);
    border:1px solid rgba(255,255,255,.12);
    box-shadow: var(--shadow);
    color:rgba(255,255,255,.90);
    padding:10px 12px;
    border-radius:14px;
    width: min(260px, 80vw);
    font-size:.90rem;
    font-family:inherit;
    line-height:1.35;
    text-align:left;
    opacity:0;
    pointer-events:none;
    transform: translateY(4px);
    transition: opacity .14s ease;
    z-index:9999;
    white-space:normal;
    word-wrap:break-word;
  }
  [data-tip]::before{
    content:"";
    position:absolute;
    top:100%;
    left:14px;
    border:7px solid transparent;
    border-bottom-color: rgba(10,12,18,.96);
    opacity:0;
    pointer-events:none;
    transition: opacity .14s ease;
    z-index:10000;
  }
  [data-tip]:hover::after,
  [data-tip]:focus-visible::after{
    opacity:1;
    transform: translateY(0);
  }
  [data-tip]:hover::before,
  [data-tip]:focus-visible::before{
    opacity:1;
  }

  /* Info icons in section headers should hang off to the right like others */
  .sectionHead .right [data-tip]::after{
    left:0;
    right:auto;
  }
  .sectionHead .right [data-tip]::before{
    left:14px;
    right:auto;
  }

  /* Column header tooltips (Topic summary & Aspect tables) */
  thead th [data-tip]:not(.bubbleMetricHeader){
    display:inline-block;
    white-space:normal;
  }
  thead th .bubbleMetricHeader{
    display:grid;
    white-space:normal;
  }
  thead th [data-tip]::after{
    top:var(--header-tip-top, calc(100% + 10px));
    bottom:auto;
  }
  thead th [data-tip]::before{
    top:var(--header-arrow-top, 100%);
    bottom:auto;
    border-top-color:transparent;
    border-bottom-color:rgba(10,12,18,.96);
  }

  thead th:last-child [data-tip]::after{
    right:0;
    left:auto;
  }
  thead th:last-child [data-tip]::before{
    right:14px;
    left:auto;
  }

  /* Aspect-level sentiment header tooltips: keep inside card but with same design */
  .aspectTableWrap th [data-tip]::after{
    width:min(260px, 80vw);
    left:0;
    right:auto;
  }
  .aspectTableWrap th [data-tip]::before{
    left:14px;
    right:auto;
  }
  .aspectTableWrap th:nth-child(4) [data-tip]::after{
    left:auto;
    right:12px;
  }
  .aspectTableWrap th:nth-child(4) [data-tip]::before{
    left:auto;
    right:26px;
  }

  .decisionGrid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; }
  @media (max-width: 980px){ .decisionGrid{ grid-template-columns:1fr; } }

  .decision{
    padding:14px;
    border-radius:22px;
    border:1px solid rgba(255,255,255,.12);
    background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
    display:flex; flex-direction:column; gap:8px;
    position:relative; overflow:visible;
  }
  .decision::after{
    content:"";
    position:absolute; inset:-2px;
    background: linear-gradient(135deg, rgba(34,211,238,.12), rgba(129,140,248,.16), rgba(34,211,238,.10));
    opacity: .55;
    filter: blur(18px);
    z-index:-1;
    transition:opacity .14s ease;
  }
  .decision:hover::after{ opacity:.55; }

  .dTop{
    display:flex; align-items:center; justify-content:space-between; gap:8px;
    flex-wrap:wrap;
  }

  .qualityBox{
    padding:10px;
    border-radius:16px;
    border:1px dashed rgba(148,163,184,.55);
    background:rgba(15,23,42,.96);
    font-size:.84rem;
    color:rgba(226,232,240,.92);
  }
  .qualityBox strong{ color:rgba(248,250,252,.96); }

  .noteList{
    margin-top:10px;
    display:flex; flex-direction:column; gap:6px;
    font-size:.84rem;
    color:rgba(226,232,240,.92);
  }
  .noteList li{ margin-left:18px; }

  .footer{
    margin-top:22px;
    font-size:.78rem;
    color:rgba(148,163,184,.90);
    display:flex;
    justify-content:flex-start;
    gap:12px;
    flex-wrap:wrap;
  }

  .chip{
    padding: 5px 8px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.03);
    font-size:.78rem;
    color:rgba(255,255,255,.78);
  }

.infoIcon{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:var(--info-icon-size);
  height:var(--info-icon-size);
  min-width:var(--info-icon-size);
  min-height:var(--info-icon-size);
  border-radius:999px;
  border:1px solid rgba(148,163,184,.85);
  background-color:rgba(15,23,42,.88);
  background-image:none;
  color:transparent;
  box-shadow:0 0 0 1px rgba(15,23,42,1);
  flex:0 0 auto;
  vertical-align:middle;
  user-select:none;
  cursor:help;
  font-size:0;
  line-height:0;
  transition:border-color .14s ease, background-color .14s ease, box-shadow .14s ease;
}
.infoIcon .infoGlyph{
  display:none !important;
}
.infoIcon .infoMark{
  position:relative;
  display:block !important;
  width:var(--info-glyph-stem-width);
  height:calc(var(--info-glyph-dot-size) + var(--info-glyph-gap) + var(--info-glyph-stem-height));
  flex:0 0 auto;
  pointer-events:none;
}
.infoIcon .infoDot,
.infoIcon .infoStem{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  display:block !important;
  background:rgba(248,250,252,.96);
  border-radius:999px;
  pointer-events:none;
}
.infoIcon .infoDot{
  top:0;
  width:var(--info-glyph-dot-size);
  height:var(--info-glyph-dot-size);
}
.infoIcon .infoStem{
  top:calc(var(--info-glyph-dot-size) + var(--info-glyph-gap));
  width:var(--info-glyph-stem-width);
  height:var(--info-glyph-stem-height);
}
/* Shared hover / focus glow for all info icons */
.infoIcon:hover{
  border-color:rgba(96,165,250,.95);
  background-color:rgba(30,58,138,.55);
  box-shadow:0 0 0 1px rgba(96,165,250,.35), 0 6px 18px rgba(0,0,0,.30);
}
.infoIcon:hover .infoDot,
.infoIcon:hover .infoStem,
.infoIcon:focus-visible .infoDot,
.infoIcon:focus-visible .infoStem{
  background:rgba(255,255,255,.98);
}
.infoIcon:focus-visible{
  outline:none;
  border-color:rgba(96,165,250,1);
  background-color:rgba(30,58,138,.55);
  box-shadow:0 0 0 2px rgba(96,165,250,.35), 0 6px 18px rgba(0,0,0,.30);
}

  .miniTitle{
    font-size:.76rem;
    letter-spacing:.08em;
    color:rgba(148,163,184,.96);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:6px;
  }

  a{ color:var(--accent); text-decoration:none; }

  /* --- Bounded tooltips (keep descriptions inside their card/section) --- */
  /* Tooltip boundaries: pre-position these containers so hovering tooltips doesn't
     trigger runtime style mutations that can look like cards "pop/jump". */
  .card, .objectiveHero, .noteBox, .inDepthCard, .container{ position: relative; }

  /* Disable legacy pseudo-element tooltips */
  [data-tip]::before,
  [data-tip]::after{
    display:none !important;
  }



  .flipcard{
    transform-origin:74% 18%;
  }
  .flipcard.kpiTwitch{
    animation:kpiTwitch .72s cubic-bezier(.36,.07,.19,.97) both;
  }
  @keyframes kpiTwitch{
    0%, 100%{ transform:translate3d(0,0,0) rotate(0deg); }
    15%{ transform:translate3d(0,-1px,0) rotate(-1.1deg); }
    30%{ transform:translate3d(0,0,0) rotate(1.15deg); }
    45%{ transform:translate3d(0,-0.5px,0) rotate(-0.85deg); }
    60%{ transform:translate3d(0,0,0) rotate(0.7deg); }
    75%{ transform:translate3d(0,-0.25px,0) rotate(-0.45deg); }
  }

  .topicStats .stat{
    transform-origin:center;
    will-change:transform;
  }
  .topicStats .stat.topicStatTwitch{
    animation:topicStatTwitch .72s cubic-bezier(.36,.07,.19,.97) both;
  }
  @keyframes topicStatTwitch{
    0%, 100%{ transform:translate3d(0,0,0) rotate(0deg); }
    15%{ transform:translate3d(0,-1px,0) rotate(-1.1deg); }
    30%{ transform:translate3d(0,0,0) rotate(1.15deg); }
    45%{ transform:translate3d(0,-0.5px,0) rotate(-0.85deg); }
    60%{ transform:translate3d(0,0,0) rotate(0.7deg); }
    75%{ transform:translate3d(0,-0.25px,0) rotate(-0.45deg); }
  }

.summaryToggleRow td{
  padding:10px 0 0 !important;
  background:transparent !important;
  border:none !important;
}
.summaryToggleRow td:first-child,
.summaryToggleRow td:last-child{
  border-radius:0 !important;
}
.summaryToggleInner,
.topicSectionToggleInner{
  display:flex;
  justify-content:center;
}
.reportToggleBtn{
  appearance:none;
  border:1px solid rgba(96,165,250,.56);
  border-radius:999px;
  padding:9px 14px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03)),
    radial-gradient(circle at 0 0, rgba(34,211,238,.18), transparent 58%),
    rgba(15,23,42,.98);
  color:rgba(255,255,255,.92);
  font:inherit;
  font-size:.84rem;
  font-weight:600;
  letter-spacing:.01em;
  cursor:pointer;
  box-shadow:none;
  transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease, filter .16s ease;
}
.reportToggleBtn:hover{
  transform:translateY(-1px);
  border-color:rgba(96,165,250,.88);
  box-shadow:none;
  filter:saturate(1.03);
}
.reportToggleBtn:focus-visible{
  outline:none;
  border-color:rgba(96,165,250,1);
  box-shadow:none;
}
.topicSectionToggleWrap{
  display:flex;
  justify-content:center;
  margin:16px 0 0;
}
.topicSectionBottomToggle{
  display:flex;
  justify-content:center;
  margin:18px 0 0;
  padding-top:4px;
}
.topicSectionExtra[hidden],
.topicRowExtra[hidden],
.summaryToggleRow[hidden]{
  display:none !important;
}

.boundedTip{
    position:fixed; /* global layer to avoid any card "pop/jump" */
    left:0;
    top:0;
    background:rgba(10,12,18,.96);
    border:1px solid rgba(255,255,255,.12);
    box-shadow:var(--shadow);
    color:rgba(255,255,255,.90);
    padding:10px 12px;
    border-radius:14px;
    width:min(260px, 92%);
    max-width:calc(100% - 16px);
    font-size:.90rem;
    font-family:inherit;
    line-height:1.35;
    text-align:left;
    opacity:0;
    transform:none;
    transition: opacity .14s ease;
    pointer-events:none;
    z-index:9999;
    white-space:normal;
    word-wrap:break-word;
  }

.reportSection{
  min-width:0;
  max-width:100%;
  overflow-x:hidden;
  overflow-y:visible;
}
.reportSection .card,
.reportSection .flipcard,
.reportSection .decision,
.reportSection .tableWrap,
.reportSection .chart,
.reportSection .chartTall,
.reportSection .chartPie,
.reportSection .kpiGrid,
.reportSection .chartGrid,
.reportSection .decisionGrid,
.reportSection .topicGrid,
.reportSection .topicDetailGrid,
.reportSection .aspectTwoCol,
.reportSection .topicActionSplit{
  min-width:0;
  max-width:100%;
}
.reportSection .chart > div,
.reportSection .chartTall > div,
.reportSection .chartPie > div{
  max-width:100% !important;
}
svg, canvas{
  max-width:100% !important;
}


#reportRoot{
  display:flow-root;
  min-width:0;
  overflow-x:hidden;
}

/* T12 only: keep the Aspect-Level Sentiment "Market impact" header on one line without changing other topic cards. */
#topic-T12 .aspectSubTable{
  table-layout:fixed;
}
#topic-T12 .aspectSubTable th:nth-child(1),
#topic-T12 .aspectSubTable td:nth-child(1){ width:29%; }
#topic-T12 .aspectSubTable th:nth-child(2),
#topic-T12 .aspectSubTable td:nth-child(2){ width:13%; }
#topic-T12 .aspectSubTable th:nth-child(3),
#topic-T12 .aspectSubTable td:nth-child(3){ width:13%; }
#topic-T12 .aspectSubTable th:nth-child(4),
#topic-T12 .aspectSubTable td:nth-child(4){ width:13%; }
#topic-T12 .aspectSubTable th:nth-child(5),
#topic-T12 .aspectSubTable td:nth-child(5){ width:10%; }
#topic-T12 .aspectSubTable th:nth-child(6),
#topic-T12 .aspectSubTable td:nth-child(6){ width:22%; }
#topic-T12 .aspectSubTable th:nth-child(6) .bubbleMetricLabel{
  white-space:nowrap;
  letter-spacing:-.01em;
}

