.stats-tabs,
.stats-period {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    margin-bottom: var(--space-md)
}

.stats-tab {
    padding: var(--space-sm) var(--space-lg);
    background: var(--color-bg-card);
    color: var(--color-text-secondary);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-full);
    cursor: pointer;
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    font-weight: 500;
    transition: all var(--transition-fast)
}

.stats-tab:hover {
    border-color: var(--color-border-hover);
    color: var(--color-text-primary)
}

.stats-tab.active {
    background: var(--gradient-gold);
    color: #0a0e17;
    border-color: transparent;
    font-weight: 600
}

.stats-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--space-lg);
    margin-bottom: var(--space-2xl)
}

.stat-card {
    background: var(--color-bg-glass);
    backdrop-filter: blur(16px);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    padding: var(--space-lg);
    text-align: center;
    transition: transform var(--transition-fast), box-shadow var(--transition-fast)
}

.stat-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-glow)
}

.stat-card__icon {
    font-size: 2rem;
    margin-bottom: var(--space-sm)
}

.stat-card__title {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em
}

.stat-card__value {
    margin: var(--space-sm) 0
}

.stat-card__sub {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary)
}

.stat-big {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: var(--color-accent-gold)
}

.freq-bars {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs)
}

.freq-bar {
    display: grid;
    grid-template-columns: 200px 1fr 100px;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-xs) var(--space-sm);
    border-radius: var(--border-radius-sm);
    transition: background var(--transition-fast)
}

.freq-bar:hover {
    background: var(--color-bg-card)
}

.freq-bar--fav {
    background: rgba(245, 166, 35, 0.06);
    border-left: 3px solid var(--color-accent-gold)
}

.freq-bar--hot .freq-bar__fill {
    background: linear-gradient(90deg, var(--color-accent-rose) 0%, #ff6b6b 100%)
}

.freq-bar--cold .freq-bar__fill {
    background: linear-gradient(90deg, var(--color-accent-cyan) 0%, #38bdf8 100%)
}

.freq-bar__label {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: var(--font-size-sm)
}

.freq-bar__emoji {
    font-size: 1.3rem
}

.freq-bar__name {
    font-weight: 500
}

.freq-bar__track {
    height: 24px;
    background: var(--color-bg-input);
    border-radius: var(--border-radius-full);
    overflow: hidden;
    position: relative
}

.freq-bar__fill {
    height: 100%;
    background: var(--gradient-gold);
    border-radius: var(--border-radius-full);
    min-width: 4px;
    transition: width 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.freq-bar__value {
    font-size: var(--font-size-sm);
    font-weight: 600;
    text-align: right
}

.freq-bar__value small {
    color: var(--color-text-muted);
    font-weight: 400
}

.fav-star {
    background: none;
    border: none;
    font-size: 1.1rem;
    cursor: pointer;
    opacity: 0.3;
    transition: all var(--transition-fast);
    color: var(--color-text-secondary);
    padding: 2px;
    line-height: 1
}

.fav-star:hover,
.fav-star.active {
    opacity: 1;
    color: var(--color-accent-gold);
    transform: scale(1.2)
}

.hotcold-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-lg)
}

.hotcold-col {
    background: var(--color-bg-card);
    border-radius: var(--border-radius);
    padding: var(--space-lg);
    border: 1px solid var(--color-border)
}

.hotcold-col h3 {
    font-size: var(--font-size-lg);
    margin-bottom: var(--space-md)
}

.hotcold-col--hot h3 {
    color: var(--color-accent-rose)
}

.hotcold-col--cold h3 {
    color: var(--color-accent-cyan)
}

.hotcold-item {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-sm) 0;
    border-bottom: 1px solid var(--color-border);
    font-size: var(--font-size-sm)
}

.hotcold-item:last-child {
    border-bottom: none
}

.hotcold-item--first {
    font-size: var(--font-size-md);
    font-weight: 600
}

.hotcold-col--hot .hotcold-item--first {
    animation: pulse 2s ease infinite
}

@keyframes pulse {

    0%,
    100% {
        opacity: 1
    }

    50% {
        opacity: 0.7;
        background: rgba(244, 63, 94, 0.08)
    }
}

.hotcold-rank {
    font-weight: 700;
    color: var(--color-text-muted);
    min-width: 28px
}

.hotcold-emoji {
    font-size: 1.3rem
}

.hotcold-name {
    flex: 1
}

.hotcold-count {
    font-weight: 600
}

.hotcold-pct {
    color: var(--color-text-muted);
    min-width: 50px;
    text-align: right
}

.heatmap-scroll {
    overflow-x: auto;
    margin-bottom: var(--space-md)
}

.heatmap-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--font-size-xs)
}

.heatmap-table th,
.heatmap-table td {
    padding: 6px 8px;
    text-align: center
}

.heatmap-table th {
    font-weight: 600;
    color: var(--color-text-secondary);
    border-bottom: 2px solid var(--color-border);
    position: sticky;
    top: 0;
    background: var(--color-bg-primary)
}

.heatmap-animal {
    text-align: left;
    white-space: nowrap;
    font-weight: 500
}

.heatmap-cell {
    border-radius: 4px;
    font-weight: 500;
    color: var(--color-text-primary);
    min-width: 36px;
    transition: transform var(--transition-fast)
}

.heatmap-cell:hover {
    transform: scale(1.2);
    z-index: 1
}

.heatmap-total {
    font-weight: 700;
    color: var(--color-accent-gold)
}

.heatmap-legend {
    display: flex;
    justify-content: center;
    gap: var(--space-md);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary)
}

.heatmap-legend span {
    padding: 4px 12px;
    border-radius: var(--border-radius-full)
}

.trends-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: var(--space-sm)
}

.trend-card {
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm);
    padding: var(--space-md);
    text-align: center;
    transition: border-color var(--transition-fast)
}

.trend-card:hover {
    border-color: var(--color-border-hover)
}

.trend-header {
    font-size: var(--font-size-sm);
    margin-bottom: var(--space-xs)
}

.trend-arrow {
    font-weight: 700
}

.trend-subiendo .trend-arrow {
    color: var(--color-accent-emerald)
}

.trend-bajando .trend-arrow {
    color: var(--color-accent-rose)
}

.trend-estable .trend-arrow {
    color: var(--color-text-muted)
}

.sparkline {
    width: 100%;
    height: 24px;
    margin: var(--space-xs) 0
}

.trend-weeks {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted)
}

.hourly-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--space-md)
}

.hourly-card {
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm);
    padding: var(--space-md)
}

.hourly-time {
    font-weight: 700;
    font-size: var(--font-size-sm);
    color: var(--color-accent-gold);
    margin-bottom: var(--space-sm);
    padding-bottom: var(--space-xs);
    border-bottom: 1px solid var(--color-border)
}

.hourly-animal {
    display: flex;
    justify-content: space-between;
    font-size: var(--font-size-sm);
    padding: 3px 0
}

.hourly-animal--top {
    font-weight: 600;
    color: var(--color-accent-gold)
}

.hourly-freq {
    font-weight: 600
}

.streaks-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs)
}

.streak-row {
    display: grid;
    grid-template-columns: 180px 1fr 50px 100px;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-xs) var(--space-sm);
    font-size: var(--font-size-sm);
    border-radius: var(--border-radius-sm)
}

.streak-row:hover {
    background: var(--color-bg-card)
}

.streak-animal {
    font-weight: 500
}

.streak-bar {
    height: 16px;
    background: var(--color-bg-input);
    border-radius: var(--border-radius-full);
    overflow: hidden
}

.streak-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--color-accent-purple) 0%, var(--color-accent-rose) 100%);
    border-radius: var(--border-radius-full);
    transition: width 0.6s ease
}

.streak-days {
    font-weight: 700;
    color: var(--color-accent-rose);
    text-align: right
}

.streak-date {
    color: var(--color-text-muted);
    font-size: var(--font-size-xs)
}

.favs-empty {
    background: var(--color-bg-card);
    border: 2px dashed var(--color-border);
    border-radius: var(--border-radius);
    padding: var(--space-2xl);
    text-align: center;
    color: var(--color-text-secondary)
}

.favs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: var(--space-md)
}

.fav-card {
    background: var(--color-bg-card);
    border: 1px solid var(--color-accent-gold);
    border-radius: var(--border-radius);
    padding: var(--space-lg);
    text-align: center;
    position: relative;
    transition: transform var(--transition-fast)
}

.fav-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-glow)
}

.fav-remove {
    position: absolute;
    top: 8px;
    right: 8px;
    background: none;
    border: none;
    color: var(--color-text-muted);
    cursor: pointer;
    font-size: 0.9rem
}

.fav-remove:hover {
    color: var(--color-accent-rose)
}

.fav-emoji {
    font-size: 2.5rem;
    margin-bottom: var(--space-sm)
}

.fav-name {
    font-weight: 600;
    margin-bottom: var(--space-xs)
}

.fav-stats {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary)
}

.calc-box {
    background: var(--color-bg-card);
    border-radius: var(--border-radius);
    padding: var(--space-xl);
    border: 1px solid var(--color-border)
}

.calc-inputs {
    text-align: center;
    margin-bottom: var(--space-xl)
}

.calc-inputs label {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary)
}

.calc-slider {
    width: 100%;
    max-width: 400px;
    display: block;
    margin: var(--space-md) auto;
    -webkit-appearance: none;
    appearance: none;
    height: 8px;
    background: var(--color-bg-input);
    border-radius: var(--border-radius-full);
    outline: none
}

.calc-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--gradient-gold);
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(245, 166, 35, 0.4)
}

.calc-results {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--space-md)
}

.calc-card {
    background: var(--color-bg-glass);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm);
    padding: var(--space-md);
    text-align: center
}

.calc-label {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    margin-bottom: var(--space-xs)
}

.calc-value {
    font-size: var(--font-size-xl);
    font-weight: 700;
    color: var(--color-accent-gold)
}

.strat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--space-lg);
    margin-bottom: var(--space-lg)
}

.strat-card {
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    padding: var(--space-lg);
    transition: border-color var(--transition-fast)
}

.strat-card:hover {
    border-color: var(--color-border-hover)
}

.strat-card h4 {
    font-size: var(--font-size-lg);
    margin-bottom: var(--space-sm)
}

.strat-card p {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--space-md)
}

.strat-animals {
    background: var(--color-bg-glass);
    padding: var(--space-md);
    border-radius: var(--border-radius-sm);
    font-size: var(--font-size-lg);
    margin-bottom: var(--space-sm);
    text-align: center;
    line-height: 2
}

.strat-card small {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted)
}

.strat-disclaimer {
    background: rgba(244, 63, 94, 0.08);
    border: 1px solid rgba(244, 63, 94, 0.2);
    border-radius: var(--border-radius-sm);
    padding: var(--space-md);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary)
}

.analysis-box {
    background: rgba(255, 255, 255, 0.03);
    border-left: 4px solid var(--color-accent-gold, #f5a623);
    border-radius: 0 var(--border-radius, 12px) var(--border-radius, 12px) 0;
    padding: var(--space-lg, 1.5rem) var(--space-xl, 2rem);
    font-size: var(--font-size-sm, 0.9375rem);
    color: var(--color-text-secondary, #b0bfd0);
    line-height: 1.8
}

@media (max-width:768px) {
    .freq-bar {
        grid-template-columns: 140px 1fr 70px;
        gap: var(--space-sm)
    }

    .hotcold-grid {
        grid-template-columns: 1fr
    }

    .streak-row {
        grid-template-columns: 140px 1fr 40px
    }

    .streak-date {
        display: none
    }

    .trends-grid {
        grid-template-columns: repeat(auto-fill, minmax(130px, 1fr))
    }

    .hourly-grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr))
    }
}