/* ============================================================
   CryptoDigest — «Сказано и сбылось» (X1 / X2 / X3)
   Классы: cd-fc-* (страницы), cd-fc-rules (методика), cd-fcw-* (виджет)
   Токены темы: --bg --sf --sf2 --tx --mu --ln --ac --acs --onac --lk --up --dn --am --bd
   Mobile-first, rem, тап-зоны >= 2.75rem, тёмная тема — через токены.
   ============================================================ */

/* ------------------------------------------------------------
   Страница реестра — общий контейнер
   ------------------------------------------------------------ */

.cd-fc {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
}

/* ------------------------------------------------------------
   1. Сводка + кольцо точности
   ------------------------------------------------------------ */

.cd-fc-summary {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: var(--sf);
    border: 1px solid var(--ln);
    border-radius: 0.875rem;
    text-align: center;
}

@media (min-width: 48rem) {
    .cd-fc-summary {
        flex-direction: row;
        align-items: center;
        gap: 1.25rem;
        padding: 1.25rem;
        text-align: left;
    }
}

.cd-fc-summary__ring {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cd-fc-ring {
    display: block;
    width: 6rem;
    height: 6rem;
}

.cd-fc-ring__track {
    stroke: var(--sf2);
}

.cd-fc-ring__bar {
    stroke: var(--up);
}

.cd-fc-ring__val {
    fill: var(--tx);
    font-size: 1.375rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.cd-fc-summary__body {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    min-width: 0;
}

.cd-fc-summary__title {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.01em;
    color: var(--tx);
}

@media (min-width: 48rem) {
    .cd-fc-summary__title { font-size: 1.25rem; }
}

.cd-fc-summary__counts {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.25rem 0.875rem;
    margin: 0;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.4;
}

@media (min-width: 48rem) {
    .cd-fc-summary__counts { justify-content: flex-start; }
}

.cd-fc-count--ok      { color: var(--up); }
.cd-fc-count--fail    { color: var(--dn); }
.cd-fc-count--partial { color: var(--am); }
.cd-fc-count--wait    { color: var(--mu); }

.cd-fc-summary__note {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--mu);
}

.cd-fc-summary__note a {
    color: var(--lk);
    font-weight: 600;
}

/* ------------------------------------------------------------
   2. Фильтры-чипы
   ------------------------------------------------------------ */

.cd-fc-filters {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    min-width: 0;
}

.cd-fc-filters__row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.cd-fc-filters__label {
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--mu);
}

.cd-fc-chips {
    flex: 1 1 auto;
    display: flex;
    gap: 0.375rem;
    min-width: 0;
    overflow-x: auto;
    white-space: nowrap;
    padding-bottom: 0.125rem;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.cd-fc-chips::-webkit-scrollbar { display: none; }

.cd-fc-chip {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--ln);
    border-radius: 0.625rem;
    background: var(--sf);
    color: var(--tx);
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
}

.cd-fc-chip:hover {
    border-color: var(--bd);
}

.cd-fc-chip.is-active {
    background: var(--acs);
    border-color: var(--acs);
    color: var(--lk);
}

/* ------------------------------------------------------------
   3. Карточки прогнозов
   ------------------------------------------------------------ */

.cd-fc-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Скоро проверим — прогнозы со сроком в ближайшие 14 дней */
.cd-fc-soon {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
}

.cd-fc-soon__title {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--mu);
}

/* Группы «Уже проверили» и «Проверим позже» — отделяем от предыдущей */
.cd-fc-soon + .cd-fc-soon {
    margin-top: 2rem;
}

.cd-fc-card {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    padding: 0.625rem 1rem 0.75rem;
    background: var(--sf);
    border: 1px solid var(--bd);
    border-radius: 0.875rem;
}

@media (min-width: 48rem) {
    .cd-fc-card { padding: 0.75rem 1.125rem 0.625rem; }
}

.cd-fc-card--ok {
    background: var(--acs);
}

/* Полоса времени: 3px от публикации до срока */
.cd-fc-card__bar {
    flex: 0 0 auto;
    display: block;
    height: 0.1875rem;
    background: var(--sf2);
    border-radius: 0.125rem;
    overflow: hidden;
}

.cd-fc-card__fill {
    display: block;
    height: 100%;
    background: var(--mu);
    border-radius: 0.125rem;
}

.cd-fc-card--ok .cd-fc-card__fill      { background: var(--up); }
.cd-fc-card--fail .cd-fc-card__fill    { background: var(--dn); }
.cd-fc-card--partial .cd-fc-card__fill { background: var(--am); }

.cd-fc-card__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    min-width: 0;
}

.cd-fc-card__who {
    min-width: 0;
    font-size: 0.8125rem;
    color: var(--mu);
}

.cd-fc-card__who a {
    color: var(--lk);
    font-weight: 600;
}

.cd-fc-status {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.5rem;
    border-radius: 0.375rem;
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--onac);
}

.cd-fc-status--ok      { background: var(--up); }
.cd-fc-status--fail    { background: var(--dn); }
.cd-fc-status--wait    { background: var(--mu); }
.cd-fc-status--partial { background: var(--am); }

.cd-fc-status__sign {
    font-size: 0.875rem;
    line-height: 1;
}

.cd-fc-card__title {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: var(--tx);
}

@media (min-width: 48rem) {
    .cd-fc-card__title { font-size: 1rem; }
}

.cd-fc-card__title a {
    color: inherit;
    text-decoration: none;
}

.cd-fc-card__title a:hover {
    color: var(--lk);
    text-decoration: underline;
}

.cd-fc-card__text {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.55;
    color: var(--mu);
}

.cd-fc-card__text p {
    margin: 0 0 0.5rem;
}

.cd-fc-card__text p:last-child {
    margin-bottom: 0;
}

.cd-fc-card__more {
    margin: 0;
}

.cd-fc-card__more > summary {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    min-height: 2.75rem;
    padding: 0;
    cursor: pointer;
    list-style: none;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--lk);
}

.cd-fc-card__more > summary::-webkit-details-marker { display: none; }

.cd-fc-card__more > summary::after {
    content: "▾";
    font-size: 0.75rem;
    line-height: 1;
}

.cd-fc-card__more[open] > summary::after {
    content: "▴";
}

.cd-fc-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    padding-top: 0.25rem;
}

.cd-fc-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.375rem;
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.4;
    color: var(--mu);
}

.cd-fc-card__sep {
    color: var(--mu);
}

.cd-fc-card__coin {
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--tx);
}

.cd-fc-card__due {
    font-variant-numeric: tabular-nums;
}

.cd-fc-card__overdue {
    display: inline-flex;
    align-items: center;
    padding: 0.0625rem 0.375rem;
    border: 1px solid var(--am);
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--am);
}

.cd-fc-card__cond {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--mu);
}

.cd-fc-card__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
}

.cd-fc-card__link {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--lk);
    text-decoration: none;
}

.cd-fc-card__link:hover {
    text-decoration: underline;
}

.cd-fc-card__note {
    margin: 0;
    padding: 0.5rem 0.75rem;
    border-left: 0.125rem solid var(--bd);
    border-radius: 0 0.375rem 0.375rem 0;
    background: var(--sf2);
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--mu);
}

/* ------------------------------------------------------------
   4. Пагинация
   ------------------------------------------------------------ */

.cd-fc-pager {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.cd-fc-pager__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0.5rem 0.875rem;
    border: 1px solid var(--ln);
    border-radius: 0.625rem;
    background: var(--sf);
    color: var(--tx);
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
}

.cd-fc-pager__link:hover {
    border-color: var(--bd);
}

.cd-fc-pager__link.is-disabled {
    opacity: 0.4;
    pointer-events: none;
}

.cd-fc-pager__pos {
    font-size: 0.8125rem;
    color: var(--mu);
    font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------------
   5. Пустые состояния и подвал блока
   ------------------------------------------------------------ */

.cd-fc__empty {
    padding: 1.25rem;
    background: var(--sf);
    border: 1px solid var(--ln);
    border-radius: 0.875rem;
}

.cd-fc__empty p,
.cd-fc__emptyin {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--mu);
}

.cd-fc__emptyin {
    padding: 1rem 0;
}

.cd-fc-foot {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding-top: 0.25rem;
}

.cd-fc-foot__rules {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    min-height: 2.75rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--lk);
    text-decoration: none;
}

.cd-fc-foot__rules:hover {
    text-decoration: underline;
}

.cd-fc-foot__note {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--mu);
}

/* ------------------------------------------------------------
   X2 — страница правил
   ------------------------------------------------------------ */

.cd-fc-rules {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    max-width: 45rem;
    min-width: 0;
}

.cd-fc-rules__section {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.cd-fc-rules__section h2 {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: var(--tx);
}

@media (min-width: 48rem) {
    .cd-fc-rules__section h2 { font-size: 1.1875rem; }
}

.cd-fc-rules__section p {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--mu);
}

.cd-fc-rules__formula {
    margin-top: 0.25rem !important;
    padding: 0.75rem 1rem;
    overflow-x: auto;
    background: var(--sf2);
    border: 1px solid var(--ln);
    border-radius: 0.625rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--tx);
}

.cd-fc-rules__cta-wrap {
    margin: 0;
}

.cd-fc-rules__cta {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--lk);
    text-decoration: none;
}

.cd-fc-rules__cta:hover {
    text-decoration: underline;
}

/* ------------------------------------------------------------
   X3 — виджет сайдбара
   ------------------------------------------------------------ */

.cd-fcw {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    padding: 1rem 1.125rem;
    background: var(--sf);
    border-radius: 0.875rem;
    min-width: 0;
}

.cd-fcw__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    min-width: 0;
}

.cd-fcw__title {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--mu);
}

.cd-fcw__more {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--lk);
    text-decoration: none;
}

.cd-fcw__more:hover {
    text-decoration: underline;
}

.cd-fcw__score {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.125rem 0.375rem;
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.4;
    color: var(--mu);
    font-variant-numeric: tabular-nums;
}

.cd-fcw__score-label {
    color: var(--mu);
}

.cd-fcw__num {
    font-weight: 700;
}

.cd-fcw__num--ok   { color: var(--up); }
.cd-fcw__num--fail { color: var(--dn); }
.cd-fcw__num--wait { color: var(--mu); }

.cd-fcw__sep {
    color: var(--mu);
}

.cd-fcw__list {
    display: flex;
    flex-direction: column;
    margin: 0.125rem 0 0;
    padding: 0;
    list-style: none;
}

.cd-fcw__item {
    border-top: 1px solid var(--ln);
}

.cd-fcw__link {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 2.75rem;
    padding: 0.5rem 0;
    color: inherit;
    text-decoration: none;
}

.cd-fcw__name {
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--tx);
}

.cd-fcw__link:hover .cd-fcw__name {
    color: var(--lk);
}

.cd-fcw__meta {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    color: var(--mu);
}

.cd-fcw__date {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-variant-numeric: tabular-nums;
    color: var(--mu);
}

.cd-fcw__coin {
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--tx);
}

/* ------------------------------------------------------------
   Фокус
   ------------------------------------------------------------ */

.cd-fc-chip:focus-visible,
.cd-fc-card__link:focus-visible,
.cd-fc-card__title a:focus-visible,
.cd-fc-card__more > summary:focus-visible,
.cd-fc-pager__link:focus-visible,
.cd-fc-foot__rules:focus-visible,
.cd-fc-rules__cta:focus-visible,
.cd-fc-card__who a:focus-visible,
.cd-fc-summary__note a:focus-visible,
.cd-fcw__more:focus-visible,
.cd-fcw__link:focus-visible {
    outline: 2px solid var(--lk);
    outline-offset: 2px;
    border-radius: 0.25rem;
}
