/* ── RESET & FONTS ────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Mono:wght@400;500&display=swap');

.tc-page * { box-sizing: border-box; margin: 0; padding: 0; }

/* ── VARIABLES ─────────────────────────────────────────────────── */
.tc-page {
    --bg:          #09091a;
    --bg2:         #0f0f2a;
    --card:        #12122a;
    --card2:       #1a1a3a;
    --border:      rgba(120,100,220,.18);
    --purple:      #7c3aed;
    --purple-light:#a78bfa;
    --violet:      #8b5cf6;
    --blue:        #3b82f6;
    --blue-light:  #60a5fa;
    --green:       #10b981;
    --red:         #f43f5e;
    --yellow:      #f59e0b;
    --text:        #e2e8f0;
    --text-dim:    #94a3b8;
    --text-faint:  #475569;
    --glow-p:      rgba(124,58,237,.35);
    --glow-b:      rgba(59,130,246,.25);
    font-family: 'Syne', sans-serif;
    background: var(--bg);
    color: var(--text);
    min-height: 100vh;
    padding: 0 0 60px;
    overflow-x: hidden;
}

/* ── HERO ──────────────────────────────────────────────────────── */
.tc-hero {
    position: relative;
    background: linear-gradient(135deg, #0d0d2b 0%, #13132f 50%, #0a0a1f 100%);
    padding: 56px 32px 48px;
    text-align: center;
    overflow: hidden;
    border-bottom: 1px solid var(--border);
}
.tc-hero::before {
    content:'';
    position:absolute; inset:0;
    background: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(124,58,237,.22) 0%, transparent 70%);
    pointer-events:none;
}
.tc-hero__label {
    font-size: .72rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--purple-light);
    margin-bottom: 12px;
    font-family: 'DM Mono', monospace;
}
.tc-hero__fix {
    font-size: clamp(4rem, 10vw, 7.5rem);
    font-weight: 800;
    line-height: 1;
    background: linear-gradient(135deg, #fff 30%, #c4b5fd 80%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: -.02em;
    filter: drop-shadow(0 0 40px rgba(167,139,250,.4));
}
.tc-hero__currency {
    font-size: clamp(1.1rem, 2.5vw, 1.6rem);
    color: var(--text-dim);
    font-family: 'DM Mono', monospace;
    margin-top: 6px;
    letter-spacing: .08em;
}
.tc-hero__change {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 18px;
    padding: 8px 20px;
    border-radius: 99px;
    font-family: 'DM Mono', monospace;
    font-size: .92rem;
    font-weight: 500;
}
.tc-hero__change.up   { background: rgba(16,185,129,.12); border: 1px solid rgba(16,185,129,.3); color: var(--green); }
.tc-hero__change.down { background: rgba(244, 63, 94,.12); border: 1px solid rgba(244,63,94,.3);  color: var(--red);   }
.tc-hero__change.flat { background: rgba(148,163,184,.1);  border: 1px solid rgba(148,163,184,.2); color: var(--text-dim); }

.tc-hero__date {
    margin-top: 10px;
    font-size: .75rem;
    color: var(--text-faint);
    font-family: 'DM Mono', monospace;
}
.sparkline { width: 200px; height: 50px; margin: 20px auto 0; display: block; opacity: .85; }

/* ── EXPLICACIÓN ──────────────────────────────────────────────── */
.tc-explain {
    max-width: 820px;
    margin: 32px auto 0;
    padding: 24px 28px;
    background: linear-gradient(135deg, rgba(124,58,237,.08) 0%, rgba(59,130,246,.06) 100%);
    border: 1px solid var(--border);
    border-radius: 16px;
    position: relative;
    overflow: hidden;
}
.tc-explain::before {
    content:'';
    position:absolute; left:0; top:0; bottom:0; width:3px;
    background: linear-gradient(180deg, var(--purple), var(--blue));
    border-radius:3px 0 0 3px;
}
.tc-explain__title {
    font-size: .65rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--purple-light);
    font-family: 'DM Mono', monospace;
    margin-bottom: 10px;
}
.tc-explain__text {
    font-size: .97rem;
    line-height: 1.7;
    color: var(--text);
}

/* ── GRID PRINCIPAL ─────────────────────────────────────────── */
.tc-wrap {
    max-width: 1200px;
    margin: 40px auto 0;
    padding: 0 24px;
}
.tc-section-title {
    font-size: .65rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--text-faint);
    font-family: 'DM Mono', monospace;
    margin-bottom: 18px;
    padding-left: 4px;
}
.tc-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 16px;
    margin-bottom: 40px;
}

/* ── CARDS ─────────────────────────────────────────────────────── */
.tc-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 22px 22px 18px;
    position: relative;
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
    animation: fadeUp .5s ease both;
}
.tc-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 40px rgba(0,0,0,.4);
}
.tc-card--up   { border-color: rgba(16,185,129,.22); }
.tc-card--down { border-color: rgba(244,63,94,.22);  }

.tc-card::before {
    content:'';
    position:absolute; inset:0;
    background: radial-gradient(ellipse 80% 60% at 80% 0%, rgba(124,58,237,.06) 0%, transparent 70%);
    pointer-events:none;
}
.tc-card__icon {
    font-size: 1.3rem;
    margin-bottom: 10px;
    display: block;
}
.tc-card__label {
    font-size: .68rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--text-faint);
    font-family: 'DM Mono', monospace;
    margin-bottom: 6px;
}
.tc-card__value {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--text);
    line-height: 1.1;
    font-family: 'DM Mono', monospace;
}
.tc-card__sub {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    font-size: .78rem;
    color: var(--text-dim);
    font-family: 'DM Mono', monospace;
}
.tc-card__badge {
    position: absolute;
    top: 16px; right: 16px;
    font-size: .6rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 99px;
    font-family: 'DM Mono', monospace;
    font-weight: 500;
}
.badge-live { background: rgba(16,185,129,.12); color: var(--green); border: 1px solid rgba(16,185,129,.3); }
.badge-diario { background: rgba(124,58,237,.12); color: var(--purple-light); border: 1px solid rgba(124,58,237,.3); }
.badge-mensual { background: rgba(245,158,11,.1); color: var(--yellow); border: 1px solid rgba(245,158,11,.25); }

/* ── CARD ESPECIAL: FIX (grande) ────────────────────────────── */
.tc-card--hero {
    grid-column: 1 / -1;
    background: linear-gradient(135deg, #1a0a3a 0%, #0f0f2b 100%);
    border-color: rgba(124,58,237,.35);
    padding: 32px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    align-items: center;
    box-shadow: 0 0 60px rgba(124,58,237,.15);
}
@media (max-width: 600px) {
    .tc-card--hero { grid-template-columns: 1fr; }
}
.tc-card__dif-block { text-align: right; }
.tc-card__dif-block .dif-label {
    font-size: .65rem;
    color: var(--text-faint);
    font-family: 'DM Mono', monospace;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.tc-card__dif-block .dif-val {
    font-size: 1.1rem;
    font-family: 'DM Mono', monospace;
    margin-top: 2px;
}

/* ── ESTADO LUCES ──────────────────────────────────────────────── */
.tc-live-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--green);
    display: inline-block;
    box-shadow: 0 0 8px var(--green);
    animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse {
    0%,100% { opacity:1; transform:scale(1); }
    50% { opacity:.5; transform:scale(1.3); }
}

/* ── COLORES ────────────────────────────────────────────────────── */
.val-up   { color: var(--green); }
.val-down { color: var(--red);   }
.val-flat { color: var(--text-dim); }
.nd       { color: var(--text-faint); font-style: italic; font-size: .85em; }
.arrow.up   { color: var(--green); }
.arrow.down { color: var(--red);   }
.arrow.flat { color: var(--text-dim); }

/* ── PROGRESS CIRCLE ─────────────────────────────────────────── */
.tc-progress {
    width: 70px; height: 70px;
    position: relative;
    flex-shrink: 0;
}
.tc-progress svg { transform: rotate(-90deg); }
.tc-progress__track { fill: none; stroke: var(--card2); stroke-width: 6; }
.tc-progress__fill  { fill: none; stroke-width: 6; stroke-linecap: round;
    transition: stroke-dashoffset .6s ease; }
.tc-progress__label {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: .72rem; font-weight: 700;
    font-family: 'DM Mono', monospace;
    color: var(--text);
}

/* ── DIFERENCIALES BANXICO-FED ──────────────────────────────── */
.tc-differential {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 24px;
    margin-bottom: 40px;
}
.tc-diff-row {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.tc-diff-bar-wrap {
    flex: 1;
    min-width: 200px;
}
.tc-diff-label {
    font-size: .68rem;
    color: var(--text-faint);
    font-family: 'DM Mono', monospace;
    letter-spacing: .1em;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.tc-diff-bar {
    height: 8px;
    border-radius: 99px;
    background: var(--card2);
    position: relative;
    overflow: hidden;
}
.tc-diff-bar__fill {
    height: 100%;
    border-radius: 99px;
    position: absolute;
    left: 0; top: 0;
    transition: width .8s ease;
}

/* ── FOOTER ACTUALIZACIÓN ───────────────────────────────────── */
.tc-footer {
    text-align: center;
    padding: 24px;
    font-size: .72rem;
    color: var(--text-faint);
    font-family: 'DM Mono', monospace;
    border-top: 1px solid var(--border);
    margin-top: 20px;
}
.tc-footer a { color: var(--purple-light); text-decoration: none; }

/* ── ANIMATIONS ─────────────────────────────────────────────── */
@keyframes fadeUp {
    from { opacity:0; transform: translateY(20px); }
    to   { opacity:1; transform: translateY(0); }
}
.tc-grid .tc-card:nth-child(1)  { animation-delay:.05s; }
.tc-grid .tc-card:nth-child(2)  { animation-delay:.1s; }
.tc-grid .tc-card:nth-child(3)  { animation-delay:.15s; }
.tc-grid .tc-card:nth-child(4)  { animation-delay:.2s; }
.tc-grid .tc-card:nth-child(5)  { animation-delay:.25s; }
.tc-grid .tc-card:nth-child(6)  { animation-delay:.3s; }
.tc-grid .tc-card:nth-child(7)  { animation-delay:.35s; }
.tc-grid .tc-card:nth-child(8)  { animation-delay:.4s; }

/* ── OVERRIDE ASTRA ─────────────────────────────────────────── */
.tc-fullwidth .site-content,
.tc-fullwidth #content,
.tc-fullwidth .entry-content { padding: 0 !important; max-width: 100% !important; }
.tc-fullwidth .ast-container   { max-width: 100% !important; padding: 0 !important; }
.tc-fullwidth .entry-header { display:none; }

@media (max-width: 768px) {
    .tc-hero { padding: 40px 16px 36px; }
    .tc-wrap { padding: 0 12px; }
    .tc-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .tc-card { padding: 16px; }
    .tc-card__value { font-size: 1.35rem; }
}
@media (max-width: 480px) {
    .tc-grid { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════════════
   FM INDICADORES — Añadidos del plugin
   ══════════════════════════════════════════════════════════════ */

/* Sesión anterior con más peso visual */
.tc-hero__prev {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 10px 22px;
    margin-top: 16px;
    padding: 12px 24px;
    border-radius: 16px;
    background: rgba(124,58,237,.08);
    border: 1px solid var(--border);
    font-family: 'DM Mono', monospace;
}
.tc-hero__prev .k {
    display: block;
    font-size: .62rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--text-faint);
    margin-bottom: 3px;
}
.tc-hero__prev .v {
    font-size: clamp(1.25rem, 3.2vw, 1.9rem);
    font-weight: 700;
    color: var(--text);
    line-height: 1.1;
}
.tc-hero__prev .v.dim { color: var(--text-dim); }

/* Tarjetas clicables */
a.tc-card, a.tc-card:visited { text-decoration: none; color: inherit; display: block; }
a.tc-card:hover { transform: translateY(-3px); border-color: rgba(167,139,250,.45); }
a.tc-card:focus-visible { outline: 2px solid var(--purple-light); outline-offset: 3px; }
.tc-card__more {
    margin-top: 12px;
    font-family: 'DM Mono', monospace;
    font-size: .66rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--purple-light);
    opacity: .75;
}
a.tc-card:hover .tc-card__more { opacity: 1; }

/* ── Vista de detalle ─────────────────────────────────────────── */
.tc-back {
    display: inline-flex; align-items: center; gap: 8px;
    font-family: 'DM Mono', monospace; font-size: .75rem;
    color: var(--text-dim); text-decoration: none;
    padding: 8px 16px; border: 1px solid var(--border);
    border-radius: 99px; margin-bottom: 24px;
}
.tc-back:hover { color: var(--text); border-color: var(--purple-light); }

.tc-detail-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 14px; margin-top: 24px;
}
.tc-stat {
    background: var(--card); border: 1px solid var(--border);
    border-radius: 14px; padding: 16px 18px;
}
.tc-stat__k {
    font-family: 'DM Mono', monospace; font-size: .62rem;
    letter-spacing: .12em; text-transform: uppercase;
    color: var(--text-faint); margin-bottom: 6px;
}
.tc-stat__v {
    font-family: 'DM Mono', monospace; font-size: 1.28rem;
    font-weight: 700; color: var(--text);
}

.tc-chart {
    margin-top: 26px; background: var(--card);
    border: 1px solid var(--border); border-radius: 18px; padding: 20px;
}
.tc-chart svg { width: 100%; height: auto; display: block; }
.tc-chart__axis {
    display: flex; justify-content: space-between;
    font-family: 'DM Mono', monospace; font-size: .62rem;
    color: var(--text-faint); margin-top: 8px;
}

.tc-prose {
    margin-top: 26px; background: var(--card);
    border: 1px solid var(--border); border-radius: 18px;
    padding: 24px; line-height: 1.75; font-size: .95rem; color: var(--text-dim);
}
.tc-prose h3 {
    font-size: .72rem; letter-spacing: .16em; text-transform: uppercase;
    color: var(--purple-light); font-family: 'DM Mono', monospace;
    margin: 0 0 12px;
}
.tc-prose p + p { margin-top: 12px; }
.tc-prose strong { color: var(--text); }

/* Tabla de historial */
.tc-table { width: 100%; border-collapse: collapse; margin-top: 20px; font-family: 'DM Mono', monospace; font-size: .82rem; }
.tc-table th, .tc-table td { padding: 10px 12px; text-align: right; border-bottom: 1px solid var(--border); }
.tc-table th { color: var(--text-faint); font-weight: 500; font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; }
.tc-table td:first-child, .tc-table th:first-child { text-align: left; }
.tc-table tbody tr:hover { background: rgba(124,58,237,.06); }

/* ── Bloque promocional configurable ──────────────────────────── */
.tc-promo {
    margin-top: 34px;
    background: linear-gradient(135deg, rgba(124,58,237,.16), rgba(59,130,246,.10));
    border: 1px solid rgba(167,139,250,.35);
    border-radius: 20px; padding: 26px 28px; text-align: center;
}
.tc-promo__eyebrow {
    font-family: 'DM Mono', monospace; font-size: .64rem;
    letter-spacing: .16em; text-transform: uppercase;
    color: var(--purple-light); margin-bottom: 10px;
}
.tc-promo__msg { font-size: 1.05rem; line-height: 1.6; color: var(--text); margin-bottom: 18px; }
.tc-promo__btn {
    display: inline-block; padding: 13px 30px; border-radius: 99px;
    background: linear-gradient(135deg, var(--purple), var(--violet));
    color: #fff; text-decoration: none; font-weight: 700; font-size: .95rem;
    box-shadow: 0 8px 26px var(--glow-p);
}
.tc-promo__btn:hover { filter: brightness(1.12); color: #fff; }
.tc-promo__btn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* CTA discreto */
.tc-cta-soft {
    margin-top: 22px; text-align: center;
    font-family: 'DM Mono', monospace; font-size: .78rem; color: var(--text-faint);
}
.tc-cta-soft a {
    color: var(--purple-light); text-decoration: none;
    border-bottom: 1px dotted rgba(167,139,250,.5); padding-bottom: 1px;
}
.tc-cta-soft a:hover { color: #fff; border-bottom-color: #fff; }

@media (prefers-reduced-motion: reduce) {
    .tc-page *, .tc-page *::before { animation: none !important; transition: none !important; }
}
@media (max-width: 640px) {
    .tc-hero__prev { gap: 8px 16px; padding: 10px 16px; }
    .tc-prose { padding: 18px; }
}
