/* Reports (Figma D08 646:114 · T08 673:74639 · M08 673:72852) */

/* ---------- intro ---------- */
.rp-hero { padding-top: 32px; }
.rp-hero-in { display: grid; }
.rp-intro { display: flex; flex-direction: column; }
.rp-intro .crumb { margin-bottom: 24px; }
.rp-lead { margin-top: 16px; font-size: 15px; line-height: 1.5; }
.rp-meta { margin-top: 24px; }
.rp-meta dd { margin: 0; }
.rp-meta > div { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; min-height: 55px; }
.rp-meta dd { font-size: 20px; }
.rp-photo { height: 440px; margin: 40px calc(var(--margin) * -1) 0; }
.rp-photo figcaption { left: var(--margin); bottom: 24px; }
@media (min-width: 768px) {
  .rp-hero { padding-top: 48px; }
  .rp-intro .crumb { margin-bottom: 40px; }
  .rp-lead { margin-top: 24px; font-size: 16px; line-height: 1.6; max-width: 520px; }
  .rp-meta { margin-top: 40px; grid-template-columns: repeat(3, 1fr); max-width: 640px; }
  .rp-meta > div { display: grid; gap: 6px; align-content: start; justify-content: stretch; padding: 20px 20px 16px; min-height: 84px; }
  .rp-photo { height: 480px; margin-top: 72px; }
  .rp-photo figcaption { bottom: 28px; }
}
@media (min-width: 1200px) {
  .rp-hero { padding-block: 64px 96px; }
  .rp-hero-in { grid-template-columns: minmax(0, 640px) 520px; justify-content: space-between; gap: 40px; }
  .rp-intro .crumb { margin-bottom: 30px; padding-top: 2px; }
  .rp-lead { max-width: 520px; margin-top: 22px; }
  .rp-meta { margin-top: auto; }
  .rp-photo { height: 600px; margin: 0; }
  .rp-photo figcaption { left: 24px; bottom: 26px; }
}

/* ---------- key figures ---------- */
.rp-kf-head { align-items: baseline; }
.rp-kf-grid { display: grid; gap: 28px; }
.rp-stats { grid-template-columns: 1fr; }
.rp-stats .stat { min-height: 124px; align-items: flex-start; text-align: left; justify-content: center; padding: 20px; gap: 8px; }
.rp-stats .stat p.t-text { font-size: 13px; max-width: 130px; }
.rp-stats .stat .t-num { max-width: none; white-space: nowrap; }
.rp-chart { border: 1px solid var(--line); padding: 20px 20px 10px; }
.rp-chart-head { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; }
.rp-chart-plot { margin-top: 12px; }
.rp-chart-plot svg { width: 100%; height: auto; overflow: visible; }
@media (max-width: 767px) {
  .rp-kf-head { flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 28px; }
}
@media (min-width: 768px) {
  .rp-kf-grid { gap: 40px; }
  .rp-stats { grid-template-columns: repeat(2, 1fr); }
  .rp-stats .stat { min-height: 188px; align-items: center; text-align: center; padding: 20px 12px; gap: 10px; }
  .rp-stats .stat p.t-text { font-size: 15px; max-width: 216px; }
  .rp-chart { padding: 30px 30px 16px; }
  .rp-chart-plot { margin-top: 17px; }
}
@media (min-width: 1200px) {
  .rp-kf-head { margin-bottom: 36px; }
  .rp-kf-grid { grid-template-columns: 1fr 1fr; gap: 0; }
  .rp-stats .stat { min-height: 219px; }
  .rp-chart { border-left: 0; padding: 32px; display: flex; flex-direction: column; }
  .rp-chart-plot { margin-top: auto; }
}

/* ---------- documents ---------- */
.rp-docs { display: grid; gap: 56px; }
.rp-docs-main { min-width: 0; }
.rp-docs-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 24px; }
.rp-years { display: flex; align-items: center; gap: 16px; }
.rp-chips { gap: 0; flex-wrap: nowrap; }
.rp-chips button { width: 60px; height: 36px; padding: 0; border-radius: 0; border: 1px solid var(--line); font-size: 12px; transition: background .15s, color .15s; }
.rp-chips button + button { margin-left: -1px; }
.rp-chips button:hover { color: var(--g700); }
.rp-chips button[aria-pressed="true"] { position: relative; color: var(--white); }
@media (max-width: 767px) {
  .rp-docs-head { flex-direction: column; align-items: flex-start; }
  .rp-chips button { height: 36px; }
}
.rp-tabs { margin-top: 24px; gap: 32px; }
.rp-tabs button { padding-bottom: 14px; }
.rp-tabs button:hover { color: var(--black); }
.rp-list { margin-top: 24px; border-top: 1px solid var(--black); }
.doc-head { display: flex; align-items: center; gap: 24px; padding: 14px 0 13px; border-bottom: 1px solid var(--line); }
.doc-head .title { flex: 1; }
.doc-head .ic { width: 20px; }
.rp-list .doc:first-child { border-top: 0; }
.rp-list .doc .date { color: var(--g700); }
.rp-list .doc.is-hidden { display: none; }
.rp-empty { padding-block: 24px; border-bottom: 1px solid var(--line); }
.rp-pager { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px; }
.rp-pager .pager { gap: 8px; margin-right: -12px; }
.rp-pager .pager button:disabled { color: var(--k300); cursor: default; }
/* mobile rows: date · meta on top, title below, arrow at right */
@media (max-width: 767px) {
  .rp-list { margin-top: 24px; }
  .rp-list .doc { position: relative; display: flex; flex-wrap: wrap; gap: 0; padding: 18px 40px 18px 0; }
  .rp-list .doc .date, .rp-list .doc .meta { font-size: 11px; color: var(--g700); width: auto; flex: none; }
  .rp-list .doc .meta { order: 1; }
  .rp-list .doc .meta::before { content: " · "; white-space: pre; }
  .rp-list .doc .title { order: 2; flex: 1 0 100%; margin-top: 6px; }
  .rp-list .doc .icon { position: absolute; right: 0; top: 50%; margin-top: 4px; transform: translateY(-50%); }
  .rp-pager { margin-top: 14px; }
}
@media (min-width: 768px) {
  .rp-list { margin-top: 40px; }
  .rp-list .doc { flex-wrap: nowrap; padding-block: 18px; }
  .doc-head .date, .rp-list .doc .date { width: 88px; flex: none; }
  .doc-head .meta, .rp-list .doc .meta { width: 112px; flex: none; white-space: nowrap; }
  .rp-list .doc .title { flex: 1 1 auto; }
  .rp-list .doc .icon { margin-left: 0; }
  .rp-pager { margin-top: 22px; }
}
@media (min-width: 1200px) {
  .rp-docs { grid-template-columns: minmax(0, 1fr) 320px; gap: 80px; }
  .rp-tabs { margin-top: 34px; }
}

@media (min-width: 1400px) {
  .doc-head .date, .rp-list .doc .date { width: 176px; }
  .doc-head .meta, .rp-list .doc .meta { width: 136px; }
}

/* aside */
.rp-aside { display: grid; gap: 40px; align-content: start; }
.rp-reg { border: 1px solid var(--line); padding: 24px; }
.rp-shield { width: 28px; height: 28px; margin-left: -2px; }
.rp-reg .t-h3 { margin-top: 22px; }
.rp-reg > .t-text { margin-top: 20px; }
.rp-reg-list { margin-top: 20px; border-top: 1px solid var(--line); }
.rp-reg-list > div { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 47px; border-bottom: 1px solid var(--line); }
.rp-reg-list dd { text-align: right; }
.rp-reg .t-small { margin-top: 28px; }
.rp-reg .btn--link { margin-top: 20px; }
.rp-contact .photo { aspect-ratio: 350 / 340; }
.rp-contact .photo img { object-position: 50% 30%; }
.rp-contact-txt { display: grid; gap: 6px; margin-top: 14px; }
.rp-mail { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; min-height: 24px; }
.rp-mail:hover { color: var(--g700); }
@media (max-width: 767px) { .rp-mail { min-height: 44px; margin-top: 0; } }
@media (min-width: 768px) and (max-width: 1199px) {
  .rp-docs { gap: 48px; }
  .rp-aside { grid-template-columns: 1.15fr 1fr; gap: 24px; }
  .rp-contact .photo { aspect-ratio: auto; height: 300px; }
}
@media (min-width: 1200px) {
  .rp-contact .photo { aspect-ratio: 320 / 300; }
  .rp-contact-txt { margin-top: 16px; }
}

/* ---------- publication calendar ---------- */
.rp-tl-head { display: grid; gap: 12px; }
.rp-tl { position: relative; margin-top: 36px; }
.rp-tl ol { position: relative; }
.rp-tl li { position: relative; padding: 0 0 28px 28px; }
.rp-tl li:last-child { padding-bottom: 0; }
.rp-tl li::before { content: ""; position: absolute; left: 5.5px; top: 12px; bottom: -12px; border-left: 1px solid var(--g500); }
.rp-tl li:last-child::before { display: none; }
.tl-dot { position: absolute; left: 0; top: 0; width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid var(--g300); background: var(--g950); z-index: 1; }
.rp-tl li.is-done .tl-dot { background: var(--g300); }
.tl-date { color: var(--white); line-height: 12px; }
.tl-title { margin-top: 10px; max-width: 200px; }
.tl-st { margin-top: 4px; color: var(--white); }
.rp-tl li.is-done .tl-st { color: var(--g300); }
.tl-now { display: none; margin-top: 12px; color: var(--white); align-items: center; gap: 8px; }
.tl-now::before { content: ""; width: 16px; border-top: 1px solid var(--white); }
.rp-tl li.is-now .tl-now { display: flex; }
.tl-track, .tl-today { display: none; }
@media (min-width: 768px) and (max-width: 1199px) {
  .rp-tl { margin-top: 40px; }
  .rp-tl li { display: grid; grid-template-columns: 140px minmax(0, 1fr) auto; column-gap: 0; padding: 0 0 34px 34px; }
  .tl-date { grid-column: 1; grid-row: 1; padding-top: 0; }
  .tl-title { grid-column: 2; grid-row: 1; margin-top: -5px; max-width: 190px; }
  .tl-st { grid-column: 3; grid-row: 1; margin-top: -2px; text-align: right; }
  .tl-now { grid-column: 2; grid-row: 2; }
}
@media (min-width: 1200px) {
  .rp-tl-head { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; }
  .rp-tl { margin-top: 55px; padding-top: 36px; }
  .rp-tl ol { display: grid; grid-template-columns: repeat(5, 1fr); }
  .rp-tl li { padding: 36px 40px 0 0; }
  .rp-tl li::before { display: none; }
  .tl-dot { top: -6px; }
  .tl-title { margin-top: 12px; }
  .tl-st { margin-top: 6px; }
  .rp-tl li.is-now .tl-now { display: none; }
  .tl-track { display: block; position: absolute; left: 6px; right: 0; top: 36px; border-top: 1px dashed var(--g500); }
  .tl-done { position: absolute; left: 0; top: -1px; border-top: 1.5px solid var(--g300); }
  .tl-today { display: block; position: absolute; top: 0; height: 54px; margin: 0; border-left: 1px solid var(--g300); color: var(--white); white-space: nowrap; }
  .tl-today > span { position: absolute; left: 8px; top: -6px; }
  .tl-today { top: 18px; height: 36px; }
  .tl-today > span { top: -22px; }
}

/* mobile section titles use the mobile h1 size (Figma v-m-h1) */
@media (max-width: 767px) { .rp-kf .t-h2, .rp-docs .t-h2, .rp-tl-band .t-h2 { font-size: 28px; } }

/* ---------- phase 3: motion, hover, focus ---------- */
/* chart: line draws (layout .draw rules), area / guide / values follow */
.rp-chart-plot .ch-area { opacity: 0; transition: opacity 1.2s ease .9s; }
.rp-chart-plot .ch-vline { opacity: 0; transition: opacity .6s ease 1.9s; }
.rp-chart-plot .ch-val { opacity: 0; transition: opacity .5s ease; transition-delay: var(--d, 0s); }
.rp-chart-plot .draw.is-in .ch-area, .rp-chart-plot .draw.is-in .ch-vline, .rp-chart-plot .draw.is-in .ch-val { opacity: 1; }
.rp-chart-plot svg.no-anim * { transition: none !important; }

/* year chips + type tabs */
.rp-chips button { cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.rp-chips button:hover { border-color: var(--k500); position: relative; z-index: 1; }
.rp-chips button[aria-pressed="true"]:hover { border-color: var(--black); }
.rp-chips button:focus-visible { position: relative; z-index: 2; outline-offset: 1px; }
.rp-tabs button { position: relative; transition: color .2s, border-color .2s; }
.rp-tabs button:hover { border-bottom-color: var(--k300); }
.rp-tabs button[aria-selected="true"]:hover { border-bottom-color: var(--black); }
.rp-tabs button:focus-visible { outline-offset: -2px; }
@media (max-width: 767px) { .rp-tabs { margin-top: 12px; } .rp-tabs button { min-height: 44px; padding-top: 12px; } }

/* document rows: focus ring sits inside the row; filter change re-enters the visible rows */
.rp-list .doc:focus-visible { outline-offset: -2px; background: var(--g50); }
.rp-list .doc .title { transition: color .2s; }
.rp-list .doc:hover .title { color: var(--g900); }
#doc-list.is-swap > .doc:not(.is-hidden) { animation: rp-row .5s var(--ease) both; animation-delay: calc(var(--i, 0) * 35ms); }
.rp-empty.is-swap, #doc-count.is-swap { animation: rp-fade .4s ease both; }
@keyframes rp-row { from { opacity: 0; transform: translateY(8px); } }
@keyframes rp-fade { from { opacity: 0; } }
.rp-pager .pager button { border-radius: 2px; transition: background .2s, color .2s; }
.rp-pager .pager button:not(:disabled):hover { background: var(--k100); color: var(--g700); }
.rp-pager .pager button .icon { transition: transform .3s var(--ease); }
.rp-pager .js-prev:not(:disabled):hover .icon { transform: translateX(-3px); }
.rp-pager .js-next:not(:disabled):hover .icon { transform: translateX(3px); }
.rp-mail { transition: color .2s; }
.rp-mail:focus-visible, .rp-reg .btn--link:focus-visible { outline-offset: 3px; }
.rp-contact .photo img { transition: transform 1.2s var(--ease), filter .6s ease; }
@media (hover: hover) { .rp-contact:hover .photo img { filter: contrast(1.06); } }

/* calendar: track and line draw from the left, dots pop one by one, labels follow */
.rp-tl .tl-track { transform-origin: left; transform: scaleX(0); transition: transform 1.6s var(--ease) .25s; }
.rp-tl.is-in .tl-track { transform: none; }
.rp-tl .tl-today { opacity: 0; transition: opacity .6s ease 1.6s; }
.rp-tl.is-in .tl-today { opacity: 1; }
.rp-tl li { --i: 0; }
.rp-tl li:nth-child(2) { --i: 1; } .rp-tl li:nth-child(3) { --i: 2; } .rp-tl li:nth-child(4) { --i: 3; } .rp-tl li:nth-child(5) { --i: 4; }
.rp-tl .tl-dot { transform: scale(.3); opacity: 0; transition: transform .5s var(--ease), opacity .4s ease; transition-delay: calc(.35s + var(--i) * .22s); }
.rp-tl li > p { opacity: 0; transform: translateY(8px); transition: opacity .6s var(--ease), transform .6s var(--ease); transition-delay: calc(.45s + var(--i) * .22s); }
.rp-tl li::before { transform-origin: top; transform: scaleY(0); transition: transform .5s var(--ease); transition-delay: calc(.45s + var(--i) * .22s); }
.rp-tl.is-in .tl-dot, .rp-tl.is-in li > p { opacity: 1; transform: none; }
.rp-tl.is-in li::before { transform: none; }
.rp-tl li.is-now .tl-dot { box-shadow: 0 0 0 0 rgba(140,195,168,.5); }
.rp-tl.is-in li.is-now .tl-dot { animation: rp-pulse 2.6s ease-out 2s infinite; }
@keyframes rp-pulse { 0% { box-shadow: 0 0 0 0 rgba(140,195,168,.5); } 70%, 100% { box-shadow: 0 0 0 8px rgba(140,195,168,0); } }

@media (prefers-reduced-motion: reduce) {
  .rp-chart-plot .ch-area, .rp-chart-plot .ch-vline, .rp-chart-plot .ch-val { opacity: 1; transition: none; }
  #doc-list.is-swap > .doc, .rp-empty.is-swap, #doc-count.is-swap { animation: none; }
  .rp-tl .tl-track, .rp-tl .tl-dot, .rp-tl li > p, .rp-tl li::before, .rp-tl .tl-today { opacity: 1; transform: none; transition: none; }
  .rp-tl.is-in li.is-now .tl-dot { animation: none; }
}
/* chips keep the 36px Figma look but get a 44px tap area on mobile */
@media (max-width: 767px) { .rp-chips button { position: relative; } .rp-chips button::after { content: ""; position: absolute; inset: -4px 0; } }
.rp-chart-head { flex-wrap: wrap; row-gap: 4px; }
.rp-chart-head > span { white-space: nowrap; }
.rp-pager .t-mono { white-space: nowrap; }
@media (max-width: 374px) { .rp-pager .pager { gap: 0; } }
