.retirement-rates-panel {
    gap: 12px;
    color: #16283a;
    font-size: 12px;
}

#tab1.retirement-rates-active .base-date-control {
    border-color: #cbd6df;
    background: #f2f5f7;
    box-shadow: inset 0 1px 2px rgba(36, 58, 76, .06);
    color: #71808c;
    cursor: not-allowed;
}

#tab1.retirement-rates-active .base-date-control > * {
    opacity: .62;
    filter: grayscale(.35) blur(.3px);
    transition: opacity .16s ease, filter .16s ease;
}

#tab1.retirement-rates-active .base-date-control .premium-select:disabled {
    border-color: #cbd4dc;
    background: #edf1f4;
    color: #687986;
    cursor: not-allowed;
    -webkit-text-fill-color: #687986;
}

.retirement-rate-filter-card,
.retirement-rate-card {
    border: 1px solid #d9e3ec;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 3px 12px rgba(28, 55, 79, .055);
}

.retirement-rate-card header p {
    margin: 0;
    color: #687c8f;
    font-size: 12.5px;
    line-height: 1.55;
}

.retirement-rate-subtabs {
    display: flex;
    gap: 4px;
    padding: 4px;
    border: 1px solid #d9e3ec;
    border-radius: 8px;
    background: #eef3f7;
}

.retirement-rate-subtabs button {
    min-height: 35px;
    padding: 5px 14px;
    border: 1px solid transparent;
    border-radius: 5px;
    background: transparent;
    color: #64788b;
    font: inherit;
    font-size: 12.5px;
    font-weight: 800;
    cursor: pointer;
}

.retirement-rate-subtabs button:hover {
    color: #284b66;
}

.retirement-rate-subtabs button.active {
    border-color: #cedbe6;
    background: #fff;
    color: #1f6799;
    box-shadow: 0 1px 3px rgba(25, 52, 74, .08);
}

.retirement-rate-subpanel {
    display: none;
}

.retirement-rate-subpanel.active {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 0;
}

.retirement-rate-subpanel[hidden],
.retirement-rate-admin-actions[hidden] {
    display: none !important;
}

.retirement-rate-admin-actions {
    display: flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
}

.retirement-rate-panel-actions {
    justify-content: flex-end;
    min-height: 44px;
    padding: 7px 10px;
    border: 1px solid #d9e3ec;
    border-radius: 8px;
    background: #fff;
}

.retirement-rate-admin-actions input[type="month"] {
    width: 125px;
}

.retirement-rate-month-label {
    color: #60758a;
    font-size: 11.5px;
    font-weight: 750;
}

.retirement-rate-primary-button,
.retirement-rate-secondary-button,
.retirement-rate-filter-actions button,
.retirement-rate-quality-card button {
    min-height: 35px;
    padding: 6px 12px;
    border: 1px solid #c9d7e4;
    border-radius: 6px;
    background: #fff;
    color: #315068;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.retirement-rate-primary-button {
    border-color: #2671a8 !important;
    background: #2671a8 !important;
    color: #fff !important;
}

.retirement-rate-primary-button:disabled,
.retirement-rate-secondary-button:disabled {
    cursor: wait;
    opacity: .62;
}

.retirement-rate-filter-card {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 12px;
}

.retirement-rate-filter-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.retirement-rate-common-filters {
    display: grid;
    grid-template-columns: minmax(120px, 150px) minmax(120px, 150px) minmax(420px, 1fr) auto;
    align-items: end;
    gap: 8px;
    flex: 1 1 auto;
}

.retirement-rate-common-filters > label:not(.retirement-rate-checkbox),
.retirement-rate-selection-fields label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    color: #63788b;
    font-size: 11px;
    font-weight: 800;
}

.retirement-rate-common-filters select,
.retirement-rate-common-filters input[type="month"],
.retirement-rate-selection-fields select,
.retirement-rate-admin-actions input[type="month"] {
    height: 35px;
    min-width: 0;
    padding: 0 8px;
    border: 1px solid #cfdbe6;
    border-radius: 6px;
    background: #fff;
    color: #243d52;
    font: inherit;
    font-size: 12px;
}

.retirement-rate-selection-fields select.is-aggregate-selection {
    border-color: #8b5cf6;
    background: #f3efff;
    color: #5b21b6;
    font-weight: 850;
    box-shadow: 0 0 0 2px rgb(139 92 246 / 12%);
}

.retirement-rate-selection-fields optgroup.retirement-rate-aggregate-group {
    color: #6d28d9;
    background: #f5f3ff;
    font-weight: 850;
}

.retirement-rate-selection-fields option.retirement-rate-aggregate-option {
    color: #5b21b6;
    background: #f5f3ff;
    font-weight: 850;
}

.retirement-rate-selection-fields optgroup.retirement-rate-company-group {
    color: #63788b;
    background: #fff;
    font-weight: 750;
}

.retirement-rate-checkbox {
    display: flex;
    align-items: center;
    align-self: end;
    gap: 5px;
    min-height: 35px;
    color: #5e7285;
    font-size: 11.5px;
    font-weight: 750;
    white-space: nowrap;
}

.retirement-rate-filter-actions {
    display: flex;
    align-self: flex-end;
    gap: 6px;
    flex: 0 0 auto;
}

.retirement-rate-benchmark-options label {
    min-height: 33px;
    border: 1px solid #cfdbe6;
    border-radius: 6px;
    background: #fff;
    color: #365166;
    font-size: 11.5px;
    font-weight: 750;
    cursor: pointer;
}

.retirement-rate-benchmark-options {
    display: flex;
    align-items: end;
    gap: 5px;
}

.retirement-rate-benchmark-options > span {
    align-self: center;
    margin-right: 2px;
    color: #60758a;
    font-size: 11.5px;
    font-weight: 850;
    white-space: nowrap;
}

.retirement-rate-benchmark-options label {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 0 8px;
}

.retirement-rate-benchmark-options label:has(input:checked) {
    border-color: #7aa7c8;
    background: #edf7fd;
    color: #155e8e;
}

.retirement-rate-selection-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.retirement-rate-selection-group {
    min-width: 0;
    margin: 0;
    padding: 6px 9px 9px;
    border: 1px solid #d5e0e9;
    border-radius: 8px;
    background: #f8fbfd;
}

.retirement-rate-selection-group.is-base {
    border-color: #b9d4e6;
    background: #f5fafe;
}

.retirement-rate-selection-group.is-comparison {
    border-color: #d8d3e8;
    background: #faf9fd;
}

.retirement-rate-selection-group legend {
    padding: 0 6px;
    color: #315c79;
    font-size: 12px;
    font-weight: 900;
}

.retirement-rate-selection-group.is-comparison legend {
    color: #665680;
}

.retirement-rate-selection-fields {
    display: grid;
    grid-template-columns: repeat(4, minmax(92px, 1fr));
    gap: 7px;
}

.retirement-rate-selection-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 22px;
    margin-top: 6px;
    color: #60788c;
    font-size: 11.5px;
    font-weight: 750;
}

.retirement-rate-selection-footer span.is-empty {
    color: #b04c55;
}

.retirement-rate-selection-footer button {
    padding: 2px 7px;
    border: 1px solid #d3dce5;
    border-radius: 5px;
    background: #fff;
    color: #657789;
    font: inherit;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.retirement-rate-selection-footer button:hover {
    border-color: #9eb6c7;
    color: #315f7d;
}

.retirement-rate-selection-buttons {
    display: flex;
    gap: 5px;
    flex: 0 0 auto;
}

.retirement-rate-selection-footer button.is-add {
    border-color: #a99cc7;
    color: #665087;
}

.retirement-rate-role-badge {
    display: inline-flex;
    justify-content: center;
    min-width: 38px;
    padding: 3px 7px;
    border-radius: 999px;
    background: #e4f1fa;
    color: #23658f;
    font-size: 11.5px;
    font-weight: 900;
}

.retirement-rate-role-badge.is-comparison {
    background: #f0ebf8;
    color: #675388;
}

.retirement-rate-card {
    padding: 13px 14px;
}

.retirement-rate-card header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.retirement-rate-card header h3 {
    margin: 2px 0 0;
    color: #1d394f;
    font-size: 15px;
}

.retirement-rate-chart-wrap {
    position: relative;
    min-height: 480px;
    height: 58vh;
    max-height: 720px;
}

.retirement-rate-chart-wrap canvas {
    cursor: crosshair;
}

.retirement-rate-chart-header-tools,
.retirement-rate-chart-zoom-controls {
    display: flex;
    align-items: center;
    gap: 6px;
}

.retirement-rate-chart-header-tools {
    justify-content: flex-end;
    min-width: 0;
}

.retirement-rate-chart-zoom-controls {
    flex: 0 0 auto;
}

.retirement-rate-chart-zoom-controls button {
    min-height: 29px;
    padding: 3px 9px;
    border: 1px solid #c8d6e2;
    border-radius: 6px;
    background: #fff;
    color: #36556d;
    font: inherit;
    font-size: 11.5px;
    font-weight: 800;
    cursor: pointer;
}

.retirement-rate-chart-zoom-controls button:hover:not(:disabled) {
    border-color: #7da9c8;
    background: #f1f8fc;
    color: #195f8d;
}

.retirement-rate-ranking-card header {
    align-items: flex-end;
}

.retirement-rate-funding-card header {
    align-items: flex-end;
}

.retirement-rate-funding-title {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.retirement-rate-funding-title p {
    overflow: hidden;
    margin-left: 4px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.retirement-rate-funding-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 9px 0;
}

.retirement-rate-funding-summary > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 42px;
    padding: 7px 10px;
    border: 1px solid #dbe5ed;
    border-radius: 7px;
    background: #f8fbfd;
}

.retirement-rate-funding-summary span {
    color: #6b7f90;
    font-size: 11.5px;
    font-weight: 750;
}

.retirement-rate-funding-summary strong {
    color: #23465f;
    font-size: 13px;
    font-weight: 900;
}

#retirement-rate-funding-signal.is-significant {
    color: #17704d;
}

#retirement-rate-funding-signal.is-weak {
    color: #9a650d;
}

#retirement-rate-funding-signal.is-not-significant {
    color: #9d3f48;
}

.retirement-rate-funding-layout {
    display: grid;
    grid-template-columns: minmax(320px, .8fr) minmax(540px, 1.2fr);
    gap: 9px;
    min-height: 320px;
}

.retirement-rate-funding-chart,
.retirement-rate-funding-table-wrap {
    min-width: 0;
    height: 320px;
    border: 1px solid #dbe5ed;
    border-radius: 7px;
    background: #fff;
}

.retirement-rate-funding-chart {
    padding: 8px;
}

.retirement-rate-funding-table-wrap {
    overflow: auto;
}

.retirement-rate-funding-table-wrap table {
    width: 100%;
    border-collapse: collapse;
    font-size: 11.5px;
}

.retirement-rate-funding-table-wrap th,
.retirement-rate-funding-table-wrap td {
    padding: 7px 8px;
    border-right: 1px solid #e2e9ef;
    border-bottom: 1px solid #e2e9ef;
    text-align: center;
    white-space: nowrap;
}

.retirement-rate-funding-table-wrap th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #edf3f7;
    color: #385b73;
    font-weight: 900;
}

.retirement-rate-funding-table-wrap tr.is-kyobo td {
    background: #f2f8ec;
    color: #315f22;
    font-weight: 850;
}

.retirement-rate-ranking-controls {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 7px;
    flex-wrap: wrap;
}

.retirement-rate-ranking-controls label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    color: #60758a;
    font-size: 11.5px;
    font-weight: 800;
}

.retirement-rate-ranking-controls select,
.retirement-rate-ranking-controls input,
.retirement-rate-ranking-controls button {
    height: 34px;
    min-width: 112px;
    padding: 0 9px;
    border: 1px solid #cbd8e3;
    border-radius: 6px;
    background: #fff;
    color: #29465d;
    font: inherit;
    font-size: 12px;
    font-weight: 750;
}

.retirement-rate-ranking-controls input[type="month"] {
    width: 132px;
}

.retirement-rate-ranking-controls button {
    min-width: 58px;
    border-color: #2671a8;
    background: #2671a8;
    color: #fff;
    font-weight: 850;
    cursor: pointer;
}

.retirement-rate-ranking-controls button:disabled {
    cursor: wait;
    opacity: .62;
}

.retirement-rate-ranking-scroll {
    max-height: 520px;
    overflow: auto;
    border: 1px solid #dce5ed;
    border-radius: 7px;
}

.retirement-rate-ranking-card table {
    width: max-content;
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 12px;
}

.retirement-rate-ranking-card th,
.retirement-rate-ranking-card td {
    min-width: 150px;
    padding: 7px 8px;
    border-right: 1px solid #e3e9ef;
    border-bottom: 1px solid #e7edf2;
    text-align: center;
    vertical-align: middle;
}

.retirement-rate-ranking-card th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #eef4f8;
    color: #3f5d73;
    font-weight: 850;
    white-space: nowrap;
}

.retirement-rate-ranking-card th:first-child,
.retirement-rate-ranking-card td:first-child {
    position: sticky;
    left: 0;
    min-width: 58px;
    width: 58px;
}

.retirement-rate-ranking-card th:first-child {
    z-index: 3;
}

.retirement-rate-ranking-rank {
    z-index: 1;
    background: #f7fafc;
    color: #466278;
    font-weight: 900;
}

.retirement-rate-ranking-entry {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 9px;
    min-height: 28px;
    padding: 4px 7px;
    border-radius: 6px;
    color: #324f65;
    white-space: nowrap;
}

.retirement-rate-ranking-entry + .retirement-rate-ranking-entry {
    margin-top: 3px;
    border-top: 1px dashed #dbe4eb;
}

.retirement-rate-ranking-entry strong {
    font-weight: 800;
}

.retirement-rate-ranking-entry small {
    color: #587084;
    font-size: 11.5px;
    font-weight: 850;
}

.retirement-rate-ranking-entry.is-kyobo {
    outline: 1px solid #6db327;
    background: #f0f8e8;
    color: #3f6f13;
    box-shadow: inset 4px 0 #6db327;
}

.retirement-rate-ranking-entry.is-kyobo small {
    color: #4a7f18;
}

.retirement-rate-monthly-comparison-filter {
    align-items: flex-end;
}

.retirement-rate-monthly-comparison-card header {
    align-items: center;
}

.retirement-rate-monthly-comparison-legend {
    display: flex;
    align-items: center;
    gap: 7px;
}

.retirement-rate-monthly-comparison-legend span {
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 850;
}

.retirement-rate-monthly-comparison-legend .is-kyobo {
    outline: 1px solid #6db327;
    background: #f0f8e8;
    color: #3f6f13;
}

.retirement-rate-monthly-comparison-legend .is-at-or-above {
    background: #dff3e6;
    color: #216b43;
}

.retirement-rate-monthly-comparison-scroll {
    height: clamp(520px, calc(100vh - 250px), 900px);
    overflow: auto;
    border: 1px solid #dce5ed;
    border-radius: 7px;
}

.retirement-rate-monthly-comparison-card table {
    --monthly-matrix-header-height: 32px;
    --monthly-matrix-row-height: 28px;
    width: max-content;
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 12px;
}

.retirement-rate-monthly-comparison-card th,
.retirement-rate-monthly-comparison-card td {
    box-sizing: border-box;
    min-width: 78px;
    padding: 2px 6px;
    border-right: 1px solid #e1e8ee;
    border-bottom: 1px solid #e5ebf0;
    background: #fff;
    color: #3b5367;
    text-align: center;
    white-space: nowrap;
}

.retirement-rate-monthly-comparison-card thead th {
    height: var(--monthly-matrix-header-height);
    padding: 3px 6px;
}

.retirement-rate-monthly-comparison-card tbody td {
    height: var(--monthly-matrix-row-height);
    line-height: 1.15;
}

.retirement-rate-monthly-comparison-card thead {
    position: sticky;
    top: 0;
    z-index: 7;
}

.retirement-rate-monthly-comparison-card thead th {
    position: relative;
    z-index: 1;
    background: #edf3f7;
    color: #35576f;
    font-weight: 900;
}

.retirement-rate-monthly-comparison-card .retirement-rate-monthly-axis.is-industry,
.retirement-rate-monthly-comparison-card .retirement-rate-monthly-comparison-industry {
    position: sticky;
    left: 0;
    z-index: 2;
    min-width: 96px;
    width: 96px;
}

.retirement-rate-monthly-comparison-card .retirement-rate-monthly-axis.is-institution,
.retirement-rate-monthly-comparison-card .retirement-rate-monthly-comparison-institution {
    position: sticky;
    left: 96px;
    z-index: 2;
    min-width: 148px;
    width: 148px;
}

.retirement-rate-monthly-comparison-card .retirement-rate-monthly-axis.is-product,
.retirement-rate-monthly-comparison-card .retirement-rate-monthly-comparison-product {
    position: sticky;
    left: 244px;
    z-index: 2;
    min-width: 110px;
    width: 110px;
}

.retirement-rate-monthly-comparison-card .retirement-rate-monthly-axis {
    z-index: 3;
}

.retirement-rate-monthly-comparison-card .retirement-rate-monthly-axis-group {
    position: sticky;
    left: 0;
    z-index: 3;
    min-width: 354px;
    width: 354px;
}

.retirement-rate-monthly-comparison-institution {
    font-weight: 800;
}

.retirement-rate-monthly-comparison-industry,
.retirement-rate-monthly-comparison-institution {
    vertical-align: top;
    font-weight: 800;
}

.retirement-rate-monthly-comparison-product {
    color: #536f84;
    font-weight: 800;
}

.retirement-rate-monthly-comparison-card td.is-empty {
    color: #a1afba;
}

.retirement-rate-monthly-comparison-card td.is-at-or-above-kyobo {
    background: #dff3e6;
    color: #216b43;
}

.retirement-rate-monthly-comparison-card td.is-at-or-above-kyobo strong {
    font-weight: 900;
}

.retirement-rate-monthly-comparison-card tr.is-kyobo {
    position: relative;
    z-index: 4;
}

.retirement-rate-monthly-comparison-card tr.is-kyobo td:not(.retirement-rate-monthly-comparison-industry) {
    position: sticky;
    top: var(--kyobo-sticky-top, 64px);
    z-index: 2;
}

.retirement-rate-monthly-comparison-card tr.is-kyobo td {
    border-top-color: #a8cf81;
    border-bottom-color: #a8cf81;
    background: #f0f8e8;
    color: #3f6f13;
    font-weight: 900;
}

.retirement-rate-monthly-comparison-card tr.is-kyobo .retirement-rate-monthly-comparison-industry {
    border-top-color: #e5ebf0;
    border-bottom-color: #e5ebf0;
    background: #fff;
    color: #3b5367;
    font-weight: 800;
}

.retirement-rate-monthly-comparison-card tr.is-kyobo .retirement-rate-monthly-comparison-institution,
.retirement-rate-monthly-comparison-card tr.is-kyobo .retirement-rate-monthly-comparison-product {
    z-index: 4;
}

.retirement-rate-monthly-comparison-card tr.is-kyobo .retirement-rate-monthly-comparison-institution {
    box-shadow: inset 4px 0 #6db327;
}

.retirement-rate-monthly-comparison-card tr.is-kyobo
    .retirement-rate-monthly-comparison-institution.is-kyobo-institution-cell:not(.is-kyobo-institution-last) {
    border-bottom-color: transparent;
}

.retirement-rate-monthly-comparison-card tr.is-kyobo
    .retirement-rate-monthly-comparison-institution.is-kyobo-institution-continuation {
    border-top-color: transparent;
}

.retirement-rate-ranking-entry.is-samsung {
    outline: 1px solid #003bdc;
    background: #eaf0ff;
    color: #002d9f;
    box-shadow: inset 4px 0 #003bdc;
}

.retirement-rate-ranking-entry.is-samsung small {
    color: #0033ba;
}

.retirement-rate-ranking-entry.is-hanwha {
    outline: 1px solid #f37321;
    background: #fff0e6;
    color: #a6480a;
    box-shadow: inset 4px 0 #f37321;
}

.retirement-rate-ranking-entry.is-hanwha small {
    color: #b9510d;
}

.retirement-rate-ranking-empty {
    color: #a1aeba;
}

.retirement-rate-chart-zoom-controls button:disabled {
    cursor: default;
    opacity: .45;
}

.retirement-rate-quality-summary {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 7px;
}

.retirement-rate-quality-row,
.retirement-rate-source-item,
.retirement-rate-run-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 7px 9px;
    border: 1px solid #e2e9f0;
    border-radius: 7px;
    background: #f9fbfd;
    font-size: 11.5px;
}

.retirement-rate-quality-row strong {
    color: #2d5c7b;
}

.retirement-rate-source-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
}

.retirement-rate-source-item {
    min-height: 48px;
    padding: 6px 8px;
}

.retirement-rate-source-item strong {
    color: #213e55;
}

.retirement-rate-source-item p {
    min-height: 30px;
    margin: 0;
    color: #748597;
    line-height: 1.45;
}

#retirement-rate-panel-collection > .retirement-rate-admin-actions,
.retirement-rate-source-card,
.retirement-rate-checks-card {
    box-sizing: border-box;
    width: min(100%, 1440px);
    margin-right: auto;
    margin-left: auto;
}

.retirement-rate-collection-overview {
    display: grid;
    width: 100%;
    grid-template-columns: minmax(260px, .72fr) minmax(420px, 1.28fr);
    gap: 12px;
}

.retirement-rate-source-column,
.retirement-rate-run-column {
    width: 100%;
    min-width: 0;
}

.retirement-rate-source-column > header,
.retirement-rate-run-column > header {
    min-height: 24px;
    margin-bottom: 6px;
}

.retirement-rate-run-column > header p {
    margin: 2px 0 0;
    color: #60788c;
    font-size: 11.5px;
    font-weight: 750;
}

.retirement-rate-source-status,
.retirement-rate-validation-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 7px;
    border-radius: 999px;
    background: #edf2f6;
    color: #5c7185;
    font-size: 10.5px;
    font-weight: 850;
}

.retirement-rate-validation-badge::before {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    content: "";
}

.retirement-rate-validation-heading {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.retirement-rate-validation-help {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.retirement-rate-validation-help > button {
    appearance: none;
    display: inline-grid;
    place-items: center;
    width: 17px;
    height: 17px;
    margin: 0;
    padding: 0;
    border: 1px solid #91adbf;
    border-radius: 50%;
    background: #f8fbfd;
    color: #53748b;
    font: inherit;
    cursor: help;
}

.retirement-rate-validation-help > button > span {
    font-family: Arial, sans-serif;
    font-size: 10.5px;
    font-weight: 800;
    line-height: 1;
}

.retirement-rate-validation-help > button:hover,
.retirement-rate-validation-help > button:focus-visible {
    border-color: #3c789e;
    background: #e8f3f9;
    color: #245f84;
}

.retirement-rate-validation-help > button:focus-visible {
    outline: 2px solid rgba(44, 111, 153, .25);
    outline-offset: 2px;
}

.retirement-rate-validation-tooltip {
    position: absolute;
    top: calc(100% + 7px);
    right: -9px;
    z-index: 20;
    box-sizing: border-box;
    display: grid;
    width: min(355px, calc(100vw - 32px));
    gap: 6px;
    padding: 11px 12px;
    border: 1px solid #bfd2df;
    border-radius: 8px;
    background: #fbfdff;
    box-shadow: 0 9px 22px rgba(31, 63, 84, .18);
    color: #405a6d;
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1.5;
    opacity: 0;
    pointer-events: none;
    text-align: left;
    transform: translateY(-3px);
    transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
    visibility: hidden;
    white-space: normal;
}

.retirement-rate-validation-tooltip strong {
    color: #254f6a;
    font-size: 12px;
}

.retirement-rate-validation-tooltip b {
    display: inline-block;
    min-width: 29px;
    color: #276b55;
}

.retirement-rate-validation-tooltip em {
    padding-top: 6px;
    border-top: 1px solid #e0e8ee;
    color: #60778a;
    font-style: normal;
    font-weight: 700;
}

.retirement-rate-validation-help:hover .retirement-rate-validation-tooltip,
.retirement-rate-validation-help:focus-within .retirement-rate-validation-tooltip {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
}

.retirement-rate-source-status.is-success,
.retirement-rate-validation-badge.is-valid {
    background: #e6f6ed;
    color: #25744e;
}

.retirement-rate-source-status.is-blocked {
    background: #fff1e2;
    color: #9a5c19;
}

.retirement-rate-validation-badge.is-corrected {
    background: #e9f2ff;
    color: #2869a0;
}

.retirement-rate-validation-badge.is-zero {
    background: #fff6d9;
    color: #8a6714;
}

.retirement-rate-validation-badge.is-outlier {
    background: #ffecef;
    color: #b33f4b;
}

.retirement-rate-validation-badge.is-aggregate {
    background: #eee9fb;
    color: #655198;
}

.retirement-rate-source-item a {
    color: #2f75a8;
    font-size: 11px;
    font-weight: 750;
    text-decoration: none;
}

.retirement-rate-source-item > div,
.retirement-rate-run-item > div {
    display: grid;
    gap: 3px;
}

.retirement-rate-source-item > div {
    min-width: 0;
}

.retirement-rate-source-item small,
.retirement-rate-run-item small {
    display: -webkit-box;
    overflow: hidden;
    color: #728697;
    font-size: 10.5px;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.retirement-rate-status-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 7px;
    border-radius: 999px;
    background: #edf2f6;
    color: #5c7185;
    font-size: 10.5px;
    font-weight: 850;
    white-space: nowrap;
}

.retirement-rate-status-badge.is-success {
    background: #e6f6ed;
    color: #25744e;
}

.retirement-rate-status-badge.is-running {
    background: #e5f1fb;
    color: #216a98;
}

.retirement-rate-status-badge.is-queued {
    background: #edf2f6;
    color: #64798b;
}

.retirement-rate-status-badge.is-partial,
.retirement-rate-status-badge.is-adapter_pending,
.retirement-rate-status-badge.is-maintenance,
.retirement-rate-status-badge.is-unavailable {
    background: #fff6df;
    color: #8b681f;
}

.retirement-rate-status-badge.is-blocked,
.retirement-rate-status-badge.is-failed {
    background: #fff0f1;
    color: #a0474f;
}

.retirement-rate-run-list {
    display: grid;
    width: 100%;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
}

.retirement-rate-run-item {
    box-sizing: border-box;
    display: grid;
    width: 100%;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
}

.retirement-rate-run-item > * {
    min-width: 0;
}

.retirement-rate-run-item.is-active {
    border-color: #a8cbe2;
    background: #f4faff;
}

.retirement-rate-run-item-header {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-width: 0;
    gap: 8px;
}

.retirement-rate-run-item-header > div {
    min-width: 0;
}

.retirement-rate-run-progress {
    box-sizing: border-box;
    overflow: hidden;
    width: 100%;
    height: 5px;
    border-radius: 999px;
    background: #dce8f0;
}

.retirement-rate-run-progress > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #2b79ad;
    transition: width .25s ease;
}

.retirement-rate-run-live-detail {
    display: block !important;
    overflow: hidden;
    width: 100%;
    max-width: 100%;
    color: #315f7c !important;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
    -webkit-line-clamp: unset !important;
}

.retirement-rate-run-item span:first-child {
    color: #2e4b62;
    font-weight: 750;
}

.retirement-rate-table-scroll {
    max-height: 330px;
    overflow: auto;
    border: 1px solid #e0e7ee;
    border-radius: 7px;
}

.retirement-rate-checks-card .retirement-rate-table-scroll {
    height: clamp(480px, calc(100vh - 280px), 760px);
    max-height: none;
}

.retirement-rate-table-card table,
.retirement-rate-issues-card table,
.retirement-rate-checks-card table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 11.5px;
}

.retirement-rate-checks-card table {
    min-width: 1240px;
}

.retirement-rate-table-card th,
.retirement-rate-issues-card th,
.retirement-rate-checks-card th {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 8px 9px;
    border-bottom: 1px solid #d8e2eb;
    background: #f1f5f8;
    color: #4c6478;
    font-weight: 850;
    text-align: center;
    white-space: nowrap;
}

.retirement-rate-table-card td,
.retirement-rate-issues-card td,
.retirement-rate-checks-card td {
    padding: 7px 9px;
    border-bottom: 1px solid #edf1f4;
    color: #3e5366;
    text-align: center;
    white-space: nowrap;
}

.retirement-rate-table-card tbody tr:hover td,
.retirement-rate-issues-card tbody tr:hover td,
.retirement-rate-checks-card tbody tr:hover td {
    background: #f7fbff;
}

.retirement-rate-check-controls {
    display: flex;
    gap: 6px;
}

.retirement-rate-check-controls select,
.retirement-rate-check-controls input {
    height: 34px;
    padding: 0 8px;
    border: 1px solid #cfdbe6;
    border-radius: 6px;
    background: #fff;
    color: #315068;
    font: inherit;
    font-size: 11.5px;
    font-weight: 750;
}

.retirement-rate-check-controls input {
    width: 180px;
}

.retirement-rate-check-controls .retirement-rate-check-month {
    width: 142px;
}

.retirement-rate-check-period-separator {
    align-self: center;
    color: #728697;
    font-weight: 800;
}

.retirement-rate-check-status {
    display: inline-flex;
    justify-content: center;
    min-width: 36px;
    padding: 3px 6px;
    border-radius: 999px;
    font-size: 10.5px;
    font-weight: 850;
}

.retirement-rate-check-status.is-exact {
    background: #e6f6ed;
    color: #25744e;
}

.retirement-rate-check-status.is-difference {
    background: #fff0f1;
    color: #a0474f;
}

.retirement-rate-check-status.is-partial {
    background: #fff4d8;
    color: #8b6216;
}

.retirement-rate-check-status.is-missing {
    background: #edf2f6;
    color: #66798b;
}

.retirement-rate-checks-card tr.is-difference td {
    background: #fffafa;
}

.retirement-rate-official-values {
    min-width: 190px;
    white-space: normal !important;
}

.retirement-rate-official-value {
    display: block;
    line-height: 1.45;
}

.retirement-rate-official-value + .retirement-rate-official-value {
    margin-top: 3px;
}

.retirement-rate-official-value.has-scale-correction {
    color: #9b5e0d;
    font-weight: 800;
}

.retirement-rate-official-value.has-rate-unit-warning {
    color: #b6383e;
    font-weight: 850;
}

.retirement-rate-match-review {
    display: table;
    margin: 4px auto 0;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 850;
    cursor: help;
}

.retirement-rate-match-review.is-candidate {
    background: #fff0d0;
    color: #8b5c08;
}

.retirement-rate-match-review.is-source_only {
    background: #edf2f6;
    color: #66798b;
}

.retirement-rate-match-candidate {
    display: block;
    margin-top: 3px;
    color: #6c7f90;
    font-size: 10px;
    line-height: 1.3;
}

.retirement-rate-official-values.is-empty {
    color: #8a9aa8;
}

.retirement-rate-difference-cell {
    min-width: 175px;
}

.retirement-rate-serving-select {
    width: 170px;
    height: 29px;
    padding: 0 6px;
    border: 1px solid #c9d7e2;
    border-radius: 6px;
    background: #fff;
    color: #365269;
    font: inherit;
    font-size: 11px;
    font-weight: 750;
}

.retirement-rate-serving-select.is-decided {
    border-color: #5b9cc4;
    background: #eef8fd;
    color: #1f638d;
}

.retirement-rate-serving-select:disabled {
    opacity: .72;
}

.retirement-rate-difference-signal {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 7px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
}

.retirement-rate-difference-signal + .retirement-rate-difference-signal {
    margin-left: 4px;
}

.retirement-rate-difference-signal::before {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
    content: "";
}

.retirement-rate-difference-signal.is-match {
    background: #e7f7ee;
    color: #24754d;
}

.retirement-rate-difference-signal.is-difference {
    background: #fff0f1;
    color: #ae3f48;
}

.retirement-rate-difference-signal.is-missing {
    background: #fff4d8;
    color: #916719;
}

.retirement-rate-difference-toggle {
    padding: 3px 8px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: inherit;
    cursor: pointer;
}

.retirement-rate-difference-toggle:hover,
.retirement-rate-difference-toggle[aria-pressed="true"] {
    border-color: #e2a7ac;
    background: #fff0f1;
    color: #a23d46;
}

.retirement-rate-issue-detail {
    min-width: 220px;
    max-width: 440px;
    white-space: normal !important;
    line-height: 1.45;
    text-align: left !important;
}

.retirement-rate-rate-value {
    color: #126396 !important;
    font-weight: 850;
}

.retirement-rate-cell-ref {
    color: #73879a !important;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 10.5px;
}

@media (max-width: 1250px) {
    .retirement-rate-filter-card {
        align-items: stretch;
        flex-direction: column;
    }

    .retirement-rate-common-filters {
        grid-template-columns: repeat(2, minmax(120px, 1fr));
    }

    .retirement-rate-selection-grid {
        grid-template-columns: 1fr;
    }

    .retirement-rate-collection-overview {
        grid-template-columns: minmax(230px, .8fr) minmax(340px, 1.2fr);
    }

    .retirement-rate-quality-summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .retirement-rate-funding-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 800px) {
    .retirement-rate-admin-actions {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .retirement-rate-common-filters,
    .retirement-rate-quality-summary {
        grid-template-columns: 1fr 1fr;
    }

    .retirement-rate-collection-overview {
        grid-template-columns: 1fr;
    }

    .retirement-rate-funding-summary {
        grid-template-columns: 1fr 1fr;
    }

    .retirement-rate-subtabs {
        overflow-x: auto;
    }

    .retirement-rate-benchmark-options {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .retirement-rate-selection-fields {
        grid-template-columns: 1fr 1fr;
    }

    .retirement-rate-check-controls {
        flex-wrap: wrap;
    }

    .retirement-rate-chart-wrap {
        min-height: 380px;
        height: 62vh;
        max-height: 560px;
    }

    .retirement-rate-chart-card header,
    .retirement-rate-chart-header-tools,
    .retirement-rate-ranking-card header {
        align-items: flex-start;
        flex-direction: column;
    }

    .retirement-rate-ranking-controls {
        justify-content: flex-start;
        width: 100%;
    }

    .retirement-rate-subtabs button {
        flex: 1 0 auto;
    }
}
