/* U.S. Treasury yields table — CNBC-style, theme-aware. */

.rates-meta {
    color: var(--color-text-muted);
    font-size: 0.9rem;
    margin: 0.25rem 0 1rem;
}

.rates-wrap { overflow-x: auto; }

.rates-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.95rem;
    min-width: 640px;
    font-variant-numeric: tabular-nums;
}

.rates-table thead th {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-muted);
    font-weight: 600;
    text-align: left;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px dashed var(--color-border);
}

.rates-table tbody td {
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid var(--color-border);
}

.rates-table tbody tr:nth-child(even) td {
    background: color-mix(in srgb, var(--color-text) 3%, transparent);
}

.rates-table th.num,
.rates-table td.num { text-align: right; }

.rates-table td.sym { font-weight: 700; white-space: nowrap; }
.rates-table td.yld { font-weight: 700; }

.rates-chg-up { color: #16a34a; font-weight: 600; white-space: nowrap; }
.rates-chg-dn { color: #dc2626; font-weight: 600; white-space: nowrap; }
.rates-chg-flat { color: var(--color-text-muted); white-space: nowrap; }

.rates-note {
    color: var(--color-text-muted);
    font-size: 0.82rem;
    margin-top: 1rem;
    max-width: 46rem;
}

.rates-live-dot {
    display: inline-block;
    width: 0.55em;
    height: 0.55em;
    border-radius: 50%;
    background: #16a34a;
    margin-right: 0.4em;
    animation: rates-pulse 2s ease-in-out infinite;
}

@keyframes rates-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.35; }
}

.rates-error { color: var(--color-text-muted); padding: 1rem 0; }

/* Yield curve chart */
.rates-curve-controls {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.25rem 0 0.75rem;
    flex-wrap: wrap;
}
.rates-curve-label {
    font-size: 0.85rem;
    color: var(--color-text-muted);
    font-weight: 600;
}
.rates-chip {
    padding: 0.35rem 0.9rem;
    border: 1.5px solid var(--color-border);
    border-radius: 999px;
    background: transparent;
    color: var(--color-text-muted);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}
.rates-chip:hover { border-color: var(--color-accent); color: var(--color-text); }
.rates-chip.active {
    border-color: var(--color-accent);
    background: color-mix(in srgb, var(--color-accent) 14%, transparent);
    color: var(--color-text);
}
/* "As of" date picker */
.rates-asof {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-left: 0.5rem;
    padding-left: 1rem;
    border-left: 1px solid var(--color-card-border);
}
.rates-asof[hidden] { display: none; }
.rates-date {
    color-scheme: light;
    font: inherit;
    font-size: 0.85rem;
    color: var(--color-text);
    background: var(--color-card-bg-alt);
    border: 1.5px solid var(--color-border);
    border-radius: 8px;
    padding: 0.3rem 0.55rem;
}
.rates-date:focus {
    outline: none;
    border-color: var(--color-accent);
}
@media (prefers-color-scheme: dark) {
    .rates-date { color-scheme: dark; }
}
[data-theme="dark"] .rates-date { color-scheme: dark; }
[data-theme="light"] .rates-date { color-scheme: light; }
.rates-snap { color: var(--color-text-muted); font-size: 0.85em; }
/* Chart legend */
.rates-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 1.1rem;
    margin: -1rem 0 1.5rem;
    font-size: 0.8rem;
    color: var(--color-text-muted);
}
.rates-legend-item { display: inline-flex; align-items: center; }
.rates-legend-item .lg-line {
    display: inline-block;
    width: 26px;
    margin-right: 0.45rem;
}
.rates-curve {
    background: var(--color-card-bg);
    border: 1px solid var(--color-card-border);
    border-radius: 10px;
    padding: 0.75rem 0.5rem 0.25rem;
    margin-bottom: 1.75rem;
}
.curve-svg { width: 100%; height: auto; display: block; }
.curve-grid { stroke: var(--color-border); stroke-width: 1; opacity: 0.7; }
.curve-tick { fill: var(--color-text-muted); font-size: 11px; }
.curve-dot { stroke: var(--color-card-bg); stroke-width: 1; }
