:root {
  --red: #c61f3f;
  --red-dark: #97172f;
  --ink: #202226;
  --ink-soft: #3d4147;
  --muted: #757b83;
  --light-muted: #9ca2aa;
  --line: #dfe3e8;
  --line-strong: #c9ced5;
  --bg: #ffffff;
  --bg-soft: #f6f7f8;
  --bg-panel: #fbfbfc;
  --dark: #2e3237;
  --dark-2: #41464d;
  --dark-3: #555b63;
  --shadow: 0 18px 46px rgba(32, 34, 38, 0.07);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ink);
  background: #fff;
  font-family: "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-weight: 300;
  line-height: 1.58;
  letter-spacing: -0.025em;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select {
  font: inherit;
}

.container {
  width: min(1200px, calc(100% - 48px));
  margin: 0 auto;
}

.top-strip {
  background: #202226;
  color: rgba(255, 255, 255, 0.66);
  font-size: 12px;
  letter-spacing: 0.03em;
}

.top-strip-inner {
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 20px;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}

.header-inner {
  height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.brand {
  display: flex;
  align-items: center;
  width: 342px;
  min-width: 270px;
}

.brand img {
  display: block;
  width: 100%;
  height: auto;
}

.nav {
  display: flex;
  align-items: center;
  gap: 2px;
}

.nav a {
  padding: 10px 12px;
  color: #454a50;
  font-size: 14px;
  font-weight: 400;
  border-bottom: 2px solid transparent;
}

.nav a:hover {
  color: var(--red);
  border-bottom-color: var(--red);
}

.menu-button {
  display: none;
  border: 1px solid var(--line-strong);
  background: #fff;
  color: var(--ink);
  padding: 8px 11px;
  font-size: 12px;
  font-weight: 500;
}

.hero {
  background:
    linear-gradient(180deg, #ffffff 0%, #f6f7f8 100%);
  border-bottom: 1px solid var(--line);
}

.hero-grid {
  min-height: 520px;
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  align-items: center;
  gap: 56px;
  padding: 78px 0;
}

.eyebrow {
  margin: 0 0 14px;
  color: var(--red);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  max-width: 820px;
  margin-bottom: 22px;
  color: #1d2024;
  font-size: clamp(42px, 5.2vw, 68px);
  font-weight: 300;
  line-height: 1.04;
  letter-spacing: -0.065em;
}

h2 {
  margin-bottom: 0;
  color: #24272b;
  font-size: clamp(27px, 3vw, 40px);
  font-weight: 300;
  line-height: 1.18;
  letter-spacing: -0.05em;
}

h3 {
  margin-bottom: 8px;
  color: #24272b;
  font-size: 18px;
  font-weight: 400;
}

.hero-text {
  max-width: 700px;
  margin-bottom: 32px;
  color: var(--muted);
  font-size: 18px;
  font-weight: 300;
}

.hero-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 19px;
  border: 1px solid transparent;
  font-weight: 400;
  font-size: 14px;
}

.btn-primary {
  background: #2f343a;
  color: #fff;
}

.btn-primary:hover {
  background: #1f2328;
}

.btn-secondary {
  color: #2f343a;
  border-color: var(--line-strong);
  background: #fff;
}

.btn-secondary:hover {
  border-color: #8f969f;
}

.rating-panel {
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--line);
  border-top: 4px solid var(--red);
  box-shadow: var(--shadow);
}

.panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 24px;
  border-bottom: 1px solid var(--line);
}

.panel-head span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 400;
}

.panel-head strong {
  color: #25292e;
  font-size: 20px;
  font-weight: 500;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin: 0;
}

.stats-grid div {
  padding: 22px 24px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.stats-grid div:nth-child(even) {
  border-right: 0;
}

.stats-grid dt {
  color: var(--muted);
  font-size: 13px;
  font-weight: 400;
}

.stats-grid dd {
  margin: 4px 0 0;
  color: #24272b;
  font-size: 36px;
  font-weight: 300;
  letter-spacing: -0.04em;
}

.range-bar {
  height: 7px;
  margin: 24px;
  background: #eceff2;
}

.range-bar span {
  display: block;
  height: 100%;
  background: #2f343a;
}

.rating-panel p {
  margin: 0;
  padding: 0 24px 24px;
  color: var(--muted);
  font-size: 14px;
}

.ticker-section {
  background: #fff;
  border-bottom: 1px solid var(--line);
}

.ticker-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.ticker-grid article {
  padding: 25px 26px;
  border-right: 1px solid var(--line);
  background: #fff;
}

.ticker-grid article:last-child {
  border-right: 0;
}

.ticker-label {
  display: block;
  margin-bottom: 8px;
  color: var(--red);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ticker-grid strong {
  display: block;
  margin-bottom: 6px;
  color: #262a2f;
  font-size: 16px;
  font-weight: 400;
}

.ticker-grid p {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 14px;
}

.section {
  padding: 86px 0;
  background: #fff;
}

.section-muted {
  background: #f5f6f7;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.section-dark {
  background: #282d33;
  color: #fff;
}

.section-dark h2,
.section-dark h3 {
  color: #fff;
}

.section-dark .eyebrow {
  color: #f08ca0;
}

.section-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 42px;
  margin-bottom: 32px;
}

.section-head > p {
  max-width: 470px;
  margin-bottom: 2px;
  color: var(--muted);
}

.section-dark .section-head > p {
  color: rgba(255,255,255,0.64);
}

.toolbar {
  display: grid;
  grid-template-columns: 1fr 180px 220px;
  gap: 12px;
  margin-bottom: 16px;
  padding: 16px;
  background: #f5f6f7;
  border: 1px solid var(--line);
}

.toolbar label {
  display: grid;
  gap: 6px;
}

.toolbar span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
}

.toolbar input,
.toolbar select {
  width: 100%;
  min-height: 43px;
  padding: 0 12px;
  border: 1px solid var(--line-strong);
  background: #fff;
  color: var(--ink);
  outline: none;
  font-weight: 300;
}

.toolbar input::placeholder {
  color: #9ba1a8;
}

.toolbar input:focus,
.toolbar select:focus {
  border-color: #454a50;
}

.table-wrap {
  overflow: auto;
  border: 1px solid var(--line-strong);
  background: #fff;
  box-shadow: 0 10px 28px rgba(32,34,38,0.05);
}

.table-wrap.compact {
  max-height: none;
}

.data-table {
  width: 100%;
  min-width: 960px;
  border-collapse: collapse;
  font-size: 15px;
}

.data-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #4c5056;
  color: #fff;
  padding: 16px 18px;
  border-right: 1px solid rgba(255,255,255,0.28);
  text-align: left;
  font-weight: 400;
  white-space: nowrap;
}

.data-table th[data-sort] {
  cursor: pointer;
}

.data-table th[data-sort]::after {
  content: "↕";
  margin-left: 8px;
  opacity: 0.52;
  font-size: 12px;
}

.data-table td {
  padding: 15px 18px;
  border-top: 1px solid #d5d9de;
  border-right: 1px solid #d5d9de;
  background: #fff;
  color: #2f3338;
}

.data-table tr:nth-child(even) td {
  background: #fafafa;
}

.data-table td:first-child {
  color: #7f858c;
  text-align: center;
}

.data-table .country {
  color: #171a1d;
  font-weight: 500;
}

.badge {
  display: inline-flex;
  min-width: 78px;
  min-height: 32px;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 400;
}

.previous-rating {
  color: #535961;
  font-weight: 400;
  text-align: center;
  background: #f3f5f7 !important;
}

.rating-AAA,
.rating-AA\+,
.rating-AA,
.rating-AA- {
  background: #0068a8;
}

.rating-A,
.rating-A- {
  background: #00a05a;
}

.rating-BBB\+,
.rating-BBB {
  background: #e0b400;
}

.rating-BBB- {
  background: #f28a00;
}

.rating-BB\+ {
  background: #e45a00;
}

.rating-BB,
.rating-BB- {
  background: #ef3f36;
}

.rating-B\+,
.rating-B,
.rating-B- {
  background: #b3261e;
}

.rating-CCC,
.rating-CCC-,
.rating-CC {
  background: #8737b5;
}

.efi-cell {
  background: #eef4fa !important;
  color: #152fa4;
  font-weight: 400;
  text-align: center;
}

.efi-grade {
  color: #fff;
  font-weight: 400;
  text-align: center;
}

.efi-Free { background: #00a260 !important; }
.efi-Mostly-Free { background: #2196d3 !important; }
.efi-Moderately-Free { background: #e7b900 !important; }
.efi-Mostly-Unfree { background: #e35a00 !important; }
.efi-Repressed { background: #b3261e !important; }

.outlook {
  color: #555b63;
  font-weight: 400;
}

.table-note {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.stat-table th {
  background: #42484f;
}

.stat-table td:nth-child(1),
.stat-table td:nth-child(3) {
  color: #fff;
  text-align: center;
  font-weight: 400;
}

.stat-table td:nth-child(2),
.stat-table td:nth-child(4),
.stat-table td:nth-child(5) {
  text-align: center;
}

.stat-table td:nth-child(6) {
  color: var(--muted);
  font-style: italic;
}

.efi-scale {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  margin-top: 22px;
  border: 1px solid var(--line-strong);
}

.scale-item {
  min-height: 88px;
  padding: 16px;
  color: #fff;
  border-right: 1px solid rgba(255,255,255,0.32);
}

.scale-item:last-child {
  border-right: 0;
}

.scale-item strong {
  display: block;
  font-size: 16px;
  font-weight: 400;
}

.scale-item span {
  opacity: 0.84;
  font-size: 13px;
}

.scale-item.free { background: #00a260; }
.scale-item.mostly-free { background: #2196d3; }
.scale-item.moderate { background: #e7b900; }
.scale-item.unfree { background: #e35a00; }
.scale-item.repressed { background: #b3261e; }

.method-grid {
  display: grid;
  grid-template-columns: 0.75fr 1.25fr;
  gap: 54px;
}

.lead {
  color: var(--muted);
  font-size: 17px;
}

.method-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--line-strong);
  border: 1px solid var(--line-strong);
}

.method-cards article {
  padding: 28px;
  background: #fff;
}

.method-cards article:nth-child(even) {
  background: #fafafa;
}

.method-cards span {
  display: block;
  margin-bottom: 18px;
  color: var(--red);
  font-size: 12px;
  font-weight: 500;
}

.method-cards p {
  margin: 0;
  color: var(--muted);
}

.report-list {
  display: grid;
  border-top: 1px solid rgba(255,255,255,0.22);
}

.report-list article {
  display: grid;
  grid-template-columns: 140px 1fr 220px;
  gap: 24px;
  padding: 22px 0;
  border-bottom: 1px solid rgba(255,255,255,0.22);
}

.report-list time {
  color: #f08ca0;
  font-weight: 400;
}

.report-list strong {
  color: #fff;
  font-size: 18px;
  font-weight: 300;
}

.report-list span {
  color: rgba(255,255,255,0.62);
  text-align: right;
}

.about-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 48px;
  align-items: start;
}

.identity-card {
  border: 1px solid var(--line-strong);
  background: #fff;
  box-shadow: 0 10px 28px rgba(32,34,38,0.05);
}

.identity-head {
  padding: 30px 28px;
  background: #c61f3f;
  color: #fff;
  text-align: center;
}

.identity-head strong {
  display: block;
  font-size: 25px;
  font-weight: 400;
}

.identity-head span {
  display: block;
  font-size: 21px;
  font-weight: 300;
}

.identity-head em {
  display: block;
  color: rgba(255,255,255,0.84);
  font-style: normal;
  font-size: 17px;
}

.identity-card dl {
  margin: 0;
}

.identity-card dl div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--line);
}

.identity-card dt,
.identity-card dd {
  margin: 0;
  padding: 20px 24px;
}

.identity-card dt {
  background: #555b63;
  color: #fff;
  text-align: center;
  font-weight: 300;
}

.identity-card dd {
  color: var(--muted);
}

.office-list {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 26px;
}

.office-list span {
  padding: 8px 12px;
  border: 1px solid var(--line-strong);
  background: #fff;
  color: #353a40;
  font-size: 13px;
  font-weight: 400;
}

.site-footer {
  background: #202226;
  color: rgba(255,255,255,0.64);
  border-top: 4px solid var(--red);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1fr 2fr auto;
  gap: 24px;
  align-items: center;
  min-height: 120px;
  padding: 28px 0;
}

.footer-grid strong {
  color: #fff;
  font-weight: 400;
}

.footer-grid p {
  margin: 0;
  font-size: 13px;
}

.footer-grid span {
  font-size: 12px;
}

@media (max-width: 920px) {
  .container {
    width: min(100% - 28px, 1200px);
  }

  .nav {
    display: none;
  }

  .menu-button {
    display: inline-flex;
  }

  .brand {
    width: 250px;
    min-width: 210px;
  }

  .hero-grid,
  .method-grid,
  .about-grid {
    grid-template-columns: 1fr;
  }

  .hero-grid {
    min-height: auto;
    padding: 56px 0;
  }

  .ticker-grid,
  .efi-scale {
    grid-template-columns: 1fr;
  }

  .ticker-grid article {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .section-head {
    display: block;
  }

  .section-head > p {
    margin-top: 12px;
  }

  .toolbar {
    grid-template-columns: 1fr;
  }

  .report-list article {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .report-list span {
    text-align: left;
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .top-strip-inner {
    overflow: auto;
    white-space: nowrap;
  }

  .brand {
    width: 215px;
    min-width: 0;
  }

  h1 {
    font-size: 35px;
  }

  .hero-text,
  .lead {
    font-size: 15px;
  }

  .section {
    padding: 58px 0;
  }

  .method-cards {
    grid-template-columns: 1fr;
  }

  .identity-card dl div {
    grid-template-columns: 120px 1fr;
  }
}


/* ===== NCR polish update: saturated rating colors, cleaner spacing, premium table finish ===== */

.hero {
  background:
    radial-gradient(circle at 86% 18%, rgba(198, 31, 63, 0.075), transparent 26%),
    linear-gradient(180deg, #ffffff 0%, #f8f9fa 58%, #f1f3f5 100%);
}

.site-header {
  box-shadow: 0 1px 0 rgba(32, 34, 38, 0.04), 0 10px 28px rgba(32, 34, 38, 0.035);
}

.brand {
  width: 360px;
}

.nav a {
  border-radius: 2px;
  transition: color .18s ease, background .18s ease, border-color .18s ease;
}

.rating-panel,
.identity-card,
.table-wrap {
  border-radius: 2px;
}

.rating-panel {
  box-shadow: 0 20px 54px rgba(32, 34, 38, 0.09);
}

.panel-head {
  background: linear-gradient(180deg, #ffffff, #fafbfc);
}

.stats-grid div {
  transition: background .18s ease;
}

.stats-grid div:hover {
  background: #f8f9fa;
}

.btn {
  border-radius: 2px;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.btn:hover {
  transform: translateY(-1px);
}

.section-head {
  border-left: 3px solid var(--red);
  padding-left: 18px;
}

.toolbar {
  border-radius: 2px;
  background: linear-gradient(180deg, #f8f9fa, #f3f5f7);
}

.toolbar input,
.toolbar select {
  border-radius: 2px;
}

.data-table {
  font-size: 14.5px;
}

.data-table th {
  background: linear-gradient(180deg, #4f545b, #42474e);
  font-size: 14px;
}

.data-table tbody tr {
  transition: background .14s ease, box-shadow .14s ease;
}

.data-table tbody tr:hover td {
  background: #f1f6fb;
}

.data-table tbody tr:hover .previous-rating {
  background: #eaf1f7 !important;
}

.badge {
  min-width: 82px;
  border-radius: 2px;
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.14);
  letter-spacing: -0.01em;
}

.previous-rating {
  position: relative;
  color: #4d545c;
}

.previous-rating::before {
  content: "Prev.";
  display: inline-block;
  margin-right: 8px;
  color: #9aa1aa;
  font-size: 11px;
  letter-spacing: 0;
}

.efi-cell {
  color: #003de6;
}

.efi-grade {
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.16);
}

.scale-item {
  position: relative;
  overflow: hidden;
}

.scale-item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(255,255,255,.16), transparent 42%);
  pointer-events: none;
}

.method-cards article {
  transition: transform .18s ease, box-shadow .18s ease;
}

.method-cards article:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(32,34,38,.08);
  z-index: 1;
}

.report-list article {
  transition: background .18s ease;
}

.report-list article:hover {
  background: rgba(255,255,255,.045);
}

.office-list span {
  border-radius: 2px;
  background: #fafafa;
}

.site-footer {
  background: linear-gradient(180deg, #25282d, #1d2024);
}

/* Explicit high-saturation rating palette */
.rating-AAA {
  background: linear-gradient(180deg, #0083c9, #0068a8);
}

.rating-AA\+,
.rating-AA,
.rating-AA- {
  background: linear-gradient(180deg, #0a88c8, #006ca8);
}

.rating-A,
.rating-A- {
  background: linear-gradient(180deg, #00b96b, #009750);
}

.rating-BBB\+,
.rating-BBB {
  background: linear-gradient(180deg, #efc400, #d2a900);
}

.rating-BBB- {
  background: linear-gradient(180deg, #ff9d00, #e37a00);
}

.rating-BB\+ {
  background: linear-gradient(180deg, #ff6a00, #d94c00);
}

.rating-BB,
.rating-BB- {
  background: linear-gradient(180deg, #ff4c42, #dd322b);
}

.rating-B\+,
.rating-B,
.rating-B- {
  background: linear-gradient(180deg, #c92f25, #8f241d);
}

.rating-CCC,
.rating-CCC-,
.rating-CC {
  background: linear-gradient(180deg, #9f42d0, #6c2e93);
}

.efi-Free {
  background: linear-gradient(180deg, #00b96b, #009750) !important;
}

.efi-Mostly-Free {
  background: linear-gradient(180deg, #28a8e0, #1686c4) !important;
}

.efi-Moderately-Free {
  background: linear-gradient(180deg, #efc400, #d2a900) !important;
}

.efi-Mostly-Unfree {
  background: linear-gradient(180deg, #ff6a00, #d94c00) !important;
}

.efi-Repressed {
  background: linear-gradient(180deg, #c92f25, #8f241d) !important;
}

.scale-item.free {
  background: linear-gradient(180deg, #00b96b, #009750);
}

.scale-item.mostly-free {
  background: linear-gradient(180deg, #28a8e0, #1686c4);
}

.scale-item.moderate {
  background: linear-gradient(180deg, #efc400, #d2a900);
}

.scale-item.unfree {
  background: linear-gradient(180deg, #ff6a00, #d94c00);
}

.scale-item.repressed {
  background: linear-gradient(180deg, #c92f25, #8f241d);
}

@media (max-width: 920px) {
  .brand {
    width: 270px;
  }

  .section-head {
    padding-left: 14px;
  }
}

@media (max-width: 560px) {
  .brand {
    width: 220px;
  }

  .previous-rating::before {
    display: none;
  }
}


/* ===== Macro report page ===== */

.report-hero {
  background:
    radial-gradient(circle at 85% 20%, rgba(198,31,63,.075), transparent 25%),
    linear-gradient(180deg, #ffffff 0%, #f3f5f7 100%);
  border-bottom: 1px solid var(--line);
}

.report-hero-grid {
  min-height: 430px;
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 56px;
  align-items: center;
  padding: 72px 0;
}

.document-card {
  background: #fff;
  border: 1px solid var(--line-strong);
  border-top: 4px solid var(--red);
  box-shadow: var(--shadow);
}

.document-card dl {
  margin: 0;
}

.document-card div {
  display: grid;
  grid-template-columns: 120px 1fr;
  border-bottom: 1px solid var(--line);
}

.document-card div:last-child {
  border-bottom: 0;
}

.document-card dt,
.document-card dd {
  margin: 0;
  padding: 18px 20px;
  font-size: 14px;
}

.document-card dt {
  background: #f3f5f7;
  color: #555b63;
  font-weight: 400;
}

.document-card dd {
  color: #25292e;
  font-weight: 300;
}

.report-layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 42px;
  align-items: start;
}

.report-toc {
  position: sticky;
  top: 108px;
  display: grid;
  gap: 4px;
  padding: 18px;
  background: #f6f7f8;
  border: 1px solid var(--line);
}

.report-toc strong {
  margin-bottom: 8px;
  color: #25292e;
  font-weight: 400;
  font-size: 14px;
}

.report-toc a {
  padding: 9px 8px;
  color: #5d646d;
  font-size: 14px;
  border-left: 2px solid transparent;
}

.report-toc a:hover {
  color: var(--red);
  border-left-color: var(--red);
  background: #fff;
}

.report-paper {
  min-width: 0;
  background: #fff;
}

.report-paper section {
  scroll-margin-top: 110px;
}

.judgement-list {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: judgement;
  border-top: 1px solid var(--line);
}

.judgement-list li {
  counter-increment: judgement;
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 18px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
  color: #30353a;
}

.judgement-list li::before {
  content: counter(judgement, decimal-leading-zero);
  color: var(--red);
  font-weight: 400;
  letter-spacing: .04em;
}

.report-block {
  margin-top: 54px;
}

.report-block h2 {
  margin-bottom: 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

.indicator-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--line-strong);
}

.indicator-grid div {
  min-height: 120px;
  padding: 20px;
  border-right: 1px solid var(--line);
  background: #fafafa;
}

.indicator-grid div:last-child {
  border-right: 0;
}

.indicator-grid span {
  display: block;
  margin-bottom: 12px;
  color: #6d747c;
  font-size: 13px;
}

.indicator-grid strong {
  display: block;
  color: #25292e;
  font-size: 30px;
  font-weight: 300;
  letter-spacing: -0.04em;
}

.indicator-grid em {
  color: var(--red);
  font-size: 12px;
  font-style: normal;
}

.report-table {
  min-width: 980px;
}

.report-table td:first-child {
  color: #111;
  font-weight: 500;
}

.risk-matrix {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: 22px;
  background: var(--line-strong);
  border: 1px solid var(--line-strong);
}

.risk-matrix div {
  min-height: 118px;
  padding: 22px;
  background: #f8f9fa;
}

.risk-matrix strong {
  display: block;
  margin-bottom: 8px;
  color: #25292e;
  font-weight: 400;
}

.risk-matrix span {
  color: #69717a;
}

.template-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--line-strong);
  border: 1px solid var(--line-strong);
}

.template-grid article {
  padding: 24px;
  background: #fff;
}

.template-grid span {
  display: block;
  margin-bottom: 16px;
  color: var(--red);
  font-size: 12px;
  letter-spacing: .06em;
}

.template-grid strong {
  display: block;
  margin-bottom: 8px;
  color: #25292e;
  font-weight: 400;
}

.template-grid p {
  margin: 0;
  color: var(--muted);
}

.monitoring-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.monitoring-tags span {
  padding: 10px 12px;
  border: 1px solid var(--line-strong);
  background: #fafafa;
  color: #454a50;
  font-size: 13px;
}

.report-disclaimer {
  margin-top: 54px;
  padding: 22px 24px;
  background: #f6f7f8;
  border-left: 3px solid var(--red);
}

.report-disclaimer p {
  margin: 0;
  color: #656c75;
  font-size: 14px;
}

.report-link-card a strong {
  color: inherit;
}

.report-link-card a:hover strong {
  color: #f08ca0;
}

@media (max-width: 920px) {
  .report-hero-grid,
  .report-layout {
    grid-template-columns: 1fr;
  }

  .report-toc {
    position: static;
  }

  .indicator-grid,
  .risk-matrix,
  .template-grid {
    grid-template-columns: 1fr;
  }

  .indicator-grid div {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .indicator-grid div:last-child {
    border-bottom: 0;
  }
}

@media (max-width: 560px) {
  .document-card div {
    grid-template-columns: 1fr;
  }

  .document-card dt,
  .document-card dd {
    padding: 12px 16px;
  }
}


/* ===== Professional refinement: smaller logo, restrained depth, report archive ===== */

:root {
  --shadow: 0 8px 18px rgba(32, 34, 38, 0.045);
}

.header-inner {
  height: 72px;
}

.brand {
  width: 246px !important;
  min-width: 220px;
}

.site-header {
  box-shadow: none;
}

.rating-panel,
.identity-card,
.table-wrap,
.document-card {
  box-shadow: none;
}

.hero-grid {
  min-height: 470px;
  padding: 62px 0;
}

h1 {
  font-size: clamp(40px, 4.6vw, 60px);
  letter-spacing: -0.058em;
}

h2 {
  letter-spacing: -0.045em;
}

.section {
  padding: 76px 0;
}

.section-head {
  border-left: 0;
  padding-left: 0;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}

.eyebrow {
  color: #9f1a34;
}

.btn:hover {
  transform: none;
}

.method-cards article:hover {
  transform: none;
  box-shadow: none;
}

.data-table tbody tr:hover td {
  background: #f6f9fc;
}

.panel-head {
  background: #fff;
}

.ticker-grid article {
  background: #fff;
}

.report-hero-grid {
  min-height: 380px;
  padding: 60px 0;
}

.report-toc,
.archive-filter {
  border-top: 3px solid var(--red);
}

/* Report archive page */
.archive-hero {
  background: linear-gradient(180deg, #ffffff 0%, #f4f6f8 100%);
  border-bottom: 1px solid var(--line);
}

.archive-hero-inner {
  padding: 72px 0 58px;
}

.archive-layout {
  display: grid;
  grid-template-columns: 230px 1fr;
  gap: 42px;
  align-items: start;
}

.archive-filter {
  position: sticky;
  top: 96px;
  display: grid;
  gap: 4px;
  padding: 18px;
  background: #fff;
  border: 1px solid var(--line);
}

.archive-filter strong {
  margin-bottom: 10px;
  color: #24272b;
  font-weight: 400;
  font-size: 14px;
}

.archive-filter a {
  padding: 9px 8px;
  color: #626972;
  font-size: 14px;
  border-left: 2px solid transparent;
}

.archive-filter a:hover {
  color: var(--red);
  border-left-color: var(--red);
  background: #f7f8f9;
}

.archive-main {
  min-width: 0;
}

.archive-toolbar {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-bottom: 34px;
  border: 1px solid var(--line-strong);
}

.archive-toolbar div {
  padding: 20px 22px;
  border-right: 1px solid var(--line);
  background: #fafafa;
}

.archive-toolbar div:last-child {
  border-right: 0;
}

.archive-toolbar span {
  display: block;
  margin-bottom: 6px;
  color: #727982;
  font-size: 13px;
}

.archive-toolbar strong {
  color: #24272b;
  font-size: 24px;
  font-weight: 300;
}

.archive-section {
  scroll-margin-top: 96px;
  margin-bottom: 52px;
}

.archive-section-head {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: end;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

.archive-section-head h2 {
  font-size: 27px;
}

.archive-section-head span {
  color: #7b828b;
  font-size: 13px;
}

.archive-report {
  display: grid;
  grid-template-columns: 190px 1fr 82px;
  gap: 24px;
  align-items: start;
  padding: 24px 0;
  border-bottom: 1px solid var(--line);
}

.archive-report.featured-report {
  padding: 26px 24px;
  border: 1px solid var(--line-strong);
  border-left: 4px solid var(--red);
  background: #fbfbfc;
  margin-bottom: 8px;
}

.report-meta-block {
  display: grid;
  gap: 6px;
}

.report-meta-block time {
  color: #9f1a34;
  font-size: 14px;
  font-weight: 400;
}

.report-meta-block span {
  color: #7c838c;
  font-size: 12px;
}

.archive-report h3 {
  margin: 0 0 8px;
  color: #202327;
  font-size: 20px;
  font-weight: 400;
}

.archive-report a:hover h3 {
  color: var(--red);
}

.archive-report p {
  margin: 0 0 12px;
  color: #6f7780;
  font-size: 14px;
}

.report-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.report-tags span {
  padding: 5px 8px;
  border: 1px solid var(--line);
  background: #fff;
  color: #6d747d;
  font-size: 12px;
}

.report-open {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid #3f454c;
  background: #2f343a;
  color: #fff;
  font-size: 12px;
  font-weight: 400;
}

.report-open.disabled {
  border-color: var(--line-strong);
  background: #f3f4f5;
  color: #9ca2aa;
  cursor: default;
}

.report-open:hover:not(.disabled) {
  background: #1f2328;
}

@media (max-width: 920px) {
  .brand {
    width: 216px !important;
    min-width: 190px;
  }

  .archive-layout {
    grid-template-columns: 1fr;
  }

  .archive-filter {
    position: static;
  }

  .archive-toolbar {
    grid-template-columns: 1fr;
  }

  .archive-toolbar div {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .archive-report,
  .archive-report.featured-report {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .brand {
    width: 190px !important;
  }

  .header-inner {
    height: 68px;
  }

  .archive-hero-inner {
    padding: 54px 0 42px;
  }
}


/* ===== Navigation restructure / motion polish / color integrity fix ===== */

html {
  scroll-padding-top: 84px;
}

body {
  overflow-x: hidden;
}

.site-header {
  border-bottom: 1px solid rgba(32, 34, 38, 0.10);
  background: rgba(255,255,255,.985);
}

.header-inner {
  position: relative;
  height: 70px;
}

.brand {
  width: 222px !important;
  min-width: 200px;
}

.nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  flex: 1;
}

.nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 11px;
  color: #3e444b;
  font-size: 13.5px;
  font-weight: 350;
  border-bottom: 0;
  border-radius: 2px;
  white-space: nowrap;
  transition: color .18s ease, background .18s ease;
}

.nav a::after {
  content: "";
  position: absolute;
  left: 11px;
  right: 11px;
  bottom: 4px;
  height: 1px;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .22s ease;
}

.nav a:hover {
  color: #111418;
  background: #f4f6f8;
  border-bottom: 0;
}

.nav a:hover::after {
  transform: scaleX(1);
}

.menu-button {
  display: none;
  min-width: 56px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border: 1px solid #cfd4da;
  background: #fff;
  color: #30353a;
  border-radius: 2px;
}

/* Fix mobile nav inline-style issues from prior versions */
.nav[style] {
  position: static !important;
  top: auto !important;
  right: auto !important;
  flex-direction: row !important;
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* stronger, complete rating colors so background never drops out */
.badge,
.stat-table td:nth-child(1),
.stat-table td:nth-child(3) {
  color: #fff !important;
  background-clip: padding-box;
}

.rating-AAA {
  background: linear-gradient(180deg, #008bd2 0%, #006faf 100%) !important;
}

.rating-AA\+,
.rating-AA,
.rating-AA- {
  background: linear-gradient(180deg, #0b93d4 0%, #0073b3 100%) !important;
}

.rating-A,
.rating-A- {
  background: linear-gradient(180deg, #05bd70 0%, #009c58 100%) !important;
}

.rating-BBB\+,
.rating-BBB {
  background: linear-gradient(180deg, #f0c500 0%, #d4aa00 100%) !important;
}

.rating-BBB- {
  background: linear-gradient(180deg, #ff9d00 0%, #e37a00 100%) !important;
}

.rating-BB\+ {
  background: linear-gradient(180deg, #ff6d00 0%, #dc4f00 100%) !important;
}

.rating-BB,
.rating-BB- {
  background: linear-gradient(180deg, #ff5147 0%, #df332c 100%) !important;
}

.rating-B\+,
.rating-B,
.rating-B- {
  background: linear-gradient(180deg, #c93228 0%, #92251e 100%) !important;
}

.rating-CCC,
.rating-CCC-,
.rating-CC {
  background: linear-gradient(180deg, #a546d2 0%, #71309a 100%) !important;
}

/* Old escaped CSS may not match text-based utility classes in every browser context. */
td.rating-AAA,
td.rating-AA\+,
td.rating-AA,
td.rating-AA-,
td.rating-A,
td.rating-A-,
td.rating-BBB\+,
td.rating-BBB,
td.rating-BBB-,
td.rating-BB\+,
td.rating-BB,
td.rating-BB-,
td.rating-B\+,
td.rating-B,
td.rating-B-,
td.rating-CCC,
td.rating-CCC-,
td.rating-CC {
  color: #fff !important;
}

/* Cleaner sections */
.hero,
.archive-hero,
.report-hero {
  position: relative;
  isolation: isolate;
}

.hero::after,
.archive-hero::after,
.report-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(198,31,63,.35), transparent);
  z-index: -1;
}

.rating-panel,
.document-card,
.identity-card,
.archive-report.featured-report {
  border-radius: 3px;
}

.rating-panel,
.document-card {
  border-color: #d7dce2;
}

.table-wrap {
  border-radius: 3px;
  border-color: #cfd5dc;
}

.data-table th {
  background: #444a52;
  letter-spacing: -0.01em;
}

.data-table td {
  transition: background .16s ease;
}

.badge {
  border: 0;
  min-height: 31px;
  border-radius: 3px;
}

.previous-rating {
  background: #f0f3f6 !important;
}

.efi-cell {
  background: #eef5ff !important;
}

.efi-grade {
  border-left: 0;
}

.report-open,
.btn {
  border-radius: 3px;
}

.report-open {
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}

/* Subtle entrance motion */
@media (prefers-reduced-motion: no-preference) {
  .hero-copy,
  .rating-panel,
  .ticker-grid article,
  .section-head,
  .table-wrap,
  .method-cards article,
  .archive-report,
  .report-paper,
  .document-card {
    animation: ncrFadeUp .45s ease both;
  }

  .rating-panel,
  .document-card {
    animation-delay: .04s;
  }

  .ticker-grid article:nth-child(2),
  .archive-report:nth-of-type(2) {
    animation-delay: .04s;
  }

  .ticker-grid article:nth-child(3),
  .archive-report:nth-of-type(3) {
    animation-delay: .08s;
  }

  @keyframes ncrFadeUp {
    from {
      opacity: 0;
      transform: translateY(8px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

/* Archive + report motion polish */
.archive-report {
  transition: background .16s ease, border-color .16s ease;
}

.archive-report:hover {
  background: #f9fafb;
}

.archive-report.featured-report:hover {
  background: #f6f8fa;
  border-color: #c8ced5;
}

/* Mobile nav completely rebuilt */
@media (max-width: 1040px) {
  .header-inner {
    height: 68px;
  }

  .brand {
    width: 202px !important;
    min-width: 180px;
  }

  .menu-button {
    display: inline-flex;
    position: relative;
    z-index: 70;
  }

  .nav {
    display: none;
  }

  .nav.is-open {
    display: grid !important;
    position: absolute !important;
    top: calc(100% + 8px) !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 60;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    padding: 10px !important;
    background: #fff !important;
    border: 1px solid #d8dde3 !important;
    box-shadow: 0 10px 24px rgba(32,34,38,.10) !important;
  }

  .nav.is-open a {
    width: 100%;
    height: 42px;
    justify-content: center;
    background: #f6f7f8;
    border: 1px solid transparent;
  }

  .nav.is-open a:hover {
    border-color: #d9dee4;
    background: #fff;
  }

  .nav.is-open a::after {
    display: none;
  }
}

@media (max-width: 560px) {
  .container {
    width: min(100% - 28px, 1200px);
  }

  .brand {
    width: 172px !important;
    min-width: 150px;
  }

  .nav.is-open {
    grid-template-columns: 1fr;
  }

  h1 {
    font-size: 32px;
  }

  .hero-grid,
  .report-hero-grid {
    padding: 42px 0;
  }
}


/* ===== Final polish: hierarchy, navigation, motion, finish ===== */

:root {
  --ease-out: cubic-bezier(.2, .8, .2, 1);
  --ease-standard: cubic-bezier(.4, 0, .2, 1);
}

/* Top hierarchy: 4 primary items only */
.nav {
  gap: 10px;
}

.nav a {
  height: 40px;
  padding: 0 14px;
  color: #343940;
  font-size: 14px;
  letter-spacing: -0.015em;
  background: transparent;
}

.nav a:hover {
  color: #1b1f24;
  background: #f2f4f6;
}

.nav a[aria-current="page"] {
  color: #111418;
  background: #f4f6f8;
}

/* More balanced header */
.header-inner {
  height: 72px;
}

.brand {
  width: 214px !important;
}

/* Cleaner global surface */
body {
  background:
    linear-gradient(180deg, #ffffff 0%, #ffffff 48%, #f7f8fa 100%);
}

.top-strip {
  background: #25292e;
}

.hero,
.archive-hero,
.report-hero {
  background:
    radial-gradient(circle at 86% 20%, rgba(198,31,63,.055), transparent 28%),
    linear-gradient(180deg, #ffffff 0%, #f7f8fa 100%);
}

.hero-grid {
  min-height: 455px;
}

.hero-text {
  max-width: 740px;
}

/* Stronger typographic hierarchy without heavy weights */
h1 {
  color: #181b1f;
  font-weight: 300;
}

h2 {
  color: #202328;
}

.eyebrow {
  font-weight: 450;
}

/* Cards and tables: less shadow, more precision */
.rating-panel,
.document-card,
.identity-card,
.archive-report.featured-report {
  border: 1px solid #d5dbe2;
}

.rating-panel {
  border-top: 4px solid var(--red);
}

.panel-head,
.stats-grid div,
.method-cards article,
.template-grid article {
  background: #ffffff;
}

.stats-grid div:hover {
  background: #fafbfc;
}

.ticker-section {
  background: #fff;
}

.ticker-grid article {
  transition: background .18s var(--ease-standard);
}

.ticker-grid article:hover {
  background: #f8fafc;
}

.section {
  background: #fff;
}

.section-muted {
  background: #f6f7f9;
}

.section-dark {
  background: linear-gradient(180deg, #2c3137 0%, #252a30 100%);
}

/* Navigation underline refinement */
.nav a::after {
  height: 2px;
  bottom: 2px;
  border-radius: 999px;
  transform-origin: center;
}

/* Table finish */
.table-wrap {
  background: #fff;
}

.data-table th {
  background: linear-gradient(180deg, #50565e 0%, #454b53 100%);
}

.data-table td {
  border-color: #d8dde3;
}

.data-table tbody tr:hover td {
  background: #f3f7fb;
}

.previous-rating {
  background: #f2f5f8 !important;
}

.previous-rating::before {
  color: #a3abb4;
}

.efi-cell {
  background: #edf5ff !important;
  color: #123fd2;
}

.badge,
.efi-grade {
  transition: filter .18s var(--ease-standard), transform .18s var(--ease-standard);
}

.data-table tbody tr:hover .badge,
.data-table tbody tr:hover .efi-grade {
  filter: saturate(1.08) contrast(1.02);
}

/* Button finish */
.btn,
.report-open,
.menu-button {
  transition:
    background .18s var(--ease-standard),
    border-color .18s var(--ease-standard),
    color .18s var(--ease-standard),
    transform .18s var(--ease-standard);
}

.btn:hover,
.report-open:hover:not(.disabled) {
  transform: translateY(-1px);
}

.btn-primary {
  background: #2e3339;
}

.btn-primary:hover {
  background: #20242a;
}

.btn-secondary:hover {
  background: #f7f8fa;
}

/* Report archive: sharper hierarchy */
.archive-toolbar {
  border-color: #d5dbe2;
}

.archive-toolbar div {
  background: linear-gradient(180deg, #ffffff, #fafbfc);
}

.archive-report {
  transition:
    background .18s var(--ease-standard),
    border-color .18s var(--ease-standard),
    transform .18s var(--ease-standard);
}

.archive-report:hover {
  background: #f8fafc;
  transform: translateY(-1px);
}

.archive-report.featured-report {
  background: #ffffff;
}

.archive-report.featured-report:hover {
  background: #fbfcfd;
}

.report-tags span,
.monitoring-tags span,
.office-list span {
  background: #fff;
  border-color: #d9dee4;
  transition: background .18s var(--ease-standard), border-color .18s var(--ease-standard);
}

.report-tags span:hover,
.monitoring-tags span:hover,
.office-list span:hover {
  background: #f5f7f9;
  border-color: #c8cfd7;
}

/* Report detail finish */
.report-paper {
  position: relative;
}

.report-paper::before {
  content: "";
  position: absolute;
  top: 0;
  left: -22px;
  width: 1px;
  height: 100%;
  background: linear-gradient(180deg, #c61f3f, transparent 28%);
}

.judgement-list li {
  transition: background .18s var(--ease-standard);
}

.judgement-list li:hover {
  background: #fafbfc;
}

.indicator-grid div {
  background: linear-gradient(180deg, #ffffff, #fafbfc);
}

.risk-matrix div {
  background: #fff;
}

.risk-matrix div:hover,
.template-grid article:hover {
  background: #f8fafc;
}

/* Mobile nav stability */
@media (max-width: 1040px) {
  .nav.is-open {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
  }

  .nav.is-open a {
    height: 44px;
    font-size: 13px;
  }

  .nav.is-open a:hover {
    transform: none;
  }
}

@media (max-width: 720px) {
  .nav.is-open {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .brand {
    width: 170px !important;
  }

  .nav.is-open {
    grid-template-columns: 1fr;
  }

  .report-paper::before {
    display: none;
  }
}

/* Motion audit: keep it restrained, consistent, no layout jumps */
@media (prefers-reduced-motion: no-preference) {
  .hero-copy,
  .rating-panel,
  .ticker-grid article,
  .section-head,
  .table-wrap,
  .method-cards article,
  .archive-report,
  .archive-toolbar,
  .report-paper,
  .document-card,
  .report-toc,
  .archive-filter {
    animation: ncrSoftEnter .42s var(--ease-out) both;
  }

  .ticker-grid article:nth-child(2),
  .method-cards article:nth-child(2),
  .archive-report:nth-of-type(2) {
    animation-delay: .035s;
  }

  .ticker-grid article:nth-child(3),
  .method-cards article:nth-child(3),
  .archive-report:nth-of-type(3) {
    animation-delay: .07s;
  }

  .method-cards article:nth-child(4),
  .archive-report:nth-of-type(4) {
    animation-delay: .105s;
  }

  @keyframes ncrSoftEnter {
    from {
      opacity: 0;
      transform: translate3d(0, 7px, 0);
    }
    to {
      opacity: 1;
      transform: translate3d(0, 0, 0);
    }
  }
}

/* Prevent older duplicate animations from stacking visually */
@media (prefers-reduced-motion: no-preference) {
  .hero-copy,
  .rating-panel,
  .ticker-grid article,
  .section-head,
  .table-wrap,
  .method-cards article,
  .archive-report,
  .report-paper,
  .document-card {
    animation-name: ncrSoftEnter;
  }
}


/* ===== Final fix: stable rating colors, dark-surface contrast, institution redesign ===== */

/* Stable class names generated by app.js: AA+ -> AAplus, BBB- -> BBBminus */
.rating-AAA,
[data-rating="AAA"] {
  background: linear-gradient(180deg, #008bd2 0%, #006faf 100%) !important;
  color: #fff !important;
}

.rating-AAplus,
[data-rating="AA+"] {
  background: linear-gradient(180deg, #0c98dc 0%, #0079ba 100%) !important;
  color: #fff !important;
}

.rating-AA,
[data-rating="AA"] {
  background: linear-gradient(180deg, #128fd3 0%, #006faa 100%) !important;
  color: #fff !important;
}

.rating-AAminus,
[data-rating="AA-"] {
  background: linear-gradient(180deg, #2284c4 0%, #0a6399 100%) !important;
  color: #fff !important;
}

.rating-A,
[data-rating="A"] {
  background: linear-gradient(180deg, #07bf72 0%, #009c58 100%) !important;
  color: #fff !important;
}

.rating-Aminus,
[data-rating="A-"] {
  background: linear-gradient(180deg, #12ad66 0%, #008b4d 100%) !important;
  color: #fff !important;
}

.rating-BBBplus,
[data-rating="BBB+"] {
  background: linear-gradient(180deg, #f3c800 0%, #d7ad00 100%) !important;
  color: #fff !important;
}

.rating-BBB,
[data-rating="BBB"] {
  background: linear-gradient(180deg, #e9bd00 0%, #c99f00 100%) !important;
  color: #fff !important;
}

.rating-BBBminus,
[data-rating="BBB-"] {
  background: linear-gradient(180deg, #ff9d00 0%, #e37a00 100%) !important;
  color: #fff !important;
}

.rating-BBplus,
[data-rating="BB+"] {
  background: linear-gradient(180deg, #ff7200 0%, #e25100 100%) !important;
  color: #fff !important;
}

.rating-BB,
[data-rating="BB"] {
  background: linear-gradient(180deg, #ff584d 0%, #e13a32 100%) !important;
  color: #fff !important;
}

.rating-BBminus,
[data-rating="BB-"] {
  background: linear-gradient(180deg, #ef443b 0%, #c93029 100%) !important;
  color: #fff !important;
}

.rating-Bplus,
[data-rating="B+"] {
  background: linear-gradient(180deg, #d1372d 0%, #a52922 100%) !important;
  color: #fff !important;
}

.rating-B,
[data-rating="B"] {
  background: linear-gradient(180deg, #bd2f27 0%, #8f241e 100%) !important;
  color: #fff !important;
}

.rating-Bminus,
[data-rating="B-"] {
  background: linear-gradient(180deg, #a82b25 0%, #761e1a 100%) !important;
  color: #fff !important;
}

.rating-CCC,
[data-rating="CCC"],
.rating-CCCminus,
[data-rating="CCC-"],
.rating-CC,
[data-rating="CC"] {
  background: linear-gradient(180deg, #a748d4 0%, #71309a 100%) !important;
  color: #fff !important;
}

/* Dark surfaces must always use white type */
.section-dark,
.section-dark *,
.site-footer,
.site-footer *,
.top-strip,
.top-strip *,
.identity-title,
.identity-title *,
.identity-facts dt,
.report-open:not(.disabled) {
  color: #fff;
}

.data-table th,
.data-table th *,
.efi-grade,
.efi-grade *,
.badge,
.badge * {
  color: #fff !important;
}

.report-list article:hover {
  background: rgba(255, 255, 255, 0.055);
}

/* Institution section redesign */
.about-section {
  background:
    linear-gradient(180deg, #ffffff 0%, #f6f7f9 100%);
  border-top: 1px solid var(--line);
}

.institution-grid {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 34px;
  align-items: stretch;
}

.institution-identity {
  border: 1px solid #d5dbe2;
  background: #fff;
}

.identity-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 116px;
  padding: 22px 28px;
  border-bottom: 1px solid var(--line);
}

.identity-logo img {
  width: 220px;
  max-width: 100%;
  height: auto;
}

.identity-title {
  padding: 28px;
  background:
    linear-gradient(180deg, #30363d 0%, #22272d 100%);
  color: #fff;
}

.identity-title strong {
  display: block;
  margin-bottom: 6px;
  font-size: 24px;
  font-weight: 350;
  letter-spacing: -0.04em;
}

.identity-title span {
  display: block;
  margin-bottom: 4px;
  font-size: 17px;
  font-weight: 300;
  color: rgba(255,255,255,.86);
}

.identity-title em {
  display: block;
  font-size: 12px;
  font-style: normal;
  letter-spacing: .08em;
  color: rgba(255,255,255,.62);
  text-transform: uppercase;
}

.identity-facts {
  margin: 0;
}

.identity-facts div {
  display: grid;
  grid-template-columns: 112px 1fr;
  border-top: 1px solid var(--line);
}

.identity-facts dt,
.identity-facts dd {
  margin: 0;
  padding: 16px 18px;
  font-size: 13px;
}

.identity-facts dt {
  background: #4b5159;
  color: #fff;
  font-weight: 350;
}

.identity-facts dd {
  color: #454b53;
}

.institution-main {
  display: grid;
  gap: 18px;
}

.institution-summary {
  padding: 32px 34px;
  border: 1px solid #d5dbe2;
  border-left: 4px solid var(--red);
  background: #fff;
}

.institution-summary h3 {
  margin-bottom: 12px;
  font-size: 26px;
  font-weight: 300;
  letter-spacing: -0.045em;
}

.institution-summary p {
  max-width: 820px;
  margin: 0;
  color: #6b727b;
  font-size: 16px;
}

.institution-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid #d5dbe2;
  background: #fff;
}

.institution-metrics div {
  padding: 22px 24px;
  border-right: 1px solid var(--line);
  background: linear-gradient(180deg, #ffffff, #fafbfc);
}

.institution-metrics div:last-child {
  border-right: 0;
}

.institution-metrics span {
  display: block;
  margin-bottom: 8px;
  color: #737b84;
  font-size: 12px;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.institution-metrics strong {
  display: block;
  color: #202327;
  font-size: 34px;
  font-weight: 300;
  letter-spacing: -0.05em;
}

.institution-metrics em {
  display: block;
  color: var(--red);
  font-size: 12px;
  font-style: normal;
}

.institution-columns {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  border: 1px solid #d5dbe2;
  background: #d5dbe2;
}

.institution-columns article {
  padding: 24px;
  background: #fff;
}

.institution-columns article:nth-child(2) {
  background: #fbfcfd;
}

.institution-columns span {
  display: block;
  margin-bottom: 18px;
  color: var(--red);
  font-size: 12px;
  letter-spacing: .08em;
}

.institution-columns h3 {
  margin-bottom: 10px;
  font-size: 18px;
  font-weight: 350;
}

.institution-columns p {
  margin: 0;
  color: #717881;
  font-size: 14px;
}

.refined-office-list {
  margin-top: 0;
  padding: 18px;
  border: 1px solid #d5dbe2;
  background: #fff;
}

/* Hide stale previous institution layout if browser keeps old classes */
.about-grid,
.identity-card {
  display: none !important;
}

.institution-summary,
.institution-metrics div,
.institution-columns article,
.identity-logo,
.identity-facts div {
  transition: background .18s var(--ease-standard), border-color .18s var(--ease-standard);
}

.institution-metrics div:hover,
.institution-columns article:hover,
.identity-facts div:hover dd {
  background: #f7f9fb;
}

@media (prefers-reduced-motion: no-preference) {
  .institution-identity,
  .institution-summary,
  .institution-metrics,
  .institution-columns,
  .refined-office-list {
    animation: ncrSoftEnter .42s var(--ease-out) both;
  }

  .institution-summary { animation-delay: .03s; }
  .institution-metrics { animation-delay: .06s; }
  .institution-columns { animation-delay: .09s; }
}

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

  .institution-identity {
    max-width: none;
  }

  .institution-metrics,
  .institution-columns {
    grid-template-columns: 1fr;
  }

  .institution-metrics div {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .institution-metrics div:last-child {
    border-bottom: 0;
  }
}

@media (max-width: 560px) {
  .identity-facts div {
    grid-template-columns: 100px 1fr;
  }

  .institution-summary {
    padding: 26px 22px;
  }

  .institution-summary h3 {
    font-size: 23px;
  }
}


/* ===== Final visual polish: neutral report cards, tooltips, institution premium upgrade ===== */

/* Remove selected-card impression in report archive */
.archive-report,
.archive-report.featured-report {
  padding: 24px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--line) !important;
  border-left: 0 !important;
  background: transparent !important;
}

.archive-report:hover,
.archive-report.featured-report:hover {
  background: #f8fafc !important;
}

.archive-report .report-open {
  align-self: start;
}

.report-open {
  border: 1px solid #3a4047;
  background: #30363d;
  color: #fff !important;
}

.report-open:hover:not(.disabled) {
  background: #242930;
}

/* Tooltips: quiet and professional */
.has-tooltip {
  position: relative;
  cursor: help;
}

.has-tooltip::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 9px);
  z-index: 120;
  width: max-content;
  max-width: 240px;
  padding: 8px 10px;
  background: #20242a;
  color: #fff;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 3px;
  font-size: 12px;
  font-weight: 300;
  line-height: 1.45;
  letter-spacing: -0.01em;
  white-space: normal;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 4px);
  transition: opacity .16s var(--ease-standard), transform .16s var(--ease-standard), visibility .16s;
  pointer-events: none;
}

.has-tooltip::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: calc(100% + 4px);
  z-index: 121;
  width: 8px;
  height: 8px;
  background: #20242a;
  transform: translate(-50%, 4px) rotate(45deg);
  opacity: 0;
  visibility: hidden;
  transition: opacity .16s var(--ease-standard), transform .16s var(--ease-standard), visibility .16s;
  pointer-events: none;
}

.has-tooltip:hover::after,
.has-tooltip:hover::before {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0) rotate(0deg);
}

.has-tooltip:hover::before {
  transform: translate(-50%, 0) rotate(45deg);
}

/* Keep table tooltips inside usable visual area */
.data-table td.has-tooltip:first-child::after,
.data-table td.has-tooltip:nth-child(2)::after {
  left: 0;
  transform: translate(0, 4px);
}

.data-table td.has-tooltip:first-child:hover::after,
.data-table td.has-tooltip:nth-child(2):hover::after {
  transform: translate(0, 0);
}

/* Institution section premium composition */
.about-section {
  background:
    linear-gradient(180deg, #ffffff 0%, #f7f8fa 100%);
}

.institution-grid {
  grid-template-columns: 340px 1fr;
  gap: 28px;
}

.institution-identity,
.institution-summary,
.institution-metrics,
.institution-columns,
.refined-office-list {
  border-color: #cfd6de;
}

.institution-identity {
  background: #fff;
}

.identity-logo {
  min-height: 108px;
  background:
    radial-gradient(circle at 85% 15%, rgba(198,31,63,.06), transparent 28%),
    #fff;
}

.identity-logo img {
  width: 196px;
}

.identity-title {
  background:
    linear-gradient(135deg, #242930 0%, #30363d 58%, #242930 100%);
  position: relative;
  overflow: hidden;
}

.identity-title::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(255,255,255,.08), transparent 40%);
  pointer-events: none;
}

.identity-title strong,
.identity-title span,
.identity-title em {
  position: relative;
  z-index: 1;
}

.identity-facts div {
  grid-template-columns: 104px 1fr;
}

.identity-facts dt {
  background: #3f454d;
  color: #fff !important;
}

.identity-facts dd {
  background: #fff;
}

.institution-summary {
  display: grid;
  grid-template-columns: 1fr 170px;
  gap: 30px;
  align-items: center;
  padding: 30px 32px;
  background: #fff;
}

.institution-kicker {
  display: block;
  margin-bottom: 12px;
  color: var(--red);
  font-size: 11px;
  font-weight: 450;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.institution-summary h3 {
  max-width: 720px;
  margin-bottom: 10px;
  font-size: 28px;
}

.institution-summary p {
  max-width: 780px;
}

.institution-status {
  min-height: 128px;
  padding: 20px;
  display: grid;
  align-content: center;
  border-left: 1px solid var(--line);
  background: #fafbfc;
}

.institution-status span {
  color: #747b84;
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.institution-status strong {
  color: #202327;
  font-size: 32px;
  font-weight: 300;
  letter-spacing: -0.05em;
}

.institution-status em {
  color: var(--red);
  font-size: 12px;
  font-style: normal;
}

.institution-metrics div {
  min-height: 122px;
}

.institution-metrics strong {
  font-size: 36px;
}

.institution-columns article {
  min-height: 162px;
}

.institution-columns article:hover {
  background:
    radial-gradient(circle at 90% 0%, rgba(198,31,63,.045), transparent 30%),
    #fff;
}

.refined-office-list {
  justify-content: space-between;
}

.refined-office-list span {
  min-width: 120px;
  text-align: center;
  background: #fbfcfd;
}

/* Better contrast on every dark cell/surface */
.data-table th,
.data-table th *,
.identity-title,
.identity-title *,
.identity-facts dt,
.identity-facts dt *,
.section-dark,
.section-dark *,
.site-footer,
.site-footer *,
.top-strip,
.top-strip *,
.report-open:not(.disabled),
.report-open:not(.disabled) * {
  color: #fff !important;
}

/* Table rating cells: no fading on hover */
.data-table tbody tr:hover .badge {
  filter: saturate(1.12) contrast(1.03);
}

/* Clean report archive card spacing shown in screenshot */
.archive-report {
  grid-template-columns: 190px 1fr 92px;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.archive-report h3 {
  font-size: 20px;
  letter-spacing: -0.035em;
}

.archive-report p {
  font-size: 14.5px;
}

/* Make disabled preview visually clearly inactive */
.report-open.disabled {
  background: #f1f3f5 !important;
  color: #9aa2ab !important;
  border-color: #d6dce3 !important;
}

@media (max-width: 980px) {
  .institution-grid,
  .institution-summary {
    grid-template-columns: 1fr;
  }

  .institution-status {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .refined-office-list {
    justify-content: flex-start;
  }
}

@media (max-width: 720px) {
  .archive-report {
    grid-template-columns: 1fr;
  }

  .report-open {
    width: fit-content;
  }

  .has-tooltip::after {
    display: none;
  }

  .has-tooltip::before {
    display: none;
  }
}


/* ===== Tooltip + motion refinement ===== */

/* Tooltip should not be hidden behind sticky header/top bar */
.data-table .has-tooltip::after,
.data-table .has-tooltip::before {
  bottom: auto;
  top: calc(100% + 8px);
}

.data-table .has-tooltip::before {
  top: calc(100% + 3px);
}

.data-table .has-tooltip::after {
  transform: translate(-50%, -3px);
}

.data-table .has-tooltip::before {
  transform: translate(-50%, -3px) rotate(45deg);
}

.data-table .has-tooltip:hover::after {
  transform: translate(-50%, 0);
}

.data-table .has-tooltip:hover::before {
  transform: translate(-50%, 0) rotate(45deg);
}

/* Less visually loud tooltip */
.has-tooltip::after {
  padding: 7px 9px;
  background: rgba(42, 47, 53, 0.94);
  border: 1px solid rgba(255,255,255,.06);
  color: rgba(255,255,255,.88);
  border-radius: 2px;
  font-size: 11px;
  font-weight: 300;
  box-shadow: none;
}

.has-tooltip::before {
  background: rgba(42, 47, 53, 0.94);
}

/* Tooltip should not overwhelm report/institution cards */
.institution-columns .has-tooltip::after {
  max-width: 210px;
  color: rgba(255,255,255,.84);
}

/* More refined motion: smaller movement, cleaner easing */
@media (prefers-reduced-motion: no-preference) {
  .hero-copy,
  .rating-panel,
  .ticker-grid article,
  .section-head,
  .table-wrap,
  .method-cards article,
  .archive-report,
  .archive-toolbar,
  .report-paper,
  .document-card,
  .report-toc,
  .archive-filter,
  .institution-identity,
  .institution-summary,
  .institution-metrics,
  .institution-columns,
  .refined-office-list {
    animation-duration: .34s !important;
    animation-timing-function: cubic-bezier(.22, .72, .22, 1) !important;
  }

  @keyframes ncrSoftEnter {
    from {
      opacity: 0;
      transform: translate3d(0, 4px, 0);
    }
    to {
      opacity: 1;
      transform: translate3d(0, 0, 0);
    }
  }
}

/* Motion polish on navigation */
.nav a {
  transition:
    color .16s cubic-bezier(.4,0,.2,1),
    background .16s cubic-bezier(.4,0,.2,1);
}

.nav a::after {
  transition: transform .2s cubic-bezier(.22,.72,.22,1);
}

/* Reduce jumpy hover motion */
.archive-report:hover,
.btn:hover,
.report-open:hover:not(.disabled) {
  transform: none !important;
}

.archive-report {
  transition:
    background .16s cubic-bezier(.4,0,.2,1),
    border-color .16s cubic-bezier(.4,0,.2,1) !important;
}

/* Add subtle motion without physical movement */
.report-open:not(.disabled):hover,
.btn-primary:hover {
  filter: brightness(.96);
}

.btn-secondary:hover {
  background: #f4f6f8;
}

/* Table hover becomes smoother and less flashy */
.data-table td,
.badge,
.efi-grade {
  transition:
    background .14s cubic-bezier(.4,0,.2,1),
    filter .14s cubic-bezier(.4,0,.2,1),
    color .14s cubic-bezier(.4,0,.2,1);
}

.data-table tbody tr:hover td {
  background: #f6f8fb;
}

.data-table tbody tr:hover .badge,
.data-table tbody tr:hover .efi-grade {
  filter: saturate(1.04);
}

/* Slightly calmer active/hover surfaces */
.nav a:hover,
.nav a[aria-current="page"] {
  background: #f6f7f8;
}

.archive-report:hover,
.archive-report.featured-report:hover,
.ticker-grid article:hover,
.institution-metrics div:hover,
.institution-columns article:hover {
  background: #fafbfc !important;
}

/* Mobile tooltip off remains */
@media (max-width: 720px) {
  .has-tooltip::after,
  .has-tooltip::before {
    display: none !important;
  }
}


/* ===== Tooltip redesign + publication red accent ===== */

/* Replace old tooltip look: white corporate micro-card */
.has-tooltip::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 50%;
  z-index: 200;
  width: max-content;
  max-width: 260px;
  padding: 10px 12px 10px 14px;
  background: #ffffff;
  color: #343940 !important;
  border: 1px solid #d5dbe2;
  border-left: 3px solid var(--red);
  border-radius: 4px;
  box-shadow: 0 8px 18px rgba(32, 34, 38, 0.10);
  font-size: 12px;
  font-weight: 300;
  line-height: 1.45;
  letter-spacing: -0.015em;
  white-space: normal;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity .14s cubic-bezier(.4,0,.2,1),
    transform .14s cubic-bezier(.4,0,.2,1),
    visibility .14s;
}

/* Remove triangle. It looked noisy. */
.has-tooltip::before {
  display: none !important;
}

/* General cards: top placement */
.has-tooltip::after {
  bottom: calc(100% + 8px);
  top: auto;
  transform: translate(-50%, 3px);
}

.has-tooltip:hover::after {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

/* Table: bottom placement so sticky header never hides tooltip */
.data-table .has-tooltip::after {
  top: calc(100% + 8px);
  bottom: auto;
  transform: translate(-50%, -3px);
}

.data-table .has-tooltip:hover::after {
  transform: translate(-50%, 0);
}

/* Rating badges get tighter tooltip positioning */
.badge.has-tooltip::after {
  min-width: 178px;
}

/* Institution tooltip becomes less intrusive */
.institution-columns .has-tooltip::after {
  max-width: 230px;
  left: 18px;
  transform: translate(0, 3px);
}

.institution-columns .has-tooltip:hover::after {
  transform: translate(0, 0);
}

/* Publication / report sections: add controlled NCR red */
.section-dark {
  background:
    linear-gradient(180deg, #2d3239 0%, #242930 100%);
  position: relative;
}

.section-dark::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: var(--red);
}

.report-list {
  border-top: 1px solid rgba(255,255,255,0.20);
}

.report-list article {
  position: relative;
  padding: 24px 0 24px 18px;
  transition:
    background .16s cubic-bezier(.4,0,.2,1),
    border-color .16s cubic-bezier(.4,0,.2,1);
}

.report-list article::before {
  content: "";
  position: absolute;
  left: 0;
  top: 24px;
  bottom: 24px;
  width: 2px;
  background: rgba(198,31,63,.45);
  transform: scaleY(.55);
  transform-origin: center;
  transition: transform .16s cubic-bezier(.4,0,.2,1), background .16s cubic-bezier(.4,0,.2,1);
}

.report-list article:hover {
  background: rgba(255,255,255,0.045);
}

.report-list article:hover::before {
  transform: scaleY(1);
  background: var(--red);
}

.report-list time {
  color: #ff9aae !important;
}

.report-list strong {
  color: #fff !important;
}

.report-list span {
  color: rgba(255,255,255,.64) !important;
}

/* Report archive page: red use without selected-state feel */
.archive-section-head {
  border-bottom: 1px solid #d7dde4;
}

.archive-section-head h2 {
  position: relative;
  padding-left: 14px;
}

.archive-section-head h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: .25em;
  bottom: .25em;
  width: 3px;
  background: var(--red);
}

.archive-report {
  position: relative;
}

.archive-report::before {
  content: "";
  position: absolute;
  left: 0;
  top: 24px;
  bottom: 24px;
  width: 2px;
  background: transparent;
  transition: background .16s cubic-bezier(.4,0,.2,1);
}

.archive-report:hover::before {
  background: var(--red);
}

.archive-report:hover {
  padding-left: 16px !important;
}

.report-meta-block time {
  color: #b71936 !important;
}

.report-tags span {
  border-color: #d8dde4;
}

.report-tags span:first-child {
  border-color: rgba(198,31,63,.32);
  color: #9f1a34;
  background: #fff7f9;
}

/* Macro report detail: red used more professionally */
.report-paper::before {
  background: linear-gradient(180deg, var(--red), rgba(198,31,63,0) 34%);
}

.judgement-list li::before {
  color: #b71936;
}

.indicator-grid em,
.institution-status em,
.institution-metrics em {
  color: #b71936;
}

/* Buttons: very small red interaction line */
.report-open:not(.disabled) {
  position: relative;
  overflow: hidden;
}

.report-open:not(.disabled)::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .16s cubic-bezier(.4,0,.2,1);
}

.report-open:not(.disabled):hover::after {
  transform: scaleX(1);
}

/* Archive hover should not jump too much */
.archive-report:hover {
  background: #fafbfc !important;
}

/* Mobile: hide tooltips */
@media (max-width: 720px) {
  .has-tooltip::after {
    display: none !important;
  }

  .archive-report:hover {
    padding-left: 0 !important;
  }
}


/* ===== Fixed gray tooltips + methodology redesign + publication line removal ===== */

/* Remove long red line on publication section */
.section-dark::before {
  display: none !important;
}

.section-dark {
  border-left: 0 !important;
}

/* Keep only subtle red accents inside publication rows */
.report-list article {
  padding-left: 0 !important;
}

.report-list article::before {
  display: none !important;
}

.report-list article:hover {
  background: rgba(255,255,255,.035) !important;
}

.report-list time {
  color: #ff9aae !important;
}

/* Tooltip layer and clipping fixes */
.site-header {
  z-index: 1000;
}

.has-tooltip {
  position: relative;
  overflow: visible !important;
}

.table-wrap,
.data-table,
.data-table tbody,
.data-table tr,
.data-table td,
.data-table th,
.methodology-section,
.methodology-layout,
.methodology-flow,
.method-node,
.institution-columns,
.archive-main,
.archive-report {
  overflow: visible !important;
}

/* Quiet gray tooltip */
.has-tooltip::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 9999 !important;
  min-width: 128px;
  max-width: 220px;
  width: max-content;
  padding: 7px 9px;
  background: rgba(88, 94, 102, 0.96);
  color: rgba(255,255,255,.86) !important;
  border: 0 !important;
  border-radius: 3px;
  box-shadow: 0 4px 10px rgba(0,0,0,.08);
  font-size: 11px;
  font-weight: 300;
  line-height: 1.4;
  letter-spacing: -0.01em;
  white-space: normal;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .12s cubic-bezier(.4,0,.2,1), transform .12s cubic-bezier(.4,0,.2,1), visibility .12s;
}

.has-tooltip::before {
  display: none !important;
}

/* Default and table: below element, not hidden by top sticky bar */
.has-tooltip::after,
.data-table .has-tooltip::after {
  top: calc(100% + 6px) !important;
  bottom: auto !important;
  left: 50%;
  transform: translate(-50%, -2px);
}

.has-tooltip:hover::after,
.data-table .has-tooltip:hover::after {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

/* Align card tooltips */
.institution-columns .has-tooltip::after,
.method-node.has-tooltip::after {
  left: 18px;
  transform: translate(0, -2px);
}

.institution-columns .has-tooltip:hover::after,
.method-node.has-tooltip:hover::after {
  transform: translate(0, 0);
}

/* Rating badge tooltip smaller */
.badge.has-tooltip::after {
  min-width: 152px;
  max-width: 190px;
}

/* Methodology redesign */
.methodology-section {
  background:
    linear-gradient(180deg, #ffffff 0%, #f7f8fa 100%);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.methodology-header {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 48px;
  align-items: end;
  margin-bottom: 30px;
  padding-bottom: 22px;
  border-bottom: 1px solid #d8dee5;
}

.methodology-header > p {
  margin: 0;
  color: #68707a;
  font-size: 15px;
}

.methodology-layout {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 24px;
  align-items: stretch;
}

.methodology-scorecard {
  padding: 26px;
  background:
    linear-gradient(180deg, #30363d 0%, #252a30 100%);
  color: #fff;
  border: 1px solid #252a30;
}

.methodology-scorecard span {
  display: block;
  margin-bottom: 14px;
  color: rgba(255,255,255,.64);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.methodology-scorecard strong {
  display: block;
  margin-bottom: 14px;
  color: #fff;
  font-size: 30px;
  font-weight: 300;
  line-height: 1.12;
  letter-spacing: -0.045em;
}

.methodology-scorecard p {
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: 14px;
}

.methodology-flow {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: #d3d9e0;
  border: 1px solid #d3d9e0;
}

.method-node {
  position: relative;
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 18px;
  min-height: 178px;
  padding: 26px;
  background: #fff;
  transition: background .16s cubic-bezier(.4,0,.2,1);
}

.method-node:hover {
  background: #fafbfc;
}

.method-node > span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  color: #b71936;
  border: 1px solid rgba(183,25,54,.22);
  background: #fff7f9;
  font-size: 13px;
  font-weight: 350;
}

.method-node h3 {
  margin-bottom: 9px;
  color: #202327;
  font-size: 19px;
  font-weight: 350;
}

.method-node p {
  margin: 0;
  color: #6e7680;
  font-size: 14px;
}

.method-node::after {
  content: "";
  position: absolute;
  left: 26px;
  bottom: 0;
  width: 42px;
  height: 2px;
  background: transparent;
  transition: background .16s cubic-bezier(.4,0,.2,1);
}

.method-node:hover::after {
  background: var(--red);
}

.methodology-note {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 24px;
  margin-top: 24px;
  padding: 20px 22px;
  border: 1px solid #d3d9e0;
  background: #fff;
}

.methodology-note strong {
  color: #202327;
  font-size: 15px;
  font-weight: 400;
}

.methodology-note p {
  margin: 0;
  color: #68707a;
  font-size: 14px;
}

/* Old methodology cards no longer used */
.method-grid,
.method-cards {
  display: none !important;
}

/* Motion refinement for new methodology */
@media (prefers-reduced-motion: no-preference) {
  .methodology-scorecard,
  .method-node,
  .methodology-note {
    animation: ncrSoftEnter .34s cubic-bezier(.22,.72,.22,1) both;
  }

  .method-node:nth-child(2) { animation-delay: .03s; }
  .method-node:nth-child(3) { animation-delay: .06s; }
  .method-node:nth-child(4) { animation-delay: .09s; }
}

@media (max-width: 980px) {
  .methodology-header,
  .methodology-layout,
  .methodology-note {
    grid-template-columns: 1fr;
  }

  .methodology-flow {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .has-tooltip::after {
    display: none !important;
  }

  .method-node {
    grid-template-columns: 1fr;
  }
}


/* ===== Tooltip triangle + institution final polish ===== */

/* Quiet gray tooltip with small directional triangle */
.has-tooltip::before {
  content: "";
  display: block !important;
  position: absolute;
  z-index: 9998 !important;
  left: 50%;
  top: calc(100% + 2px) !important;
  bottom: auto !important;
  width: 7px;
  height: 7px;
  background: rgba(88, 94, 102, 0.96);
  border-radius: 1px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, -2px) rotate(45deg);
  transition:
    opacity .12s cubic-bezier(.4,0,.2,1),
    transform .12s cubic-bezier(.4,0,.2,1),
    visibility .12s;
}

.has-tooltip:hover::before {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0) rotate(45deg);
}

.has-tooltip::after,
.data-table .has-tooltip::after {
  top: calc(100% + 8px) !important;
  bottom: auto !important;
}

/* Left-aligned tooltip for wide cards */
.institution-columns .has-tooltip::before,
.institution-metrics .has-tooltip::before,
.method-node.has-tooltip::before {
  left: 28px;
  transform: translate(0, -2px) rotate(45deg);
}

.institution-columns .has-tooltip:hover::before,
.institution-metrics .has-tooltip:hover::before,
.method-node.has-tooltip:hover::before {
  transform: translate(0, 0) rotate(45deg);
}

.institution-columns .has-tooltip::after,
.institution-metrics .has-tooltip::after,
.method-node.has-tooltip::after {
  left: 18px;
  transform: translate(0, -2px);
}

.institution-columns .has-tooltip:hover::after,
.institution-metrics .has-tooltip:hover::after,
.method-node.has-tooltip:hover::after {
  transform: translate(0, 0);
}

/* Institution section: more finished corporate layout */
.about-section {
  background:
    linear-gradient(180deg, #ffffff 0%, #fafbfc 52%, #f4f6f8 100%);
}

.institution-grid {
  grid-template-columns: 330px minmax(0, 1fr);
  gap: 30px;
}

.institution-identity {
  border: 1px solid #cfd6de;
  background: #fff;
  position: relative;
}

.institution-identity::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: var(--red);
}

.identity-logo {
  min-height: 104px;
  padding: 24px 26px 18px;
  background:
    radial-gradient(circle at 84% 16%, rgba(198,31,63,.06), transparent 28%),
    linear-gradient(180deg, #fff, #fbfcfd);
}

.identity-logo img {
  width: 186px;
}

.identity-title {
  padding: 26px 28px;
  background:
    linear-gradient(135deg, #2b3036 0%, #3a4048 52%, #252a30 100%);
}

.identity-title strong {
  font-size: 25px;
  font-weight: 320;
}

.identity-title span {
  font-size: 16px;
}

.identity-facts div {
  grid-template-columns: 96px 1fr;
}

.identity-facts dt {
  display: flex;
  align-items: center;
  background: #434a52;
  color: #fff !important;
}

.identity-facts dd {
  display: flex;
  align-items: center;
  min-height: 52px;
  color: #3f454c;
  background: #fff;
}

.institution-main {
  gap: 16px;
}

.institution-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 168px;
  gap: 28px;
  align-items: stretch;
  padding: 0;
  border: 1px solid #cfd6de;
  border-left: 0;
  background: #fff;
}

.institution-summary > div:first-child {
  padding: 30px 32px;
  border-left: 4px solid var(--red);
}

.institution-kicker {
  color: #a81b35;
}

.institution-summary h3 {
  font-size: 29px;
  line-height: 1.18;
}

.institution-status {
  min-height: auto;
  padding: 24px 22px;
  border-left: 1px solid #d9dee5;
  background:
    linear-gradient(180deg, #f8fafc, #ffffff);
}

.institution-status strong {
  font-size: 34px;
}

.institution-metrics {
  border: 1px solid #cfd6de;
}

.institution-metrics div {
  min-height: 126px;
  padding: 24px;
  position: relative;
}

.institution-metrics div::after {
  content: "";
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 0;
  height: 2px;
  background: transparent;
  transition: background .16s cubic-bezier(.4,0,.2,1);
}

.institution-metrics div:hover::after {
  background: rgba(198,31,63,.65);
}

.institution-metrics span {
  color: #68717b;
}

.institution-metrics strong {
  font-size: 38px;
  line-height: 1;
}

.institution-columns {
  border-color: #cfd6de;
  background: #cfd6de;
}

.institution-columns article {
  min-height: 170px;
  padding: 26px;
  position: relative;
}

.institution-columns article::before {
  content: "";
  position: absolute;
  top: 26px;
  left: 26px;
  width: 28px;
  height: 1px;
  background: var(--red);
}

.institution-columns article > span {
  margin-top: 18px;
}

.institution-columns h3 {
  font-size: 19px;
  color: #20242a;
}

.institution-network {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 24px;
  align-items: center;
  padding: 20px 22px;
  border: 1px solid #cfd6de;
  background:
    linear-gradient(180deg, #ffffff, #fafbfc);
}

.institution-network span {
  display: block;
  margin-bottom: 6px;
  color: #7a828c;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.institution-network strong {
  display: block;
  color: #20242a;
  font-size: 16px;
  font-weight: 350;
}

.institution-network p {
  margin: 0;
  color: #6f7780;
  font-size: 14px;
}

/* Ensure no stale office list layout appears */
.refined-office-list {
  display: none !important;
}

@media (prefers-reduced-motion: no-preference) {
  .institution-network {
    animation: ncrSoftEnter .34s cubic-bezier(.22,.72,.22,1) both;
    animation-delay: .12s;
  }
}

@media (max-width: 980px) {
  .institution-grid,
  .institution-summary,
  .institution-network {
    grid-template-columns: 1fr;
  }

  .institution-status {
    border-left: 0;
    border-top: 1px solid #d9dee5;
  }
}

@media (max-width: 720px) {
  .has-tooltip::before,
  .has-tooltip::after {
    display: none !important;
  }
}


/* ===== Fix report hover red line covering content ===== */

/* Remove content-shifting hover padding */
.archive-report:hover {
  padding-left: 0 !important;
}

/* Put red hover line outside the content area */
.archive-report {
  position: relative;
  padding-left: 0 !important;
}

.archive-report::before {
  display: block !important;
  content: "";
  position: absolute;
  left: -12px;
  top: 24px;
  bottom: 24px;
  width: 2px;
  background: transparent;
  transition: background .16s cubic-bezier(.4,0,.2,1), opacity .16s cubic-bezier(.4,0,.2,1);
  pointer-events: none;
  opacity: 0;
}

.archive-report:hover::before {
  background: var(--red);
  opacity: 1;
}

/* Keep row content stable */
.archive-report > * {
  position: relative;
  z-index: 1;
}

/* On narrow screens, remove outside red line entirely */
@media (max-width: 720px) {
  .archive-report::before {
    display: none !important;
  }
}


/* ===== Tooltip final fix: attached triangle + top layer visibility ===== */

/* Prevent table/section clipping from hiding tooltips */
html,
body,
main,
section,
.container,
.table-wrap,
.data-table,
.data-table thead,
.data-table tbody,
.data-table tr,
.data-table td,
.data-table th,
.archive-layout,
.archive-main,
.archive-section,
.archive-report,
.report-layout,
.report-paper,
.methodology-section,
.methodology-layout,
.methodology-flow,
.method-node,
.institution-grid,
.institution-main,
.institution-columns,
.institution-metrics {
  overflow: visible !important;
}

/* Sticky header should stay behind tooltip */
.site-header {
  z-index: 900 !important;
}

.top-strip {
  position: relative;
  z-index: 800 !important;
}

/* Every tooltip source creates a high stacking layer on hover */
.has-tooltip {
  position: relative !important;
  z-index: 1;
}

.has-tooltip:hover {
  z-index: 10000 !important;
}

/* Tooltip card: compact gray, topmost */
.has-tooltip::after {
  z-index: 10002 !important;
  max-width: 220px;
  padding: 7px 9px;
  background: rgba(84, 90, 98, 0.98) !important;
  color: rgba(255,255,255,.88) !important;
  border: 0 !important;
  border-radius: 3px;
  box-shadow: none !important;
  font-size: 11px;
  line-height: 1.38;
}

/* Triangle attached directly to card */
.has-tooltip::before {
  z-index: 10001 !important;
  display: block !important;
  width: 8px;
  height: 8px;
  background: rgba(84, 90, 98, 0.98) !important;
  border: 0 !important;
  border-radius: 1px;
  box-shadow: none !important;
}

/* Bottom tooltip default: triangle touches card bottom edge */
.has-tooltip::after,
.data-table .has-tooltip::after {
  top: calc(100% + 8px) !important;
  bottom: auto !important;
  left: 50%;
  transform: translate(-50%, -2px);
}

.has-tooltip::before,
.data-table .has-tooltip::before {
  top: calc(100% + 4px) !important;
  bottom: auto !important;
  left: 50%;
  transform: translate(-50%, -2px) rotate(45deg);
}

.has-tooltip:hover::after,
.data-table .has-tooltip:hover::after {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

.has-tooltip:hover::before,
.data-table .has-tooltip:hover::before {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0) rotate(45deg);
}

/* Left aligned card tooltips: triangle attached */
.institution-columns .has-tooltip::after,
.institution-metrics .has-tooltip::after,
.method-node.has-tooltip::after {
  left: 18px !important;
  transform: translate(0, -2px);
}

.institution-columns .has-tooltip::before,
.institution-metrics .has-tooltip::before,
.method-node.has-tooltip::before {
  left: 28px !important;
  transform: translate(0, -2px) rotate(45deg);
}

.institution-columns .has-tooltip:hover::after,
.institution-metrics .has-tooltip:hover::after,
.method-node.has-tooltip:hover::after {
  transform: translate(0, 0);
}

.institution-columns .has-tooltip:hover::before,
.institution-metrics .has-tooltip:hover::before,
.method-node.has-tooltip:hover::before {
  transform: translate(0, 0) rotate(45deg);
}

/* Table header and first rows need tooltip above all cells */
.data-table th,
.data-table td {
  position: relative;
}

.data-table th:hover,
.data-table td:hover {
  z-index: 10000 !important;
}

/* Avoid table sticky header covering body tooltips */
.data-table th {
  z-index: 10 !important;
}

.data-table th.has-tooltip:hover {
  z-index: 10000 !important;
}

/* On small screens keep disabled */
@media (max-width: 720px) {
  .has-tooltip::before,
  .has-tooltip::after {
    display: none !important;
  }
}


/* ===== Tooltip cleanup: no empty tooltip, unified intact shape ===== */

/* Only elements with actual tooltip text render tooltip UI */
.has-tooltip:not([data-tooltip])::before,
.has-tooltip:not([data-tooltip])::after,
.has-tooltip[data-tooltip=""]::before,
.has-tooltip[data-tooltip=""]::after {
  display: none !important;
  content: none !important;
}

/* Remove tooltip affordance where tooltip was intentionally removed */
.previous-rating:not([data-tooltip]),
.efi-cell:not([data-tooltip]),
.outlook:not([data-tooltip]) {
  cursor: default !important;
}

/* Unified tooltip shape */
.has-tooltip[data-tooltip]:not([data-tooltip=""])::after {
  content: attr(data-tooltip) !important;
  position: absolute !important;
  z-index: 10002 !important;
  top: calc(100% + 7px) !important;
  bottom: auto !important;
  left: 50% !important;
  width: max-content !important;
  min-width: 120px !important;
  max-width: 210px !important;
  padding: 7px 9px !important;
  background: rgba(82, 88, 96, 0.98) !important;
  color: rgba(255,255,255,.88) !important;
  border: 0 !important;
  border-radius: 3px !important;
  box-shadow: none !important;
  font-size: 11px !important;
  font-weight: 300 !important;
  line-height: 1.38 !important;
  letter-spacing: -0.01em !important;
  white-space: normal !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, -2px);
  transition: opacity .12s cubic-bezier(.4,0,.2,1), transform .12s cubic-bezier(.4,0,.2,1), visibility .12s;
}

.has-tooltip[data-tooltip]:not([data-tooltip=""])::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  z-index: 10001 !important;
  top: calc(100% + 3px) !important;
  bottom: auto !important;
  left: 50% !important;
  width: 8px !important;
  height: 8px !important;
  background: rgba(82, 88, 96, 0.98) !important;
  border: 0 !important;
  border-radius: 1px !important;
  box-shadow: none !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, -2px) rotate(45deg);
  transition: opacity .12s cubic-bezier(.4,0,.2,1), transform .12s cubic-bezier(.4,0,.2,1), visibility .12s;
}

.has-tooltip[data-tooltip]:not([data-tooltip=""]):hover::after {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translate(-50%, 0) !important;
}

.has-tooltip[data-tooltip]:not([data-tooltip=""]):hover::before {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translate(-50%, 0) rotate(45deg) !important;
}

/* Left-aligned cards use same tooltip, but aligned to card content */
.institution-columns .has-tooltip[data-tooltip]:not([data-tooltip=""])::after,
.method-node.has-tooltip[data-tooltip]:not([data-tooltip=""])::after {
  left: 18px !important;
  transform: translate(0, -2px) !important;
}

.institution-columns .has-tooltip[data-tooltip]:not([data-tooltip=""])::before,
.method-node.has-tooltip[data-tooltip]:not([data-tooltip=""])::before {
  left: 28px !important;
  transform: translate(0, -2px) rotate(45deg) !important;
}

.institution-columns .has-tooltip[data-tooltip]:not([data-tooltip=""]):hover::after,
.method-node.has-tooltip[data-tooltip]:not([data-tooltip=""]):hover::after {
  transform: translate(0, 0) !important;
}

.institution-columns .has-tooltip[data-tooltip]:not([data-tooltip=""]):hover::before,
.method-node.has-tooltip[data-tooltip]:not([data-tooltip=""]):hover::before {
  transform: translate(0, 0) rotate(45deg) !important;
}

/* Small rating tooltip */
.badge.has-tooltip[data-tooltip]:not([data-tooltip=""])::after {
  min-width: 148px !important;
  max-width: 186px !important;
}

/* Do not let parent stacking contexts hide it */
.has-tooltip[data-tooltip]:hover {
  z-index: 10000 !important;
}

/* Removed tooltips should not show help cursor */
.institution-metrics div:not([data-tooltip]) {
  cursor: default !important;
}


/* ===== Fix institution empty space + real top-layer tooltip ===== */

/* 기관정보 왼쪽 카드가 오른쪽 높이에 맞춰 늘어나며 생기는 빈 공간 제거 */
.institution-grid {
  align-items: start !important;
}

.institution-identity {
  align-self: start !important;
  height: auto !important;
}

.identity-facts {
  height: auto !important;
}

.identity-facts div:last-child {
  border-bottom: 0 !important;
}

/* 기존 pseudo 툴팁 완전 비활성화: 표 레이어에 갇히지 않도록 JS body tooltip 사용 */
.has-tooltip::before,
.has-tooltip::after {
  display: none !important;
  content: none !important;
}

/* 툴팁 대상은 과하지 않게만 표시 */
.has-tooltip[data-tooltip]:not([data-tooltip=""]) {
  cursor: help;
}

/* body에 직접 붙는 최상단 툴팁 */
.ncr-global-tooltip {
  position: fixed;
  z-index: 2147483647;
  max-width: 220px;
  padding: 7px 9px;
  background: rgba(82, 88, 96, 0.97);
  color: rgba(255,255,255,.88);
  border-radius: 3px;
  font-size: 11px;
  font-weight: 300;
  line-height: 1.38;
  letter-spacing: -0.01em;
  pointer-events: none;
  opacity: 0;
  transform: translateY(-2px);
  transition: opacity .12s cubic-bezier(.4,0,.2,1), transform .12s cubic-bezier(.4,0,.2,1);
  white-space: normal;
}

.ncr-global-tooltip.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.ncr-global-tooltip::before {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  background: rgba(82, 88, 96, 0.97);
  transform: rotate(45deg);
}

.ncr-global-tooltip[data-placement="bottom"]::before {
  top: -4px;
  left: var(--arrow-left, 50%);
  margin-left: -4px;
}

.ncr-global-tooltip[data-placement="top"]::before {
  bottom: -4px;
  left: var(--arrow-left, 50%);
  margin-left: -4px;
}

/* 표는 overflow auto를 유지해도 body 툴팁이라 가려지지 않음 */
.table-wrap {
  overflow: auto !important;
}

/* 기관 정보 전체 밀도 정리 */
.institution-main {
  align-self: start !important;
}

.institution-network {
  margin-bottom: 0 !important;
}

@media (max-width: 720px) {
  .ncr-global-tooltip {
    display: none !important;
  }
}


/* ===== Remove all tooltips + final motion cleanup ===== */

.has-tooltip,
[data-tooltip] {
  cursor: default !important;
}

.has-tooltip::before,
.has-tooltip::after,
[data-tooltip]::before,
[data-tooltip]::after,
.ncr-global-tooltip {
  display: none !important;
  content: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

/* Restore normal overflow behavior where needed */
.table-wrap {
  overflow: auto !important;
}

.data-table,
.data-table thead,
.data-table tbody,
.data-table tr,
.data-table td,
.data-table th {
  overflow: visible;
}

/* Motion system: restrained, consistent, no jump */
:root {
  --motion-fast: 140ms;
  --motion-base: 220ms;
  --motion-ease: cubic-bezier(.2, .7, .2, 1);
}

/* Remove transform-jump hover motions */
.archive-report:hover,
.btn:hover,
.report-open:hover:not(.disabled),
.method-node:hover,
.institution-columns article:hover,
.institution-metrics div:hover {
  transform: none !important;
}

/* Page entrance: subtle fade only */
@media (prefers-reduced-motion: no-preference) {
  .hero-copy,
  .rating-panel,
  .ticker-grid article,
  .section-head,
  .table-wrap,
  .methodology-scorecard,
  .method-node,
  .methodology-note,
  .archive-toolbar,
  .archive-report,
  .report-paper,
  .document-card,
  .institution-identity,
  .institution-summary,
  .institution-metrics,
  .institution-columns,
  .institution-network {
    animation: ncrFadeOnly .26s var(--motion-ease) both !important;
  }

  .ticker-grid article:nth-child(2),
  .method-node:nth-child(2),
  .archive-report:nth-of-type(2) {
    animation-delay: 24ms !important;
  }

  .ticker-grid article:nth-child(3),
  .method-node:nth-child(3),
  .archive-report:nth-of-type(3) {
    animation-delay: 48ms !important;
  }

  .method-node:nth-child(4),
  .archive-report:nth-of-type(4) {
    animation-delay: 72ms !important;
  }

  @keyframes ncrFadeOnly {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
}

/* Interaction motion: color/line only */
.nav a,
.nav a::after,
.data-table td,
.data-table tbody tr,
.badge,
.efi-grade,
.report-open,
.btn,
.archive-report,
.report-list article,
.report-list article::before,
.method-node,
.method-node::after,
.institution-metrics div,
.institution-metrics div::after,
.institution-columns article,
.report-tags span,
.office-list span {
  transition:
    background-color var(--motion-fast) var(--motion-ease),
    background var(--motion-fast) var(--motion-ease),
    color var(--motion-fast) var(--motion-ease),
    border-color var(--motion-fast) var(--motion-ease),
    filter var(--motion-fast) var(--motion-ease),
    opacity var(--motion-fast) var(--motion-ease),
    transform var(--motion-base) var(--motion-ease);
}

/* Table hover calmer */
.data-table tbody tr:hover td {
  background: #f7f9fb !important;
}

.data-table tbody tr:hover .badge,
.data-table tbody tr:hover .efi-grade {
  filter: saturate(1.03) brightness(1.01);
}

/* Buttons: no movement, only tonal change */
.btn:hover,
.report-open:hover:not(.disabled) {
  filter: brightness(.96);
}

/* Navigation motion: underline only */
.nav a:hover {
  background: #f6f7f8;
}

.nav a::after {
  transform-origin: center;
}

/* Archive rows: no content shifting */
.archive-report,
.archive-report:hover {
  padding-left: 0 !important;
}

.archive-report::before {
  left: -10px !important;
}

/* Methodology hover: line only */
.method-node:hover {
  background: #fafbfc;
}

.method-node:hover::after {
  background: var(--red);
}

/* Institution hover: surface only */
.institution-metrics div:hover,
.institution-columns article:hover {
  background: #fafbfc !important;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}


/* =========================================================
   NCR FINAL DESIGN / MOTION OVERHAUL
   - no jumpy movement
   - no tooltip
   - no stacked legacy animation
   - professional financial UI finish
========================================================= */

/* 0. Remove accumulated legacy motion completely */
*,
*::before,
*::after {
  animation-name: none !important;
  animation-duration: 0s !important;
  animation-delay: 0s !important;
  animation-fill-mode: none !important;
}

:root {
  --ncr-red: #c61f3f;
  --ncr-red-deep: #98182f;
  --ncr-ink: #20242a;
  --ncr-text: #30363d;
  --ncr-sub: #68717b;
  --ncr-soft: #f6f8fa;
  --ncr-soft-2: #eef2f6;
  --ncr-line: #d7dde4;
  --ncr-line-strong: #c8d0d9;
  --ncr-dark: #2d333a;
  --ncr-dark-2: #22272d;
  --ncr-ease: cubic-bezier(.4, 0, .2, 1);
  --ncr-fast: 140ms;
  --ncr-base: 220ms;
}

/* 1. Global polish */
html {
  scroll-padding-top: 84px;
}

body {
  background: #fff !important;
  color: var(--ncr-text);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.container {
  width: min(1180px, calc(100% - 48px));
}

/* Disable all tooltip remnants */
.has-tooltip,
[data-tooltip] {
  cursor: inherit !important;
}

.has-tooltip::before,
.has-tooltip::after,
[data-tooltip]::before,
[data-tooltip]::after,
.ncr-global-tooltip {
  display: none !important;
  content: none !important;
}

/* 2. Header/navigation rebuild */
.top-strip {
  background: #252a30 !important;
  border-bottom: 0 !important;
}

.top-strip-inner {
  min-height: 30px !important;
  font-size: 11px;
  color: rgba(255,255,255,.62);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 900 !important;
  background: rgba(255,255,255,.96) !important;
  border-bottom: 1px solid rgba(32,36,42,.11) !important;
  box-shadow: none !important;
  backdrop-filter: blur(14px);
}

.header-inner {
  height: 68px !important;
}

.brand {
  width: 208px !important;
  min-width: 190px !important;
}

.brand img {
  display: block;
}

.nav {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 6px !important;
  flex: 1;
}

.nav a {
  position: relative;
  height: 38px !important;
  display: inline-flex;
  align-items: center;
  padding: 0 12px !important;
  color: #3d444c !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 3px !important;
  font-size: 13.5px !important;
  font-weight: 350 !important;
  white-space: nowrap;
  transition:
    color var(--ncr-fast) var(--ncr-ease),
    background-color var(--ncr-fast) var(--ncr-ease);
}

.nav a::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 4px;
  height: 2px;
  border-radius: 999px;
  background: var(--ncr-red);
  opacity: 0;
  transform: scaleX(.4);
  transition:
    opacity var(--ncr-fast) var(--ncr-ease),
    transform var(--ncr-base) var(--ncr-ease);
}

.nav a:hover,
.nav a[aria-current="page"] {
  color: #15191e !important;
  background: #f3f5f7 !important;
}

.nav a:hover::after,
.nav a[aria-current="page"]::after {
  opacity: 1;
  transform: scaleX(1);
}

.menu-button {
  height: 34px !important;
  min-width: 56px;
  background: #fff !important;
  border: 1px solid var(--ncr-line-strong) !important;
  color: var(--ncr-text) !important;
  border-radius: 3px !important;
}

/* 3. Hero / summary surfaces */
.hero,
.archive-hero,
.report-hero {
  background:
    linear-gradient(180deg, #fff 0%, #f7f9fb 100%) !important;
  border-bottom: 1px solid var(--ncr-line) !important;
}

.hero::after,
.archive-hero::after,
.report-hero::after {
  display: none !important;
}

.hero-grid {
  min-height: 430px !important;
  padding: 56px 0 !important;
}

h1 {
  color: #1f2328 !important;
  font-weight: 300 !important;
  letter-spacing: -0.058em !important;
}

h2 {
  color: #22272d !important;
  font-weight: 300 !important;
}

h3 {
  font-weight: 350 !important;
}

.eyebrow {
  color: #a71934 !important;
  font-weight: 450 !important;
}

.hero-text,
.lead {
  color: var(--ncr-sub) !important;
}

/* 4. Panels/cards: line-based, no heavy shadows */
.rating-panel,
.document-card,
.identity-card,
.institution-identity,
.institution-summary,
.institution-metrics,
.institution-columns,
.institution-network,
.archive-toolbar,
.archive-report.featured-report,
.table-wrap,
.methodology-scorecard,
.methodology-flow,
.methodology-note {
  box-shadow: none !important;
  border-color: var(--ncr-line-strong) !important;
  border-radius: 4px !important;
}

.rating-panel,
.document-card {
  border-top: 3px solid var(--ncr-red) !important;
}

.panel-head {
  background: #fff !important;
}

.stats-grid div,
.institution-metrics div,
.archive-toolbar div,
.indicator-grid div {
  background: linear-gradient(180deg, #fff, #fafbfc) !important;
}

/* 5. Buttons: no jumping */
.btn,
.report-open,
.menu-button {
  transform: none !important;
  transition:
    background-color var(--ncr-fast) var(--ncr-ease),
    border-color var(--ncr-fast) var(--ncr-ease),
    color var(--ncr-fast) var(--ncr-ease),
    filter var(--ncr-fast) var(--ncr-ease) !important;
}

.btn:hover,
.report-open:hover:not(.disabled),
.menu-button:hover {
  transform: none !important;
  filter: none !important;
}

.btn-primary,
.report-open:not(.disabled) {
  background: #30363d !important;
  color: #fff !important;
  border-color: #30363d !important;
}

.btn-primary:hover,
.report-open:not(.disabled):hover {
  background: #242930 !important;
  border-color: #242930 !important;
}

.btn-secondary {
  background: #fff !important;
  color: #30363d !important;
  border-color: var(--ncr-line-strong) !important;
}

.btn-secondary:hover {
  background: #f6f8fa !important;
}

/* 6. Tables: stable hover, no glow/no shift */
.table-wrap {
  overflow: auto !important;
  background: #fff !important;
}

.data-table th {
  background: #48505a !important;
  color: #fff !important;
  font-weight: 350 !important;
  border-right: 1px solid rgba(255,255,255,.24) !important;
}

.data-table td {
  background: #fff !important;
  border-color: var(--ncr-line) !important;
  color: #30363d !important;
  transition: background-color var(--ncr-fast) var(--ncr-ease) !important;
}

.data-table tr:nth-child(even) td {
  background: #fbfcfd !important;
}

.data-table tbody tr:hover td {
  background: #f3f7fb !important;
}

.data-table .country {
  color: #1f2328 !important;
}

.previous-rating {
  background: #f1f4f7 !important;
  color: #555e68 !important;
}

.efi-cell {
  background: #edf5ff !important;
  color: #123fd2 !important;
}

.badge,
.efi-grade {
  border-radius: 3px !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #fff !important;
  transition: filter var(--ncr-fast) var(--ncr-ease) !important;
}

.data-table tbody tr:hover .badge,
.data-table tbody tr:hover .efi-grade {
  filter: saturate(1.04) brightness(1.01) !important;
}

/* 7. Publication section: refined red, no long line */
.section-dark {
  background: linear-gradient(180deg, #2e343b, #252b31) !important;
  border: 0 !important;
}

.section-dark::before {
  display: none !important;
}

.section-dark h2,
.section-dark h3,
.section-dark strong,
.section-dark p,
.section-dark span {
  color: #fff;
}

.report-list article {
  padding: 22px 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.16) !important;
  background: transparent !important;
  transition: background-color var(--ncr-fast) var(--ncr-ease) !important;
}

.report-list article::before {
  display: none !important;
}

.report-list article:hover {
  background: rgba(255,255,255,.035) !important;
}

.report-list time {
  color: #ff9bae !important;
}

/* 8. Report archive: no shifting line */
.archive-report {
  position: relative !important;
  padding: 22px 0 !important;
  border-bottom: 1px solid var(--ncr-line) !important;
  background: transparent !important;
  transition: background-color var(--ncr-fast) var(--ncr-ease) !important;
}

.archive-report:hover {
  padding-left: 0 !important;
  background: #fafbfc !important;
  transform: none !important;
}

.archive-report::before {
  content: "";
  display: block !important;
  position: absolute;
  left: -10px !important;
  top: 22px;
  bottom: 22px;
  width: 2px;
  background: var(--ncr-red);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--ncr-fast) var(--ncr-ease) !important;
}

.archive-report:hover::before {
  opacity: 1;
}

.report-tags span {
  background: #fff !important;
  border-color: var(--ncr-line) !important;
  color: #68717b !important;
}

.report-tags span:first-child {
  color: #9f1a34 !important;
  border-color: rgba(198,31,63,.25) !important;
  background: #fff7f9 !important;
}

/* 9. Methodology: more premium, no awkward motion */
.methodology-section {
  background: linear-gradient(180deg, #fff, #f7f9fb) !important;
}

.methodology-header {
  border-bottom: 1px solid var(--ncr-line) !important;
}

.methodology-scorecard {
  background: linear-gradient(180deg, #30363d, #252a30) !important;
  color: #fff !important;
}

.method-node {
  background: #fff !important;
  transition: background-color var(--ncr-fast) var(--ncr-ease) !important;
}

.method-node:hover {
  background: #fafbfc !important;
  transform: none !important;
}

.method-node::after {
  height: 2px !important;
  transition: background-color var(--ncr-fast) var(--ncr-ease) !important;
}

.method-node:hover::after {
  background: var(--ncr-red) !important;
}

.method-node > span {
  background: #fff7f9 !important;
  border-color: rgba(198,31,63,.24) !important;
  color: #a71934 !important;
}

/* 10. Institution section: density and premium finish */
.about-section {
  background: linear-gradient(180deg, #fff 0%, #f7f9fb 100%) !important;
}

.institution-grid {
  align-items: start !important;
  gap: 28px !important;
}

.institution-identity {
  align-self: start !important;
  height: auto !important;
}

.institution-identity::before {
  height: 3px !important;
}

.identity-logo {
  min-height: 98px !important;
  background: linear-gradient(180deg, #fff, #fbfcfd) !important;
}

.identity-logo img {
  width: 178px !important;
}

.identity-title {
  background: linear-gradient(135deg, #2d333a, #3b424a 58%, #262b31) !important;
  color: #fff !important;
}

.identity-facts dt {
  background: #434a52 !important;
  color: #fff !important;
}

.identity-facts dd {
  background: #fff !important;
  color: #3f454c !important;
}

.institution-summary {
  border-left: 0 !important;
  background: #fff !important;
}

.institution-summary > div:first-child {
  border-left: 3px solid var(--ncr-red) !important;
}

.institution-status {
  background: #fafbfc !important;
}

.institution-metrics div,
.institution-columns article {
  transition: background-color var(--ncr-fast) var(--ncr-ease) !important;
}

.institution-metrics div:hover,
.institution-columns article:hover {
  background: #fafbfc !important;
  transform: none !important;
}

.institution-metrics div::after {
  transition: background-color var(--ncr-fast) var(--ncr-ease) !important;
}

.institution-metrics div:hover::after {
  background: rgba(198,31,63,.55) !important;
}

.institution-network {
  background: linear-gradient(180deg, #fff, #fafbfc) !important;
}

/* 11. Mobile menu */
@media (max-width: 1040px) {
  .menu-button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }

  .nav {
    display: none !important;
  }

  .nav.is-open {
    display: grid !important;
    position: absolute !important;
    top: calc(100% + 8px) !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 1000 !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 6px !important;
    padding: 10px !important;
    background: #fff !important;
    border: 1px solid var(--ncr-line) !important;
    box-shadow: 0 8px 18px rgba(32,36,42,.08) !important;
    border-radius: 4px !important;
  }

  .nav.is-open a {
    width: 100% !important;
    justify-content: center !important;
    background: #f7f8fa !important;
  }

  .nav.is-open a::after {
    display: none !important;
  }
}

@media (max-width: 720px) {
  .container {
    width: min(100% - 28px, 1180px) !important;
  }

  .nav.is-open {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .archive-report::before {
    display: none !important;
  }

  .institution-summary,
  .institution-network {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 560px) {
  .brand {
    width: 168px !important;
    min-width: 150px !important;
  }

  .header-inner {
    height: 64px !important;
  }

  .nav.is-open {
    grid-template-columns: 1fr !important;
  }

  h1 {
    font-size: 32px !important;
  }
}

/* Reduced motion is the default standard for this final version */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition: none !important;
    animation: none !important;
  }
}


/* =========================================================
   NCR FINANCIAL POLISH FIX
   - restore EFI / rating colors
   - remove selected Home effect
   - more institutional financial styling
========================================================= */

/* 1. Remove active nav styling completely */
.nav a[aria-current="page"],
.nav a[aria-current="page"]:hover {
  color: #3d444c !important;
  background: transparent !important;
}

.nav a[aria-current="page"]::after {
  opacity: 0 !important;
  transform: scaleX(.4) !important;
}

/* 2. Restore rating badge colors with strongest specificity */
.data-table td .badge,
.badge {
  color: #fff !important;
}

.data-table td .rating-AAA,
.badge.rating-AAA,
[data-rating="AAA"] {
  background: linear-gradient(180deg, #008bd2 0%, #006faf 100%) !important;
}

.data-table td .rating-AAplus,
.badge.rating-AAplus,
[data-rating="AA+"] {
  background: linear-gradient(180deg, #0c98dc 0%, #0079ba 100%) !important;
}

.data-table td .rating-AA,
.badge.rating-AA,
[data-rating="AA"] {
  background: linear-gradient(180deg, #128fd3 0%, #006faa 100%) !important;
}

.data-table td .rating-AAminus,
.badge.rating-AAminus,
[data-rating="AA-"] {
  background: linear-gradient(180deg, #2284c4 0%, #0a6399 100%) !important;
}

.data-table td .rating-A,
.badge.rating-A,
[data-rating="A"] {
  background: linear-gradient(180deg, #07bf72 0%, #009c58 100%) !important;
}

.data-table td .rating-Aminus,
.badge.rating-Aminus,
[data-rating="A-"] {
  background: linear-gradient(180deg, #12ad66 0%, #008b4d 100%) !important;
}

.data-table td .rating-BBBplus,
.badge.rating-BBBplus,
[data-rating="BBB+"] {
  background: linear-gradient(180deg, #f3c800 0%, #d7ad00 100%) !important;
}

.data-table td .rating-BBB,
.badge.rating-BBB,
[data-rating="BBB"] {
  background: linear-gradient(180deg, #e9bd00 0%, #c99f00 100%) !important;
}

.data-table td .rating-BBBminus,
.badge.rating-BBBminus,
[data-rating="BBB-"] {
  background: linear-gradient(180deg, #ff9d00 0%, #e37a00 100%) !important;
}

.data-table td .rating-BBplus,
.badge.rating-BBplus,
[data-rating="BB+"] {
  background: linear-gradient(180deg, #ff7200 0%, #e25100 100%) !important;
}

.data-table td .rating-BB,
.badge.rating-BB,
[data-rating="BB"] {
  background: linear-gradient(180deg, #ff584d 0%, #e13a32 100%) !important;
}

.data-table td .rating-BBminus,
.badge.rating-BBminus,
[data-rating="BB-"] {
  background: linear-gradient(180deg, #ef443b 0%, #c93029 100%) !important;
}

.data-table td .rating-Bplus,
.badge.rating-Bplus,
[data-rating="B+"] {
  background: linear-gradient(180deg, #d1372d 0%, #a52922 100%) !important;
}

.data-table td .rating-B,
.badge.rating-B,
[data-rating="B"] {
  background: linear-gradient(180deg, #bd2f27 0%, #8f241e 100%) !important;
}

.data-table td .rating-Bminus,
.badge.rating-Bminus,
[data-rating="B-"] {
  background: linear-gradient(180deg, #a82b25 0%, #761e1a 100%) !important;
}

.data-table td .rating-CCC,
.badge.rating-CCC,
[data-rating="CCC"],
.data-table td .rating-CCCminus,
.badge.rating-CCCminus,
[data-rating="CCC-"],
.data-table td .rating-CC,
.badge.rating-CC,
[data-rating="CC"] {
  background: linear-gradient(180deg, #a748d4 0%, #71309a 100%) !important;
}

/* 3. Restore EFI grade background colors even after generic td overrides */
.data-table td.efi-grade,
td.efi-grade {
  color: #fff !important;
  font-weight: 400 !important;
}

.data-table td.efi-Free,
td.efi-Free {
  background: linear-gradient(180deg, #00b96b, #009750) !important;
}

.data-table td.efi-Mostly-Free,
td.efi-Mostly-Free {
  background: linear-gradient(180deg, #28a8e0, #1686c4) !important;
}

.data-table td.efi-Moderately-Free,
td.efi-Moderately-Free {
  background: linear-gradient(180deg, #efc400, #d2a900) !important;
}

.data-table td.efi-Mostly-Unfree,
td.efi-Mostly-Unfree {
  background: linear-gradient(180deg, #ff6a00, #d94c00) !important;
}

.data-table td.efi-Repressed,
td.efi-Repressed {
  background: linear-gradient(180deg, #c92f25, #8f241d) !important;
}

.data-table tbody tr:hover td.efi-Free {
  background: linear-gradient(180deg, #00b96b, #009750) !important;
}

.data-table tbody tr:hover td.efi-Mostly-Free {
  background: linear-gradient(180deg, #28a8e0, #1686c4) !important;
}

.data-table tbody tr:hover td.efi-Moderately-Free {
  background: linear-gradient(180deg, #efc400, #d2a900) !important;
}

.data-table tbody tr:hover td.efi-Mostly-Unfree {
  background: linear-gradient(180deg, #ff6a00, #d94c00) !important;
}

.data-table tbody tr:hover td.efi-Repressed {
  background: linear-gradient(180deg, #c92f25, #8f241d) !important;
}

/* EFI score cell remains controlled blue, not white */
.data-table td.efi-cell,
td.efi-cell {
  background: #eaf3ff !important;
  color: #0039c7 !important;
  font-weight: 450 !important;
}

.data-table tbody tr:hover td.efi-cell {
  background: #e3efff !important;
}

/* 4. More financial/institutional design treatment */
.top-strip {
  background: #1f242a !important;
}

.site-header {
  background: rgba(255,255,255,.985) !important;
  border-bottom: 1px solid #cfd6de !important;
}

.header-inner {
  height: 66px !important;
}

.brand {
  width: 198px !important;
}

.hero,
.archive-hero,
.report-hero {
  background:
    linear-gradient(180deg, #ffffff 0%, #f4f6f8 100%) !important;
}

.hero-grid {
  min-height: 410px !important;
  padding: 52px 0 !important;
}

h1 {
  font-size: clamp(38px, 4.2vw, 56px) !important;
  color: #1d2228 !important;
}

h2 {
  color: #20252b !important;
}

.section-head,
.methodology-header,
.archive-section-head {
  border-bottom: 1px solid #cfd6de !important;
}

.section-head {
  padding-bottom: 18px !important;
}

.rating-panel,
.document-card,
.institution-identity,
.institution-summary,
.institution-metrics,
.institution-columns,
.institution-network,
.archive-toolbar,
.table-wrap,
.methodology-scorecard,
.methodology-flow,
.methodology-note {
  border-color: #c8d0d9 !important;
}

/* A slightly denser, more financial table */
.data-table {
  font-size: 14px !important;
}

.data-table th {
  background: #424951 !important;
  padding: 14px 16px !important;
}

.data-table td {
  padding: 13px 16px !important;
}

.badge {
  min-width: 76px !important;
  min-height: 30px !important;
  letter-spacing: 0 !important;
}

/* Ratings table toolbar more serious */
.toolbar {
  background: #f2f4f6 !important;
  border-color: #cfd6de !important;
}

.toolbar input,
.toolbar select {
  border-color: #c8d0d9 !important;
  background: #fff !important;
}

/* Dark publication section with refined red accents */
.section-dark {
  background: #252b31 !important;
}

.section-dark .section-head {
  border-bottom-color: rgba(255,255,255,.18) !important;
}

.report-list article {
  grid-template-columns: 128px 1fr 210px !important;
}

.report-list article:hover {
  background: rgba(255,255,255,.028) !important;
}

.report-list time {
  color: #ff8da4 !important;
}

/* Report archive financial row style */
.archive-toolbar {
  background: #fff !important;
}

.archive-toolbar div {
  background: #f8fafc !important;
}

.archive-report {
  grid-template-columns: 180px 1fr 82px !important;
}

.archive-report h3 {
  color: #20252b !important;
}

.archive-report:hover {
  background: #f7f9fb !important;
}

/* Methodology: less decorative, more analytical */
.methodology-scorecard {
  background: #2d333a !important;
}

.method-node > span {
  background: #fff !important;
  border-color: #cfd6de !important;
  color: #9f1a34 !important;
}

.method-node:hover {
  background: #f8fafc !important;
}

/* Institution: more corporate */
.identity-title {
  background: #2d333a !important;
}

.identity-facts dt {
  background: #414850 !important;
}

.institution-summary > div:first-child {
  border-left-color: #b71936 !important;
}

.institution-status,
.institution-metrics div,
.institution-network {
  background: #f8fafc !important;
}

.institution-columns article {
  background: #fff !important;
}

.institution-columns article:hover {
  background: #f8fafc !important;
}

/* No motion except clean transitions */
*,
*::before,
*::after {
  animation: none !important;
}

.nav a,
.nav a::after,
.data-table td,
.report-list article,
.archive-report,
.method-node,
.method-node::after,
.institution-metrics div,
.institution-metrics div::after,
.institution-columns article,
.btn,
.report-open {
  transition:
    background-color 140ms cubic-bezier(.4,0,.2,1),
    background 140ms cubic-bezier(.4,0,.2,1),
    color 140ms cubic-bezier(.4,0,.2,1),
    border-color 140ms cubic-bezier(.4,0,.2,1),
    opacity 140ms cubic-bezier(.4,0,.2,1),
    filter 140ms cubic-bezier(.4,0,.2,1) !important;
}

@media (max-width: 720px) {
  .report-list article,
  .archive-report {
    grid-template-columns: 1fr !important;
  }
}


/* =========================================================
   FINAL EFI COLOR LOCK + NATURAL MOTION SYSTEM
   Fixes all EFI grade cells losing their backgrounds.
========================================================= */

/* Stable EFI palette */
:root {
  --efi-free-top: #00b96b;
  --efi-free-bottom: #009750;
  --efi-mostly-free-top: #28a8e0;
  --efi-mostly-free-bottom: #1686c4;
  --efi-moderate-top: #efc400;
  --efi-moderate-bottom: #d2a900;
  --efi-unfree-top: #ff6a00;
  --efi-unfree-bottom: #d94c00;
  --efi-repressed-top: #c92f25;
  --efi-repressed-bottom: #8f241d;

  --motion-ease-soft: cubic-bezier(.25, .8, .25, 1);
  --motion-ease-line: cubic-bezier(.4, 0, .2, 1);
  --motion-fast: 150ms;
  --motion-normal: 240ms;
}

/* EFI grade cells: highest specificity and hover-safe */
#ratingsTable tbody td.efi-grade.efi-Free,
#ratingsTable tbody tr:hover td.efi-grade.efi-Free,
.data-table tbody td.efi-grade.efi-Free,
.data-table tbody tr:hover td.efi-grade.efi-Free,
td.efi-grade.efi-Free,
td.efi-Free {
  background: linear-gradient(180deg, var(--efi-free-top), var(--efi-free-bottom)) !important;
  color: #fff !important;
}

#ratingsTable tbody td.efi-grade.efi-Mostly-Free,
#ratingsTable tbody tr:hover td.efi-grade.efi-Mostly-Free,
.data-table tbody td.efi-grade.efi-Mostly-Free,
.data-table tbody tr:hover td.efi-grade.efi-Mostly-Free,
td.efi-grade.efi-Mostly-Free,
td.efi-Mostly-Free {
  background: linear-gradient(180deg, var(--efi-mostly-free-top), var(--efi-mostly-free-bottom)) !important;
  color: #fff !important;
}

#ratingsTable tbody td.efi-grade.efi-Moderately-Free,
#ratingsTable tbody tr:hover td.efi-grade.efi-Moderately-Free,
.data-table tbody td.efi-grade.efi-Moderately-Free,
.data-table tbody tr:hover td.efi-grade.efi-Moderately-Free,
td.efi-grade.efi-Moderately-Free,
td.efi-Moderately-Free {
  background: linear-gradient(180deg, var(--efi-moderate-top), var(--efi-moderate-bottom)) !important;
  color: #fff !important;
}

#ratingsTable tbody td.efi-grade.efi-Mostly-Unfree,
#ratingsTable tbody tr:hover td.efi-grade.efi-Mostly-Unfree,
.data-table tbody td.efi-grade.efi-Mostly-Unfree,
.data-table tbody tr:hover td.efi-grade.efi-Mostly-Unfree,
td.efi-grade.efi-Mostly-Unfree,
td.efi-Mostly-Unfree {
  background: linear-gradient(180deg, var(--efi-unfree-top), var(--efi-unfree-bottom)) !important;
  color: #fff !important;
}

#ratingsTable tbody td.efi-grade.efi-Repressed,
#ratingsTable tbody tr:hover td.efi-grade.efi-Repressed,
.data-table tbody td.efi-grade.efi-Repressed,
.data-table tbody tr:hover td.efi-grade.efi-Repressed,
td.efi-grade.efi-Repressed,
td.efi-Repressed {
  background: linear-gradient(180deg, var(--efi-repressed-top), var(--efi-repressed-bottom)) !important;
  color: #fff !important;
}

/* EFI score cell lock */
#ratingsTable tbody td.efi-cell,
#ratingsTable tbody tr:hover td.efi-cell,
.data-table tbody td.efi-cell,
.data-table tbody tr:hover td.efi-cell,
td.efi-cell {
  background: #eaf3ff !important;
  color: #0039c7 !important;
  font-weight: 450 !important;
}

/* Prevent general table hover rules from washing out colored cells */
#ratingsTable tbody tr:hover td.efi-grade,
.data-table tbody tr:hover td.efi-grade {
  filter: saturate(1.03) brightness(1.01);
}

/* Natural motion: no page entrance; only direct, subtle interactions */
*,
*::before,
*::after {
  animation: none !important;
}

.nav a,
.nav a::after,
.btn,
.report-open,
.menu-button,
.data-table tbody tr,
.data-table td,
.badge,
.efi-grade,
.archive-report,
.archive-report::before,
.report-list article,
.method-node,
.method-node::after,
.institution-metrics div,
.institution-metrics div::after,
.institution-columns article,
.report-tags span,
.office-list span,
.toolbar input,
.toolbar select {
  transition:
    background-color var(--motion-fast) var(--motion-ease-line),
    background var(--motion-fast) var(--motion-ease-line),
    border-color var(--motion-fast) var(--motion-ease-line),
    color var(--motion-fast) var(--motion-ease-line),
    opacity var(--motion-fast) var(--motion-ease-line),
    filter var(--motion-fast) var(--motion-ease-line),
    transform var(--motion-normal) var(--motion-ease-soft) !important;
}

/* Navigation: professional underline, no selected state */
.nav a[aria-current="page"],
.nav a[aria-current="page"]:hover {
  background: transparent !important;
  color: #3d444c !important;
}

.nav a[aria-current="page"]::after {
  opacity: 0 !important;
}

.nav a:hover {
  background: #f3f5f7 !important;
}

.nav a:hover::after {
  opacity: 1 !important;
  transform: scaleX(1) !important;
}

/* Table motion: row highlight only, colored cells preserved */
.data-table tbody tr:hover td {
  background: #f6f8fb !important;
}

.data-table tbody tr:hover td.efi-grade,
.data-table tbody tr:hover td .badge {
  transform: none !important;
}

.data-table tbody tr:hover .badge {
  filter: saturate(1.04) brightness(1.01);
}

/* Preserve special cells after row hover */
.data-table tbody tr:hover td.previous-rating {
  background: #eef2f6 !important;
}

.data-table tbody tr:hover td.efi-cell {
  background: #eaf3ff !important;
}

/* Buttons: calm tonal response */
.btn:hover,
.report-open:hover:not(.disabled),
.menu-button:hover {
  transform: none !important;
  filter: none !important;
}

.btn-primary:hover,
.report-open:not(.disabled):hover {
  background: #20252b !important;
  border-color: #20252b !important;
}

.btn-secondary:hover {
  background: #f5f7f9 !important;
}

/* Archive/report rows: subtle surface + outside red line */
.archive-report {
  will-change: background-color;
}

.archive-report:hover {
  background: #f8fafc !important;
  transform: none !important;
}

.archive-report::before {
  opacity: 0;
  transition: opacity var(--motion-fast) var(--motion-ease-line) !important;
}

.archive-report:hover::before {
  opacity: 1;
}

/* Methodology: only surface and bottom mark */
.method-node:hover {
  background: #f8fafc !important;
}

.method-node:hover::after {
  background: var(--ncr-red, #c61f3f) !important;
}

/* Institution: no jumping, just controlled surface */
.institution-metrics div:hover,
.institution-columns article:hover {
  background: #f8fafc !important;
}

/* Inputs focus: more financial UI */
.toolbar input:focus,
.toolbar select:focus {
  border-color: #56606b !important;
  box-shadow: inset 0 0 0 1px #56606b !important;
}

/* Dark section hover refinement */
.report-list article:hover {
  background: rgba(255,255,255,.035) !important;
}

/* Mobile menu motion */
@media (max-width: 1040px) {
  .nav.is-open {
    animation: none !important;
  }

  .nav.is-open a {
    transition:
      background-color var(--motion-fast) var(--motion-ease-line),
      color var(--motion-fast) var(--motion-ease-line) !important;
  }
}

/* Reduce motion preference */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
}


/* =========================================================
   EFI compact cells + white EFI score + responsive tables
========================================================= */

/* EFI 점수란: 화이트 배경 고정 */
#ratingsTable tbody td.efi-cell,
#ratingsTable tbody tr:hover td.efi-cell,
.data-table tbody td.efi-cell,
.data-table tbody tr:hover td.efi-cell,
td.efi-cell {
  background: #ffffff !important;
  color: #24303b !important;
  font-weight: 400 !important;
}

/* EFI 등급 카드: 더 작고 안정적으로 */
#ratingsTable tbody td.efi-grade,
.data-table tbody td.efi-grade,
td.efi-grade {
  padding: 8px 10px !important;
  font-size: 12px !important;
  line-height: 1.15 !important;
  font-weight: 400 !important;
  white-space: nowrap !important;
  min-width: 112px !important;
  max-width: 138px !important;
  text-align: center !important;
  vertical-align: middle !important;
}

/* 등급 텍스트가 길어도 겹치지 않게 */
#ratingsTable td:nth-child(6),
#ratingsTable th:nth-child(6) {
  min-width: 126px !important;
}

/* 신용등급 배지도 살짝 압축 */
#ratingsTable .badge {
  min-width: 68px !important;
  min-height: 28px !important;
  padding: 0 10px !important;
  font-size: 13px !important;
}

/* 전체 표 컬럼 밀도 조정 */
#ratingsTable {
  min-width: 920px !important;
  table-layout: auto !important;
}

#ratingsTable th,
#ratingsTable td {
  padding: 12px 14px !important;
}

#ratingsTable th:first-child,
#ratingsTable td:first-child {
  width: 82px !important;
}

#ratingsTable th:nth-child(2),
#ratingsTable td:nth-child(2) {
  min-width: 190px !important;
}

#ratingsTable th:nth-child(3),
#ratingsTable td:nth-child(3),
#ratingsTable th:nth-child(4),
#ratingsTable td:nth-child(4) {
  width: 116px !important;
  text-align: center !important;
}

#ratingsTable th:nth-child(5),
#ratingsTable td:nth-child(5) {
  width: 92px !important;
  text-align: center !important;
}

#ratingsTable th:nth-child(7),
#ratingsTable td:nth-child(7) {
  width: 94px !important;
}

/* 모바일 반응형: 표는 카드형으로 변환 */
@media (max-width: 760px) {
  .top-strip {
    display: none !important;
  }

  .header-inner {
    height: 62px !important;
  }

  .brand {
    width: 156px !important;
    min-width: 140px !important;
  }

  .hero-grid,
  .report-hero-grid,
  .archive-hero-inner {
    padding: 38px 0 !important;
  }

  .hero-grid,
  .report-hero-grid,
  .methodology-layout,
  .institution-grid,
  .archive-layout {
    grid-template-columns: 1fr !important;
  }

  .stats-grid,
  .ticker-grid,
  .institution-metrics,
  .institution-columns,
  .methodology-flow,
  .archive-toolbar {
    grid-template-columns: 1fr !important;
  }

  h1 {
    font-size: 30px !important;
    line-height: 1.14 !important;
  }

  h2 {
    font-size: 24px !important;
  }

  .hero-text {
    font-size: 15px !important;
  }

  .section {
    padding: 48px 0 !important;
  }

  .toolbar {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  /* 국가신용등급 표 카드형 */
  #ratingsTable,
  #ratingsTable thead,
  #ratingsTable tbody,
  #ratingsTable th,
  #ratingsTable td,
  #ratingsTable tr {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  #ratingsTable {
    border-collapse: separate !important;
    border-spacing: 0 12px !important;
    min-width: 0 !important;
  }

  #ratingsTable thead {
    display: none !important;
  }

  #ratingsTable tbody tr {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0 !important;
    margin-bottom: 12px !important;
    border: 1px solid #cfd6de !important;
    background: #fff !important;
  }

  #ratingsTable tbody td {
    display: grid !important;
    grid-template-columns: 86px 1fr !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: 44px !important;
    padding: 11px 12px !important;
    border: 0 !important;
    border-bottom: 1px solid #e1e5ea !important;
    background: #fff !important;
    text-align: left !important;
  }

  #ratingsTable tbody td::before {
    color: #7a828b !important;
    font-size: 12px !important;
    font-weight: 350 !important;
  }

  #ratingsTable tbody td:nth-child(1)::before { content: "GDP"; }
  #ratingsTable tbody td:nth-child(2)::before { content: "국가"; }
  #ratingsTable tbody td:nth-child(3)::before { content: "현재"; }
  #ratingsTable tbody td:nth-child(4)::before { content: "직전"; }
  #ratingsTable tbody td:nth-child(5)::before { content: "EFI"; }
  #ratingsTable tbody td:nth-child(6)::before { content: "EFI 등급"; }
  #ratingsTable tbody td:nth-child(7)::before { content: "전망"; }

  #ratingsTable tbody td:nth-child(2) {
    grid-column: 1 / -1 !important;
    font-size: 16px !important;
    font-weight: 450 !important;
  }

  #ratingsTable tbody td:nth-child(6) {
    grid-template-columns: 86px auto !important;
  }

  #ratingsTable tbody td.efi-grade,
  #ratingsTable tbody tr:hover td.efi-grade {
    min-width: 0 !important;
    max-width: none !important;
    width: fit-content !important;
    justify-self: start !important;
    padding: 7px 10px !important;
    font-size: 11.5px !important;
    border-radius: 3px !important;
  }

  #ratingsTable tbody td.efi-cell,
  #ratingsTable tbody tr:hover td.efi-cell {
    background: #fff !important;
    color: #24303b !important;
  }

  #ratingsTable .badge {
    width: fit-content !important;
  }

  #ratingsTable tbody td:nth-last-child(1),
  #ratingsTable tbody td:nth-last-child(2) {
    border-bottom: 0 !important;
  }

  .table-wrap {
    overflow: visible !important;
    border: 0 !important;
  }

  .table-note {
    font-size: 12px !important;
  }

  /* 리포트 목록 모바일 */
  .report-list article,
  .archive-report {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .report-list span {
    text-align: left !important;
  }

  .report-open {
    width: fit-content !important;
  }
}

/* 더 작은 화면 */
@media (max-width: 480px) {
  .container {
    width: min(100% - 22px, 1180px) !important;
  }

  #ratingsTable tbody tr {
    grid-template-columns: 1fr !important;
  }

  #ratingsTable tbody td {
    grid-template-columns: 78px 1fr !important;
  }

  #ratingsTable tbody td:nth-child(6) {
    grid-template-columns: 78px auto !important;
  }

  .rating-panel,
  .document-card,
  .institution-identity,
  .institution-summary,
  .institution-metrics,
  .institution-columns,
  .institution-network {
    border-radius: 3px !important;
  }
}


/* =========================================================
   MOBILE TABLE FIX
   - 국가신용등급표 모바일 깨짐 수정
   - 리포트 상세페이지 표 넘침 수정
========================================================= */

/* 기본: 모바일에서 가로 넘침 방지 */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

/* 데스크톱 표는 기존 유지 */
.table-wrap {
  max-width: 100%;
}

/* 리포트 상세페이지 표는 데스크톱에서도 안전하게 */
.report-table-wrap,
.report-paper .table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

.report-table {
  min-width: 760px !important;
}

/* 모바일 국가신용등급표: 완전 카드형 재구성 */
@media (max-width: 760px) {
  .table-wrap:has(#ratingsTable) {
    overflow: visible !important;
    border: 0 !important;
    background: transparent !important;
  }

  #ratingsTable {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
  }

  #ratingsTable thead {
    display: none !important;
  }

  #ratingsTable tbody {
    display: grid !important;
    gap: 12px !important;
    width: 100% !important;
  }

  #ratingsTable tbody tr {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    width: 100% !important;
    margin: 0 !important;
    border: 1px solid #cfd6de !important;
    background: #fff !important;
    overflow: hidden !important;
  }

  #ratingsTable tbody td {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) !important;
    align-items: center !important;
    column-gap: 8px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 42px !important;
    padding: 10px 11px !important;
    border: 0 !important;
    border-right: 1px solid #e2e6eb !important;
    border-bottom: 1px solid #e2e6eb !important;
    background: #fff !important;
    color: #30363d !important;
    text-align: left !important;
    white-space: normal !important;
    word-break: keep-all !important;
  }

  #ratingsTable tbody td:nth-child(even) {
    border-right: 0 !important;
  }

  #ratingsTable tbody td::before {
    display: block !important;
    color: #737b84 !important;
    font-size: 11.5px !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }

  #ratingsTable tbody td:nth-child(1)::before { content: "GDP"; }
  #ratingsTable tbody td:nth-child(2)::before { content: "국가"; }
  #ratingsTable tbody td:nth-child(3)::before { content: "현재"; }
  #ratingsTable tbody td:nth-child(4)::before { content: "직전"; }
  #ratingsTable tbody td:nth-child(5)::before { content: "EFI"; }
  #ratingsTable tbody td:nth-child(6)::before { content: "등급"; }
  #ratingsTable tbody td:nth-child(7)::before { content: "전망"; }

  /* 국가명은 상단 전체 폭 */
  #ratingsTable tbody td:nth-child(2) {
    grid-column: 1 / -1 !important;
    grid-template-columns: 72px minmax(0, 1fr) !important;
    min-height: 48px !important;
    font-size: 15.5px !important;
    font-weight: 450 !important;
    color: #1f2328 !important;
    background: #f8fafc !important;
  }

  /* 마지막 Outlook 셀은 전체 폭으로 정리 */
  #ratingsTable tbody td:nth-child(7) {
    grid-column: 1 / -1 !important;
    border-bottom: 0 !important;
    border-right: 0 !important;
  }

  /* 홀수 마지막 줄 깨짐 방지 */
  #ratingsTable tbody td:nth-child(5),
  #ratingsTable tbody td:nth-child(6) {
    border-bottom: 1px solid #e2e6eb !important;
  }

  /* 배지류는 내용만큼만 */
  #ratingsTable .badge {
    display: inline-flex !important;
    width: fit-content !important;
    min-width: 62px !important;
    min-height: 26px !important;
    padding: 0 9px !important;
    justify-self: start !important;
    font-size: 12.5px !important;
  }

  /* EFI 점수는 화이트 */
  #ratingsTable tbody td.efi-cell,
  #ratingsTable tbody tr:hover td.efi-cell {
    background: #fff !important;
    color: #24303b !important;
    font-weight: 400 !important;
  }

  /* EFI 등급 카드: 셀 전체 배경이 아니라 작은 pill처럼 */
  #ratingsTable tbody td.efi-grade,
  #ratingsTable tbody tr:hover td.efi-grade {
    display: inline-grid !important;
    grid-template-columns: 72px auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 10px 11px !important;
    border-radius: 0 !important;
    color: #30363d !important;
    background: #fff !important;
    font-size: 12px !important;
    text-align: left !important;
  }

  #ratingsTable tbody td.efi-grade::after {
    content: attr(data-grade-label);
  }

  /* JS가 data-grade-label 없으므로 텍스트 자체를 pill처럼 보이게 하기 위해 색상은 셀에 유지하되 크기를 줄임 */
  #ratingsTable tbody td.efi-grade.efi-Free,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Free {
    background: linear-gradient(90deg, #fff 0 72px, #00a260 72px) !important;
    color: #fff !important;
  }

  #ratingsTable tbody td.efi-grade.efi-Mostly-Free,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Mostly-Free {
    background: linear-gradient(90deg, #fff 0 72px, #2196d3 72px) !important;
    color: #fff !important;
  }

  #ratingsTable tbody td.efi-grade.efi-Moderately-Free,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Moderately-Free {
    background: linear-gradient(90deg, #fff 0 72px, #e7b900 72px) !important;
    color: #fff !important;
  }

  #ratingsTable tbody td.efi-grade.efi-Mostly-Unfree,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Mostly-Unfree {
    background: linear-gradient(90deg, #fff 0 72px, #e35a00 72px) !important;
    color: #fff !important;
  }

  #ratingsTable tbody td.efi-grade.efi-Repressed,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Repressed {
    background: linear-gradient(90deg, #fff 0 72px, #b3261e 72px) !important;
    color: #fff !important;
  }

  #ratingsTable tbody td.efi-grade::before {
    color: #737b84 !important;
    z-index: 1 !important;
  }

  /* 리포트 상세페이지 표: 화면 안에서만 가로 스크롤 */
  .report-layout {
    grid-template-columns: 1fr !important;
  }

  .report-toc {
    position: static !important;
  }

  .report-paper {
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  .report-paper .table-wrap,
  .report-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border: 1px solid #cfd6de !important;
    background: #fff !important;
  }

  .report-table,
  .report-paper .data-table {
    display: table !important;
    min-width: 720px !important;
    width: 720px !important;
    table-layout: auto !important;
  }

  .report-table thead,
  .report-table tbody,
  .report-table tr {
    display: table-header-group;
  }

  .report-table tbody {
    display: table-row-group !important;
  }

  .report-table tr {
    display: table-row !important;
  }

  .report-table th,
  .report-table td {
    display: table-cell !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 11px 12px !important;
    font-size: 12.5px !important;
    white-space: normal !important;
    word-break: keep-all !important;
  }

  .report-table th::before,
  .report-table td::before {
    content: none !important;
  }

  .report-table-wrap::after {
    content: "좌우로 스크롤해 전체 표를 확인할 수 있습니다.";
    display: block;
    padding: 8px 10px;
    color: #7a828b;
    font-size: 11.5px;
    background: #f8fafc;
    border-top: 1px solid #e1e5ea;
  }
}

@media (max-width: 420px) {
  #ratingsTable tbody tr {
    grid-template-columns: 1fr !important;
  }

  #ratingsTable tbody td {
    border-right: 0 !important;
  }

  #ratingsTable tbody td:nth-child(6) {
    grid-template-columns: 72px minmax(0, 1fr) !important;
  }

  #ratingsTable tbody td.efi-grade.efi-Free,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Free {
    background: linear-gradient(90deg, #fff 0 72px, #00a260 72px) !important;
  }

  #ratingsTable tbody td.efi-grade.efi-Mostly-Free,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Mostly-Free {
    background: linear-gradient(90deg, #fff 0 72px, #2196d3 72px) !important;
  }

  #ratingsTable tbody td.efi-grade.efi-Moderately-Free,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Moderately-Free {
    background: linear-gradient(90deg, #fff 0 72px, #e7b900 72px) !important;
  }

  #ratingsTable tbody td.efi-grade.efi-Mostly-Unfree,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Mostly-Unfree {
    background: linear-gradient(90deg, #fff 0 72px, #e35a00 72px) !important;
  }

  #ratingsTable tbody td.efi-grade.efi-Repressed,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Repressed {
    background: linear-gradient(90deg, #fff 0 72px, #b3261e 72px) !important;
  }

  .report-table,
  .report-paper .data-table {
    min-width: 680px !important;
    width: 680px !important;
  }
}


/* =========================================================
   MOBILE RANKING TABLE RESTORE
   - 모바일에서도 국가별 카드형 변환 제거
   - 전체 순위표 형태 그대로 유지
   - 좁은 화면에서는 표 내부 가로 스크롤
========================================================= */

@media (max-width: 760px) {
  /* 카드형 변환 무효화 */
  .table-wrap:has(#ratingsTable) {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    border: 1px solid #cfd6de !important;
    background: #fff !important;
  }

  #ratingsTable,
  #ratingsTable thead,
  #ratingsTable tbody,
  #ratingsTable tr,
  #ratingsTable th,
  #ratingsTable td {
    display: revert !important;
  }

  #ratingsTable {
    display: table !important;
    width: 100% !important;
    min-width: 880px !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    table-layout: auto !important;
  }

  #ratingsTable thead {
    display: table-header-group !important;
  }

  #ratingsTable tbody {
    display: table-row-group !important;
  }

  #ratingsTable tr {
    display: table-row !important;
    width: auto !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  #ratingsTable th,
  #ratingsTable td {
    display: table-cell !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 0 !important;
    padding: 11px 12px !important;
    border-top: 1px solid #d8dde3 !important;
    border-right: 1px solid #d8dde3 !important;
    text-align: left !important;
    white-space: nowrap !important;
    word-break: normal !important;
    vertical-align: middle !important;
  }

  #ratingsTable th {
    position: sticky !important;
    top: 0 !important;
    z-index: 2 !important;
    background: #424951 !important;
    color: #fff !important;
    border-top: 0 !important;
    font-size: 12.5px !important;
  }

  #ratingsTable td::before,
  #ratingsTable th::before,
  #ratingsTable td::after,
  #ratingsTable th::after {
    content: none !important;
    display: none !important;
  }

  #ratingsTable td:first-child,
  #ratingsTable th:first-child {
    width: 76px !important;
    text-align: center !important;
  }

  #ratingsTable td:nth-child(2),
  #ratingsTable th:nth-child(2) {
    min-width: 180px !important;
  }

  #ratingsTable td:nth-child(3),
  #ratingsTable th:nth-child(3),
  #ratingsTable td:nth-child(4),
  #ratingsTable th:nth-child(4) {
    width: 104px !important;
    text-align: center !important;
  }

  #ratingsTable td:nth-child(5),
  #ratingsTable th:nth-child(5) {
    width: 86px !important;
    text-align: center !important;
  }

  #ratingsTable td:nth-child(6),
  #ratingsTable th:nth-child(6) {
    width: 128px !important;
    text-align: center !important;
  }

  #ratingsTable td:nth-child(7),
  #ratingsTable th:nth-child(7) {
    width: 88px !important;
  }

  #ratingsTable tbody tr:nth-child(even) td {
    background: #fbfcfd !important;
  }

  #ratingsTable tbody tr:hover td {
    background: #f6f8fb !important;
  }

  #ratingsTable .badge {
    display: inline-flex !important;
    width: auto !important;
    min-width: 62px !important;
    min-height: 26px !important;
    padding: 0 9px !important;
    justify-content: center !important;
    font-size: 12.5px !important;
  }

  /* EFI 점수: 화이트 유지 */
  #ratingsTable tbody td.efi-cell,
  #ratingsTable tbody tr:hover td.efi-cell {
    background: #fff !important;
    color: #24303b !important;
  }

  /* EFI 등급: 표 셀 전체 컬러로 정상 표시 */
  #ratingsTable tbody td.efi-grade,
  #ratingsTable tbody tr:hover td.efi-grade {
    display: table-cell !important;
    min-width: 0 !important;
    max-width: none !important;
    width: auto !important;
    padding: 8px 10px !important;
    border-radius: 0 !important;
    font-size: 11.5px !important;
    line-height: 1.15 !important;
    color: #fff !important;
    text-align: center !important;
    white-space: nowrap !important;
  }

  #ratingsTable tbody td.efi-grade.efi-Free,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Free {
    background: linear-gradient(180deg, #00b96b, #009750) !important;
  }

  #ratingsTable tbody td.efi-grade.efi-Mostly-Free,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Mostly-Free {
    background: linear-gradient(180deg, #28a8e0, #1686c4) !important;
  }

  #ratingsTable tbody td.efi-grade.efi-Moderately-Free,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Moderately-Free {
    background: linear-gradient(180deg, #efc400, #d2a900) !important;
  }

  #ratingsTable tbody td.efi-grade.efi-Mostly-Unfree,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Mostly-Unfree {
    background: linear-gradient(180deg, #ff6a00, #d94c00) !important;
  }

  #ratingsTable tbody td.efi-grade.efi-Repressed,
  #ratingsTable tbody tr:hover td.efi-grade.efi-Repressed {
    background: linear-gradient(180deg, #c92f25, #8f241d) !important;
  }

  .table-wrap:has(#ratingsTable)::after {
    content: "좌우로 스크롤해 전체 순위표를 확인할 수 있습니다.";
    display: block;
    padding: 8px 10px;
    color: #7a828b;
    font-size: 11.5px;
    background: #f8fafc;
    border-top: 1px solid #e1e5ea;
  }
}

@media (max-width: 420px) {
  #ratingsTable {
    min-width: 840px !important;
  }

  #ratingsTable th,
  #ratingsTable td {
    padding: 10px 10px !important;
  }

  #ratingsTable td:nth-child(2),
  #ratingsTable th:nth-child(2) {
    min-width: 170px !important;
  }
}


/* =========================================================
   FINAL MOBILE TABLE HARDFIX
   - 모바일 신용등급표 완전 정상화
   - 전체 순위표 구조 유지
   - 리포트 상세 표 넘침 안정화
========================================================= */

@media (max-width: 760px) {
  /* 국가신용등급표: 어떤 이전 카드형 규칙도 무효화 */
  .table-wrap:has(#ratingsTable) {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    border: 1px solid #cfd6de !important;
    background: #fff !important;
  }

  #ratingsTable {
    display: table !important;
    width: auto !important;
    min-width: 900px !important;
    max-width: none !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
  }

  #ratingsTable caption,
  #ratingsTable colgroup {
    display: table-caption;
  }

  #ratingsTable thead {
    display: table-header-group !important;
  }

  #ratingsTable tbody {
    display: table-row-group !important;
  }

  #ratingsTable tr {
    display: table-row !important;
  }

  #ratingsTable th,
  #ratingsTable td {
    display: table-cell !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 11px 12px !important;
    border-top: 1px solid #d8dde3 !important;
    border-right: 1px solid #d8dde3 !important;
    border-left: 0 !important;
    border-bottom: 0 !important;
    vertical-align: middle !important;
    text-align: center !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow: visible !important;
    background-clip: padding-box !important;
  }

  #ratingsTable th {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
    background: #424951 !important;
    color: #fff !important;
    font-size: 12.5px !important;
    font-weight: 350 !important;
    line-height: 1.3 !important;
    border-top: 0 !important;
  }

  #ratingsTable td {
    color: #30363d !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
  }

  #ratingsTable td::before,
  #ratingsTable td::after,
  #ratingsTable th::before,
  #ratingsTable th::after {
    content: none !important;
    display: none !important;
  }

  /* 열 폭 재정의 */
  #ratingsTable th:nth-child(1),
  #ratingsTable td:nth-child(1) {
    width: 72px !important;
    min-width: 72px !important;
  }

  #ratingsTable th:nth-child(2),
  #ratingsTable td:nth-child(2) {
    width: 250px !important;
    min-width: 250px !important;
    text-align: left !important;
    white-space: normal !important;
    word-break: keep-all !important;
  }

  #ratingsTable th:nth-child(3),
  #ratingsTable td:nth-child(3),
  #ratingsTable th:nth-child(4),
  #ratingsTable td:nth-child(4) {
    width: 100px !important;
    min-width: 100px !important;
  }

  #ratingsTable th:nth-child(5),
  #ratingsTable td:nth-child(5) {
    width: 86px !important;
    min-width: 86px !important;
  }

  #ratingsTable th:nth-child(6),
  #ratingsTable td:nth-child(6) {
    width: 138px !important;
    min-width: 138px !important;
  }

  #ratingsTable th:nth-child(7),
  #ratingsTable td:nth-child(7) {
    width: 88px !important;
    min-width: 88px !important;
  }

  /* 국가명, 전망 가독성 */
  #ratingsTable td:nth-child(2) {
    font-weight: 450 !important;
    color: #1f2328 !important;
  }

  #ratingsTable td:nth-child(7) {
    text-align: left !important;
  }

  /* 배지류 정상화 */
  #ratingsTable .badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 64px !important;
    min-height: 28px !important;
    padding: 0 10px !important;
    border-radius: 3px !important;
    font-size: 13px !important;
    line-height: 1 !important;
  }

  /* EFI 점수 셀 */
  #ratingsTable td.efi-cell,
  #ratingsTable tbody tr:hover td.efi-cell {
    background: #ffffff !important;
    color: #24303b !important;
    font-weight: 400 !important;
  }

  /* EFI 등급 셀: 셀 전체 컬러 + 경계선 유지 */
  #ratingsTable td.efi-grade,
  #ratingsTable tbody tr:hover td.efi-grade {
    padding: 9px 10px !important;
    border-left: 1px solid #d8dde3 !important;
    border-right: 1px solid #d8dde3 !important;
    color: #fff !important;
    font-size: 11.5px !important;
    line-height: 1.15 !important;
    text-align: center !important;
    white-space: nowrap !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.16) !important;
  }

  /* 모바일에서도 행 hover가 색 셀을 지우지 않게 */
  #ratingsTable tbody tr:hover td {
    background: #f6f8fb !important;
  }

  #ratingsTable tbody tr:hover td.efi-cell {
    background: #ffffff !important;
  }

  #ratingsTable tbody tr:hover td.efi-Free { background: linear-gradient(180deg, #00b96b, #009750) !important; }
  #ratingsTable tbody tr:hover td.efi-Mostly-Free { background: linear-gradient(180deg, #28a8e0, #1686c4) !important; }
  #ratingsTable tbody tr:hover td.efi-Moderately-Free { background: linear-gradient(180deg, #efc400, #d2a900) !important; }
  #ratingsTable tbody tr:hover td.efi-Mostly-Unfree { background: linear-gradient(180deg, #ff6a00, #d94c00) !important; }
  #ratingsTable tbody tr:hover td.efi-Repressed { background: linear-gradient(180deg, #c92f25, #8f241d) !important; }

  /* 가로 스크롤 안내 */
  .table-wrap:has(#ratingsTable)::after {
    content: "좌우로 스크롤해 전체 순위표를 확인할 수 있습니다.";
    display: block;
    padding: 8px 10px;
    color: #7a828b;
    font-size: 11.5px;
    background: #f8fafc;
    border-top: 1px solid #e1e5ea;
  }

  /* 리포트 상세 표: 카드형 변환 금지, 내부 스크롤만 허용 */
  .report-paper {
    min-width: 0 !important;
    overflow: hidden !important;
  }

  .report-paper .table-wrap,
  .report-table-wrap {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    border: 1px solid #cfd6de !important;
    background: #fff !important;
  }

  .report-paper .data-table,
  .report-table {
    display: table !important;
    width: auto !important;
    min-width: 720px !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
  }

  .report-paper .data-table thead,
  .report-paper .data-table tbody,
  .report-paper .data-table tr,
  .report-table thead,
  .report-table tbody,
  .report-table tr {
    display: revert !important;
  }

  .report-paper .data-table th,
  .report-paper .data-table td,
  .report-table th,
  .report-table td {
    display: table-cell !important;
    padding: 11px 12px !important;
    white-space: nowrap !important;
    word-break: normal !important;
  }

  .report-paper .data-table th::before,
  .report-paper .data-table td::before,
  .report-table th::before,
  .report-table td::before {
    content: none !important;
    display: none !important;
  }
}

@media (max-width: 420px) {
  #ratingsTable {
    min-width: 860px !important;
  }

  #ratingsTable th,
  #ratingsTable td {
    padding: 10px 10px !important;
    font-size: 13px !important;
  }

  #ratingsTable th:nth-child(2),
  #ratingsTable td:nth-child(2) {
    width: 230px !important;
    min-width: 230px !important;
  }

  .report-paper .data-table,
  .report-table {
    min-width: 680px !important;
  }
}


/* =========================================================
   FINAL PUBLICATIONS + MOBILE RANKING REDESIGN
========================================================= */

/* Recent publications redesign */
#reports .section-head {
  align-items: end;
  margin-bottom: 24px !important;
}

.report-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  border-top: 0 !important;
}

.report-list article,
.report-list article.report-link-card {
  display: grid !important;
  grid-template-columns: 112px 1fr !important;
  gap: 18px !important;
  align-items: start !important;
  margin: 0 !important;
  padding: 18px 18px !important;
  min-height: 124px !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  background: rgba(255,255,255,.04) !important;
  transition:
    background-color 160ms cubic-bezier(.4,0,.2,1),
    border-color 160ms cubic-bezier(.4,0,.2,1) !important;
}

.report-list article:hover,
.report-list article.report-link-card:hover {
  background: rgba(255,255,255,.065) !important;
  border-color: rgba(255,255,255,.22) !important;
}

.report-list article time {
  display: inline-flex !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  min-height: 0 !important;
  padding-top: 1px !important;
  margin: 0 !important;
  color: #ff95a8 !important;
  font-size: 13px !important;
  font-weight: 450 !important;
  letter-spacing: -0.02em !important;
}

.report-list article a,
.report-list article strong,
.report-list article span {
  text-align: left !important;
}

.report-list article a {
  display: block !important;
  text-decoration: none !important;
}

.report-list article strong {
  display: block !important;
  margin: 0 0 10px !important;
  color: #ffffff !important;
  font-size: 20px !important;
  line-height: 1.34 !important;
  font-weight: 350 !important;
  letter-spacing: -0.03em !important;
}

.report-list article span {
  display: inline-flex !important;
  align-items: center !important;
  width: fit-content !important;
  padding: 5px 9px !important;
  color: rgba(255,255,255,.78) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  background: rgba(255,255,255,.025) !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
}

.report-list article.report-link-card {
  border-top: 2px solid rgba(255,149,168,.65) !important;
}

.report-list article.report-link-card strong {
  color: #fff !important;
}

/* Ratings table desktop remains */
.mobile-ratings-board {
  display: none;
}

/* Mobile: replace full table with clean card structure */
@media (max-width: 760px) {
  .table-wrap:has(#ratingsTable) {
    display: none !important;
  }

  .table-note {
    margin-top: 12px !important;
  }

  .mobile-ratings-board {
    display: grid !important;
    gap: 12px !important;
    margin-top: 2px !important;
  }

  .mobile-rating-card {
    border: 1px solid #cfd6de;
    background: #fff;
  }

  .mobile-rating-head {
    display: grid;
    grid-template-columns: 66px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    padding: 14px 14px 12px;
    border-bottom: 1px solid #e1e5ea;
    background: #f8fafc;
  }

  .mobile-rating-head h3 {
    margin: 0 !important;
    color: #1f2328 !important;
    font-size: 17px !important;
    line-height: 1.3 !important;
    font-weight: 450 !important;
    word-break: keep-all !important;
  }

  .mobile-rating-rank-label {
    display: block;
    margin-bottom: 5px;
    color: #737b84;
    font-size: 11px;
    line-height: 1.1;
  }

  .mobile-rating-rank {
    display: block;
    color: #20252b;
    font-size: 24px;
    font-weight: 300;
    line-height: 1;
  }

  .mobile-rating-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    border-bottom: 1px solid #e1e5ea;
  }

  .mobile-summary-item {
    padding: 12px 14px;
    border-right: 1px solid #e1e5ea;
    background: #fff;
  }

  .mobile-summary-item:last-child {
    border-right: 0;
  }

  .mobile-summary-item > span,
  .mobile-efi-score > span,
  .mobile-efi-grade > span {
    display: block;
    margin-bottom: 8px;
    color: #7a828b;
    font-size: 11px;
    line-height: 1.1;
  }

  .mobile-summary-item .badge {
    min-width: 60px !important;
    min-height: 28px !important;
    padding: 0 10px !important;
    font-size: 13px !important;
  }

  .mobile-previous {
    display: block;
    color: #2e343b;
    font-size: 20px;
    font-weight: 300;
    line-height: 1;
  }

  .mobile-outlook {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 74px;
    min-height: 28px;
    padding: 0 10px;
    background: #eef2f6;
    color: #30363d;
    font-size: 12px;
    font-weight: 400;
    line-height: 1;
  }

  .mobile-outlook.outlook-negative {
    background: #fff3f3;
    color: #a22b24;
  }

  .mobile-outlook.outlook-watch {
    background: #fff7e8;
    color: #9a6400;
  }

  .mobile-rating-efi {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 0;
  }

  .mobile-efi-score {
    padding: 12px 14px;
    border-right: 1px solid #e1e5ea;
    background: #fff;
  }

  .mobile-efi-score strong {
    display: block;
    color: #20252b;
    font-size: 22px;
    font-weight: 300;
    line-height: 1;
  }

  .mobile-efi-grade {
    padding: 12px 14px;
    color: #fff !important;
  }

  .mobile-efi-grade strong {
    display: block;
    font-size: 18px;
    font-weight: 350;
    line-height: 1.15;
    letter-spacing: -0.02em;
  }

  .mobile-efi-grade > span {
    color: rgba(255,255,255,.78) !important;
  }

  .mobile-efi-grade.efi-Free { background: linear-gradient(180deg, #00b96b, #009750) !important; }
  .mobile-efi-grade.efi-Mostly-Free { background: linear-gradient(180deg, #28a8e0, #1686c4) !important; }
  .mobile-efi-grade.efi-Moderately-Free { background: linear-gradient(180deg, #efc400, #d2a900) !important; }
  .mobile-efi-grade.efi-Mostly-Unfree { background: linear-gradient(180deg, #ff6a00, #d94c00) !important; }
  .mobile-efi-grade.efi-Repressed { background: linear-gradient(180deg, #c92f25, #8f241d) !important; }

  /* Recent publications mobile readability */
  .report-list {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .report-list article,
  .report-list article.report-link-card {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    min-height: auto !important;
    padding: 16px !important;
  }

  .report-list article time {
    font-size: 12px !important;
  }

  .report-list article strong {
    font-size: 18px !important;
    margin-bottom: 8px !important;
  }
}

@media (max-width: 420px) {
  .mobile-rating-summary {
    grid-template-columns: 1fr !important;
  }

  .mobile-summary-item {
    border-right: 0 !important;
    border-bottom: 1px solid #e1e5ea;
  }

  .mobile-summary-item:last-child {
    border-bottom: 0;
  }

  .mobile-rating-efi {
    grid-template-columns: 1fr !important;
  }

  .mobile-efi-score {
    border-right: 0 !important;
    border-bottom: 1px solid #e1e5ea;
  }

  .report-list article strong {
    font-size: 17px !important;
  }
}


/* ===== Naver Cafe copy button section ===== */

.cafe-copy-block {
  margin-top: 54px;
  padding: 26px;
  border: 1px solid #cfd6de;
  background: #ffffff;
}

.cafe-copy-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid #d8dde3;
}

.cafe-copy-head h2 {
  margin: 0;
}

.copy-cafe-button {
  min-height: 38px;
  padding: 0 16px;
  border: 1px solid #30363d;
  background: #30363d;
  color: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 400;
  cursor: pointer;
  transition: background-color 140ms cubic-bezier(.4,0,.2,1), border-color 140ms cubic-bezier(.4,0,.2,1);
}

.copy-cafe-button:hover {
  background: #20252b;
  border-color: #20252b;
}

.copy-cafe-button.is-copied {
  background: #0b7a46;
  border-color: #0b7a46;
}

.cafe-copy-text {
  width: 100%;
  min-height: 260px;
  padding: 16px;
  resize: vertical;
  border: 1px solid #d8dde3;
  background: #f8fafc;
  color: #30363d;
  font-family: "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 13px;
  line-height: 1.7;
  white-space: pre-wrap;
}

.copy-result {
  min-height: 20px;
  margin: 10px 0 0;
  color: #68717b;
  font-size: 13px;
}

@media (max-width: 760px) {
  .cafe-copy-block {
    padding: 18px;
  }

  .cafe-copy-head {
    display: grid;
    align-items: start;
  }

  .copy-cafe-button {
    width: fit-content;
  }

  .cafe-copy-text {
    min-height: 220px;
    font-size: 12.5px;
  }
}


/* =========================================================
   FINAL REPORT BODY COPY + CLEAN FINANCIAL FINISH
   - visible report body itself is copied
   - tables are copied as HTML where browser allows
   - no Naver Cafe label exposed
========================================================= */

/* Remove old visible copy block if cached in browser */
.cafe-copy-block,
.cafe-copy-text,
.copy-result {
  display: none !important;
}

.copy-report-button {
  width: calc(100% - 40px);
  min-height: 38px;
  margin: 18px 20px 0;
  border: 1px solid #30363d;
  background: #30363d;
  color: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 400;
  cursor: pointer;
  transition:
    background-color 140ms cubic-bezier(.4,0,.2,1),
    border-color 140ms cubic-bezier(.4,0,.2,1);
}

.copy-report-button:hover {
  background: #20252b;
  border-color: #20252b;
}

.copy-report-button.is-copied {
  background: #0b7a46;
  border-color: #0b7a46;
}

.copy-report-status {
  min-height: 18px;
  margin: 8px 20px 18px;
  color: #68717b;
  font-size: 12px;
}

/* Final page tone */
.site-header {
  border-bottom: 1px solid #cfd6de !important;
  box-shadow: none !important;
}

.hero,
.archive-hero,
.report-hero {
  background: linear-gradient(180deg, #fff 0%, #f5f7f9 100%) !important;
}

.section-head,
.methodology-header,
.archive-section-head {
  border-bottom: 1px solid #cfd6de !important;
}

.rating-panel,
.document-card,
.institution-identity,
.institution-summary,
.institution-metrics,
.institution-columns,
.institution-network,
.archive-toolbar,
.table-wrap,
.methodology-scorecard,
.methodology-flow,
.methodology-note,
.report-paper .table-wrap,
.report-table-wrap {
  box-shadow: none !important;
  border-color: #c8d0d9 !important;
}

/* Publications */
.report-list {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.report-list article {
  border: 1px solid rgba(255,255,255,.14) !important;
  background: rgba(255,255,255,.04) !important;
}

.report-list article:hover {
  background: rgba(255,255,255,.065) !important;
}

/* Mobile rating board stays as the final recommended structure */
.mobile-ratings-board {
  display: none;
}

@media (max-width: 760px) {
  .table-wrap:has(#ratingsTable) {
    display: none !important;
  }

  .mobile-ratings-board {
    display: grid !important;
  }

  .copy-report-button {
    width: calc(100% - 32px);
    margin: 16px 16px 0;
  }

  .copy-report-status {
    margin: 8px 16px 16px;
  }

  .report-list {
    grid-template-columns: 1fr !important;
  }
}

/* Keep copy source tables readable */
#reportCopySource table {
  border-collapse: collapse;
}

#reportCopySource th,
#reportCopySource td {
  border: 1px solid #d8dde3;
}


/* =========================================================
   COPY ACTIVATION + PUBLICATIONS MOTION POLISH
========================================================= */

.copy-report-button {
  position: relative;
  overflow: hidden;
  border-radius: 3px;
}

.copy-report-button::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 2px;
  background: rgba(255,255,255,.35);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms cubic-bezier(.4,0,.2,1);
}

.copy-report-button:hover::after,
.copy-report-button.is-copied::after {
  transform: scaleX(1);
}

.copy-report-button.is-copied {
  background: #0b7a46 !important;
  border-color: #0b7a46 !important;
  color: #fff !important;
}

.copy-report-button.is-error {
  background: #9a2f2a !important;
  border-color: #9a2f2a !important;
  color: #fff !important;
}

.copy-report-status {
  color: #4f5964;
}

/* 최근 공표자료: 금융 리서치 포털형 개선 */
#reports {
  background:
    radial-gradient(circle at 86% 0%, rgba(198,31,63,.10), transparent 28%),
    linear-gradient(180deg, #2b3138 0%, #232930 100%) !important;
}

#reports .section-head {
  margin-bottom: 26px !important;
  padding-bottom: 18px !important;
  border-bottom: 1px solid rgba(255,255,255,.16) !important;
}

#reports .section-head h2 {
  color: #fff !important;
}

#reports .section-head > p {
  color: rgba(255,255,255,.62) !important;
}

.report-list {
  gap: 12px !important;
}

.report-list article,
.report-list article.report-link-card {
  position: relative;
  isolation: isolate;
  min-height: 126px !important;
  padding: 18px 18px 18px 20px !important;
  border: 1px solid rgba(255,255,255,.13) !important;
  background: rgba(255,255,255,.035) !important;
  overflow: hidden;
  transition:
    background-color 180ms cubic-bezier(.4,0,.2,1),
    border-color 180ms cubic-bezier(.4,0,.2,1),
    transform 180ms cubic-bezier(.4,0,.2,1) !important;
}

.report-list article::before,
.report-list article.report-link-card::before {
  content: "";
  display: block !important;
  position: absolute;
  left: 0;
  top: 18px;
  bottom: 18px;
  width: 2px;
  background: rgba(255,149,168,.54);
  opacity: .7;
  transition:
    opacity 180ms cubic-bezier(.4,0,.2,1),
    background-color 180ms cubic-bezier(.4,0,.2,1);
}

.report-list article::after,
.report-list article.report-link-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(255,255,255,.06), transparent 42%);
  opacity: 0;
  transition: opacity 180ms cubic-bezier(.4,0,.2,1);
  z-index: -1;
}

.report-list article:hover,
.report-list article.report-link-card:hover {
  background: rgba(255,255,255,.06) !important;
  border-color: rgba(255,255,255,.24) !important;
  transform: translateY(-1px);
}

.report-list article:hover::before,
.report-list article.report-link-card:hover::before {
  opacity: 1;
  background: #ff8fa4;
}

.report-list article:hover::after,
.report-list article.report-link-card:hover::after {
  opacity: 1;
}

.report-list article time {
  color: #ff9caf !important;
  font-size: 12.5px !important;
  letter-spacing: .01em;
}

.report-list article strong {
  color: #fff !important;
  font-size: 19px !important;
  line-height: 1.32 !important;
  font-weight: 350 !important;
}

.report-list article span {
  color: rgba(255,255,255,.74) !important;
  border-color: rgba(255,255,255,.15) !important;
  background: rgba(255,255,255,.035) !important;
}

@media (max-width: 760px) {
  .report-list article,
  .report-list article.report-link-card {
    min-height: auto !important;
    padding: 16px 16px 16px 18px !important;
  }

  .report-list article:hover,
  .report-list article.report-link-card:hover {
    transform: none !important;
  }
}


/* ===== Deployment/Admin cleanup ===== */

.empty-table-cell,
.empty-state,
.empty-publication {
  padding: 28px !important;
  color: #6f7882 !important;
  text-align: center !important;
  background: #fff !important;
  border: 1px solid #d9dee5 !important;
}

.empty-publication {
  grid-column: 1 / -1;
}

.admin-hero {
  padding: 56px 0;
  background: #fff;
  border-bottom: 1px solid #d9dee5;
}

.admin-layout {
  display: grid;
  grid-template-columns: 220px minmax(0,1fr);
  gap: 16px;
}

.admin-panel {
  border: 1px solid #d9dee5;
  background: #fff;
  padding: 18px;
}

.admin-side {
  position: sticky;
  top: 90px;
  align-self: start;
}

.admin-side h2 {
  margin: 0 0 14px;
  font-size: 18px;
}

.admin-side a {
  display: block;
  padding: 10px 12px;
  color: #343b43;
  text-decoration: none;
  border-bottom: 1px solid #eef1f4;
}

.admin-side a:hover {
  background: #f6f7f9;
}

.admin-main {
  display: grid;
  gap: 16px;
}

.admin-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 16px;
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid #d9dee5;
}

.admin-head h2 {
  margin: 0;
  font-size: 24px;
}

.admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.admin-button,
.row-remove {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid #30363d;
  background: #30363d;
  color: #fff;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}

.admin-button:hover,
.row-remove:hover {
  background: #20252b;
}

.admin-button.danger,
.row-remove {
  border-color: #9a2f2a;
  background: #9a2f2a;
}

.admin-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 12px;
}

.admin-grid label span {
  display: block;
  margin-bottom: 6px;
  color: #6f7882;
  font-size: 12px;
}

.admin-grid input,
.admin-table input,
.admin-table select,
.admin-json {
  width: 100%;
  border: 1px solid #cfd6de;
  background: #fff;
  color: #343b43;
  font: inherit;
  font-size: 13px;
}

.admin-grid input,
.admin-table input,
.admin-table select {
  min-height: 34px;
  padding: 0 10px;
}

.admin-table-wrap {
  overflow-x: auto;
  border: 1px solid #d9dee5;
}

.admin-table {
  width: 100%;
  min-width: 980px;
  border-collapse: collapse;
}

.admin-table th {
  padding: 10px;
  background: #2b3138;
  color: #fff;
  font-size: 12px;
  font-weight: 400;
  text-align: left;
}

.admin-table td {
  padding: 8px;
  border-top: 1px solid #e6ebf0;
  border-right: 1px solid #e6ebf0;
}

.admin-json {
  min-height: 320px;
  padding: 14px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  line-height: 1.6;
}

.admin-note {
  margin: 10px 0 0;
  color: #6f7882;
  font-size: 13px;
}

@media (max-width: 900px) {
  .admin-layout,
  .admin-grid {
    grid-template-columns: 1fr;
  }

  .admin-side {
    position: static;
  }

  .admin-head {
    display: grid;
    align-items: start;
  }
}


/* ===== Admin Excel Import ===== */

.admin-side-note {
  margin: 14px 0 0;
  padding-top: 12px;
  border-top: 1px solid #e6ebf0;
  color: #6f7882;
  font-size: 12px;
  line-height: 1.5;
}

.excel-import-box {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
}

.excel-drop {
  display: grid;
  align-content: center;
  min-height: 112px;
  padding: 18px;
  border: 1px dashed #9aa4af;
  background: #f8fafc;
}

.excel-drop span {
  display: block;
  margin-bottom: 10px;
  color: #343b43;
  font-size: 14px;
  font-weight: 500;
}

.excel-drop input {
  width: 100%;
  font-size: 13px;
}

.excel-guide {
  padding: 18px;
  border: 1px solid #d9dee5;
  background: #fff;
}

.excel-guide strong {
  display: block;
  margin-bottom: 10px;
  color: #1f242a;
  font-size: 14px;
}

.excel-guide p {
  margin: 0 0 8px;
  color: #6f7882;
  font-size: 13px;
  line-height: 1.55;
}

@media (max-width: 760px) {
  .excel-import-box {
    grid-template-columns: 1fr;
  }
}


/* ===== Report Writer + Naver Cafe Writing ===== */

.report-writer-layout {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 16px;
}

.report-list-admin {
  display: grid;
  gap: 8px;
  align-content: start;
}

.report-admin-item {
  width: 100%;
  padding: 12px;
  border: 1px solid #d9dee5;
  background: #fff;
  color: #343b43;
  text-align: left;
  cursor: pointer;
  font: inherit;
}

.report-admin-item:hover,
.report-admin-item.is-active {
  border-color: #30363d;
  background: #f6f7f9;
}

.report-admin-item strong {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  color: #1f242a;
}

.report-admin-item span {
  display: block;
  font-size: 12px;
  color: #6f7882;
}

.report-admin-item.is-empty {
  color: #6f7882;
  line-height: 1.5;
}

.report-writer-form {
  min-width: 0;
}

.report-meta-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-full-field,
.report-editor-block label {
  display: block;
  margin-top: 12px;
}

.admin-full-field span,
.report-editor-block label span {
  display: block;
  margin-bottom: 6px;
  color: #6f7882;
  font-size: 12px;
}

.admin-full-field input,
.admin-full-field textarea,
.report-editor-block input,
.report-editor-block textarea {
  width: 100%;
  border: 1px solid #cfd6de;
  background: #fff;
  color: #343b43;
  font: inherit;
  font-size: 13px;
  padding: 10px;
}

.admin-full-field input,
.report-editor-block input {
  min-height: 36px;
}

.report-section-editor {
  margin-top: 18px;
  border: 1px solid #d9dee5;
  background: #f8fafc;
  padding: 14px;
}

.admin-head.compact {
  margin-bottom: 12px;
  padding-bottom: 10px;
}

.admin-head.compact h3 {
  margin: 0;
  font-size: 18px;
}

.report-editor-block {
  padding: 14px;
  margin-bottom: 12px;
  border: 1px solid #d9dee5;
  background: #fff;
}

.report-editor-block-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.report-editor-block-head strong {
  color: #1f242a;
  font-size: 14px;
}

.report-writer-actions {
  margin: 16px 0;
}

.cafe-post-preview {
  min-height: 360px;
  background: #fff;
}

code {
  padding: 2px 5px;
  background: #eef2f6;
  color: #30363d;
  font-size: .92em;
}

@media (max-width: 980px) {
  .report-writer-layout,
  .report-meta-grid {
    grid-template-columns: 1fr;
  }
}


/* ===== Admin Login + Naver Cafe-like Editor ===== */

.admin-app.is-locked {
  display: none !important;
}

.admin-login.is-hidden {
  display: none !important;
}

.admin-login {
  min-height: 100vh;
  display: grid;
  place-items: center;
  background: #f6f7f9;
  padding: 24px;
}

.admin-login-card {
  width: min(420px, 100%);
  padding: 32px;
  border: 1px solid #d9dee5;
  background: #fff;
}

.admin-login-card img {
  width: 180px;
  display: block;
  margin-bottom: 26px;
}

.admin-login-card h1 {
  margin: 0 0 8px;
  font-size: 28px !important;
  font-weight: 350 !important;
}

.admin-login-card p {
  margin: 0 0 22px;
  color: #6f7882;
  font-size: 14px;
}

.admin-login-card label {
  display: block;
  margin-bottom: 14px;
}

.admin-login-card label span {
  display: block;
  margin-bottom: 6px;
  color: #343b43;
  font-size: 13px;
}

.admin-login-card input {
  width: 100%;
  min-height: 42px;
  padding: 0 12px;
  border: 1px solid #cfd6de;
  font: inherit;
}

.admin-login-card button {
  width: 100%;
  min-height: 42px;
  border: 1px solid #30363d;
  background: #30363d;
  color: #fff;
  font: inherit;
  cursor: pointer;
}

.admin-login-status {
  min-height: 18px;
  margin: 12px 0 0 !important;
  color: #9a2f2a !important;
  font-size: 13px !important;
}

.admin-logout {
  width: 100%;
  margin-top: 14px;
  min-height: 34px;
  border: 1px solid #9a2f2a;
  background: #fff;
  color: #9a2f2a;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}

.cafe-editor-shell {
  margin-top: 18px;
  border: 1px solid #d9dee5;
  background: #fff;
}

.cafe-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border-bottom: 1px solid #e4e8ed;
  background: #fafbfc;
}

.cafe-toolbar-main {
  padding: 10px 12px;
}

.cafe-toolbar-format {
  padding: 8px 12px;
}

.cafe-toolbar button,
.cafe-toolbar select {
  min-height: 34px;
  padding: 0 10px;
  border: 0;
  border-right: 1px solid #e4e8ed;
  background: transparent;
  color: #4f5964;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}

.cafe-toolbar button:hover,
.cafe-toolbar select:hover {
  background: #eef2f6;
}

.cafe-toolbar select {
  border: 1px solid #d9dee5;
  margin-right: 6px;
  background: #fff;
}

.cafe-editor {
  min-height: 520px;
  padding: 42px 48px;
  background: #fff;
  color: #22272d;
  font-size: 15px;
  line-height: 1.75;
  outline: none;
}

.cafe-editor:empty::before {
  content: attr(data-placeholder);
  color: #999;
}

.cafe-editor h2 {
  margin: 28px 0 14px;
  font-size: 26px !important;
  line-height: 1.3 !important;
  font-weight: 500 !important;
}

.cafe-editor h3 {
  margin: 22px 0 12px;
  font-size: 20px;
  line-height: 1.35;
}

.cafe-editor p {
  margin: 0 0 14px;
}

.cafe-editor blockquote {
  margin: 18px 0;
  padding: 12px 16px;
  border-left: 3px solid #c61f3f;
  background: #f8fafc;
  color: #4f5964;
}

.cafe-editor table,
.cafe-editor-table {
  width: 100%;
  border-collapse: collapse;
  margin: 18px 0;
}

.cafe-editor th,
.cafe-editor td,
.cafe-editor-table th,
.cafe-editor-table td {
  border: 1px solid #cfd6de;
  padding: 9px 10px;
  min-width: 80px;
}

.cafe-editor th,
.cafe-editor-table th {
  background: #f3f5f7;
  font-weight: 500;
}

.cafe-editor-box {
  padding: 14px;
  border: 1px dashed #9aa4af;
  background: #f8fafc;
  color: #6f7882;
}

.cafe-editor-code {
  padding: 14px;
  background: #22272d;
  color: #fff;
  white-space: pre-wrap;
}

.report-writer-layout {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 16px;
}

.report-list-admin {
  display: grid;
  gap: 8px;
  align-content: start;
}

.report-admin-item {
  width: 100%;
  padding: 12px;
  border: 1px solid #d9dee5;
  background: #fff;
  color: #343b43;
  text-align: left;
  cursor: pointer;
  font: inherit;
}

.report-admin-item:hover,
.report-admin-item.is-active {
  border-color: #30363d;
  background: #f6f7f9;
}

.report-admin-item strong {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  color: #1f242a;
}

.report-admin-item span {
  display: block;
  font-size: 12px;
  color: #6f7882;
}

.report-admin-item.is-empty {
  color: #6f7882;
  line-height: 1.5;
}

.report-meta-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-full-field {
  display: block;
  margin-top: 12px;
}

.admin-full-field span {
  display: block;
  margin-bottom: 6px;
  color: #6f7882;
  font-size: 12px;
}

.admin-full-field input,
.admin-full-field textarea {
  width: 100%;
  border: 1px solid #cfd6de;
  background: #fff;
  color: #343b43;
  font: inherit;
  font-size: 13px;
  padding: 10px;
}

.cafe-post-preview {
  min-height: 280px;
}

@media (max-width: 980px) {
  .report-writer-layout,
  .report-meta-grid {
    grid-template-columns: 1fr;
  }

  .cafe-editor {
    min-height: 420px;
    padding: 24px;
  }
}

@media (max-width: 640px) {
  .cafe-toolbar-main,
  .cafe-toolbar-format {
    overflow-x: auto;
    flex-wrap: nowrap;
  }

  .cafe-toolbar button,
  .cafe-toolbar select {
    flex: 0 0 auto;
  }

  .cafe-editor {
    padding: 18px;
  }
}
