/* ==========================================================================
   Crypto Digest — стили главной страницы (этап 2).
   Подключается после theme.css.
   ========================================================================== */

/* ---------- Контейнер колонки (страховка от overflow в grid) ---------- */
.cd-content { min-width: 0; }

/* ---------- Hero ---------- */
.cd-hero {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.cd-hero__media {
    position: relative;
    display: block;
    border-radius: 0.875rem;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
}
.cd-hero__media:hover { text-decoration: none; }
.cd-hero__img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 813 / 457;
    object-fit: cover;
    border-radius: 0.875rem;
}
.cd-hero__badge {
    position: absolute;
    left: 1rem;
    top: 1rem;
    display: inline-flex;
    align-items: center;
    padding: 0.375rem 0.625rem;
    border-radius: 0.375rem;
    background: var(--fill);
    color: var(--onac);
    font-family: Manrope, sans-serif;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}
.cd-hero__badge--plain {
    position: static;
    align-self: flex-start;
    background: var(--acs);
    color: var(--lk);
}
.cd-hero__title {
    margin: 0;
    font-family: Manrope, sans-serif;
    font-size: clamp(1.75rem, 1.5rem + 1vw, 2.375rem);
    line-height: 1.18;
    font-weight: 800;
    letter-spacing: -0.02em;
    text-wrap: pretty;
}
.cd-hero__title a {
    color: inherit;
    text-decoration: none;
}
.cd-hero__title a:hover { text-decoration: underline; }

.cd-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
    color: var(--mu);
}
.cd-hero__author { font-weight: 600; color: var(--tx); }
.cd-hero__comments { color: inherit; }
.cd-hero__sep { color: var(--mu); }
.cd-hero__date,
.cd-hero__read { font-variant-numeric: tabular-nums; }

.cd-hero__theses {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.875rem 1rem;
    margin-top: 0.25rem;
    background: var(--acs);
    border-radius: 0.625rem;
}
.cd-hero__theses-title {
    font-family: Manrope, sans-serif;
    font-size: 0.8125rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--lk);
}
.cd-hero__theses-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.cd-hero__thesis {
    display: flex;
    gap: 0.625rem;
    font-size: 0.9375rem;
    line-height: 1.45;
}
.cd-hero__thesis svg {
    flex-shrink: 0;
    margin-top: 0.125rem;
    color: var(--lk);
}

/* ---------- Секции ---------- */
.cd-section {
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
    padding-top: 0.5rem;
    margin-bottom: 1.75rem;
}
.cd-section__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 0.875rem;
    row-gap: 0.5rem;
}
.cd-section__title {
    margin: 0;
    font-family: Manrope, sans-serif;
    font-size: 1.375rem;
    font-weight: 800;
    letter-spacing: -0.01em;
}
.cd-section__title a {
    color: inherit;
    text-decoration: none;
}
.cd-section__title a:hover { text-decoration: underline; }
.cd-section__more {
    margin-left: auto;
    font-size: 0.8125rem;
    color: var(--lk);
    font-weight: 600;
    text-decoration: none;
}
.cd-section__more:hover { text-decoration: underline; }
.cd-section__chips {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}
.cd-chip {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.375rem 0.75rem;
    border-radius: 999rem;
    background: var(--sf);
    border: 1px solid var(--bd);
    color: var(--tx);
    font-size: 0.8125rem;
    font-weight: 500;
    text-decoration: none;
}
.cd-chip:hover { background: var(--sf2); text-decoration: none; }
.cd-section__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

/* ---------- «Новости за 7 дней» ---------- */
.cd-news-7 {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1.75rem;
}
.cd-news-7__title {
    margin: 0 0 0.375rem;
    font-family: Manrope, sans-serif;
    font-size: 1.375rem;
    font-weight: 800;
    letter-spacing: -0.01em;
}
.cd-news-7__days {
    display: flex;
    flex-direction: column;
}
.cd-day {
    display: flex;
    flex-direction: column;
}
.cd-day__head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.875rem 0 0.25rem;
}
.cd-day__label {
    margin: 0;
    font-family: Manrope, sans-serif;
    font-size: 0.8125rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--mu);
    white-space: nowrap;
}
.cd-day__line {
    flex-grow: 1;
    height: 1px;
    background: var(--ln);
}
.cd-day__list { display: flex; flex-direction: column; }
.cd-day__item {
    display: flex;
    gap: 0.875rem;
    align-items: flex-start;
    padding: 0.625rem 0;
    border-bottom: 1px solid var(--ln);
    color: inherit;
    text-decoration: none;
}
.cd-day__item:hover { text-decoration: none; }
.cd-day__item:hover .cd-day__title { text-decoration: underline; }
.cd-day__media {
    display: block;
    flex-shrink: 0;
}
.cd-day__img {
    display: block;
    width: 6.5rem;
    height: 3.6875rem;
    object-fit: cover;
    border-radius: 0.625rem;
}
.cd-day__body {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}
.cd-day__title {
    font-size: 1rem;
    line-height: 1.35;
    font-weight: 600;
    text-wrap: pretty;
}
/* Единый вид заголовка в строке ленты (главная, рубрики, метки, поиск) */
.cd-feed-item__title,
.cd-day__title {
    font-family: Manrope, sans-serif;
    font-weight: 600;
    letter-spacing: -0.01em;
}
.cd-day__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
    color: var(--mu);
}
.cd-day__time { font-family: 'IBM Plex Mono', monospace; font-variant-numeric: tabular-nums; }
.cd-day__lang { font-family: 'IBM Plex Mono', monospace; font-weight: 600; }
.cd-day__lang--ru { color: var(--mu); }
.cd-day__lang--uk { color: var(--lk); }

/* Кнопка «Все новости» */
.cd-more-btn {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
    min-height: 2.75rem;
    padding: 0 1.25rem;
    border-radius: 0.625rem;
    background: var(--fill);
    color: var(--onac);
    font-size: 0.875rem;
    font-weight: 700;
    text-decoration: none;
}
.cd-more-btn:hover { text-decoration: none; opacity: 0.92; }

/* ---------- Адаптив ---------- */
@media (max-width: 1023px) {
    .cd-section__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .cd-section__grid { grid-template-columns: 1fr; }
    .cd-hero__img { aspect-ratio: 16 / 10; }
    .cd-hero__badge { left: 0.75rem; top: 0.75rem; }
    .cd-day__img { width: 5.5rem; height: 3.125rem; }
    .cd-chip { min-height: 2.5rem; }
    .cd-section__more { margin-left: 0; }
    .cd-more-btn { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
    .cd-more-btn { transition: none; }
}

/* ---------- Пульс рынка (мобильный блок) ---------- */
.cd-pulse {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 1.75rem;
}
.cd-pulse__title {
    margin: 0;
    font-family: Manrope, sans-serif;
    font-size: 1.375rem;
    font-weight: 800;
    letter-spacing: -0.01em;
}
.cd-pulse__indices {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
    align-items: stretch;
}
.cd-pulse__tile {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    padding: 0.625rem 0.75rem;
    background: var(--sf);
    border: 1px solid var(--bd);
    border-radius: 0.625rem;
    text-decoration: none;
    color: inherit;
    min-width: 0;
}
.cd-pulse__tile:hover { text-decoration: none; background: var(--sf2); }
.cd-pulse__tile-label {
    font-family: Manrope, sans-serif;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--mu);
    white-space: normal;   /* «Страх и жадность» — в две строки, без обрезки */
}
.cd-pulse__tile-value {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 1.125rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--tx);
    white-space: nowrap;
}
.cd-pulse__tile-caption {
    font-size: 0.75rem;
    color: var(--mu);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.cd-pulse__tile-change {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 0.75rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.cd-pulse__tile-change.is-up { color: var(--up); }
.cd-pulse__tile-change.is-down { color: var(--dn); }
.cd-pulse__tile-change.is-flat { color: var(--mu); }

/* Цветовые зоны индекса страха/жадности и альтсезона (модификатор на плитке) */
.cd-pulse__tile--z1 .cd-pulse__tile-value,
.cd-pulse__tile--z1 .cd-pulse__tile-caption { color: var(--dn); }

.cd-pulse__tile--z2 .cd-pulse__tile-value,
.cd-pulse__tile--z2 .cd-pulse__tile-caption {
    color: var(--am);
    color: color-mix(in srgb, var(--dn) 55%, var(--am));
}

.cd-pulse__tile--z3 .cd-pulse__tile-value,
.cd-pulse__tile--z3 .cd-pulse__tile-caption { color: var(--mu); }

.cd-pulse__tile--z4 .cd-pulse__tile-value,
.cd-pulse__tile--z4 .cd-pulse__tile-caption {
    color: var(--up);
    color: color-mix(in srgb, var(--up) 60%, var(--am));
}

.cd-pulse__tile--z5 .cd-pulse__tile-value,
.cd-pulse__tile--z5 .cd-pulse__tile-caption { color: var(--up); }

.cd-pulse__tile--z1 .cd-pulse__tile-caption,
.cd-pulse__tile--z2 .cd-pulse__tile-caption,
.cd-pulse__tile--z3 .cd-pulse__tile-caption,
.cd-pulse__tile--z4 .cd-pulse__tile-caption,
.cd-pulse__tile--z5 .cd-pulse__tile-caption { font-weight: 600; }

/* 27.09: подписи зон («Крайняя жадность», «Сезон альткоинов») в узкой плитке обрезались многоточием —
   разрешаем перенос на вторую строку; плитки одной высоты за счёт stretch у сетки */
.cd-pulse__tile-caption {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    line-height: 1.25;
}

.cd-pulse__topcoins {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    background: var(--sf);
    border: 1px solid var(--bd);
    border-radius: 0.625rem;
    padding: 0.625rem 0.75rem;
}
.cd-pulse__topcoins-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}
.cd-pulse__topcoins-title {
    font-family: Manrope, sans-serif;
    font-size: 0.8125rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--mu);
}
.cd-pulse__topcoins-more {
    font-size: 0.75rem;
    color: var(--lk);
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}
.cd-pulse__topcoins-more:hover { text-decoration: underline; }
.cd-pulse__topcoins-list {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}
.cd-pulse__row {
    display: grid;
    grid-template-columns: 3.5rem 1fr auto;
    gap: 0.5rem;
    align-items: center;
    padding: 0.25rem 0;
    font-size: 0.8125rem;
}
.cd-pulse__row-ticker {
    font-family: 'IBM Plex Mono', monospace;
    font-weight: 700;
    color: var(--tx);
}
.cd-pulse__row-price {
    font-family: 'IBM Plex Mono', monospace;
    font-variant-numeric: tabular-nums;
    text-align: right;
    color: var(--tx);
}
.cd-pulse__row-change {
    font-family: 'IBM Plex Mono', monospace;
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}
.cd-pulse__row-change.is-up { color: var(--up); }
.cd-pulse__row-change.is-down { color: var(--dn); }
.cd-pulse__row-change.is-flat { color: var(--mu); }

.cd-pulse__tools {
    display: flex;
    gap: 0.375rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.25rem;
    margin: 0 -0.25rem;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
}
.cd-pulse__tools::-webkit-scrollbar { display: none; }
.cd-pulse__chip {
    flex: 0 0 auto;
    scroll-snap-align: start;
    white-space: nowrap;
}

.cd-pulse__skeleton {
    display: inline-block;
    height: 1rem;
    border-radius: 0.25rem;
    background: linear-gradient(90deg, var(--sf2) 25%, var(--bd) 37%, var(--sf2) 63%);
    background-size: 400% 100%;
    animation: cd-pulse-skeleton 1.4s ease infinite;
}
@keyframes cd-pulse-skeleton {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

/* ---------- Скрытие сайдбарных виджетов на мобильной главной ---------- */
@media (max-width: 1023px) {
    .cd-home ~ .cd-side .cd-side__block--indices,
    .cd-home ~ .cd-side .cd-side__block--topcoins,
    .cd-home ~ .cd-side .cd-side__block--tools {
        display: none;
    }
}

/* ---------- Порядок секций на десктопе ---------- */
@media (min-width: 1024px) {
    .cd-pulse { display: none; }
    .cd-home {
        display: flex;
        flex-direction: column;
    }
    .cd-home > .cd-section--fresh,
    .cd-home > .cd-section--fresh-archive { order: 1; }
    .cd-home > .cd-news-7 { order: 2; }
    .cd-home > .cd-section:not(.cd-section--fresh):not(.cd-section--fresh-archive) { order: 3; }
}

/* В-25 (консилиум 25.09): на телефоне «Свежие разборы» — компактными строками (миниатюра 104×59 слева), не полноэкранными карточками */
@media (max-width: 1023px) {
    .cd-section--fresh .cd-section__grid { display: flex; flex-direction: column; gap: .875rem; }
    .cd-section--fresh .cd-card__link {
        display: grid;
        grid-template-columns: 104px minmax(0, 1fr);
        gap: .75rem;
        align-items: start;
    }
    .cd-section--fresh .cd-card__media { width: 104px; aspect-ratio: 104 / 59; margin: 0; border-radius: 8px; overflow: hidden; }
    .cd-section--fresh .cd-card__img { width: 100%; height: 100%; object-fit: cover; }
    .cd-section--fresh .cd-card__body { padding: 0; gap: .25rem; }
    .cd-section--fresh .cd-card__title { font-size: .9375rem; line-height: 1.35; }
}
