.portfolio-pane-switch.yield-curves-tabs { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.rh-subtabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 5px; width: fit-content; max-width: 100%; border: 1px solid var(--border-subtle, #dfe6f2); border-radius: 14px; background: var(--surface-subtle, #f5f7fc); }
.rh-subtabs button, .rh-periods button { border: 0; border-radius: 10px; background: transparent; color: var(--ink-500); font: inherit; font-size: 13px; padding: 10px 18px; cursor: pointer; }
.rh-subtabs button.is-active, .rh-periods button.is-active { background: var(--surface, #fff); color: var(--blue-600); box-shadow: 0 2px 8px #26345a12; }
.rh-controls { display: flex; align-items: end; flex-wrap: wrap; gap: 18px 24px; padding: 20px; }
.rh-tenors { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; width: 100%; }
.rh-field { display: grid; gap: 7px; font-size: 12px; color: var(--ink-500); }
.rh-field input, .rh-field select { width: 100%; min-width: 140px; height: 42px; padding: 8px 12px; border: 1px solid var(--border-subtle, #dfe6f2); border-radius: 10px; font: inherit; font-size: 14px; color: var(--ink-800); background: var(--surface, #fff); }
.rh-minus { align-self: center; padding-top: 19px; font-size: 22px; color: var(--ink-500); }
.rh-overlay { display: flex; align-items: center; gap: 9px; min-height: 42px; font-size: 14px; margin-left: 8px; cursor: pointer; }
.rh-overlay input { width: 17px; height: 17px; accent-color: #327b4d; }
.rh-periods { display: flex; flex-wrap: wrap; gap: 3px; align-items: center; background: var(--surface-subtle, #f5f7fc); border-radius: 11px; padding: 3px; }
.rh-periods button { padding: 10px 13px; }
.rh-dates { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; margin-left: auto; }
.rh-dates .button, .rh-swap { min-height: 42px; }
.rh-panel { padding: 24px; min-width: 0; }
.rh-panel .panel-heading { margin: 0 0 18px; padding: 0; }
.rh-panel h2 { margin: 0; font-size: 24px; }
.rh-panel .panel-heading p { margin: 6px 0 0; color: var(--ink-500); font-size: 13px; }
.rh-summary { display: flex; flex-wrap: wrap; gap: 15px 30px; padding: 14px 0; border-top: 1px solid var(--border-subtle, #e9edf3); border-bottom: 1px solid var(--border-subtle, #e9edf3); font-size: 12px; color: var(--ink-500); }
.rh-summary strong { margin-left: 8px; color: var(--ink-800); font-size: 15px; font-variant-numeric: tabular-nums; }
.rh-legend { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 20px; margin: 18px 0 0; font-size: 13px; color: var(--ink-600); }
.rh-legend span { display: flex; align-items: center; gap: 8px; }
.rh-legend i { width: 24px; height: 3px; border-radius: 3px; background: var(--blue-600, #3869ff); }
.rh-legend i.is-key { background: #327b4d; }
.rh-chart-scroll { overflow-x: auto; }
.rh-chart { display: block; width: 100%; min-width: 650px; height: auto; touch-action: pan-y; }
.rh-line { fill: none; stroke: var(--blue-600, #3869ff); stroke-width: 2.4; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.rh-line--key { stroke: #327b4d; }
.rh-zero { stroke: var(--ink-500); stroke-dasharray: 5 4; vector-effect: non-scaling-stroke; }
.rh-guide { stroke: #929eb4; stroke-dasharray: 3 4; vector-effect: non-scaling-stroke; }
.rh-readout { display: flex; flex-wrap: wrap; gap: 10px 25px; min-height: 42px; align-items: center; padding: 10px 14px; border-radius: 10px; background: var(--surface-subtle, #f5f7fc); color: var(--ink-700); font-size: 13px; font-variant-numeric: tabular-nums; }
.rh-notice { background: var(--surface-subtle, #f5f7fc); color: var(--ink-600); padding: 12px; border-radius: 10px; font-size: 13px; }
.rh-source { margin: 18px 0 0; color: var(--ink-500); font-size: 12px; line-height: 1.6; }
.rh-source a { color: var(--blue-600); }
@media (max-width: 1100px) { .portfolio-pane-switch.yield-curves-tabs { grid-template-columns: repeat(3,minmax(0,1fr)); } .rh-dates { margin-left: 0; } }
@media (max-width: 650px) { .portfolio-pane-switch.yield-curves-tabs { grid-template-columns: repeat(2,minmax(0,1fr)); } .rh-controls,.rh-panel { padding: 16px; } .rh-subtabs button { padding: 10px 12px; font-size: 12px; } .rh-overlay { width: 100%; margin-left: 0; } .rh-field input,.rh-field select { min-width: 125px; } .rh-panel h2 { font-size: 20px; } .rh-dates { gap: 10px; } .rh-readout { font-size: 12px; } }
