/* Shared final layer: legible institutional UI across every route. */
body.sdi-mode {
  --ui-navy: #173b67;
  --ui-blue: #165dba;
  --ui-ink: #172b45;
  --ui-text: #344154;
  --ui-muted: #566171;
  --ui-line: #cdd4de;
  --ui-surface: #f0f2f5;
  --sdi-blue: var(--ui-blue);
  --sdi-green: var(--ui-blue);
  --sdi-orange: var(--ui-blue);
  --sdi-border: var(--ui-line);
}
.sdi-mode :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--ui-blue);
  outline-offset: 4px;
}
.sdi-mode .sdi-button {
  background: var(--ui-blue);
  color: #fff;
  border: 1px solid var(--ui-blue);
  font-size: 17px;
  font-weight: 700;
  border-radius: 4px;
  min-height: 48px;
  line-height: 1.4;
}
.sdi-mode .sdi-button:hover {
  background: #124a94;
  border-color: #124a94;
}
.sdi-mode .sdi-neutral {
  background: #fff;
  color: var(--ui-navy) !important;
  border-color: #9daaba;
}
.sdi-mode .sdi-neutral:hover {
  background: var(--ui-surface);
}
.sdi-mode .sdi-note {
  color: var(--ui-muted) !important;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7;
}
.sdi-dropdown {
  border: 1px solid var(--ui-line);
  border-top: 3px solid var(--ui-navy);
  border-radius: 0 0 4px 4px;
}
.sdi-dropdown > a:hover {
  color: var(--ui-blue);
  background: var(--ui-surface);
}
/* Full menu: fixed, predictable rows and high-contrast actions. */
.sdi-full-menu {
  background: #fff;
  padding: 24px max(24px, calc((100vw - 960px) / 2)) 48px;
}
.sdi-full-menu-top {
  max-width: none;
  gap: 12px;
  margin-bottom: 12px;
}
.sdi-full-menu-top a,
.sdi-full-menu-top a + a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 16px 20px;
  background: var(--ui-surface);
  color: var(--ui-navy);
  border: 1px solid #bac5d2;
  border-radius: 4px;
  font-size: 20px;
  font-weight: 750;
}
.sdi-full-menu-top a:hover {
  background: #e3e8ee;
  border-color: var(--ui-navy);
}
.sdi-full-menu-subscribe {
  min-height: 64px;
  padding: 16px 22px;
  margin-bottom: 24px;
  background: var(--ui-blue);
  border-radius: 4px;
  font-size: 20px;
  font-weight: 750;
}
.sdi-full-menu-subscribe:hover {
  background: #124a94;
}
.sdi-full-menu-subscribe .icon {
  width: 24px;
  height: 24px;
  stroke-width: 2.3;
}
.sdi-full-menu-subscribe > span {
  font-size: 25px;
  line-height: 1;
}
.sdi-full-menu details {
  border-bottom: 1px solid var(--ui-line);
}
.sdi-full-menu summary {
  min-height: 72px;
  padding: 20px 16px;
  font-size: 22px;
  font-weight: 750;
  color: var(--ui-ink);
}
.sdi-full-menu summary::after {
  content: "";
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--ui-navy);
  border-bottom: 2px solid var(--ui-navy);
  transform: rotate(45deg);
  margin: 0 8px 6px 20px;
  flex-shrink: 0;
}
.sdi-full-menu details[open] summary {
  color: var(--ui-blue);
}
.sdi-full-menu details[open] summary::after {
  transform: rotate(225deg);
  margin-bottom: -4px;
}
.sdi-full-menu details > nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px 16px;
  background: var(--ui-surface);
  border-radius: 4px;
  padding: 14px;
  margin-bottom: 16px;
}
.sdi-full-menu details > nav > a {
  color: var(--ui-text);
  font-size: 18px;
  font-weight: 650;
  min-height: 50px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
}
.sdi-full-menu details > nav > a:hover {
  color: var(--ui-blue);
  background: #fff;
}
.sdi-search-drawer {
  background: var(--ui-surface);
  border-color: var(--ui-line);
}
.sdi-search-drawer label {
  color: var(--ui-ink);
  font-weight: 750;
}
.sdi-search-drawer input {
  background: #fff;
  color: var(--ui-ink);
  border: 1px solid #9daaba;
  font-size: 17px;
  min-height: 48px;
}
/* Service cards: whole cover, explicit action, no ornamental corner buttons. */
.ref-service-grid {
  grid-template-columns: 1fr 1.12fr 1fr;
  gap: 20px;
}
.ref-service {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 228px;
  padding: 26px;
  border-radius: 8px;
  overflow: hidden;
}
.ref-service-content {
  position: relative;
  z-index: 1;
  min-width: 0;
}
.ref-service-kicker {
  display: block;
  color: #dce8f9;
  font-size: 14px;
  font-weight: 650;
  margin-bottom: 10px;
}
.ref-service h2 {
  color: #fff;
  font-size: 23px;
  font-weight: 750;
  margin: 0;
  line-height: 1.4;
  word-break: keep-all;
}
.ref-service p {
  color: #edf2fa;
  font-size: 16px;
  font-weight: 500;
  margin: 10px 0 22px;
  line-height: 1.55;
  word-break: keep-all;
}
.ref-service-action {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding: 10px 15px;
  background: #fff;
  color: var(--ui-navy);
  border-radius: 4px;
  font-size: 16px;
  font-weight: 750;
  white-space: nowrap;
}
.ref-service:hover .ref-service-action {
  background: #edf2fa;
}
.ref-subscription-symbol {
  flex: 0 0 50px;
  width: 50px;
  height: 60px;
  display: grid;
  place-items: center;
  align-self: flex-start;
  margin-top: 22px;
}
.ref-subscription-symbol .ref-color-icon {
  width: 54px;
  height: 54px;
  background: #fff;
  border-radius: 8px;
  padding: 6px;
}
.ref-sample-cover {
  flex: 0 0 95px;
  width: 95px;
  align-self: center;
}
.ref-service .ref-sample-cover img {
  position: static;
  width: 100%;
  height: auto;
  display: block;
  box-shadow: 0 5px 15px #0003;
}
.ref-service-stack {
  gap: 14px;
}
.ref-service-stack > a {
  border-radius: 8px;
  border: 1px solid #d6dce4;
  background: #f3f4f6;
  padding: 22px;
  gap: 18px;
}
.ref-service-stack > a:nth-child(2) {
  background: #eef0f3;
}
.ref-service-stack h2 {
  margin: 0;
  font-size: 21px;
  line-height: 1.45;
  color: var(--ui-ink);
}
.ref-service-stack .icon {
  width: 30px;
  height: 30px;
  flex-shrink: 0;
  color: var(--ui-navy);
  stroke-width: 2;
}
.ref-service-stack > a:hover {
  border-color: #6e819a;
}
/* Interior typography, metadata and content states. */
.sdi-content {
  color: var(--ui-text);
}
.sdi-content :is(h2, h3),
.sdi-login h1 {
  color: var(--ui-ink);
  font-weight: 750;
}
.sdi-article > p,
.sdi-greeting p,
.sdi-prose,
.sdi-document-intro ol {
  font-size: 18px;
  line-height: 1.8;
  color: var(--ui-text);
}
.sdi-report-row {
  border-color: var(--ui-line);
  border-radius: 0;
}
.sdi-report-row:hover {
  background: #f7f8fa;
}
.sdi-report-row h2 {
  color: var(--ui-ink);
  font-size: 22px;
  font-weight: 750;
}
.sdi-report-row p {
  color: var(--ui-muted);
  font-size: 17px;
}
.sdi-report-meta b {
  color: var(--ui-navy);
  background: var(--ui-surface);
  font-size: 15px;
  font-weight: 700;
}
.sdi-report-meta > span,
.sdi-report-meta time {
  color: var(--ui-muted);
  font-size: 15px;
}
.sdi-url {
  color: var(--ui-navy);
  border: 1px solid #aab6c5;
  font-size: 15px;
  font-weight: 650;
  min-width: 70px;
  min-height: 44px;
  border-radius: 4px;
}
.sdi-article-footer {
  color: var(--ui-text);
  font-size: 16px;
}
.sdi-article-footer label {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.sdi-info-box,
.sdi-gate {
  border: 1px solid var(--ui-line);
  background: #f4f5f7;
  border-radius: 4px;
  color: var(--ui-text);
}
.sdi-info-box {
  font-size: 17px;
}
.sdi-gate p {
  color: var(--ui-muted);
  font-size: 17px;
}
.sdi-gate > .icon {
  color: var(--ui-navy);
}
.sdi-greeting a {
  color: var(--ui-blue);
  font-size: 15px;
}
.sdi-box-tabs {
  border: 1px solid var(--ui-line);
  background: #fff;
  border-radius: 4px;
  padding: 0;
  gap: 0;
}
.sdi-box-tabs > a,
.sdi-box-tabs > span {
  min-height: 52px;
  padding: 14px 12px;
  font-size: 17px;
  font-weight: 700;
  border-radius: 0;
  color: var(--ui-text);
}
.sdi-box-tabs > .active {
  color: #fff;
  background: var(--ui-navy);
  outline: none;
  box-shadow: none;
}
.sdi-subscribe-product {
  border-top: 2px solid var(--ui-navy);
  border-bottom: 1px solid var(--ui-line);
}
.sdi-subscribe-product h2 {
  font-size: 26px;
}
.sdi-subscribe-product :is(p, ul) {
  font-size: 18px;
}
.sdi-subscribe-product aside {
  background: var(--ui-surface);
  border-color: var(--ui-line);
}
.sdi-subscribe-product aside strong {
  color: var(--ui-navy);
  font-size: 28px;
}
.sdi-subscribe-product aside span {
  font-size: 15px;
  color: var(--ui-muted);
}
/* Standard tables, FAQ and forms. */
.sdi-table {
  border-top: 2px solid var(--ui-navy);
  font-size: 17px;
}
.sdi-table :is(th, td) {
  border-color: var(--ui-line);
}
.sdi-table th {
  color: var(--ui-ink);
  background: var(--ui-surface);
  font-weight: 750;
}
.sdi-table td:first-child,
.sdi-table td:last-child {
  color: var(--ui-muted);
}
.sdi-table td a {
  color: var(--ui-ink);
  font-weight: 650;
}
.sdi-table small {
  color: var(--ui-blue);
  font-size: 13px;
  font-weight: 650;
}
.sdi-faq-list {
  border-top: 2px solid var(--ui-navy);
}
.sdi-faq-list details {
  border-color: var(--ui-line);
}
.sdi-faq-list summary {
  padding: 22px 16px;
  font-size: 18px;
  color: var(--ui-ink);
}
.sdi-faq-list summary b {
  font-weight: 700;
}
.sdi-faq-list summary > strong,
.sdi-faq-list details > div > strong {
  color: var(--ui-blue);
  font-size: 23px;
}
.sdi-faq-list summary > span {
  background: var(--ui-surface);
  border: 1px solid var(--ui-line);
  color: var(--ui-text);
  font-size: 14px;
  font-weight: 650;
  padding: 4px 8px;
}
.sdi-faq-list summary > i {
  color: var(--ui-navy);
}
.sdi-faq-list details > div {
  background: #f4f5f7;
  color: var(--ui-text);
}
.sdi-faq-list details > div > p {
  font-size: 17px;
}
.sdi-form-table {
  border-top: 2px solid var(--ui-navy);
  border-color: var(--ui-line);
}
.sdi-form-table > label {
  font-size: 17px;
  border-color: var(--ui-line);
  padding: 18px;
}
.sdi-form-table label > span {
  background: transparent;
  color: var(--ui-ink);
  font-weight: 700;
}
.sdi-form :is(input, select, textarea) {
  min-height: 48px;
  border: 1px solid #aab6c5;
  border-radius: 4px;
  color: var(--ui-text);
  font-size: 17px;
  font-family: inherit;
}
.sdi-check {
  font-size: 17px;
  color: var(--ui-text);
  min-height: 48px;
}
.sdi-check > input {
  min-height: 22px;
  height: 22px;
  width: 22px;
  max-width: 22px;
  accent-color: var(--ui-blue);
}
.sdi-agreement {
  font-size: 16px;
  color: var(--ui-text);
  background: #f7f8fa;
  border-color: var(--ui-line);
  border-radius: 4px;
}
.sdi-social-logins button {
  border-radius: 4px;
  min-height: 56px;
  font-size: 18px;
  font-weight: 700;
  background: #fff;
  border: 1px solid #aab6c5;
  color: var(--ui-ink);
  text-align: center;
}
.sdi-social-logins button + button {
  background: #fee500;
  color: #191919;
  border-color: #fee500;
}
.sdi-login-links a,
.sdi-login-links a:first-child {
  color: var(--ui-navy);
  font-size: 16px;
  font-weight: 650;
}
.sdi-login .sdi-note {
  font-size: 14px;
}
.sdi-account-facts > div {
  border-color: var(--ui-line);
}
.sdi-account-facts :is(dt, dd) {
  color: var(--ui-text);
  font-size: 17px;
}
@media (max-width: 1050px) {
  .ref-service-grid {
    grid-template-columns: 1fr 1fr;
  }
  .ref-service-stack {
    grid-column: 1/-1;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }
  .ref-service {
    min-height: 226px;
  }
  .sdi-full-menu {
    display: block;
    position: fixed;
    inset: 82px 0 0;
    overflow: auto;
    z-index: 40;
  }
  .sdi-full-menu-top {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .sdi-full-menu-subscribe {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #fff;
  }
  .sdi-full-menu-subscribe > span {
    margin-left: auto;
  }
  .sdi-full-menu summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    list-style: none;
    cursor: pointer;
  }
  .sdi-full-menu summary::-webkit-details-marker {
    display: none;
  }
}
@media (max-width: 760px) {
  .sdi-full-menu {
    top: 76px;
    padding: 18px 18px 36px;
  }
  .sdi-full-menu-top {
    gap: 10px;
  }
  .sdi-full-menu-top a,
  .sdi-full-menu-top a + a {
    font-size: 17px;
    min-height: 54px;
    padding: 12px;
  }
  .sdi-full-menu-subscribe {
    font-size: 18px;
    min-height: 56px;
    padding: 14px 16px;
    margin-bottom: 14px;
  }
  .sdi-full-menu summary {
    font-size: 20px;
    min-height: 64px;
    padding: 18px 8px;
  }
  .sdi-full-menu details > nav {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 8px;
  }
  .sdi-full-menu details > nav > a {
    font-size: 17px;
    padding: 12px;
  }
  .ref-service-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .ref-service {
    padding: 24px;
    min-height: 218px;
  }
  .ref-service h2 {
    font-size: 23px;
  }
  .ref-service p {
    font-size: 16px;
  }
  .ref-service-stack {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .ref-service-stack > a {
    min-height: 82px;
    padding: 20px 24px;
  }
  .ref-service-stack h2 {
    font-size: 20px;
  }
  .ref-sample-cover {
    flex-basis: 95px;
  }
  .sdi-box-tabs > a,
  .sdi-box-tabs > span {
    font-size: 16px;
    padding: 12px 8px;
  }
  .sdi-faq-list summary {
    flex-wrap: wrap;
    padding: 18px 8px;
    gap: 10px;
  }
  .sdi-faq-list summary b {
    flex: 1 1 60%;
    font-size: 18px;
  }
  .sdi-faq-list summary > span {
    display: none;
  }
  .sdi-faq-list details > div {
    padding: 20px 12px;
    gap: 12px;
  }
  .sdi-form-table > label {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 16px 0;
  }
  .sdi-subscribe-product :is(p, ul),
  .sdi-greeting p {
    font-size: 17px;
  }
  .sdi-subscribe-product aside {
    padding: 24px 20px;
    gap: 12px;
  }
  .sdi-login-links {
    flex-direction: column;
    gap: 18px;
  }
  .sdi-login-links a:first-child {
    border: 0;
  }
  .sdi-gate .sdi-button {
    margin: 5px;
  }
  .sdi-table {
    font-size: 16px;
  }
  .sdi-report-row h2 {
    font-size: 20px;
  }
  .sdi-report-meta time {
    font-size: 15px;
  }
}
/* Crisp vector identity, with live type for small-screen clarity. */
.srl-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  color: var(--ui-navy);
  text-decoration: none;
}
.srl-brand-symbol {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}
.srl-brand-type {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.brand.srl-brand strong {
  color: #173b67;
  font-size: 23px;
  font-weight: 750;
  letter-spacing: -1px;
  line-height: 1.1;
  white-space: nowrap;
}
.srl-brand-type > span {
  font-size: 9px;
  letter-spacing: 1.2px;
  color: #566171;
  font-weight: 650;
  line-height: 1;
  white-space: nowrap;
}
.sdi-header-inner > .srl-brand {
  grid-column: 1;
  grid-row: 1;
}
/* A horizontal shelf of upright document covers. */
.ref-report-grid.ref-bookshelf {
  display: flex;
  align-items: flex-start;
  gap: 26px;
  overflow-x: auto;
  padding: 14px 6px 22px;
  scroll-snap-type: x mandatory;
  scroll-padding: 6px;
  min-height: 0;
  scrollbar-width: thin;
  scrollbar-color: #8494a9 #e3e7ec;
}
.ref-bookshelf .ref-book-card {
  flex: 0 0 240px;
  width: 240px;
  overflow: visible;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  scroll-snap-align: start;
  transform: none;
}
.ref-book-cover {
  display: flex;
  flex-direction: column;
  height: 346px;
  padding: 22px 22px 14px;
  background: #fff;
  border: 1px solid #d0d6dd;
  border-left: 5px solid #173b67;
  color: var(--ui-ink);
  box-shadow:
    3px 4px 0 #e1e4e9,
    6px 8px 14px #172b4510;
  transition:
    border-color 0.15s,
    box-shadow 0.15s;
}
.ref-book-cover:hover {
  border-color: #165dba;
  box-shadow:
    3px 4px 0 #c6d3e5,
    6px 8px 16px #172b451c;
}
.ref-book-brand {
  color: #173b67;
  font-weight: 750;
  font-size: 13px;
  margin-bottom: 22px;
}
.ref-book-type {
  color: #165dba;
  font-size: 14px;
  font-weight: 750;
  margin-bottom: 8px;
}
.ref-book-cover h3 {
  color: #172b45;
  font-size: 22px;
  font-weight: 750;
  line-height: 1.45;
  letter-spacing: -0.035em;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.ref-book-topic {
  font-size: 13px;
  color: #566171;
  margin: 9px 0 14px;
}
.ref-book-cover > img {
  height: 83px;
  width: 100%;
  object-fit: cover;
  margin-top: auto;
}
.ref-book-imprint {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 12px;
  font-weight: 550;
  color: #566171;
  margin-top: 12px;
}
.ref-book-info {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
  margin-top: 18px;
}
.ref-book-info > strong {
  font-size: 15px;
  color: var(--ui-ink);
}
.ref-book-info > strong > span {
  display: block;
  color: var(--ui-muted);
  font-weight: 550;
  margin-top: 5px;
}
.ref-book-info .ref-save {
  background: #fff;
}
.ref-shelf-controls {
  display: flex;
  gap: 8px;
}
.ref-shelf-controls button {
  display: grid;
  place-items: center;
  min-width: 44px;
  height: 44px;
  background: #fff;
  color: var(--ui-navy);
  border: 1px solid #aab6c5;
  border-radius: 4px;
}
.ref-shelf-controls button:hover {
  background: #e8edf3;
}
.ref-shelf-controls .icon {
  stroke-width: 2;
}
@media (max-width: 1050px) {
  .brand.srl-brand strong {
    font-size: 21px;
  }
  .srl-brand-symbol {
    width: 34px;
    height: 34px;
  }
  .srl-brand-type > span {
    font-size: 8px;
    letter-spacing: 1px;
  }
}
@media (max-width: 760px) {
  .srl-brand {
    gap: 7px;
  }
  .srl-brand-symbol {
    width: 30px;
    height: 30px;
  }
  .brand.srl-brand strong {
    font-size: 18px;
    letter-spacing: -0.8px;
  }
  .srl-brand-type > span {
    font-size: 7px;
    letter-spacing: 0.6px;
  }
  .ref-report-grid.ref-bookshelf {
    margin-right: -20px;
    padding-right: 20px;
    gap: 22px;
  }
  .ref-bookshelf .ref-book-card {
    flex-basis: 232px;
    width: 232px;
  }
  .ref-book-cover {
    height: 346px;
    padding: 20px 20px 14px;
  }
  .ref-filter-row {
    align-items: center;
  }
}
/* Preserve the accepted service positions and compact scale. */
.ref-service-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.ref-service {
  display: block;
  min-height: 175px;
  height: 175px;
  padding: 24px 26px;
  border-radius: 16px;
  position: relative;
}
.ref-service h2 {
  font-size: 21px;
  line-height: 1.4;
  margin: 0;
}
.ref-service p {
  font-size: 15px;
  line-height: 1.5;
  margin: 10px 0 0;
}
.ref-service-stack {
  grid-column: auto;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 12px;
}
.ref-service-stack > a {
  min-height: 0;
  padding: 17px 24px;
  border-radius: 12px;
}
.ref-service-stack h2 {
  font-size: 19px;
}
.ref-service-document {
  position: absolute;
  bottom: 26px;
  right: 39px;
  transform: rotate(-12deg);
  color: #b9d8ff;
}
.ref-service-document .icon {
  width: 44px;
  height: 44px;
  stroke-width: 1.6;
}
.ref-service img.ref-service-cover {
  position: absolute;
  width: 78px;
  height: auto;
  right: 36px;
  bottom: -14px;
  box-shadow: 0 3px 12px #0002;
}
.ref-corner-link {
  position: absolute;
  right: -1px;
  bottom: -1px;
  width: 50px;
  height: 50px;
  border: 6px solid #fff;
  border-radius: 50%;
  background: #263746;
  color: #fff;
  display: grid;
  place-items: center;
  box-sizing: border-box;
}
.ref-corner-link svg {
  display: block;
  width: 19px;
  height: 19px;
  transition: transform 0.18s;
}
.ref-service:hover .ref-corner-link {
  background: #101f31;
}
.ref-service:hover .ref-corner-link svg {
  transform: translate(1px, -1px);
}
@media (max-width: 1050px) {
  .ref-service {
    padding: 22px 20px;
  }
  .ref-service h2 {
    font-size: 19px;
  }
  .ref-service p {
    font-size: 14px;
  }
  .ref-service-stack > a {
    padding: 14px 18px;
  }
  .ref-service-stack h2 {
    font-size: 17px;
  }
}
@media (max-width: 760px) {
  .ref-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .ref-service {
    min-height: 170px;
    height: 170px;
    padding: 18px 15px;
    border-radius: 12px;
  }
  .ref-service h2 {
    font-size: 18px;
  }
  .ref-service p {
    font-size: 14px;
  }
  .ref-service-stack {
    grid-column: 1/-1;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    gap: 12px;
  }
  .ref-service-stack > a {
    padding: 18px 14px;
    min-height: 90px;
    gap: 8px;
  }
  .ref-service-stack h2 {
    font-size: 17px;
  }
  .ref-service-stack .icon {
    width: 23px;
    height: 23px;
  }
  .ref-service img.ref-service-cover {
    width: 58px;
    right: 28px;
    bottom: -14px;
  }
  .ref-service-document {
    right: 28px;
    bottom: 22px;
  }
  .ref-service-document .icon {
    width: 34px;
    height: 34px;
  }
  .ref-corner-link {
    width: 44px;
    height: 44px;
    border-width: 5px;
  }
  .ref-corner-link svg {
    width: 17px;
    height: 17px;
  }
}
.sdi-full-menu > a.sdi-full-menu-subscribe {
  color: #fff !important;
}
.ref-book-cover {
  display: grid;
  grid-template-rows: 16px 18px minmax(0, 1fr) 78px 14px;
  gap: 10px;
}
.ref-book-brand,
.ref-book-type {
  margin: 0;
  line-height: 1.2;
}
.ref-book-topic {
  display: none;
}
.ref-book-cover h3 {
  align-self: start;
}
.ref-book-cover > img {
  height: 78px;
  margin: 0;
}
.ref-book-imprint {
  margin: 0;
  line-height: 14px;
}
.ref-shelf-controls {
  margin-left: auto;
}
body.reading-mode .pdf-topbar {
  background: #fff;
  border-bottom: 1px solid #cdd4de;
  color: #172b45;
}
body.reading-mode .pdf-topbar h1 {
  font-weight: 750;
}
body.reading-mode .pdf-sidebar-title {
  color: #172b45;
  font-size: 18px;
  font-weight: 750;
}
body.reading-mode .pdf-thumb.active {
  border-color: #165dba;
  background: #f0f2f5;
}
body.reading-mode .pdf-thumb span {
  color: #344154;
  font-size: 15px;
  font-weight: 600;
}
body.reading-mode .pdf-controls {
  background: #173b67;
  border-color: #173b67;
  color: #fff;
}
body.reading-mode .pdf-controls :is(button, select) {
  font-weight: 650;
}
body.reading-mode .pdf-topbar :is(.icon-button,.save-button) { color:#173b67; background:#fff; min-width:44px; min-height:44px; border-radius:4px; }
body.reading-mode .pdf-topbar :is(.icon-button,.save-button):hover { background:#f0f2f5; color:#165dba; }
body.reading-mode .pdf-topbar [aria-pressed="true"] { background:#e8edf3; color:#165dba; }
body.reading-mode .pdf-top-actions .save-button.saved svg { fill:#dbe6f4; }
body.reading-mode .pdf-topbar .icon { width:22px; height:22px; }
body.reading-mode .pdf-topbar h1 { font-size:16px; }
@media(max-width:760px) {
 body.reading-mode .pdf-topbar h1 { font-size:14px; max-width:140px; }
 body.reading-mode .pdf-reader { grid-template-rows:62px minmax(0,1fr); }
}
@media(max-width:360px) { .ref-service-document,.ref-service img.ref-service-cover { display:none; } }
/* Concave corner: the colored surface ends before the independent round link. */
.ref-service-grid > .ref-service {
  padding:0;
  background:transparent;
  border-radius:0;
  overflow:visible;
  filter:none;
}
.ref-service-surface {
  position:absolute;
  inset:0;
  padding:24px 26px;
  background:#165dba;
  border-radius:16px;
  overflow:hidden;
}
.ref-service-graphite .ref-service-surface { background:#31363d; }
.ref-service .ref-corner-link {
  right:0;
  bottom:0;
  width:40px;
  height:40px;
  border:0;
  background:#171b20;
  box-shadow:none;
}
.ref-service .ref-corner-link svg { width:16px; height:16px; }
.ref-service:hover .ref-corner-link { background:#173b67; }
.ref-service .ref-service-document { right:64px; bottom:24px; }
.ref-service img.ref-service-cover { right:64px; }
@media(max-width:1050px) {
  .ref-service-surface { padding:22px 20px; }
}
@media(max-width:760px) {
  .ref-service-surface { padding:18px 15px; border-radius:12px; }
  .ref-service .ref-corner-link { width:36px; height:36px; }
  .ref-service .ref-corner-link svg { width:15px; height:15px; }
  .ref-service .ref-service-document { right:53px; bottom:23px; }
  .ref-service img.ref-service-cover { right:53px; width:54px; }
}
@media(prefers-reduced-motion:reduce) {
  .ref-service .ref-corner-link svg { transition:none; }
}
/* Clip the actual banner, leaving no colored layer behind the controls. */
.ref-hero { background:transparent; border-radius:0; overflow:visible; }
.ref-hero-surface { position:absolute; inset:0; isolation:isolate; background:#13263f; }
.ref-hero-photo .ref-hero-surface { background:#1c304b; }
.ref-hero-sample .ref-hero-surface { background:#31363d; }
.ref-hero-surface .ref-hero-image { z-index:0; }
.ref-hero-controls { background:transparent; border:0; border-radius:0; box-shadow:none; }
.ref-hero-controls::before,.ref-hero-controls::after { content:none; }

/* One consistent navigation row; never wrap sidebar links into uneven rows. */
.sdi-subscribe-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:1px solid #bec9d7;border-radius:5px;margin-bottom:32px}
.sdi-subscribe-tabs>a{display:flex;align-items:center;justify-content:center;min-width:0;min-height:54px;padding:14px 12px;line-height:1.4;font-size:17px;font-weight:750;white-space:nowrap;border:0;border-left:1px solid #dce2ea;flex:none}
.sdi-subscribe-tabs>a:first-child{border-left:0}
.sdi-subscribe-tabs>a:hover:not(.active){background:#f3f5f8;color:#173b67}
@media(max-width:760px){
 .sdi-page .sdi-sidebar{min-width:0;margin-bottom:26px}
 .sdi-page .sdi-sidebar nav{display:flex;flex-wrap:nowrap;gap:0;width:100%;max-width:100%;padding:0 0 6px;overflow-x:auto;overflow-y:hidden;border:0;border-bottom:1px solid #d5dce5;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#b3c1d2 transparent}
 .sdi-page .sdi-sidebar nav>a{flex:0 0 auto;display:flex;align-items:center;justify-content:center;min-height:50px;padding:13px 17px;margin:0;border:0;border-radius:4px;line-height:1.5;font-size:16px;font-weight:700;white-space:nowrap;scroll-snap-align:start}
 .sdi-page .sdi-sidebar nav>a:last-child{border:0}
 .sdi-page .sdi-sidebar nav>a.active{background:#173b67;color:white}
 .sdi-subscribe-tabs{margin-bottom:26px}
 .sdi-subscribe-tabs>a{min-height:50px;padding:12px 8px;font-size:16px;min-width:0}
}
/* Compact publication shelf: the cover carries the metadata once. */
.ref-report-grid.ref-bookshelf{gap:24px;padding:8px 6px 16px;scrollbar-width:thin}
.ref-bookshelf .ref-book-card{flex-basis:202px;width:202px}
.ref-book-cover{height:290px;padding:17px 17px 12px;grid-template-rows:14px 16px minmax(0,1fr) 66px 14px;gap:8px;border-left-width:4px;box-shadow:3px 3px 0 #dce1e7,5px 6px 12px #172b450a}
.ref-book-brand{font-size:11px}.ref-book-type{font-size:12px}.ref-book-cover h3{font-size:18px;line-height:1.4;letter-spacing:-.035em}.ref-book-cover>img{height:66px}.ref-book-imprint{font-size:10px}.ref-book-info{display:none}
.ref-bookshelf+.ref-example-note{margin-top:16px}
@media(max-width:600px){.ref-bookshelf .ref-book-card{flex-basis:194px;width:194px}.ref-book-cover{height:280px;padding:16px 15px 12px}.ref-report-grid.ref-bookshelf{gap:20px}.ref-book-cover h3{font-size:18px}}
/* Account entry: clear hierarchy, familiar provider buttons, restrained institutional tone. */
.srl-login-page{display:grid;grid-template-columns:1fr 1fr;max-width:1040px!important;margin:56px auto 72px;min-height:590px;border:1px solid #dde3eb;border-radius:12px;overflow:hidden;background:#fff}
.srl-login-welcome{padding:52px 44px;background:#142e50;color:#fff;display:flex;flex-direction:column;align-items:flex-start}
.srl-login-label{font-size:11px;letter-spacing:.12em;font-weight:650;color:#b4c8e1}
.srl-login-welcome h2{font-size:32px;line-height:1.5;letter-spacing:-.045em;font-weight:800;color:white;margin:28px 0 15px}
.srl-login-welcome>p{color:#c6d4e6;font-size:16px;line-height:1.8;font-weight:500}
.srl-login-benefits{width:100%;display:grid;gap:22px;border-top:1px solid #ffffff24;margin-top:32px;padding-top:28px}
.srl-login-benefits>div{display:flex;align-items:center;gap:15px}.srl-login-benefits svg{height:23px;width:23px;color:#c0d6f3}.srl-login-benefits strong{display:block;font-size:16px;font-weight:750}.srl-login-benefits small{display:block;margin-top:5px;font-size:13px;color:#bacce1}
.srl-login-welcome>a{display:flex;gap:7px;align-items:center;font-size:13px;margin-top:auto;padding-top:36px;color:#e8f0fd;font-weight:650}.srl-login-welcome>a svg{width:16px;height:16px}
.srl-login-panel{padding:48px 44px}.srl-login-panel>img{width:40px;height:40px;display:block;margin-bottom:21px}.srl-login-panel h1{color:#172d4c;font-size:30px;font-weight:800;line-height:1.3;margin:0 0 10px;letter-spacing:-.04em}.srl-login-description{font-size:16px;color:#5d6a7c;font-weight:550;margin-bottom:30px}
.srl-social-buttons{display:grid;gap:12px}.srl-social-buttons button{display:flex;align-items:center;gap:16px;width:100%;min-height:56px;border:1px solid #bdc8d7;border-radius:6px;background:white;font-size:16px;font-weight:750;padding:12px 18px;color:#24344b}.srl-social-buttons button svg{width:22px;height:22px;flex-shrink:0}.srl-social-buttons button span{flex:1;text-align:center;padding-right:24px}.srl-social-buttons button[data-sdi=kakao]{background:#fee500;border-color:#fee500;color:#191919}.srl-social-buttons button:hover{box-shadow:0 2px 8px #172b4514;filter:brightness(.985)}
.srl-account-links{display:flex;align-items:center;justify-content:center;margin:24px 0 28px;font-size:14px;font-weight:700;color:#3d526d;gap:18px}.srl-account-links a+a{border-left:1px solid #d4dce6;padding-left:18px}
.srl-login-support{border-top:1px solid #e0e5eb;padding-top:23px;display:flex;justify-content:space-between;align-items:center;font-size:13px;gap:10px;color:#5a697d}.srl-login-support a{color:#1c548f;display:flex;gap:4px;align-items:center;font-weight:700}.srl-login-support svg{width:14px;height:14px}
.srl-login-demo{font-size:12px;color:#6c798b;line-height:1.8;margin-top:23px}.srl-login-demo>span{font-size:10px;font-weight:750;border:1px solid #c8d1dd;padding:3px 5px;border-radius:3px;margin-right:6px}
@media(max-width:850px){.srl-login-page{margin:32px 24px 48px}.srl-login-welcome{padding:40px 28px}.srl-login-welcome h2{font-size:28px}.srl-login-panel{padding:40px 28px}.srl-social-buttons button{font-size:15px;padding:12px}.srl-social-buttons button span{padding-right:0}}
@media(max-width:650px){.srl-login-page{display:block;margin:24px 18px 40px;min-height:0;border:none;border-radius:0;max-width:440px!important}.srl-login-welcome{display:none}.srl-login-panel{padding:18px 6px 20px}.srl-login-panel h1{font-size:30px}.srl-login-panel>img{margin-bottom:18px}.srl-login-description{margin-bottom:28px}.srl-social-buttons button{min-height:58px;font-size:16px;padding:12px 18px}.srl-account-links{margin:28px 0 32px}.srl-login-demo{margin-top:26px}}
.sdi-mode .srl-login-description{margin:0 0 28px}.sdi-mode .srl-login-demo{margin:24px 0 0}.sdi-mode .srl-login-welcome>p{margin:0}
@media(max-width:600px){.ref-research-section .ref-filters{flex-wrap:nowrap;gap:3px;width:100%;justify-content:space-between}.ref-research-section .ref-filters button{font-size:14px;padding:8px 9px}.ref-research-section .ref-shelf-controls{display:none}.ref-research-section .ref-filter-row{margin-bottom:16px;gap:0;flex-wrap:nowrap}}
/* Full-width institutional footer. One place for notices, institute details and help. */
.srl-footer{background:#15263d;color:#c7d1df;margin-top:0}
.srl-footer .sdi-container{max-width:1240px;margin-inline:auto;padding-inline:28px}
.srl-footer a,.srl-footer button{color:inherit;text-decoration:none;transition:color 160ms,background-color 160ms}
.srl-footer a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.srl-footer a:focus-visible,.srl-footer button:focus-visible,.srl-footer select:focus-visible{outline:2px solid #a8caff;outline-offset:5px}
.srl-footer-notice{background:#1d304a;border-bottom:1px solid #ffffff10}
.srl-footer-notice>.sdi-container{display:flex;align-items:center;gap:26px;min-height:70px;padding-block:12px}
.srl-footer-notice strong{color:white;font-size:15px;font-weight:800;flex-shrink:0}
.srl-footer-notice a{font-size:14px;font-weight:550;line-height:1.6}
.srl-footer-notice .srl-notice-more{margin-left:auto;display:flex;align-items:center;gap:8px;white-space:nowrap;color:#d4deec}
.srl-notice-more svg{width:16px;height:16px}
.srl-footer-main{display:grid;grid-template-columns:1.35fr 1.2fr .8fr;gap:52px;padding-block:46px 40px}
.srl-footer-brand{display:inline-flex;gap:12px;align-items:center;color:white!important}
.srl-footer-brand:hover{text-decoration:none!important}
.srl-footer-brand>img{width:42px;height:42px;filter:brightness(0) invert(1);opacity:.94}
.srl-footer-brand strong{display:block;font-size:24px;font-weight:800;letter-spacing:-.045em;line-height:1.35}
.srl-footer-brand small{display:block;font-size:10px;letter-spacing:.17em;color:#aabbd0;margin-top:4px;font-weight:600}
.sdi-mode .srl-footer-institute>p{font-size:14px;color:#b7c6d9;margin:23px 0 19px;line-height:1.8;font-weight:500}
.srl-footer-company{display:flex;align-items:center;gap:20px;font-size:13px;color:#9daec4;line-height:1.8}
.srl-footer-company b{margin-left:9px;font-weight:600;color:#dce5f0}
.srl-footer-company>a{display:inline-flex;align-items:center;gap:4px;color:#dce5f0}
.srl-footer-company svg{width:13px;height:13px}
.sdi-mode .srl-footer-institute>.srl-footer-pending{font-size:12px;color:#92a5bd;margin:14px 0 0;max-width:310px;line-height:1.8}
.srl-footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.srl-footer h2{color:white;font-size:16px;font-weight:750;line-height:1.5;margin:0 0 17px}
.srl-footer-nav a{display:block;font-size:14px;font-weight:550;line-height:1.6;padding-block:5px}
.sdi-mode .srl-footer-support>p{color:#9fb1c8;font-size:13px;margin:0 0 21px;line-height:1.7}
.srl-footer-contact{display:flex;align-items:center;justify-content:space-between;border:1px solid #657a94;border-radius:4px;padding:13px 16px;min-height:48px;font-size:15px;font-weight:750;color:white!important}
.srl-footer-contact:hover{background:#29405e;text-decoration:none!important}
.srl-footer-contact svg,.srl-footer-faq svg{width:16px;height:16px}
.srl-footer-faq{display:flex;align-items:center;justify-content:space-between;padding:14px 0;min-height:44px;font-size:14px;font-weight:600}
.srl-footer-legal{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:18px;border-top:1px solid #ffffff1c}
.srl-footer-legal nav{display:flex;gap:24px;flex-wrap:wrap}
.srl-footer-legal a{font-size:13px;font-weight:550}.srl-footer-legal .srl-footer-privacy{color:#fff;font-weight:750}
.srl-footer-legal button{display:flex;align-items:center;gap:12px;font-size:12px;min-height:40px;flex-shrink:0;font-weight:600}
.srl-footer-legal button svg{width:17px;height:17px;transform:rotate(90deg)}
.srl-footer-base{background:#111f33}
.srl-footer-base>.sdi-container{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding-block:12px}
.sdi-mode .srl-footer-base p{font-size:11px;color:#94a8c0;line-height:1.8;margin:0;letter-spacing:.015em}
.srl-footer-base p>span{margin-left:12px}
.srl-footer-base label{display:flex;align-items:center;gap:10px;font-size:11px;white-space:nowrap;color:#96abc4}
.srl-footer-base select{background:#1a2e48;border:1px solid #455b77;color:#d3deeb;padding:7px 10px;border-radius:4px;font-size:12px;min-height:36px}
@media(max-width:1000px){.srl-footer-main{grid-template-columns:1.2fr 1fr;gap:36px}.srl-footer-support{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 28px;border-top:1px solid #ffffff1c;padding-top:26px}.srl-footer-support h2{margin-bottom:7px}.srl-footer-support .srl-footer-contact{grid-row:1/3;grid-column:2;align-self:start}.sdi-mode .srl-footer-support>p{margin:0}.srl-footer-support .srl-footer-faq{grid-column:2;padding-bottom:0}.srl-footer-base p>span{display:block;margin-left:0}}
@media(max-width:600px){.srl-footer .sdi-container{padding-inline:22px}.srl-footer-notice>.sdi-container{gap:11px;align-items:flex-start;padding-block:20px}.srl-footer-notice strong{font-size:13px;line-height:1.8}.srl-footer-notice a{font-size:13px}.srl-footer-notice .srl-notice-more{font-size:0;gap:0;min-height:24px}.srl-footer-notice .srl-notice-more svg{width:18px;height:18px}.srl-footer-main{grid-template-columns:1fr;gap:32px;padding-block:34px 28px}.srl-footer-brand strong{font-size:23px}.srl-footer-nav{border-top:1px solid #ffffff1c;padding-top:28px;gap:24px}.srl-footer h2{font-size:15px;margin-bottom:12px}.srl-footer-nav a{font-size:14px;padding-block:8px}.srl-footer-support{grid-template-columns:1fr 1fr;gap:0 16px;padding-top:25px}.srl-footer-support h2{grid-column:1/-1}.sdi-mode .srl-footer-support>p{grid-column:1/-1;margin-bottom:18px}.srl-footer-support .srl-footer-contact{grid-row:auto;grid-column:1;padding:11px 13px;font-size:14px}.srl-footer-support .srl-footer-faq{grid-column:2;align-self:center;padding:10px 0;font-size:13px}.srl-footer-legal{gap:14px;align-items:flex-start;padding-block:18px}.srl-footer-legal nav{gap:12px 20px;flex:1}.srl-footer-legal a{font-size:12px;line-height:1.8}.srl-footer-legal button{font-size:0;gap:0;width:38px;min-height:38px;border:1px solid #62758e;border-radius:4px}.srl-footer-legal button svg{margin:auto}.srl-footer-base>.sdi-container{display:block;padding-block:20px}.srl-footer-base label{margin-top:15px;justify-content:space-between}.srl-footer-base select{min-width:128px}}
