/**
 * @file
 * Chart component styles.
 *
 * Card: Figma 28965:88137 — p-24, radius 24, gap 16, chart-card shadow.
 * Legend: Figma 29834:157978 — 2 rows × 3 items, 24px column gap.
 * Grouped legend: Figma 30165:164949 — Prior LTP badge + 3 line styles above chart.
 * Mobile: responsive image + zoom modal with scrollable detail.
 *
 * Tokens only where a variable exists. Three sampled fills on 30165:164949
 * have no token (badge #e5e6e6, C1-INH fill/stroke) and are flagged below.
 */

.layout-container {

  /* ── Card shell ── */
  .chart {
    width: 100%;
    max-width: 100%;
  }

  .chart__figure {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
    margin: 0;
    padding: 0;
    border-radius: var(--radius-2xl);
    background: var(--color-white);
    box-shadow: var(--shadow-chart-card);
  }

  /* Title / media / legend — desktop L/R 50px (see min-width 767). */
  .chart__main {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--gap-size-md);
    width: 100%;
    padding: var(--gap-size-lg);
  }

  .chart__title {
    width: 100%;
    margin: 0;
    color: var(--color-charcoal);
    font-family: var(--font-agenda);
    font-size: var(--fs-20);
    font-weight: var(--font-weight-bold);
    line-height: normal;
    text-align: center;
    font-feature-settings: "liga" 0;
  }

  .chart__title sup {
    font-size: 0.645em;
    top: -0.4em;
  }

  /* ── Chart media ── */
  .chart__media {
    position: relative;
    width: 100%;
  }

  .chart__image {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
  }

  .chart__image--mobile {
    display: none;
  }

  .chart__zoom {
    display: none;
    position: absolute;
    z-index: 2;
    width: 2.216rem;
    height: 2.216rem;
    padding: 0;
    border: 0;
    border-radius: var(--radius-full);
    background: transparent url("../../images/icons/chart-zoom.svg") center / contain no-repeat;
    cursor: pointer;
  }

  .chart__zoom:focus-visible,
  .chart__dialog-close:focus-visible {
    outline: 2px solid var(--color-dark-coral);
    outline-offset: 2px;
  }

  /* ── Legend — Figma divider (Line 10) sits above keys, full content width. */
  .chart__legend {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    margin: 0;
    padding-top: var(--gap-size-md);
    border-top: 1px solid var(--color-steel);
  }

  .efficacy-reduction-chart .chart__legend {
    border-top-color: var(--color-neutral-2, #d6d2c4);
  }

  .chart__legend-row {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--gap-size-lg);
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
  }


  .chart__legend-item {
    display: flex;
    align-items: flex-start;
    gap: var(--gap-size-sm);
    max-width: 100%;
  }

  .chart__legend-row--lines .chart__legend-item {
    align-items: center;
  }

  .chart__legend-row--dots .chart__legend-item {
    gap: 6px
  }

  .chart__marker {
    flex: none;
    display: block;
  }

  .chart__marker--line-placebo {
    width: 1rem;
    height: 0;
    border-top: 2px solid var(--color-steel);
  }

  .chart__marker--line-q4w {
    width: 1rem;
    height: 0.3125rem;
    border-radius: var(--radius-full);
    background: var(--color-melon);
  }

  .chart__marker--line-q8w {
    width: 1rem;
    height: 0.3125rem;
    border-radius: var(--radius-full);
    background: var(--color-dark-coral);
  }

  .chart__marker--dot-lemon,
  .chart__marker--dot-steel,
  .chart__marker--dot-coral {
    width: 0.6875rem;
    height: 0.6875rem;
    margin-top: 0.15em;
    border-radius: var(--radius-full);
    border: 1.5px solid var(--color-charcoal);
  }

  .chart__marker--dot-lemon { background: var(--color-lemon); }
  .chart__marker--dot-steel { background: var(--color-neutral-2); }
  .chart__marker--dot-coral {
    background: var(--color-melon);
    border-color: var(--color-charcoal);
  }

  .chart__legend-text {
    min-width: 0;
    color: var(--color-charcoal);
    font-family: var(--font-agenda);
    font-size: 0.875rem;
    font-weight: var(--font-weight-normal);
    line-height: normal;
  }

  .chart__legend--dialog .chart__legend-text {
    white-space: normal;
  }

  .chart__legend--dialog {
    border-top: 0;
  }

  /* Footnote band layout only — type/hang come from text-wysiwyg SDC.
     24px L/R (--gap-size-lg); main band stays 50px on desktop.
     No top padding — sits flush under the legend. */
  .chart__footnote {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0 var(--gap-size-lg) var(--gap-size-lg);
    text-align: left;
  }

  .chart__figure--with-footnote .chart__main {
    padding-bottom: var(--gap-size-md);
  }

  /* Beat theme `p { line-height: 1.75 }` — footnotes stay `normal`. */
  .chart__footnote .text-wysiwyg p,
  .chart__footnote .text-wysiwyg p.text-footnote,
  .chart__footnote .text-wysiwyg p.text-footnote-hanging {
    line-height: normal;
  }

  /* Hang markers into the 24px gutter. * = full-size (Figma); † = real sup. */
  .chart__footnote .text-wysiwyg p.text-footnote-hanging {
    padding-left: 0;
  }

  .chart__footnote .text-wysiwyg p.text-footnote-hanging > sup:first-of-type {
    left: -7px;
  }

  /* * — keep as normal-size hang */
  .chart__footnote .text-wysiwyg p.text-footnote-hanging:first-of-type > sup:first-of-type {
    top: 0;
    font-size: 1em;
    line-height: normal;
  }

  .chart__footnote--dialog {
    padding-left: 0px !important;
    padding-right: 0px !important;
  }

  /* Soft break before "trial." — desktop only; mobile + tablet flow as one sentence. */
  @media (max-width: 1023px) {
    .chart__footnote br {
      display: none;
    }
  }

  /* ── Zoom modal ── */
  .chart__dialog {
    /* width: min(100%, 23.5rem); */
    max-width: calc(100vw - 2rem);
    max-height: calc(100vh - 3rem);
    margin: auto;
    padding: 0;
    border: 0;
    background: transparent;
  }

  .chart__dialog:not([open]) {
    display: none;
  }

  body.path-canvas .chart__dialog {
    display: none !important;
  }

  .chart__dialog::backdrop {
    background: var(--color-overlay-dark);
    backdrop-filter: blur(7px);
  }

  .chart__dialog-panel {
    display: flex;
    flex-direction: column;
    gap: var(--gap-size-lg);
    width: 100%;
    max-height: calc(100vh - 3rem);
    overflow: auto;
    padding: var(--gap-size-lg);
    border-radius: var(--radius-2xl);
    background: var(--color-white);
    box-shadow: var(--shadow-header);
  }

  .chart-gap .chart__dialog-panel {
    gap: 0px;
  }

  .chart-gap .chart__dialog-title {
    padding-bottom: 24px;
  }

  .chart__dialog-close {
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: flex-end;
    width: 2.5rem;
    height: 2.5rem;
    margin: calc(var(--gap-size-lg) * -0.25) calc(var(--gap-size-lg) * -0.25) 0 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-dark-coral);
    cursor: pointer;
  }

  .chart__dialog-close svg {
    display: block;
    width: 1.5rem;
    height: 1.5rem;
  }

  .chart__dialog-title {
    margin: 0;
    color: var(--color-charcoal);
    font-family: var(--font-agenda);
    font-size: 1.5rem;
    font-weight: var(--font-weight-bold);
    line-height: normal;
    font-feature-settings: "liga" 0;
  }

  .chart__dialog-scroll {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    min-height: 315px;
  }

  .chart-vertical-layout .chart__dialog-scroll {
    min-height: 334px;
  }

  .chart__dialog-panel::-webkit-scrollbar,
  .chart__dialog-scroll::-webkit-scrollbar {
    width: 8px;
    height: 8px;
  }

  .chart__dialog-panel::-webkit-scrollbar-track,
  .chart__dialog-scroll::-webkit-scrollbar-track {
    background: var(--color-eee);
    border-radius: var(--radius-full);
  }

  .chart__dialog-panel::-webkit-scrollbar-thumb,
  .chart__dialog-scroll::-webkit-scrollbar-thumb {
    background: var(--color-dark-gray);
    border-radius: var(--radius-full);
    border: 0;
  }

  .chart__dialog-scroll-inner {
    display: flex;
    flex-direction: column;
    gap: var(--gap-size-md);
    width: max-content;
    min-width: 100%;
  }

  .chart__dialog-image {
    display: block;
    width: auto;
    min-width: 26.75rem;
    max-width: none;
    max-height: 24.375rem;
    height: auto;
  }

  .chart__dialog-data {
    display: flex;
    flex-direction: column;
    gap: 0.1875rem;
    width: 26.75rem;
    min-width: 26.75rem;
    color: var(--color-steel);
    font-family: var(--font-agenda);
    font-size: var(--fs-16);
    font-weight: var(--font-weight-normal);
    line-height: normal;
    white-space: nowrap;
  }

  .chart__dialog-data-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }

  .chart__dialog-data-row--label-only {
    justify-content: flex-start;
    padding-left: 4.0625rem;
  }

  .chart__dialog-data-group {
    display: flex;
    align-items: center;
    gap: 3.75rem;
  }

  .chart__dialog-data-label,
  .chart__dialog-data-value {
    flex: none;
  }

  .efficacy-reduction-chart {
    --chart-data-week24: 48.6%;
    --chart-data-week52: 97%;
    --chart-data-placebo-indent: 4.0625rem;
    --chart-data-row-height: 1.25rem;
  }

  .efficacy-reduction-chart .chart__dialog-data {
    display: block;
    position: relative;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: calc(var(--chart-data-row-height) * 3);
    padding: var(--gap-size-md) 0 0;
    box-sizing: content-box;
    color: var(--color-steel);
    font-family: var(--font-agenda);
    font-size: var(--fs-16);
    font-weight: var(--font-weight-normal);
    line-height: normal;
    white-space: nowrap;
  }

  .efficacy-reduction-chart .chart__dialog-data p {
    display: contents;
    margin: 0;
  }

  .efficacy-reduction-chart .chart__dialog-data p > span {
    position: absolute;
    top: 0;
    margin: 0;
  }

  .efficacy-reduction-chart .chart__dialog-data p:nth-child(-n + 2) > .chart__dialog-data-label {
    left: 0;
    transform: none;
  }

  .efficacy-reduction-chart .chart__dialog-data p:nth-child(-n + 2) > .chart__dialog-data-value:not(.chart__dialog-data-value--end) {
    left: var(--chart-data-week24);
    transform: translateX(-50%);
  }

  .efficacy-reduction-chart .chart__dialog-data p:nth-child(-n + 2) > .chart__dialog-data-value--end {
    left: var(--chart-data-week52);
    transform: translateX(-50%);
  }

  .efficacy-reduction-chart .chart__dialog-data p:nth-child(2) > span {
    top: var(--chart-data-row-height);
  }

  .efficacy-reduction-chart .chart__dialog-data p:nth-child(3) > .chart__dialog-data-label {
    top: calc(var(--chart-data-row-height) * 2);
    left: var(--chart-data-placebo-indent);
    transform: none;
  }

  /* ── Responsive ── */
  @media (max-width: 1023px) and (min-width: 768px) {

    .chart__main {
      padding: 1.25rem;
    }

  }

  @media (max-width: 767px) {

    .chart__main {
      align-items: stretch;
      padding: var(--space-md);
      padding-right: 0;
    }

    .chart__footnote {
      padding-left: var(--space-md);
      padding-right: var(--space-md);
      padding-bottom: var(--space-md);
    }

    .chart__title {
      text-align: left;
    }

    .chart__image--desktop {
      display: none;
    }

    .chart__image--mobile {
      display: block;
    }

    .chart__zoom {
      display: block;
      top: 20%;
      left: 90%;
      transform: translate(-50%, 0);
    }

    .chart__legend {
      gap: var(--gap-size-sm);
      align-items: stretch;
      padding-top: var(--gap-size-md);
    }

    .chart__legend-row {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: var(--gap-size-sm);
    }

    .chart__legend-item {
      min-width: 0;
    }

    .chart__legend-text {
      white-space: normal;
      overflow-wrap: anywhere;
    }

    .efficacy-reduction-chart .chart__dialog-scroll-inner {
      gap: var(--gap-size-md);
      padding: 0;
    }

    .efficacy-reduction-chart .chart__dialog-scroll {
      padding: 0 var(--gap-size-lg) 0 var(--gap-size-lg);
      margin-inline: calc(-1 * var(--gap-size-lg));
      width: calc(100% + 2 * var(--gap-size-lg));
    }

    .efficacy-reduction-chart .chart__dialog-scroll::-webkit-scrollbar-track {
      margin-inline: var(--gap-size-lg);
    }

    .efficacy-reduction-chart .chart__dialog-data {
      padding: 0;
      box-sizing: border-box;
    }

    .efficacy-reduction-chart .chart__dialog-image {
      min-width: 0;
      max-width: 28.5rem;
    }

  }

  @media (min-width: 767px) {
    .chart__main {
      padding-left: 50px;
      padding-right: 50px;
    }

    .chart-inset .chart__main {
      padding-left: 40px;
      padding-right: 40px;
    }

    .chart__footnote {
      padding-left: var(--gap-size-lg);
      padding-right: var(--gap-size-lg);
    }
  }

  /* ── Grouped / switch-data (opt-in) — Figma 30165:164949 + 29294:32046.
     Applies only when .chart--grouped is present (Legend chip filled or
     Legend layout = grouped). Existing charts are unchanged. ── */

  /* Switch-data lines — Figma 30165:165031 / 165034 / 165038 (26.91–27.45 × 4.844). */
  .chart__marker--line-lanadelumab {
    width: 1.681875rem;
    height: 0.30275rem;
    border-radius: var(--radius-full);
    background: var(--color-dark-coral);
  }

  .chart__marker--line-berotralstat {
    width: 1.7155rem;
    height: 0.30275rem;
    background: repeating-linear-gradient(
      90deg,
      var(--color-melon) 0 0.4375rem,
      transparent 0.4375rem 0.625rem
    );
  }

  .chart__marker--line-c1inh {
    box-sizing: border-box;
    width: 1.7155rem;
    height: 0.30275rem;
    border-radius: var(--radius-full);
    /* Sampled from 30165:165038 PNG — no Figma variable / theme token. */
    background: #f4e5e1;
    box-shadow: inset 0 0 0 1px #b47268;
  }

  .chart__legend-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.2255625rem 0.676625rem;
    border-radius: 0.2255625rem;
    /* Figma 30165:164958 fill — no token; nearest --color-eee is #eee. */
    background: #e5e6e6;
    color: var(--color-charcoal);
    font-family: var(--font-agenda);
    font-size: 14.434px;
    font-weight: var(--font-weight-medium);
    line-height: normal;
    white-space: nowrap;
  }

  .chart--grouped .chart__main {
    gap: 0;
  }

  .chart--grouped .chart__title {
    margin-bottom: var(--gap-size-lg);
  }

  .chart--grouped .chart__legend {
    gap: 0.625rem;
    padding-top: 0;
    border-top: 0;
  }

  .chart--grouped .chart__legend-row--lines {
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.75rem;
  }

  .chart--grouped .chart__legend-item {
    align-items: center;
    gap: 0.2875rem;
  }

  .chart--grouped .chart__legend-text {
    font-size: 0.789375rem;
    font-weight: var(--font-weight-bold);
  }

  /* Desktop art already includes this legend. Keep the HTML legend for
     mobile + the zoom dialog. Scoped to the switch-data columns class. */
  @media (min-width: 768px) {
    .attack-rate-chart .chart__legend:not(.chart__legend--dialog) {
      display: none;
    }
  }

  .chart--grouped .chart__dialog-panel {
    gap: 0;
  }

  .chart--grouped .chart__dialog-title {
    padding-bottom: 24px;
  }

  .chart--grouped .chart__legend--dialog {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    gap: 8px;
    padding: 0;
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  .chart--grouped .chart__legend--dialog .chart__legend-row {
    order: 1;
    width: 100%;
  }

  .chart--grouped .chart__legend--dialog .chart__legend-row--lines {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 24px;
    width: 100%;
  }

  .chart--grouped .chart__legend--dialog .chart__legend-item {
    flex-direction: row;
    align-items: center;
    gap: 0.2875rem;
  }

  .chart--grouped .chart__legend--dialog .chart__legend-badge {
    order: 2;
    align-self: flex-end;
    margin-left: auto;
    padding: 5.224px 15.672px;
    border-radius: 5.224px;
    font-size: 20.896px;
    margin-bottom: 8px;
    margin-right: 16px;
    font-weight: var(--font-weight-medium);
  }

  .chart--grouped .chart__dialog-scroll-inner {
    width: 100%;
  }

  .chart--grouped .chart__dialog-image {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    max-height: none;
  }

  .chart--grouped .chart__legend--dialog .chart__legend-text {
    font-size: 18.367px;
    font-weight: var(--font-weight-bold);
    white-space: nowrap;
    overflow-wrap: normal;
  }

  .chart--grouped .chart__legend--dialog .chart__marker--line-lanadelumab {
    width: 39.134px;
    height: 7.044px;
  }

  .chart--grouped .chart__legend--dialog .chart__marker--line-berotralstat,
  .chart--grouped .chart__legend--dialog .chart__marker--line-c1inh {
    width: 39.916px;
    height: 7.044px;
  }

  .chart--grouped .chart__legend--dialog .chart__marker--line-berotralstat {
    background: repeating-linear-gradient(
      90deg,
      var(--color-melon) 0 10px,
      transparent 10px 14px
    );
  }

  @media (max-width: 767px) {
    /* Default zoom sits at top: 20%. This chart's plot starts at the
       top of .chart__media, so pin the control to the top-right. */
    .chart--grouped .chart__zoom {
      top: 0;
      left: auto;
      right: 0;
      transform: none;
    }

    .chart--grouped .chart__legend {
      align-items: center;
      padding-top: 0;
    }

    .chart--grouped .chart__legend-row {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 0.75rem;
    }

    .chart--grouped .chart__legend--dialog {
      align-items: stretch;
      width: 100%;
    }

    .chart--grouped .chart__legend--dialog .chart__legend-row,
    .chart--grouped .chart__legend--dialog .chart__legend-row--lines {
      display: flex;
      flex-wrap: nowrap;
      justify-content: flex-start;
      gap: 24px;
      width: 100%;
    }

    .chart--grouped .chart__dialog-image {
      width: auto;
      min-width: 26.75rem;
    }

    .chart--grouped .chart__legend--dialog .chart__legend-item {
      flex-direction: column;
      align-items: flex-start;
      gap: 3px;
    }

    .chart--grouped .chart__legend--dialog .chart__legend-text {
      white-space: nowrap;
      overflow-wrap: normal;
    }
  }
}
