
.calc {
    display: grid;
    grid-template-columns: minmax(280px, 340px) 1fr;
    gap: var(--layer-gap);
    align-items: start;
}
.calc--soon { grid-template-columns: 1fr; }

.calc:not(.calc--soon):not(:has([data-calc-result] > *)):not(:has(.calc__main.is-calc-loading)) {
    grid-template-columns: minmax(280px, 340px);
}
.calc:not(.calc--soon):not(:has([data-calc-result] > *)):not(:has(.calc__main.is-calc-loading)) .calc__main { display: none; }
.calc__main { position: relative; min-width: 0; }
.calc__aside { display: flex; flex-direction: column; gap: var(--layer-gap); }

@media (min-width: 1025px) {

    .calc__aside { position: sticky; top: calc(50px + 2 * var(--space-2) + 2 * var(--layer-gap)); align-self: start; }
}

.calc-loading {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    border-radius: var(--glass-radius, 20px);
    background: transparent;
}
.calc-loading::before {
    content: ""; position: absolute; inset: 0;
    border-radius: inherit;
    backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);
}
/* §c1 — спиннер sticky держит его в видимой зоне (top:45vh) при длинном результате */
.calc-loading .am-loader { position: sticky; top: 45vh; }
.calc__main.is-calc-loading:not(:has([data-calc-result] > *)) { min-height: 120px; animation: calcLoadIn .25s ease-out; }
@keyframes calcLoadIn { from { opacity: 0; } }
@media (max-width: 1024px) {
    .calc__main.is-calc-loading:not(:has([data-calc-result] > *)) { animation-name: calcLoadInRow; }
}
@keyframes calcLoadInRow { from { opacity: 0; min-height: 0; margin-top: calc(-1 * var(--layer-gap)); } }
.calc__main.is-calc-loading:not(:has([data-calc-result] > *)) .calc-loading { align-items: center; }
.calc__main.is-calc-loading:not(:has([data-calc-result] > *)) .am-loader { position: static; }

@keyframes amCalcReveal {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: none; }
}
.calc-result.is-revealing > * { animation: amCalcReveal .5s cubic-bezier(.22, .61, .36, 1) both; }
.calc-result.is-revealing > *:nth-child(1) { animation-delay: 0s; }
.calc-result.is-revealing > *:nth-child(2) { animation-delay: .07s; }
.calc-result.is-revealing > *:nth-child(3) { animation-delay: .14s; }
.calc-result.is-revealing > *:nth-child(4) { animation-delay: .21s; }
.calc-result.is-revealing > *:nth-child(5) { animation-delay: .28s; }
.calc-result.is-revealing > *:nth-child(6) { animation-delay: .35s; }
.calc-result.is-revealing > *:nth-child(n+7) { animation-delay: .42s; }
@media (prefers-reduced-motion: reduce) {
    .calc-result.is-revealing > * { animation: none; }
}

.ff-date-row > * { min-width: 0; }

.calc-form {
    padding: var(--space-4, 16px);
    display: flex;
    flex-direction: column;
    gap: var(--space-4, 16px);
}
.calc-form__title {
    margin: 0;
    font-family: var(--font-head, inherit);
    font-size: 1.1rem;
    font-weight: var(--fw-bold, 700);
    line-height: 1.25;
    color: var(--color-heading);
    text-align: center;
}
.calc-form .form-field { margin: 0; }

.calc-form .form-field:has(.checkbox-label) + .form-field:has(.checkbox-label) { margin-top: calc(var(--space-2) - var(--space-4)); }
.calc-form__error {
    display: none;
    margin: 0;
    color: var(--action);
    font-size: .75rem;
    line-height: 1.35;
    text-align: center;
}

.calc-form > .calc-form__error { margin-block: calc(var(--space-2) - var(--space-4)); }
.calc-form.has-error .calc-form__error { display: block; }
.calc-form__actions { margin-top: var(--space-1, 4px); display: flex; justify-content: center; }
.calc-form__submit { justify-content: center; }

.calc-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }

.calc-hour-row { display: flex; gap: var(--space-3); align-items: flex-end; }
.calc-hour-row > .form-field { flex: 0 0 auto; width: 96px; }
.calc-hour-row > .calc-form__submit { flex: 1 1 auto; }

.mak-ways__form { display: flex; flex-direction: column; gap: var(--space-1); }
.mak-ways__btn { width: 100%; }
.js-calc-form.has-error .calc-form__error { display: block; }

.calc-people { margin-top: var(--space-2, 8px); }
.calc-people--guest,
.calc-people--empty { text-align: center; }
.calc-people__hook {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .85rem;
    color: var(--brand, #40538f);
    text-decoration: none;
    border-bottom: 1px dashed currentColor;
}
.calc-people__hook:hover { color: var(--action); }

.am-select__badge {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    margin-left: 8px;
    padding: 0 8px;
    border-radius: var(--radius-pill);
    background: var(--site-color-light);
    color: var(--site-color-dark);
    font-size: .66rem;
    line-height: 1.5;
    font-weight: var(--fw-medium);
}

.am-select__option.calc-people__add {
    text-align: center;
    font-size: .82rem;
    color: var(--site-color);
    border-top: 1px solid var(--glass-border);
    margin-top: 4px;
    padding-top: 8px;
}
.am-select__option.calc-people__add:hover,
.am-select__option.calc-people__add.is-active {
    background: none;
    color: var(--site-color-dark);
}

.calc-form .checkbox,
.calc-form .radio {
    display: flex;
    align-items: center;
    gap: var(--space-2, 8px);
    cursor: pointer;
    font-size: .92rem;
    color: var(--color-text);
    line-height: 1.3;
    margin: 0;
}
.calc-form .checkbox input,
.calc-form .radio input {
    flex: none;
    width: 16px;
    height: 16px;
    accent-color: var(--action, #e8654f);
    cursor: pointer;
}

.calc-field-group { display: flex; flex-direction: column; gap: 10px; }

.calc-toggles { display: flex; flex-direction: column; gap: var(--space-2, 8px); }

.calc-toggles--inline { flex-direction: row; flex-wrap: wrap; gap: var(--space-2, 8px); }

.form-field--row { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3, 16px); }
.form-field--row > .form-label { margin-bottom: 0; }

.calc-cols-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3, 16px); }
.calc-cols-2 > .form-field { margin-bottom: 0; }
@media (max-width: 420px) { .calc-cols-2 { grid-template-columns: 1fr; } }

.calc-sublock {
    display: inline-flex; align-items: center;
    color: var(--color-club, #c69a3e); vertical-align: middle;
    cursor: default;
}
.calc-sublock__ic { width: 16px; height: 16px; fill: currentColor; flex: 0 0 auto; }

/* §c2 — расчёт целиком по подписке: поля видны, но заперты (display:contents fieldset) */
.calc-form__lockfields { display: contents; }
.calc-form__lockfields .am-select__trigger,
.calc-form__lockfields .inputselect,
.calc-form__lockfields .inputtext,
.calc-form__lockfields .inputtextarea,
.calc-form__lockfields .am-time__btn,
.calc-form__lockfields .radio-label { cursor: not-allowed; }

.calc-form__lockfields .am-select,
.calc-form__lockfields .am-time,
.calc-form__lockfields .form-label,
.calc-form__lockfields .inputtext,
.calc-form__lockfields .inputtextarea { opacity: .5; }
.calc-form__lockfields .inputtext,
.calc-form__lockfields .inputtextarea {
    background: var(--color-bg-soft); color: var(--color-text-muted);
    box-shadow: inset 0 2px 4px rgba(40, 51, 95, .16);
}
.calc-form__lockfields .inputtext::placeholder,
.calc-form__lockfields .inputtextarea::placeholder { color: var(--color-text-muted); }
.calc-form__lockfields .calc-people { opacity: .5; pointer-events: none; }
.calc-sub-note {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    margin: 0; color: var(--color-club, #c69a3e); font-weight: var(--fw-bold);
}

.calc-sub-note + .calc-form__actions { margin-top: calc(var(--space-2) - var(--space-4)); }
.calc-auth-gate {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    width: 100%;
}
.calc-auth-note {
    margin: 0;
    text-align: center;
    font-size: .9rem;
    font-weight: var(--fw-bold);
    color: var(--action, #e8654f);
}

/* §c3 — премиум-поле целиком под замком (личные карты в топе, «Год») */
.calc-premium-lock { position: relative; }
.form-label:has(> .calc-sublock) { display: block; }
.form-label > .calc-sublock { float: right; margin-left: 8px; margin-top: 5px; }

.checkbox-input:disabled + .checkbox-text,
.radio-input:disabled + .radio-text { opacity: .5; cursor: not-allowed; }
.checkbox-label:has(.checkbox-input:disabled),
.radio-label:has(.radio-input:disabled) { cursor: not-allowed; }

.radio-label--locked, .checkbox-label--locked,
.radio-label:has(> .calc-sublock), .checkbox-label:has(> .calc-sublock) { display: flex; align-items: center; gap: 5px; }

.am-select--disabled { opacity: .5; }
.am-select--disabled .am-select__trigger { cursor: not-allowed; }

.calc-result {
    padding: var(--space-4, 24px);
    display: flex;
    flex-direction: column;
    gap: var(--layer-gap);
}
.calc-result__head {
    display: flex;
    align-items: center;
    gap: var(--space-3, 12px);
    flex-wrap: wrap;
}
.calc-result__title {
    margin: var(--space-1) 0 var(--space-2);
    font-family: var(--font-head, inherit);
    font-size: 1.25rem;
    color: var(--color-heading);
}
.calc-result__lead { color: var(--site-color-dark); font-size: 1.05rem; line-height: 1.4; margin: 0 0 var(--space-3); }
.calc-result__block + .calc-result__block { margin-top: var(--space-4); }

.calc-result > .calc-result__block + .calc-result__block { margin-top: 0; }
.ym-sec.calc-result__block > .ym-sec__title + .calc-result__lead { margin-top: 0; }

.calc-result--cols2 > .calc-result__block > .calc-deck { justify-content: center; }

.calc-result--cols2 .calc-result__lead { font-size: 0.95rem; }
@media (min-width: 769px) {
    .calc-result--cols2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--layer-gap); }
    .calc-result--cols2 > .calc-empty { grid-column: 1 / -1; }

    .calc-result--cols2 > .calc-result__block { display: flex; flex-direction: column; }
    .calc-result--cols2 > .calc-result__block > .calc-deck { margin-top: auto; }
}
/* §c4 — при узком экране (769–1400) кап ширины колоды карт в 2-колоночной сетке */
@media (min-width: 769px) and (max-width: 1400px) {
    .calc-result--cols2 > .calc-result__block > .calc-deck {
        max-width: calc(2 * 104px + var(--space-3));
        margin-inline: auto;
    }
}

@media (max-width: 550px) {
    .calc-result--cols2 > .calc-result__block > .calc-deck {
        max-width: calc(2 * 104px + var(--space-3));
        margin-inline: auto;
    }
}
.calc-result__block h3,
.calc-result__block h4 { color: var(--color-heading); }
.calc-result__text { font-size: .9rem; line-height: 1.6; }
.calc-result__text p { margin: 0 0 .7em; }

.calc-result__text ul { list-style: none; margin: 0 0 .7em; padding-left: 1.4em; }
.calc-result__text ul > li { position: relative; margin: 0 0 var(--space-1); }
.calc-result__text ul > li::before {
    content: ""; position: absolute; left: -1.1em; top: calc(.5lh - 3px);
    width: 6px; height: 6px; border-radius: 50%; background: var(--brand);
    box-shadow: 0 0 0 2.5px color-mix(in srgb, var(--brand) 22%, transparent);
}

.calc-divider {
    border: 0;
    height: 1px;
    margin: var(--space-4, 16px) 0;
    background: var(--glass-border);
}

.calc-card {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 56px;
    padding: 0 10px;
    border-radius: var(--radius, 8px);
    background: var(--glass-bg-strong, #fff);
    border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow);
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--color-heading);
    line-height: 1;
}
.calc-card__suit--red   { color: #d23b53; }
.calc-card__suit--black { color: var(--color-heading); }

.calc-deck {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3, 12px);
    align-items: flex-start;
}
.calc-deck__card {
    width: 120px;
    max-width: 40vw;
    height: auto;
    border-radius: 4px;
    box-shadow: var(--glass-shadow);
    display: block;
}
.calc-deck--sm .calc-deck__card { width: 104px; }
.gift-day__card { width: 80px; }

.calc-pair { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); align-items: start; }
.calc-pair--single { grid-template-columns: 1fr; }
.calc-pair__col { display: flex; flex-direction: column; gap: var(--space-3); }
.calc-pair__col > .calc-deck__card,
.calc-pair__col > .badge { align-self: center; }
.calc-pair__col .ym-sec { padding: var(--space-3); }
@media (max-width: 550px) { .calc-pair { grid-template-columns: 1fr; } }

.calc-fig { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); margin: 0; text-align: center; }
.calc-sub { font-size: .8rem; }
.mx-chakra-th { border-left: 4px solid var(--chakra, #ccc); }

.calc-media { display: flex; gap: var(--space-3); align-items: flex-start; }
.calc-media__card { flex: 0 0 auto; }
.calc-media__body { flex: 1; min-width: 0; }
@media (max-width: 768px) {
    .calc-media { flex-direction: column; align-items: center; }
    .calc-media__body { width: 100%; }
}

.dir-filter.dir-filter--start { justify-content: flex-start; }

[data-view-panel][hidden] { display: none; }

.planet-media { flex-direction: column; gap: var(--layer-gap); align-items: stretch; }

.planet-head { display: flex; gap: var(--space-3); align-items: center; }
.planet-head__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: var(--space-2); }
.planet-head__body > h3, .planet-head__body > .calc-result__lead { margin: 0; }
.planet-head__card { flex: 0 0 auto; position: relative; width: 90px; height: 90px; }
.planet-levels { display: grid; grid-template-columns: 1fr 1fr; gap: var(--layer-gap); }

@media (max-width: 700px) {
    .planet-levels { grid-template-columns: 1fr; }
}

.planet-media .calc-deck__card--flat { box-shadow: none; }
.planet-media .planet-head__card .calc-deck__card--flat { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }

/* §c5 — заголовок связи (ym-stats) + аккордеон индексов в одном ряду */
.planet-link__head { display: flex; gap: var(--space-3); align-items: flex-start; }
.planet-link__head > .ym-stats { flex: 0 0 auto; margin: 0; }
.planet-link__head > .calc-idx-acc { flex: 1 1 auto; min-width: 0; }
.planet-link__head > .ym-stats,
.planet-link__head > .ym-stats > .ym-stat { height: calc(1.05rem * 1.4 + var(--space-4) * 2 + 2px); }
@media (max-width: 768px) {
    .planet-link__head > .ym-stats,
    .planet-link__head > .ym-stats > .ym-stat { height: calc(1.05rem * 1.4 + var(--space-3) * 2 + 2px); }
}
@media (max-width: 600px) {
    .planet-link__head { flex-direction: column; align-items: stretch; }
    .planet-link__head > .ym-stats,
    .planet-link__head > .ym-stats > .ym-stat { height: auto; }
}

.ym-stat__value .calc-suit--red   { color: #d23b53; }
.ym-stat__value .calc-suit--black { color: var(--color-heading); }

.calc-idx-acc .acc-item__body-content { padding: var(--space-2) calc(var(--space-4) + var(--space-5) + var(--space-2)) var(--space-4) var(--space-4); }

@media (max-width: 768px) {
    .calc-idx-acc .acc-item__body-content { padding: var(--space-1) calc(var(--space-3) + var(--space-4) + var(--space-1)) var(--space-3) var(--space-3); }
    .calc-idx-acc .calc-note { padding: var(--space-3); }
}
.calc-idx-acc .calc-note {
    background: var(--glass-bg-strong);
    border-radius: var(--radius-lg);
    box-shadow: var(--glass-highlight), var(--glass-shadow);
}
.calc-idx-acc .calc-note + .calc-note { margin-top: var(--space-3); }

.calc-idx-acc .calc-note strong { display: inline-block; margin-bottom: var(--space-1); }
.calc-idx-acc .calc-note:has(.calc-idx--compat)  { box-shadow: var(--glass-highlight), 0 0 2px rgba(46, 125, 50, .30), 0 3px 12px rgba(46, 125, 50, .24); }
.calc-idx-acc .calc-note:has(.calc-idx--attract) { box-shadow: var(--glass-highlight), 0 0 2px rgba(212, 162, 60, .32), 0 3px 12px rgba(212, 162, 60, .26); }
.calc-idx-acc .calc-note:has(.calc-idx--tension) { box-shadow: var(--glass-highlight), 0 0 2px rgba(239, 90, 111, .30), 0 3px 12px rgba(239, 90, 111, .24); }

.forecast-day {
    display: flex; flex-direction: column; gap: var(--layer-gap);
    padding: var(--layer-gap);
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: var(--glass-radius);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
}
.forecast-card { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); }
.forecast-card__main {
    width: 80px; max-width: 40vw; height: auto; display: block;
    border-radius: 2px; box-shadow: var(--glass-shadow);
}

.forecast-card .js-cal-card { cursor: pointer; transition: transform .12s, box-shadow .15s; }
.forecast-card .js-cal-card:hover:not(.is-people-card) {
    transform: translateY(-2px);
    box-shadow: var(--glass-shadow), 0 0 0 2px color-mix(in srgb, var(--site-color, #a0bcdd) 45%, transparent);
}
.forecast-card .js-cal-card.is-people-card:hover { transform: translateY(-2px); }

.forecast-card--legs {
    display: grid;
    grid-template-columns: auto auto;
    grid-template-areas: "main main" "leg1 leg2";
    justify-content: center; justify-items: center; align-items: start;
    gap: var(--space-2);
}
.forecast-card--legs .forecast-card__main { grid-area: main; }
.forecast-card--legs .forecast-card__legslot:first-child { grid-area: leg1; }
.forecast-card--legs .forecast-card__legslot:last-child  { grid-area: leg2; }
.forecast-card__legslot { display: inline-flex; align-items: flex-end; }
@media (max-width: 768px) {
    .forecast-card--legs {
        grid-template-columns: 1fr auto 1fr;
        grid-template-areas: "leg1 main leg2";
        align-items: end;
    }
}
.forecast-card__leg {
    width: 52px; height: auto; display: block;
    border-radius: 3px; box-shadow: var(--glass-shadow);
}

.forecast-card--legs:has(> .forecast-card__main.is-people-card, > .people-ring):has(.forecast-card__leg.is-people-card, .people-ring--leg) {
    gap: var(--space-2h);
}

@media (min-width: 769px) {
    .forecast-day .forecast-card--legs:has(.forecast-card__leg.is-people-card, .people-ring--leg) { row-gap: var(--space-2h); }
    .forecast-day .forecast-card--legs:has(.forecast-card__legslot:first-child :is(.is-people-card, .people-ring--leg)):has(.forecast-card__legslot:last-child :is(.is-people-card, .people-ring--leg)) {
        column-gap: var(--space-2h);
    }
}

.forecast-card__leg.is-people-card,
.forecast-card__main.is-people-card,
.forecast-yr__main.is-people-card,
.fyr-pod__card.is-people-card,
.calc-deck__card.is-people-card,
.karma-block img.is-people-card,
.life-block img.is-people-card { border-radius: 2px; }

.forecast-card__leg.is-people-card {
    outline: 2px solid color-mix(in srgb, var(--color-club, #d4a23c) 80%, transparent);
    outline-offset: 2px;
}

.forecast-card__main.is-people-card,
.forecast-yr__main.is-people-card,
.fyr-pod__card.is-people-card,
.calc-deck__card.is-people-card,
.karma-block img.is-people-card,
.life-block img.is-people-card {
    outline: 3px solid color-mix(in srgb, var(--people-card-color, var(--color-club, #d4a23c)) 80%, transparent);
    outline-offset: 2px;
    box-shadow: var(--glass-shadow), 0 0 8px 1px color-mix(in srgb, var(--people-card-color, var(--color-club, #d4a23c)) 55%, transparent);
}

.people-ring {
    position: relative;
    display: inline-flex;
    min-width: 0; max-width: 100%;
    border-radius: 3px;
    transition: transform .12s;
}
.people-ring > img { display: block; max-width: 100%; height: auto; border-radius: 2px; }

.people-ring:hover { transform: translateY(-2px); }

.people-ring > img.js-cal-card:hover,
.people-ring > img.js-anl-card:hover { transform: none; box-shadow: var(--glass-shadow); }
.people-ring::before {
    content: "";
    position: absolute;
    inset: -5px;
    border-radius: 5px;
    padding: 3px;
    background: var(--people-ring);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
            mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
            mask-composite: exclude;
    pointer-events: none;
}

.people-ring--leg::before { inset: -4px; border-radius: 4px; padding: 2px; }

.fmonth-leg.is-people-card {
    outline: 2px solid color-mix(in srgb, var(--color-club, #d4a23c) 80%, transparent);
    outline-offset: 2px;
}
.people-ring--badge::before { border-radius: calc(var(--radius-sm, 6px) + 2px); }
.people-ring > .fmonth-leg:hover { transform: none; box-shadow: var(--glass-shadow); }
.people-ring.people-ring > :is(.js-cal-card, .js-anl-card, .forecast-card__main, .forecast-yr__main, .fyr-pod__card, .calc-deck__card, .fmonth-leg):hover:not(.calc-cal__card) {
    transform: none;
    box-shadow: var(--glass-shadow);
}

.fmonth-cell .forecast-card__main.is-people-card,
.forecast-yr--compact .forecast-card__main.is-people-card { outline-width: 2px; border-radius: 2px; }
.fmonth-cell .people-ring:not(.people-ring--leg)::before,
.forecast-yr--compact .people-ring:not(.people-ring--leg)::before { inset: -4px; border-radius: 4px; padding: 2px; }

.fmonth-cell .fmonth-fcard,
.forecast-yr--compact .fmonth-fcard { column-gap: 0; }
.fmonth-cell .fmonth-legslot:first-child,
.forecast-yr--compact .fmonth-legslot:first-child { margin-right: var(--space-1); }
.fmonth-cell .fmonth-legslot:last-child,
.forecast-yr--compact .fmonth-legslot:last-child  { margin-left:  var(--space-1); }
.fmonth-cell .fmonth-legslot:first-child:has(.is-people-card, .people-ring),
.fmonth-cell .fmonth-fcard:has(> .is-people-card, > .people-ring) .fmonth-legslot:first-child,
.forecast-yr--compact .fmonth-legslot:first-child:has(.is-people-card, .people-ring),
.forecast-yr--compact .fmonth-fcard:has(> .is-people-card, > .people-ring) .fmonth-legslot:first-child { margin-right: var(--space-2); }
.fmonth-cell .fmonth-legslot:last-child:has(.is-people-card, .people-ring),
.fmonth-cell .fmonth-fcard:has(> .is-people-card, > .people-ring) .fmonth-legslot:last-child,
.forecast-yr--compact .fmonth-legslot:last-child:has(.is-people-card, .people-ring),
.forecast-yr--compact .fmonth-fcard:has(> .is-people-card, > .people-ring) .fmonth-legslot:last-child  { margin-left:  var(--space-2); }
.fmonth-cell .fmonth-fcard:has(> .is-people-card, > .people-ring) .fmonth-legslot:first-child:has(.is-people-card, .people-ring),
.forecast-yr--compact .fmonth-fcard:has(> .is-people-card, > .people-ring) .fmonth-legslot:first-child:has(.is-people-card, .people-ring) { margin-right: var(--space-2h); }
.fmonth-cell .fmonth-fcard:has(> .is-people-card, > .people-ring) .fmonth-legslot:last-child:has(.is-people-card, .people-ring),
.forecast-yr--compact .fmonth-fcard:has(> .is-people-card, > .people-ring) .fmonth-legslot:last-child:has(.is-people-card, .people-ring)  { margin-left:  var(--space-2h); }

@media (max-width: 768px) {
    .forecast-card__main.is-people-card,
    .forecast-yr__main.is-people-card,
    .fyr-pod__card.is-people-card,
    .calc-deck__card.is-people-card,
    .karma-block img.is-people-card,
    .life-block img.is-people-card { outline-width: 2px; }
    .people-ring--leg::before { inset: -3.5px; border-radius: 4px; padding: 1.5px; }
    .people-ring--badge::before { border-radius: calc(var(--radius-sm, 6px) + 1.5px); }
    .forecast-card--legs:has(> .forecast-card__main.is-people-card, > .people-ring):has(.forecast-card__leg.is-people-card, .people-ring--leg) {
        gap: var(--space-2h);
    }
    .people-ring::before { inset: -4px; border-radius: 4px; padding: 2px; }
}

.forecast-card--legs > .people-ring { grid-area: main; }

.rhythm-deck { justify-content: center; }
.rhythm-deck .forecast-card--legs {
    grid-template-columns: 1fr auto 1fr;
    grid-template-areas: "leg1 main leg2";
    align-items: end;
}

.rhythm-deck .forecast-card__main { width: 120px; max-width: 100%; min-width: 0; }
.rhythm-deck .forecast-card__leg  { max-width: 100%; min-width: 0; }

.rhythm-deck + .rhythm-deck { margin-top: var(--layer-gap); }

.rhythm-deck--pair + .rhythm-deck--hours { border-top: 1px solid var(--glass-border); padding-top: calc(var(--layer-gap) * 2); }

.rhythm-deck--pair { gap: calc(var(--space-3) * 2); }

.rhythm-deck--hours { justify-content: space-evenly; }

.rhythm-deck--pair,
.rhythm-deck--hours { flex-wrap: nowrap; }
.rhythm-deck--pair > .forecast-card,
.rhythm-deck--hours > .forecast-card { min-width: 0; }
.rhythm-deck--pair .forecast-card--legs { min-width: 0; }

.rhythm-deck .badge,
.rhythm-deck .rhythm-planet { max-width: 100%; white-space: normal; text-align: center; }

@media (max-width: 768px) {

    .rhythm-deck .forecast-card__main { width: 80px; }

    .rhythm-deck--pair { flex-wrap: wrap; gap: var(--space-3); }

    .rhythm-deck--hours { flex-wrap: wrap; justify-content: center; }
    .rhythm-deck--hours > .forecast-card { flex: 0 0 calc((100% - 3 * var(--space-3)) / 4); }

    .rhythm-deck--hours .badge {
        white-space: nowrap;
        width: 80px;
        max-width: 100%;
        padding: clamp(2px, 0.6vw, 5px) 4px;
        font-size: clamp(.62rem, 2vw, .68rem);
    }
}
@media (max-width: 400px) {

    .rhythm-deck--hours .badge { white-space: normal; }
}

.rhythm-planet {
    color: var(--color-heading);
    font-size: .9rem;
    font-weight: var(--fw-bold);
    line-height: 1.1;
    text-align: center;
}

.forecast-side { align-items: center; }

.forecast-side .calc-media__body { align-self: stretch; }
.forecast-side .calc-media__body > .ym-sec { height: 100%; }

.forecast-compact__cards { display: flex; flex-wrap: nowrap; gap: var(--space-3); justify-content: center; }
.forecast-compact__cards .forecast-card__main { width: 70px; border-radius: 2px; }
.forecast-compact__cards .fmonth-leg { min-width: 30px; padding: 5px; }

.forecast-compact__cards .fmonth-fcard {
    grid-template-columns: auto auto;
    grid-template-areas: "main main" "leg1 leg2";
    align-items: start;
}
.forecast-compact__cards .fmonth-fcard .forecast-card__main,
.forecast-compact__cards .fmonth-fcard > .people-ring { grid-area: main; }
.forecast-compact__cards .fmonth-fcard .fmonth-legslot:first-child { grid-area: leg1; }
.forecast-compact__cards .fmonth-fcard .fmonth-legslot:last-child  { grid-area: leg2; }

.forecast-compact__cards .fmonth-fcard:has(.fmonth-legslot :is(.is-people-card, .people-ring)),
.forecast-compact__cards .fmonth-fcard:has(> .is-people-card, > .people-ring) { row-gap: var(--space-2); }
.forecast-compact__cards .fmonth-fcard:has(> .is-people-card, > .people-ring):has(.fmonth-legslot :is(.is-people-card, .people-ring)) { row-gap: var(--space-2h); }
.forecast-compact__cards .fmonth-fcard:has(.fmonth-legslot:first-child :is(.is-people-card, .people-ring)),
.forecast-compact__cards .fmonth-fcard:has(.fmonth-legslot:last-child :is(.is-people-card, .people-ring)) { column-gap: var(--space-2); }
.forecast-compact__cards .fmonth-fcard:has(.fmonth-legslot:first-child :is(.is-people-card, .people-ring)):has(.fmonth-legslot:last-child :is(.is-people-card, .people-ring)) { column-gap: var(--space-2h); }

@media (min-width: 490px) and (max-width: 655px) {
    .forecast-compact__cards .fmonth-fcard {
        grid-template-columns: 1fr auto 1fr;
        grid-template-areas: "leg1 main leg2";
        align-items: end;
        column-gap: 0;
        row-gap: var(--space-1);
    }
    .forecast-compact__cards .fmonth-fcard:has(.fmonth-legslot :is(.is-people-card, .people-ring)),
    .forecast-compact__cards .fmonth-fcard:has(> .is-people-card, > .people-ring),
    .forecast-compact__cards .fmonth-fcard:has(.fmonth-legslot:first-child :is(.is-people-card, .people-ring)),
    .forecast-compact__cards .fmonth-fcard:has(.fmonth-legslot:last-child :is(.is-people-card, .people-ring)),
    .forecast-compact__cards .fmonth-fcard:has(> .is-people-card, > .people-ring):has(.fmonth-legslot :is(.is-people-card, .people-ring)),
    .forecast-compact__cards .fmonth-fcard:has(.fmonth-legslot:first-child :is(.is-people-card, .people-ring)):has(.fmonth-legslot:last-child :is(.is-people-card, .people-ring)) {
        column-gap: 0;
        row-gap: var(--space-1);
    }
    .forecast-compact__cards .fmonth-legslot:first-child { margin-right: var(--space-1); }
    .forecast-compact__cards .fmonth-legslot:last-child  { margin-left:  var(--space-1); }
    .forecast-compact__cards .fmonth-legslot:first-child:has(.is-people-card, .people-ring),
    .forecast-compact__cards .fmonth-fcard:has(> .is-people-card, > .people-ring) .fmonth-legslot:first-child { margin-right: var(--space-2); }
    .forecast-compact__cards .fmonth-legslot:last-child:has(.is-people-card, .people-ring),
    .forecast-compact__cards .fmonth-fcard:has(> .is-people-card, > .people-ring) .fmonth-legslot:last-child  { margin-left:  var(--space-2); }
    .forecast-compact__cards .fmonth-fcard:has(> .is-people-card, > .people-ring) .fmonth-legslot:first-child:has(.is-people-card, .people-ring) { margin-right: var(--space-2h); }
    .forecast-compact__cards .fmonth-fcard:has(> .is-people-card, > .people-ring) .fmonth-legslot:last-child:has(.is-people-card, .people-ring)  { margin-left:  var(--space-2h); }
}

.forecast-yr {
    --fyr-main: 70px;
    display: flex; flex-direction: column; gap: var(--layer-gap);
    padding: var(--layer-gap);
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: var(--glass-radius);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
}
.forecast-yr h3 { margin: 0; font-weight: var(--fw-bold); color: var(--color-heading); text-align: center; }
.forecast-yr__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--layer-gap); }
.forecast-yr__card { display: flex; flex-direction: column; gap: var(--space-3); }
.forecast-yr__deck { display: flex; align-items: flex-end; justify-content: center; gap: var(--space-3); }
.forecast-yr__legslot { display: inline-flex; align-items: flex-end; }
.forecast-yr__main { width: var(--fyr-main); height: auto; display: block; border-radius: 2px; }

.forecast-yr__leg { width: calc(var(--fyr-main) * .4); height: auto; display: block; border-radius: 2px; }

.forecast-yr .js-cal-card { cursor: pointer; transition: transform .12s, box-shadow .15s; }
.forecast-yr .js-cal-card:hover:not(.is-people-card) {
    transform: translateY(-2px);
    box-shadow: var(--glass-shadow), 0 0 0 2px color-mix(in srgb, var(--site-color, #a0bcdd) 45%, transparent);
}
.forecast-yr .js-cal-card.is-people-card:hover { transform: translateY(-2px); }
.forecast-yr__title { margin: 0; font-size: 1rem; font-weight: var(--fw-bold); color: var(--color-heading); text-align: center; }

.forecast-yr__half { display: flex; flex-wrap: nowrap; align-items: flex-start; gap: var(--layer-gap); flex-direction: row; }
.forecast-yr__half-col { display: flex; flex-direction: column; gap: var(--layer-gap); min-width: 0; }
.forecast-yr__half-col--support { order: 0; flex: 1 1 auto; }
.forecast-yr__half-col--pods { order: 1; flex: 0 0 auto; }

.fyr-pods__grid { display: grid; grid-template-columns: repeat(2, auto); gap: var(--space-3); justify-content: center; }
.fyr-pod { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 0; }
.fyr-pod__card {
    width: var(--fyr-main); height: auto; display: block; border-radius: 3px; cursor: pointer;
    box-shadow: 0 0 2px rgba(80, 68, 56, .20), 0 3px 10px rgba(80, 68, 56, .22);
    transition: transform .12s, box-shadow .15s;
}
.fyr-pod__card:hover:not(.is-people-card) {
    transform: translateY(-2px);
    box-shadow: 0 0 2px rgba(80, 68, 56, .20), 0 6px 16px rgba(80, 68, 56, .28);
}
.fyr-pod__card.is-people-card:hover { transform: translateY(-2px); }

.fyr-pod__date {
    font-size: .68rem; line-height: 1.3; white-space: nowrap; color: var(--color-text-muted);
    background: var(--glass-bg); border: 1px solid var(--glass-border);
    border-radius: var(--radius-pill, 999px); padding: 2px 6px;
}

.forecast-yr .ym-stats { justify-content: space-between; flex-wrap: wrap; }

.forecast-yr .ym-stat--wide { min-width: 0; }

.fyr-planet { color: var(--site-color-dark, #4a6da7); font-weight: var(--fw-bold); }

@media (max-width: 768px) {

    .forecast-yr__cards { grid-template-columns: 1fr; }

    .forecast-yr:not(.forecast-yr--compact) .ym-stats { justify-content: center; gap: var(--space-2); }
    .forecast-yr__deck { gap: 0; }
    .forecast-yr__legslot:first-child { margin-right: var(--space-2); }
    .forecast-yr__legslot:last-child  { margin-left:  var(--space-2); }
    .forecast-yr__legslot:first-child:has(.is-people-card, .people-ring),
    .forecast-yr__deck:has(> .is-people-card, > .people-ring) .forecast-yr__legslot:first-child { margin-right: var(--space-2h); }
    .forecast-yr__legslot:last-child:has(.is-people-card, .people-ring),
    .forecast-yr__deck:has(> .is-people-card, > .people-ring) .forecast-yr__legslot:last-child  { margin-left:  var(--space-2h); }
    .forecast-yr__deck:has(> .is-people-card, > .people-ring) .forecast-yr__legslot:first-child:has(.is-people-card, .people-ring) { margin-right: var(--space-3); }
    .forecast-yr__deck:has(> .is-people-card, > .people-ring) .forecast-yr__legslot:last-child:has(.is-people-card, .people-ring)  { margin-left:  var(--space-3); }
    .forecast-yr h3 { font-size: 1.1rem; }
}
@media (max-width: 600px) {

    .forecast-yr__half { flex-direction: column; }
    .forecast-yr__half-col--support,
    .forecast-yr__half-col--pods { flex: 0 0 auto; width: 100%; }

    .fyr-pods__grid { grid-template-columns: repeat(4, auto); }
}
@media (max-width: 400px) {

    .forecast-yr { --fyr-main: 60px; }
    .forecast-yr h3 { font-size: 1.05rem; }

    .fyr-pods__grid { grid-template-columns: repeat(2, auto); }
}

/* §c6 — прогноз на год, компактный вид (периоды рядами).
   Панель периода — flex-ряд: слева статы столбиком, затем панельки-секции (КР/КПУ/Поддержка/Подпериоды) */
.forecast-yr--compact { --fyr-stats-w: 145px; flex-direction: row; flex-wrap: wrap; align-items: flex-start; gap: var(--space-3); padding: var(--space-3); }

.forecast-yr--compact .ym-stats { flex-direction: column; flex-wrap: nowrap; align-items: stretch; justify-content: flex-start; gap: var(--space-2); flex: 0 0 var(--fyr-stats-w); width: var(--fyr-stats-w); }
.forecast-yr--compact .ym-stat { min-width: 0; }
.forecast-yr--compact .ym-stat__label { font-size: .62rem; }
.forecast-yr--compact .ym-stat__value { font-size: .9rem; line-height: 1.3; }
.forecast-yr--compact .forecast-card__main { width: 60px; max-width: 100%; height: auto; }

.forecast-yr--compact .fmonth-fcard,
.forecast-yr--compact .fyr-compact__cards,
.forecast-yr--compact .fyr-compact__pod { min-width: 0; max-width: 100%; }

.forecast-yr--compact .fyr-compact__sec { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: var(--space-2); padding: var(--space-3); }
.fyr-compact__title { margin: 0; font-size: .75rem; font-weight: var(--fw-bold); color: var(--color-heading); text-align: center; }

.fyr-compact__cards { display: flex; flex-direction: column; gap: var(--space-3); align-items: center; }

.fyr-compact__card { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.fyr-compact__pos { font-size: .72rem; color: var(--color-text-muted); text-align: center; white-space: nowrap; }
/* §c7 — доп. карты: независимый ряд вверху (по 4 в ряд) */
.fyr-dop-row { display: flex; flex-wrap: nowrap; align-items: stretch; justify-content: center; gap: var(--space-3) var(--layer-gap); }
.fyr-dop { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 3px; }
.fyr-dop__label { font-size: .72rem; font-weight: var(--fw-bold); color: var(--color-heading); text-align: center; }
.fyr-dop .fmonth-fcard { display: flex; justify-content: center; width: 100%; margin-top: auto; }
.fyr-dop .fmonth-fcard .fmonth-legslot { display: none; }
.fyr-dop .forecast-card__main { display: block; width: 100%; max-width: 80px; height: auto; margin-inline: auto; }
.fyr-dop .people-ring { width: auto; max-width: 80px; }
@media (max-width: 768px) {
    .fyr-dop-row { flex-wrap: wrap; }
    .fyr-dop { flex: 1 1 calc(25% - var(--layer-gap)); }
}

.fyr-compact__pods { display: grid; grid-template-columns: repeat(2, minmax(0, 48px)); gap: var(--space-2) var(--space-3); justify-content: center; }
.fyr-compact__pod { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.fyr-compact__pod-date { font-size: .72rem; color: var(--color-text-muted); text-align: center; white-space: nowrap; }
.forecast-yr--compact .fyr-compact__pod .forecast-card__main { width: 60px; }

/* §c8 — компактная таблица: сетка/стопка периодов */
.fyr-compact-grid { display: flex; flex-direction: column; gap: var(--layer-gap); }
.fyr-compact-grid--cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3); align-items: stretch; }

.fyr-compact-grid > .calc-result__block + .calc-result__block { margin-top: 0; }
/* §c9 — доп-таблица (с секциями): 1 период = 1 блок, стопка блоков */
.fyr-compact-grid:not(.fyr-compact-grid--cols) { display: flex; flex-direction: column; gap: var(--layer-gap); }
/* §c10 — блок периода flex: секции растягиваются на свободное место */
.fyr-compact-grid:not(.fyr-compact-grid--cols) .forecast-yr--compact {
    display: flex; flex-wrap: wrap; align-items: stretch; gap: var(--layer-gap);
    padding: 0; background: none; border: 0; box-shadow: none;
}

.fyr-compact-grid:not(.fyr-compact-grid--cols) .forecast-yr--compact .ym-stats {
    flex: 0 0 100%; width: auto; flex-direction: column; align-items: flex-start;
    text-align: left; gap: 2px;
}

.fyr-compact-grid:not(.fyr-compact-grid--cols) .fyr-compact__sec { flex: 1 1 auto; }
.fyr-compact-grid:not(.fyr-compact-grid--cols) .fyr-compact__sec:has(.fyr-compact__pods) { flex: 0 1 auto; }

@media (max-width: 1470px) {
    .fyr-compact-grid:not(.fyr-compact-grid--cols) .fyr-compact__sec,
    .fyr-compact-grid:not(.fyr-compact-grid--cols) .fyr-compact__sec:has(.fyr-compact__pods) {
        flex: 1 1 auto; min-width: calc(40% - var(--layer-gap));
    }
}

@media (max-width: 560px) {
    .fyr-compact-grid:not(.fyr-compact-grid--cols) .fyr-compact__sec,
    .fyr-compact-grid:not(.fyr-compact-grid--cols) .fyr-compact__sec:has(.fyr-compact__pods) {
        flex: 1 1 100%; min-width: 0;
    }
}

.fyr-compact-grid:not(.fyr-compact-grid--cols) .fyr-compact__cards { flex-direction: row; flex-wrap: wrap; }
.fyr-compact-grid:not(.fyr-compact-grid--cols) .fyr-compact__pods { grid-template-columns: repeat(4, minmax(0, 60px)); }

.fyr-compact-grid:not(.fyr-compact-grid--cols) .fyr-compact__cards,
.fyr-compact-grid:not(.fyr-compact-grid--cols) .fyr-compact__pods { margin-top: auto; }
.fyr-compact-grid--cols .forecast-yr--compact { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: var(--space-3); }

.fyr-compact-grid--cols .forecast-yr--compact .ym-stats { flex-direction: row; flex-wrap: wrap; align-items: baseline; justify-content: space-between; width: auto; flex: 0 0 auto; }

.fyr-compact-grid--cols .fyr-compact__sec { align-self: stretch; flex: 0 0 auto; margin-top: auto; padding: 0; background: none; border: 0; box-shadow: none; }
.fyr-compact-grid--cols .fyr-compact__cards { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: var(--space-3); }
@media (max-width: 1240px) {
    .fyr-compact-grid--cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
    .fyr-compact-grid--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 450px) {
    .fyr-compact-grid--cols { grid-template-columns: 1fr; }

    .fyr-compact-grid--cols .forecast-yr--compact .ym-stats { justify-content: center; text-align: center; }
}

/* §c11 — прогноз, календарь-таблица месяца (7 колонок Пн–Вс) */
.fmonth__title {
    margin: 0 0 var(--space-3); font-size: 1.15rem; font-weight: var(--fw-bold);
    color: var(--color-heading); text-transform: capitalize;
}

.fmonth-scroll { position: relative; }
.fmonth-scroll::before,
.fmonth-scroll::after {
    content: ""; position: absolute; top: 0; bottom: 0;
    pointer-events: none; z-index: 6; opacity: 0; transition: opacity .2s;
}
.fmonth-scroll::before {
    left: 0; width: 22px;
    background: linear-gradient(90deg, rgba(40, 51, 95, .18), transparent);
}
.fmonth-scroll::after {
    right: 0; width: 26px;
    background: linear-gradient(270deg, rgba(40, 51, 95, .16), transparent);
}
.fmonth-scroll.is-scroll-left::before { opacity: 1; }
.fmonth-scroll.is-scroll-right::after { opacity: 1; }

.fmonth-scroll__hint {
    position: absolute; top: var(--space-2); right: var(--space-2);
    z-index: 7; margin: 0;
    font-size: .78rem; color: var(--color-text-muted, #6b7088);
    background: var(--glass-bg-strong, #fff);
    padding: 2px var(--space-2h); border-radius: 999px;
    box-shadow: var(--glass-shadow);
    opacity: 0; pointer-events: none; transition: opacity .25s;
}
.fmonth-scroll.is-scroll-right:not(.is-scrolled) .fmonth-scroll__hint { opacity: 1; }

.calc-table.calc-table--calendar { table-layout: fixed; width: 1050px; min-width: 1050px; }
.calc-table--calendar th,
.calc-table--calendar td {
    width: 150px;
    min-width: 150px;
}
.calc-table--calendar th {
    padding: var(--space-1) 0; font-size: .82rem; border-bottom: 0;
}
.calc-table--calendar th.is-weekend { color: var(--action, #ef5a6f); }
.calc-table--calendar td {
    padding: var(--space-1); border: 1px solid var(--glass-border);
    vertical-align: top; text-align: left;
}
.fmonth-cell--empty { background: color-mix(in srgb, var(--glass-border) 30%, transparent); }
.fmonth-cell.is-weekend { background: color-mix(in srgb, var(--action, #ef5a6f) 5%, transparent); }
.fmonth-cell.is-today {
    outline: 2px solid var(--site-color, #a0bcdd); outline-offset: -2px;
    background: color-mix(in srgb, var(--site-color, #a0bcdd) 10%, transparent);
}
.fmonth-cell__head {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--space-1); min-height: 1.2em;
}

.fmonth-cell__day {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 24px; height: 24px; padding: 0 5px;
    border-radius: var(--radius-pill, 999px);
    background: #fff; border: 1px solid var(--glass-border); box-shadow: var(--glass-shadow);
    font-weight: var(--fw-bold); font-size: .9rem; color: var(--color-heading); line-height: 1;
}
.fmonth-cell.is-today .fmonth-cell__day { color: var(--site-color-dark, #4a6da7); }

.fmonth-cell__planet {
    font-size: .8rem; font-weight: var(--fw-bold);
    color: var(--site-color-dark, #4a6da7); line-height: 1.1; text-align: right;
}

.fmonth-cell__stars {
    margin-top: 2px; color: var(--color-club); font-size: 1rem;
    letter-spacing: 0; line-height: 1; text-align: center;
}

.fmonth-cell__cards { display: flex; flex-direction: column; align-items: center; gap: var(--space-3); margin-top: var(--space-3); }
.fmonth-fcard { display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; justify-items: center; gap: var(--space-1); }
.fmonth-legslot { display: inline-flex; }
.fmonth-cell .forecast-card__main { width: 48px; max-width: 100%; }
.fmonth-cell .fmonth-leg { min-width: 23px; padding: 2px 4px; }
.fmonth-cell .fmonth-leg__letter { font-size: .75rem; }
.fmonth-cell .fmonth-leg__suit { font-size: .84rem; }

.forecast-card__main.js-cal-card { cursor: pointer; transition: transform .12s, box-shadow .15s; }
.forecast-card__main.js-cal-card:hover:not(.is-people-card) {
    transform: translateY(-2px);
    box-shadow: var(--glass-shadow), 0 0 0 2px color-mix(in srgb, var(--site-color, #a0bcdd) 45%, transparent);
}
.forecast-card__main.js-cal-card.is-people-card:hover { transform: translateY(-2px); }

.fmonth-leg {
    display: inline-flex; flex-direction: column; align-items: center;
    min-width: 26px; padding: 2px 5px;
    border-radius: var(--radius-sm, 6px);
    background: var(--glass-bg-strong, #fff);
    border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow);
    line-height: 1; cursor: pointer;
    transition: transform .12s, box-shadow .15s;
}
.fmonth-leg:hover:not(.is-people-card) {
    transform: translateY(-2px);
    box-shadow: var(--glass-shadow), 0 0 0 2px color-mix(in srgb, var(--site-color, #a0bcdd) 45%, transparent);
}
.fmonth-leg.is-people-card:hover { transform: translateY(-2px); }
.fmonth-leg__letter { font-weight: var(--fw-bold); font-size: .85rem; color: var(--color-heading); }
.fmonth-leg__suit { font-size: .95rem; color: var(--color-heading); }
.fmonth-leg__suit--red { color: #d23b53; }

/* §c24 — плавающая шапка дней недели (JS-клон, прилипает к верху при скролле) */
.fmonth-float {
    position: fixed; top: 0; left: 0; overflow: hidden; z-index: 2;
    box-sizing: border-box;
    background: var(--glass-bg-strong, #fff);
    border-bottom: 1px solid var(--glass-border);
    box-shadow: 0 6px 16px -6px rgba(40, 51, 95, .28);
    border-radius: 0 0 var(--radius-sm, 6px) var(--radius-sm, 6px);
    opacity: 0; transform: translateY(-8px);
    transition: opacity .2s, transform .2s;
    pointer-events: none;
}
.fmonth-float.is-visible { opacity: 1; transform: none; }
.fmonth-float-table { margin: 0; will-change: transform; }
.fmonth-float-table tbody { visibility: hidden; }

.fmonth-float-table th { padding-block: 2px; font-size: .78rem; line-height: 1; }

.fmonth-scroll .calc-table-wrap { touch-action: pan-x pan-y; }

.forecast-nav {
    position: sticky; top: calc(var(--fnav-top, 0px) + var(--layer-gap)); z-index: 5;

    margin: 0; padding: 1px var(--space-1);
    background: var(--glass-bg);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-pill, 999px);
    box-shadow: var(--glass-shadow), var(--glass-highlight);

    width: fit-content; max-width: 100%; margin-inline: auto;
}
.forecast-nav__track {
    display: flex; align-items: center; gap: var(--space-1);

    padding-block: 3px;
    overflow-x: auto; scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain;
    scrollbar-width: none;
}
.forecast-nav__track::-webkit-scrollbar { display: none; }

.forecast-nav__track.is-draggable { cursor: grab; }

.forecast-nav__track.is-grabbing { cursor: grabbing; user-select: none; scroll-behavior: auto; }
.forecast-nav__chip {
    flex: 0 0 auto;
    min-width: 2.1em; height: 2.1em; padding: 0 .5em;
    display: inline-flex; align-items: center; justify-content: center;
    border: 0; border-radius: var(--radius-pill, 999px);
    background: transparent; color: var(--color-heading);
    font: inherit; font-weight: 700; font-size: .85rem; line-height: 1;
    cursor: pointer;
    transition: background .15s, color .15s, transform .1s;
}
.forecast-nav__chip:hover { background: color-mix(in srgb, var(--site-color, #a0bcdd) 20%, transparent); }
.forecast-nav__chip:active { transform: scale(.92); }
.forecast-nav__chip.is-active { background: var(--site-color-dark, #4a6da7); color: #fff; }

.forecast-nav__chip-short { display: none; }

.forecast-nav::after {
    content: "";
    position: absolute;
    top: 2px; right: var(--space-1); bottom: 2px;
    width: 40px;
    pointer-events: none;
    z-index: 2;
    opacity: 0;
    transition: opacity .2s;
    border-radius: var(--radius-pill, 999px);
    background: linear-gradient(270deg, rgba(40, 51, 95, .20), transparent);
}
.forecast-nav.is-scroll-right::after { opacity: 1; }

.calc-cpu-panel {
    box-shadow: var(--glass-highlight), 0 0 2px rgba(239, 90, 111, .30), 0 3px 12px rgba(239, 90, 111, .24);
}

.calc-result--plain { padding: 0; }

.calc-empty { width: fit-content; max-width: 100%; }

.life-result { display: flex; flex-direction: column; gap: var(--layer-gap); }

.life-head { display: flex; align-items: center; gap: var(--space-4, 16px); flex-wrap: wrap; }

.life-head--sm { gap: var(--space-3); justify-content: flex-start; }
.life-head--sm .ym-stats { margin-left: auto; }
.life-birth {
    flex: 0 0 auto;
    display: flex; align-items: center; gap: var(--space-3, 12px);
    padding: var(--space-3, 12px);
    background: var(--glass-bg-strong);
    border-radius: var(--radius-lg);
    box-shadow: var(--glass-highlight), var(--glass-shadow);
}
.life-birth__label {
    font-family: var(--font-head, inherit);
    font-size: .82rem; line-height: 1.15; text-align: left;
    text-transform: uppercase; letter-spacing: .02em;
    color: var(--color-heading);
}
.life-birth__card { width: 60px; height: auto; display: block; border-radius: 4px; box-shadow: var(--glass-shadow); }

.life-block { display: flow-root; }
.life-block > h3 { margin: 0 0 var(--space-3, 12px); font-size: 1.05rem; font-weight: var(--fw-bold); color: var(--color-heading); }
.life-block > p:first-child { margin-top: 0; font-weight: var(--fw-bold); color: var(--color-heading); }
.life-block > p:last-child { margin-bottom: 0; }

.life-block img {
    float: left;
    width: 100px; height: auto;
    margin: 0 var(--space-3, 12px) var(--space-2, 8px) 0;
    border-radius: 4px;
    box-shadow: var(--glass-shadow);
}
.life-block img.js-anl-card {
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease;
}
.life-block img.js-anl-card:hover,
.life-block img.js-anl-card:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 0 2px rgba(80,68,56,.20), 0 6px 18px rgba(80,68,56,.26);
}
.life-block img.js-anl-card.is-people-card:hover,
.life-block img.js-anl-card.is-people-card:focus-visible {
    box-shadow: var(--glass-shadow), 0 0 8px 1px color-mix(in srgb, var(--people-card-color, var(--color-club, #d4a23c)) 55%, transparent);
}
.life-block .people-ring {
    float: left;
    width: 100px;
    max-width: 100px;
    margin: 0 var(--space-3, 12px) var(--space-2, 8px) 0;
}
.life-block .people-ring > img { float: none; margin: 0; width: 100px; }

.life-block .people-ring > img.js-anl-card:hover,
.life-block .people-ring > img.js-anl-card:focus-visible { transform: none; box-shadow: var(--glass-shadow); }

.life-block ul { display: flow-root; }
.life-block ul:last-child { margin-bottom: 0; }

@media (max-width: 550px) {
    .life-block > h3 { text-align: center; }
    .life-block img,
    .life-block .people-ring { float: none; display: block; margin: 0 auto var(--space-3, 12px); }
}

.calc-result__text > p:last-child { margin-bottom: 0; }

/* §c12 — карта кармы: заголовок .karma-heading + абзацы белыми панелями */
.karma-heading { padding-left: var(--space-4, 16px); margin-bottom: var(--space-1); }
.karma-block p { display: flow-root; margin: 0; }
.karma-block img {
    float: left;
    width: 80px; height: auto;
    margin: 0 var(--space-3, 12px) var(--space-2, 8px) 0;
    border-radius: 4px;
}
.karma-block img.js-anl-card {
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease;
}
.karma-block img.js-anl-card:hover,
.karma-block img.js-anl-card:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 0 2px rgba(80,68,56,.20), 0 6px 18px rgba(80,68,56,.26);
}
.karma-block img.js-anl-card.is-people-card:hover,
.karma-block img.js-anl-card.is-people-card:focus-visible {
    box-shadow: var(--glass-shadow), 0 0 8px 1px color-mix(in srgb, var(--people-card-color, var(--color-club, #d4a23c)) 55%, transparent);
}
.karma-block .people-ring {
    float: left;
    width: 80px;
    max-width: 80px;
    margin: 0 var(--space-3, 12px) var(--space-2, 8px) 0;
}
.karma-block .people-ring > img { float: none; margin: 0; width: 80px; }
.karma-block .people-ring > img.js-anl-card:hover,
.karma-block .people-ring > img.js-anl-card:focus-visible { transform: none; box-shadow: var(--glass-shadow); }
@media (max-width: 768px) {
    .karma-heading { padding-left: var(--space-3, 12px); }
}
@media (max-width: 550px) {
    .karma-block img,
    .karma-block .people-ring { float: none; display: block; margin: 0 auto var(--space-3, 12px); }
}

.marry-heading { padding-left: var(--space-3); }
.marry-factor { display: flex; gap: var(--layer-gap); align-items: flex-start; }
.marry-factor__num {
    flex: 0 0 auto;
    display: flex; align-items: center; justify-content: center;
    width: 56px; height: 56px;
    background: #fff; border: 1px solid var(--glass-border);
    border-radius: 50%;
    box-shadow: var(--glass-highlight), var(--glass-shadow);
    font-family: var(--font-heading, inherit);
    font-weight: var(--fw-bold); font-size: 1.7rem; line-height: 1;
    color: var(--brand);
}
.marry-factor__body { flex: 1; min-width: 0; }

.marry-factor__num--suit { font-size: 2.3rem; line-height: 1; padding-bottom: 8px; }

.marry-factor__num.is-suit-red { color: #c0392b; }
.marry-factor__num.is-suit-black { color: var(--color-heading); }

.marry-factor__body .ym-sec { margin-top: var(--space-3); }

@media (max-width: 768px) {
    .card-name-result .calc-media { margin-top: calc(var(--space-3) - var(--layer-gap)); }

    .number-card-result { margin-top: calc(var(--space-3) - var(--layer-gap)); }
}
@media (max-width: 768px) {
    .marry-factor { flex-direction: column; }
}
@media (max-width: 550px) {
    .marry-factor__num { width: 48px; height: 48px; }
}

/* §c13 — плашка-заметка расчётов (предупреждения/статусы) */
.calc-note-panel {
    width: fit-content;
    max-width: 100%;
    margin: 0;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-lg);
    background: var(--glass-bg-strong);
    box-shadow: var(--glass-highlight), var(--glass-shadow);
    font-size: .92rem;
    line-height: 1.45;
    color: var(--color-heading);
}
.calc-note-panel--coral { box-shadow: var(--glass-highlight), 0 0 2px rgba(239, 90, 111, .30), 0 3px 12px rgba(239, 90, 111, .24); }
.calc-note-panel--green { box-shadow: var(--glass-highlight), 0 0 2px rgba(46, 125, 50, .30), 0 3px 12px rgba(46, 125, 50, .24); }
.calc-note-panel--gold  { box-shadow: var(--glass-highlight), 0 0 2px rgba(212, 162, 60, .32), 0 3px 12px rgba(212, 162, 60, .26); }

.calc-expr-row { display: grid; grid-template-columns: 1fr auto 1fr; gap: var(--space-2, 8px); align-items: end; }
.calc-expr-row > * { min-width: 0; }
.calc-expr-row .am-select { width: 100%; }
.calc-expr {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2, 8px);
    width: 100%;
    max-width: 480px;
    margin-inline: auto;
}

.calc-expr .calc-deck__card { flex: 1 1 0; width: auto; min-width: 0; max-width: 140px; height: auto; }
.calc-expr__op {
    flex: 0 0 auto;
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--color-text-muted);
    line-height: 1;
}

.calc-note {
    padding: var(--space-3, 12px) var(--space-4, 16px);
    border-radius: var(--radius, 8px);
    background: var(--glass-bg-tint, #a0bcdd);
    color: var(--color-heading);
    font-size: .92rem;
    line-height: 1.45;
}
.calc-note--warn {
    background: color-mix(in srgb, var(--action) 14%, #fff);
    color: var(--color-heading);
}
.calc-note strong { font-weight: 600; }

.calc-idx--compat  { color: #2e7d32; }
.calc-idx--attract { color: var(--color-club, #d4a23c); }
.calc-idx--tension { color: var(--action, #ef5a6f); }

.calc-top-list { display: flex; flex-direction: column; gap: var(--space-4, 24px); }

.calc-top-item { display: flex; gap: var(--space-3, 16px); align-items: flex-start; }
.calc-top-item__head { flex: 0 0 auto; flex-direction: column; align-items: stretch; width: 200px; gap: var(--space-2, 8px); }
.calc-top-item__toprow { display: flex; gap: var(--space-2, 8px); }
.calc-top-item__toprow > .ym-stat { flex: 1 1 0; min-width: 0; padding-inline: var(--space-2); }
.calc-top-item__date .ym-stat__value { white-space: nowrap; }

.calc-top-item__card .ym-stat__value { font-size: 1.4rem; }

.calc-top-item__num .ym-stat__value { color: var(--color-heading); }
.calc-top-item__suit { color: var(--color-heading); }
.calc-top-item__suit.calc-suit--red { color: #d23b53; }

.calc-top-item__idx { flex: 1 1 auto; min-width: 0; display: flex; gap: var(--space-3, 16px); }
.calc-top-item__idx > .ym-sec { flex: 1 1 0; min-width: 0; padding: var(--space-3); }

@media (max-width: 1300px) {
    .calc-top-item__idx { flex-direction: column; }
}

@media (max-width: 768px) {
    .calc-top-item__head { width: auto; }
}

@media (max-width: 550px) {
    .calc-top-item { flex-direction: column; }
    .calc-top-item__head { flex-direction: row; flex-wrap: wrap; align-items: stretch; }
    .calc-top-item__head .ym-stat { padding: var(--space-2) var(--space-3); }
}

.calc-table-wrap { overflow-x: auto; }
.calc-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.calc-table th, .calc-table td {
    padding: var(--space-2) var(--space-2h);
    text-align: center;
    border-bottom: 1px solid var(--glass-border);
}
.calc-table thead th { color: var(--color-heading); font-weight: 600; white-space: nowrap; }

@media (max-width: 768px) { .calc-table thead th { white-space: normal; } }

@media (max-width: 768px) { .card-hour-table thead th { font-size: .8rem; } }
@media (max-width: 400px) {
    .card-hour-table.ym-sec { padding: var(--space-2) var(--space-2) var(--space-3); }
    .card-hour-table th { padding-left: var(--space-2); padding-right: var(--space-2); }
}
.calc-suit--red { color: #d23b53; }

/* §c14 — календарь карт рождения (study.birthday.calendar): sticky-столбец + скролл */
.calc-cal.ym-sec { position: relative; padding: 0; overflow: hidden; }
.calc-cal__scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
}

.calc-cal__table { margin: 0; border-collapse: separate; border-spacing: 0; }
.calc-cal__table th,
.calc-cal__table td { border-bottom: 1px solid var(--glass-border); }
.calc-cal__mon { white-space: nowrap; }

.calc-cal__day {
    position: sticky; left: 0; z-index: 3;
    background: var(--glass-bg-strong, #fff);
    color: var(--color-heading);
    font-weight: 700;
}

.calc-cal__corner {
    position: sticky; left: 0; z-index: 4;
    background: var(--glass-bg-strong, #fff);
    color: var(--color-heading);
}
/* §c15 — разделитель sticky-столбца чисел (линия по правому краю) */
.calc-cal__rule {
    position: absolute;
    top: 0; bottom: 0;
    left: var(--cal-daycol, 0);
    right: 0;
    border-left: 1px solid rgba(40, 51, 95, .12);
    border-radius: var(--radius-lg) 0 0 var(--radius-lg);
    background: none;
    pointer-events: none;
    z-index: 5;
}
/* §c16 — левый индикатор скролла (тень у правого края sticky-столбца) */
.calc-cal::before {
    content: "";
    position: absolute;
    top: 0; bottom: 0;
    left: var(--cal-daycol, 0);
    width: 22px;
    pointer-events: none;
    z-index: 6;
    opacity: 0;
    transition: opacity .2s;
    background: linear-gradient(90deg, rgba(40, 51, 95, .18), transparent);

    border-radius: var(--radius-lg) 0 0 var(--radius-lg);
}
.calc-cal.is-scroll-left::before { opacity: 1; }
.calc-cal__cell { padding: 0; }

.calc-cal__card {
    display: block;
    width: 100%;
    min-height: 2.4em;
    padding: var(--space-2) var(--space-2h);

    border: 0 solid transparent;
    border-left-width: 3px;
    border-right-width: 3px;
    background: transparent;
    background-clip: padding-box;
    font: inherit;
    color: inherit;
    cursor: pointer;
    border-radius: var(--radius, 8px);
    transition: background .15s, transform .1s;
}
.calc-cal__card:hover,
.calc-cal__card:focus-visible {
    background: color-mix(in srgb, var(--site-color, #a0bcdd) 18%, transparent);
}
.calc-cal__card:hover:not(.is-people-card):not(.is-people-bday),
.calc-cal__card:focus-visible:not(.is-people-card):not(.is-people-bday) { outline: none; }
.calc-cal__card:active { transform: scale(.94); }
.calc-cal__card.calc-suit--red { color: #d23b53; }

.calc-card__suit { font-size: 1.18em; line-height: 1; }

/* §c17 — боковой «воздух» карт в таблице margin'ом, не паддингом */
.calc-cal__cell .calc-cal__card {
    border-left-width: 0;
    border-right-width: 0;
    width: calc(100% - 6px);
    margin-inline: 3px;
}

.calc-cal__cell.is-today .calc-cal__card {
    background-color: color-mix(in srgb, var(--site-color, #a0bcdd) 26%, transparent);

    box-shadow: 0 0 2px color-mix(in srgb, var(--site-color, #a0bcdd) 45%, transparent),
                0 3px 8px color-mix(in srgb, var(--site-color, #a0bcdd) 40%, transparent);
    font-weight: 700;
}

.calc-month__cell.is-today .calc-month__num { color: var(--site-color-dark, #4a6da7); }
.calc-month__cell.is-today .calc-cal__card {
    background-color: color-mix(in srgb, var(--site-color, #a0bcdd) 26%, transparent);
    box-shadow: 0 0 2px color-mix(in srgb, var(--site-color, #a0bcdd) 45%, transparent),
                0 3px 8px color-mix(in srgb, var(--site-color, #a0bcdd) 40%, transparent);
    font-weight: 700;
}

.calc-cal__cell .calc-cal__card.is-people-card,
.calc-cal__cell .calc-cal__card.is-people-bday,
.calc-cal__cell .people-ring--cal > .calc-cal__card {
    --cal-people-line: 2px;

    border-width: 0;
}

.calc-month__cell .calc-cal__card.is-people-card,
.calc-month__cell .calc-cal__card.is-people-bday,
.calc-month__cell .people-ring--cal > .calc-cal__card {
    --cal-people-line: 2px;
    border-width: 0;
    padding: 3px 2px;
}
.calc-cal__card.is-people-card {
    outline: var(--cal-people-line, 2px) solid color-mix(in srgb, var(--people-card-color, var(--color-club, #d4a23c)) calc(80% * var(--cal-deck-on, 0)), transparent);
    outline-offset: calc(var(--cal-people-line, 2px) * -1);
}
.calc-cal__card.is-people-bday {
    outline: var(--cal-people-line, 2px) solid color-mix(in srgb, var(--people-bday-color, var(--people-card-color, var(--color-club, #d4a23c))) calc(80% * var(--cal-bday-on, 1)), transparent);
    outline-offset: calc(var(--cal-people-line, 2px) * -1);
}
.calc-cal__card.is-people-card.is-people-bday {
    outline-color: color-mix(
        in srgb,
        var(--people-bday-color, var(--color-club, #d4a23c)) calc(80% * var(--cal-bday-on, 1)),
        color-mix(in srgb, var(--people-card-color, var(--color-club, #d4a23c)) calc(80% * var(--cal-deck-on, 0)), transparent)
    );
}

.calc-cal__cell > .people-ring--cal,
.calc-month__cell > .people-ring--cal {
    display: flex;
    width: calc(100% - 6px);
    max-width: none;
    border-radius: var(--radius, 8px);
    transition: none;
}
.calc-cal__cell > .people-ring--cal { margin-inline: 3px; width: calc(100% - 6px); }
.calc-month__cell > .people-ring--cal { flex: 1; height: 100%; width: calc(100% - 6px); margin: 0 3px 2px; }

.calc-cal__cell > .people-ring--cal > .calc-cal__card,
.calc-cal__cell > .people-ring--cal > .calc-cal__card.is-people-card,
.calc-cal__cell > .people-ring--cal > .calc-cal__card.is-people-bday,
.calc-month__cell > .people-ring--cal > .calc-cal__card,
.calc-month__cell > .people-ring--cal > .calc-cal__card.is-people-card,
.calc-month__cell > .people-ring--cal > .calc-cal__card.is-people-bday {
    width: 100%;
    height: 100%;
    margin: 0;
}

.people-ring--cal > .calc-cal__card.is-people-card,
.people-ring--cal > .calc-cal__card.is-people-bday { outline: none; }

.people-ring--cal:hover { transform: none; }
.people-ring--cal::before {
    inset: 0;
    padding: var(--cal-people-line, 2px);
    border-radius: inherit;
    opacity: var(--cal-deck-on, 0);
}
.people-ring--bday::after,
.people-ring--cal:has(> .is-people-bday)::after {
    content: "";
    position: absolute;
    inset: 0;
    padding: var(--cal-people-line, 2px);
    border-radius: inherit;
    background: var(--people-ring-bday, var(--people-bday-color, var(--color-club, #d4a23c)));
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
            mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
            mask-composite: exclude;
    pointer-events: none;
    opacity: var(--cal-bday-on, 1);
}

.calc-cal::after {
    content: "";
    position: absolute;
    top: 0; bottom: 0; right: 0;
    width: 26px;
    pointer-events: none;
    z-index: 6;
    opacity: 0;
    transition: opacity .2s;
    background: linear-gradient(270deg, rgba(40, 51, 95, .16), transparent);
}
.calc-cal.is-scroll-right::after { opacity: 1; }

.calc-cal__hint {
    position: absolute;
    right: var(--space-3); top: var(--space-2);
    margin: 0;
    z-index: 7;
    font-size: .78rem;
    color: var(--color-text-muted, #6b7088);
    background: var(--glass-bg-strong, #fff);
    padding: 2px var(--space-2h);
    border-radius: 999px;
    box-shadow: var(--glass-shadow);
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s;
}
.calc-cal.is-scroll-right:not(.is-cal-scrolled) .calc-cal__hint { opacity: 1; }

.calc-cal__float {
    position: fixed;
    top: 0; left: 0;
    overflow: hidden;

    z-index: 2;
    box-sizing: border-box;
    background: var(--glass-bg-strong, #fff);

    border-bottom: 1px solid var(--glass-border);
    box-shadow: 0 6px 16px -6px rgba(40, 51, 95, .28);
    border-radius: 0 0 var(--radius-sm, 6px) var(--radius-sm, 6px);
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity .2s, transform .2s;
    pointer-events: none;
}
.calc-cal__float.is-visible { opacity: 1; transform: none; }

.calc-cal__float::after {
    content: "";
    position: absolute;
    top: 0; bottom: 0;
    left: 0;
    border-left: 1px solid rgba(40, 51, 95, .12);
    pointer-events: none;
    z-index: 1;
}

.calc-cal__float-table .calc-cal__corner { position: static; }
.calc-cal__float-table { margin: 0; will-change: transform; }
.calc-cal__float-table thead th { border-bottom: 0; }
.calc-cal__float-table tbody { visibility: hidden; }

@property --cal-deck-on {
    syntax: "<number>";
    inherits: true;
    initial-value: 0;
}
@property --cal-bday-on {
    syntax: "<number>";
    inherits: true;
    initial-value: 1;
}
.calc-result:has(.calc-cal-toolbar) {
    --cal-deck-on: 0;
    --cal-bday-on: 1;
    transition: --cal-deck-on .32s ease, --cal-bday-on .32s ease;
}
.calc-result.is-cal-by-deck { --cal-deck-on: 1; --cal-bday-on: 0; }

.calc-cal-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: var(--space-2);
}
.calc-cal-toolbar .calc-cal-switch { grid-column: 2; margin: 0; }
.calc-cal-bday {
    grid-column: 3; justify-self: end; max-width: 100%;
    display: inline-flex; align-items: center;
    flex: 0 0 auto; margin: 0;
    padding: 5px 10px 5px 5px;
    background: #fff; box-shadow: var(--glass-shadow);
    border-radius: var(--radius-pill);
}
.calc-cal-bday .checkbox-text { font-size: .78rem; white-space: nowrap; }
@media (max-width: 720px) {
    .calc-cal-toolbar { grid-template-columns: 1fr; justify-items: center; }
    .calc-cal-toolbar .calc-cal-switch,
    .calc-cal-toolbar .calc-cal-bday { grid-column: auto; }
    .calc-cal-bday { justify-self: center; }
}
.calc-cal-switch { margin: 0; }

.calc-cal-view[hidden] { display: none; }

.calc-cal-months {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--layer-gap, var(--space-3));
}

@media (max-width: 1400px) { .calc-cal-months .calc-month__cell .calc-cal__card { font-size: .98rem; } }
@media (max-width: 1300px) { .calc-cal-months { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px)  { .calc-cal-months { grid-template-columns: minmax(0, 1fr); } }

.calc-month.ym-sec { padding: var(--space-3) var(--space-2) var(--space-2); }
.calc-month__title {
    margin: 0 0 var(--space-3);
    font-weight: var(--fw-bold);
    color: var(--color-heading); text-align: center;
}
.calc-month__grid {
    list-style: none; margin: 0; padding: 0;
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));

    gap: 0;
}

.calc-month__cell {
    display: flex; flex-direction: column; align-items: stretch; gap: var(--space-1);
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--glass-border);
}

.calc-month__cell--last-row { border-bottom-color: transparent; }
.calc-month__num {
    font-size: .72rem; font-weight: 700; line-height: 1;
    color: var(--color-text-muted, #6b7088);
    align-self: center;
}
.calc-month__cell .calc-cal__card {
    flex: 1; height: 100%;
    padding: 3px 2px; font-size: 1.05rem;
    border-left-width: 0;
    border-right-width: 0;
    width: calc(100% - 6px);
    margin: 0 3px 2px;
}

@media (max-width: 430px) {
    .calc-month__cell .calc-cal__card,
    .calc-month__cell .calc-cal__card.is-people-card,
    .calc-month__cell .calc-cal__card.is-people-bday,
    .calc-month__cell > .people-ring--cal {
        width: calc(100% - 2px);
        margin: 0 1px 2px;
    }
    .calc-month__cell > .people-ring--cal > .calc-cal__card,
    .calc-month__cell > .people-ring--cal > .calc-cal__card.is-people-card,
    .calc-month__cell > .people-ring--cal > .calc-cal__card.is-people-bday {
        width: 100%;
        margin: 0;
    }
}

.calc-cal-months.topcal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 640px) { .calc-cal-months.topcal { grid-template-columns: minmax(0, 1fr); } }

.topcal .calc-month {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
    border-radius: var(--radius-lg);
    padding: var(--layer-gap);
}

.topcal-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: var(--space-1);
}

.topcal-cell, .topcal-cell--joker {
    display: flex; flex-direction: column; align-items: center; gap: 3px;
    padding: var(--space-2);
    background: var(--glass-bg-strong, #fff);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius, 8px);
    box-shadow: var(--glass-highlight);
    font: inherit;
}
.topcal-cell { cursor: pointer; transition: box-shadow .15s, transform .1s; }
.topcal-cell:hover { border-color: var(--site-color); box-shadow: var(--glass-highlight), 0 1px 4px rgba(80,68,56,.12); }
.topcal-cell:active { transform: scale(.96); }

.topcal-cell__day {
    display: flex; align-items: center; justify-content: center;
    width: 22px; height: 22px;
    background: #fff; border: 1px solid var(--glass-border);
    border-radius: 50%;
    box-shadow: var(--glass-highlight), var(--glass-shadow);
    font-size: .7rem; font-weight: 700; line-height: 1;
    color: var(--color-heading);
}
.topcal-cell__card { font-size: 1.05rem; font-weight: 700; line-height: 1.1; color: var(--color-heading); }
.topcal-cell__suit { color: var(--color-heading); }
.topcal-cell__suit.calc-suit--red { color: #d23b53; }
.topcal-cell__rank { font-size: .95rem; line-height: 1; font-weight: 700; color: var(--brand); }

.topcal-cell__hash { font-size: .72rem; color: var(--site-color-dark, #4a6da7); }

.topcal-cell.is-top {
    background: color-mix(in srgb, var(--action, #ef5a6f) 12%, var(--glass-bg-strong, #fff));
    border-color: color-mix(in srgb, var(--action, #ef5a6f) 45%, transparent);
}
.topcal-cell--joker { opacity: .5; }
.topcal-cell__joker { font-size: .82rem; font-weight: 700; color: var(--color-text-muted, #6b7088); }

.topcal-pop__loading { padding: var(--space-4); text-align: center; color: var(--color-text-muted, #6b7088); }
.topcal-pop__links { display: flex; flex-direction: column; gap: var(--space-3); margin-bottom: var(--space-4); }
.topcal-link { display: flex; gap: var(--space-3); align-items: flex-start; }
.topcal-link__img { flex: 0 0 auto; width: 56px; height: 56px; object-fit: contain; border-radius: 8px; }
.topcal-link__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.topcal-link__name { font-weight: 700; color: var(--color-heading); }
.topcal-link__text { color: var(--color-text); font-size: .9rem; }
.topcal-pop__idx { display: flex; flex-direction: column; gap: var(--space-3); }

.calc-deck__card.js-anl-card { cursor: pointer; transition: transform .16s ease, box-shadow .16s ease; }
.calc-deck__card.js-anl-card:hover,
.calc-deck__card.js-anl-card:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 0 2px rgba(80,68,56,.20), 0 6px 18px rgba(80,68,56,.26);
}
.calc-deck__card.js-anl-card:not(.is-people-card):hover,
.calc-deck__card.js-anl-card:not(.is-people-card):focus-visible { outline: none; }
.calc-deck__card.js-anl-card.is-people-card:hover,
.calc-deck__card.js-anl-card.is-people-card:focus-visible {
    box-shadow: var(--glass-shadow), 0 0 8px 1px color-mix(in srgb, var(--people-card-color, var(--color-club, #d4a23c)) 55%, transparent);
}

.cal-card-pop { margin: 0; text-align: center; }
.cal-card-pop__img {
    display: block;
    width: 120px; max-width: 100%;
    height: auto;
    margin: 0 auto;
    border-radius: 4px;
    box-shadow: 0 0 2px rgba(80,68,56,.20), 0 6px 20px rgba(80,68,56,.28);
}
.cal-card-pop--with-text {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    align-items: flex-start;
    text-align: left;
}
.cal-card-pop--with-text .cal-card-pop__img { margin: 0; flex: 0 0 auto; }
.cal-card-pop__text {
    flex: 1 1 260px;
    min-width: 0;
    color: var(--color-text, #333);
    line-height: 1.55;
}
.cal-card-pop__text p { margin: 0 0 var(--space-2); }
.cal-card-pop__text p:last-child { margin-bottom: 0; }
.cal-card-pop__text p.cal-card-pop__lead {
    margin-bottom: var(--space-2);
    padding-bottom: var(--space-2);
    border-bottom: 1px solid var(--glass-border);
    color: var(--color-text-muted);
    font-style: italic;
}
.cal-card-pop__lead b { font-style: normal; color: var(--color-heading); }
@media (max-width: 560px) {
    .cal-card-pop--with-text { justify-content: center; }
    .cal-card-pop--with-text .cal-card-pop__img { margin: 0 auto; }
}

.cal-card-people {
    flex: 1 1 100%;
    margin-top: var(--space-2);
    padding: var(--space-3);
    border-radius: var(--radius-md, 10px);
    background: var(--glass-bg-frost);
    box-shadow: var(--glass-highlight), var(--glass-shadow);
}
.cal-card-people__head {
    font-weight: var(--fw-bold);
    color: var(--site-color-dark, #4a6da7);
    margin-bottom: var(--space-2);
}
.cal-card-people__item {
    display: flex; align-items: center; gap: var(--space-2);
    padding: 4px 0;
}
.cal-card-people__item + .cal-card-people__item { border-top: 1px solid rgba(80,68,56,.12); }
.cal-card-people__name { font-weight: var(--fw-medium, 600); color: var(--color-heading); }

.cal-card-people__rel {
    display: inline-flex; align-items: center;
    padding: 2px 10px; border-radius: var(--radius-pill);
    background: var(--site-color-light); color: var(--site-color-dark);
    font-size: .72rem; font-weight: var(--fw-medium); line-height: 1.5; white-space: nowrap;
}

.cal-card-people__link {
    display: inline-flex; align-items: center; gap: 6px;
    margin-top: var(--space-2h);
    color: var(--site-color-dark); font-size: .82rem; font-weight: var(--fw-medium);
    text-decoration: none; transition: color var(--transition);
}
.cal-card-people__link:hover { color: var(--action); }
.cal-card-people__link svg { width: 15px; height: 15px; }

@media (min-width: 769px) {
    .cal-card-people { display: grid; grid-template-columns: 1fr 1fr; column-gap: 0; align-content: start; }
    .cal-card-people__head,
    .cal-card-people__link { grid-column: 1 / -1; }

    .cal-card-people__item + .cal-card-people__item { border-top: 0; }

    .cal-card-people__item:nth-child(even) { padding-right: var(--space-3); border-right: 1px solid rgba(80,68,56,.14); }
    .cal-card-people__item:nth-child(odd)  { padding-left: var(--space-3); }

    .cal-card-people:not(:has(.cal-card-people__item ~ .cal-card-people__item)) { grid-template-columns: 1fr; }
    .cal-card-people:not(:has(.cal-card-people__item ~ .cal-card-people__item)) .cal-card-people__item { border-right: 0; padding-right: 0; padding-left: 0; }
}

.calc-quad { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: var(--space-2, 8px); margin: 0; }
.calc-quad td { text-align: center; vertical-align: top; }

.calc-quad__cell { position: relative; display: inline-block; width: 100%; max-width: 80px; }
.calc-quad__card {
    width: 100%;
    height: auto;
    border-radius: 2px;
    box-shadow: var(--glass-shadow);
    display: block;
    margin: 0 auto;
    cursor: pointer;
    transition: transform .12s, box-shadow .15s;
}

.calc-quad__card:hover {
    transform: translateY(-2px);
    box-shadow: var(--glass-shadow), 0 0 0 2px color-mix(in srgb, var(--site-color, #a0bcdd) 45%, transparent);
}

.calc-quad__num {
    position: absolute;
    top: -5px;
    right: -5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    height: 30px;
    padding: 0 4px;
    background: #fff;
    border-radius: var(--radius-pill, 999px);
    box-shadow: var(--glass-shadow);
    color: var(--color-heading);
    font-size: .85rem;
    font-weight: var(--fw-bold);
    line-height: 1;
}

@media (max-width: 768px) {
    .ym-sec.calc-quad-wrap { padding: var(--space-1); }
    .calc-quad__num { top: -3px; right: -3px; min-width: 20px; height: 20px; font-size: .7rem; }
}

.calc-result__empty {
    margin: 0;
    color: var(--color-text-muted);
    font-size: .95rem;
}

.calc-lock__body {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: var(--space-3, 12px); text-align: center;
}

.calc-lock__icon { flex: 0 0 auto; width: 34px; height: 34px; color: var(--color-club, #d4a23c); margin-bottom: calc(var(--space-3, 12px) / -2); }
.calc-lock__title { margin: 0; font-family: var(--font-heading, inherit); color: var(--color-heading); }
.calc-lock__text { margin: 0; max-width: 70ch; color: var(--color-text-muted); font-size: .92rem; }

.calc-result--cols2 > .calc-lock { grid-column: 1 / -1; }
.calc-result > .calc-lock { width: 100%; }
.calc-lock__actions {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
    gap: var(--space-2, 8px);
}

/* §c18 — пометка премиум-панелей (золотая тень для подписчиков) */
.calc-result__block--premium {
    position: relative;
    box-shadow: var(--glass-highlight), 0 0 2px rgba(212, 162, 60, .34), 0 3px 14px rgba(212, 162, 60, .20);
    transition: box-shadow .25s ease;
}
.calc-result__block--premium:hover {
    box-shadow: var(--glass-highlight), 0 0 2px rgba(212, 162, 60, .42), 0 5px 20px rgba(212, 162, 60, .28);
}

.calc-result__block--premium > h3 { padding-right: 5rem; }

.calc-premium-badge {
    position: absolute; top: var(--space-2, 8px); right: var(--space-2, 8px);
    display: inline-flex; align-items: center;
    padding: 3px 9px; border-radius: var(--radius-pill, 999px);
    font: 600 .7rem/1 var(--font-ui); letter-spacing: .02em; white-space: nowrap;
    color: color-mix(in srgb, var(--color-club, #d4a23c) 74%, #000);
    background: color-mix(in srgb, var(--color-club, #d4a23c) 15%, #fff);

    box-shadow: 0 0 2px rgba(212, 162, 60, .45), 0 2px 6px rgba(212, 162, 60, .28);
}

.taro { display: flex; flex-direction: column; gap: var(--space-4, 16px); align-items: center; }
.taro__hint { margin: 0; color: var(--color-heading); font-family: var(--font-head, inherit); font-size: 1.1rem; text-align: center; }
.taro__spread {
    display: flex;
    gap: var(--space-4, 16px);
    justify-content: center;
    flex-wrap: wrap;
    perspective: 1200px;
}
.taro-card {
    width: 150px;
    max-width: 40vw;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;

    transition: opacity .3s ease, transform .3s ease;
    aspect-ratio: 3 / 5;
}
.taro-card__inner {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transition: transform .6s cubic-bezier(.2,.7,.2,1);
}
.taro-card.is-flipped .taro-card__inner { transform: rotateY(180deg); }
.taro-card__face {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    border-radius: var(--radius-lg, 16px);
    box-shadow: var(--glass-shadow);
    display: block;
}
.taro-card__face--front { transform: rotateY(180deg); }

/* §c19 — «карта = стекло»: единая тень у всех карт-картинок */
.calc-deck__card,
.calc-card,
.calc-quad__card,
.taro-card__face,
.life-birth__card,
.forecast-yr__main,
.forecast-yr__leg,
.life-block img,
.karma-block img {
    box-shadow: 0 0 2px rgba(80, 68, 56, .20), 0 3px 10px rgba(80, 68, 56, .22);
}

.life-birth__card,
.forecast-card__leg,
.fmonth-cell .forecast-card__main { border-radius: 0; }

.taro--mak .taro-card { aspect-ratio: 4 / 5; transition: opacity .3s ease, transform .3s ease; }
.taro-card.is-flipped { width: 230px; cursor: default; }

.taro--mak:not(.taro--single) .taro__spread {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 150px));
    justify-content: center;
    gap: var(--space-4, 16px);
}
.taro--mak:not(.taro--single) .taro-card { width: 100%; max-width: none; }
@media (max-width: 640px) {
    .taro--mak:not(.taro--single) .taro__spread {
        grid-template-columns: repeat(2, minmax(0, 200px));
        gap: var(--space-2, 8px);
    }
}
@media (max-width: 359px) {
    .taro--mak:not(.taro--single) .taro__spread {
        grid-template-columns: minmax(0, 220px);
        gap: var(--space-2, 8px);
    }
}

.taro--yesno:not(.taro--single) .taro__spread {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 150px));
    justify-content: center;
    gap: var(--space-4, 16px);
}
.taro--yesno:not(.taro--single) .taro-card { width: 100%; max-width: 150px; }
@media (max-width: 500px) {
    .taro--yesno:not(.taro--single) .taro__spread {
        grid-template-columns: repeat(2, minmax(0, 150px));
        gap: var(--space-3, 12px);
    }
    .taro--yesno:not(.taro--single) .taro-card:last-child {
        grid-column: 1 / -1;
        justify-self: center;
    }
}
@media (max-width: 359px) {
    .taro--yesno:not(.taro--single) .taro__spread { grid-template-columns: minmax(0, 150px); }
    .taro--yesno:not(.taro--single) .taro-card:last-child { grid-column: auto; }
}

@media (max-width: 768px) {
    .taro--yesno .taro__texts { text-align: center; }
}
.taro-card.is-hidden { opacity: 0; width: 0; margin: 0; pointer-events: none; overflow: hidden; }
.taro-card:hover:not(.is-flipped):not(.is-hidden) { transform: translateY(-6px); }

.taro__texts { width: 100%; max-width: 640px; }
.taro__texts:empty { display: none; }
.taro--mak .taro__texts { max-width: none; }

.taro--single { flex-direction: row; align-items: flex-start; }
.taro--single .taro__spread { flex: 0 0 auto; }
.taro--single .taro__texts { flex: 1; }
@media (max-width: 768px) {
    .taro--single { flex-direction: column; align-items: center; }
}
.taro-text { line-height: 1.6; }
.taro-text p { margin: 0 0 .7em; }
.taro-text[hidden] { display: none; }

.mx-wrap {
    max-width: 620px;
    margin: 0 auto;
    overflow: hidden;
}

@media (min-width: 901px) {
    .mx-wrap { max-width: 720px; }
}
.mx {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
    font-family: var(--font-ui, inherit);
}
.mx__frame {
    fill: none;
    stroke: var(--color-navy-50, rgba(40,51,95,.5));
    stroke-width: 1.4;
    vector-effect: non-scaling-stroke;
}
.mx__frame--soft { stroke: var(--glass-border); }
.mx__frame--dash { stroke: rgba(40, 51, 95, .35); stroke-dasharray: 5 4; }
.mx__frame--blue  { stroke: var(--brand); }
.mx__frame--coral { stroke: var(--action); }
.mx__node text { font-weight: 600; pointer-events: none; }
.mx__ring { fill: none; stroke: var(--glass-border); stroke-width: 1.2; }
.mx__yearval { font-size: 8px; font-weight: 600; fill: var(--color-heading); pointer-events: none; }
.mx__yearlabel { font-size: 6px; fill: var(--color-text-muted); pointer-events: none; }
.mx__tick { stroke: var(--glass-border); stroke-width: 1; }
.mx__age { font-size: 12px; font-weight: 600; fill: var(--color-heading); }

.mx-sym { font-size: 16px; font-weight: 700; pointer-events: none; paint-order: stroke; stroke-width: .9; stroke-linejoin: round; }
.mx-sym--male   { fill: var(--brand);  stroke: var(--brand); }
.mx-sym--female { fill: var(--action); stroke: var(--action); }
.mx-sym--money  { fill: var(--color-success); font-size: 15px; }
.mx-sym-bg      { fill: #fff; }
.mx-sym-heart   { fill: none; stroke: var(--action); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }

.mx-wrap { position: relative; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.mx-loupe {
    position: absolute; top: 0; left: 0; z-index: 6;
    width: 176px; height: 176px; border-radius: 50%; overflow: hidden;
    background: #fff; border: 2px solid var(--brand);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
    opacity: 0; visibility: hidden;
    transform: translate(8px, 8px);
    transition: transform .2s ease, opacity .14s ease, visibility .14s;
    pointer-events: none;
}
.mx-loupe.is-active { opacity: 1; visibility: visible; }
.mx-loupe__view { display: block; width: 100%; height: 100%; }
@media (min-width: 1025px) { .mx-loupe { display: none; } }

@media (max-width: 600px) {
    .mx-sym         { font-size: 23px; }
    .mx-sym--money  { font-size: 20px; }
    .mx-sym-bg      { r: 13px; }
}

.calc-chakra { width: 100%; border-collapse: collapse; font-size: .9rem; }
.calc-chakra th, .calc-chakra td {
    padding: 7px 10px;
    text-align: center;
    border-bottom: 1px solid var(--glass-border);
}
.calc-chakra thead th { color: var(--color-heading); font-weight: 600; }
.calc-chakra tbody th { text-align: left; font-weight: 600; color: var(--color-heading); }
.calc-chakra .is-total th, .calc-chakra .is-total td { font-weight: 700; }

.mx-purpose { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 6px 0 var(--space-4, 16px); }
.mx-purpose__num {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 34px; height: 34px; padding: 0 8px;
    border-radius: var(--radius-pill, 999px);
    background: #fff; border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow);
    color: var(--color-heading); font-weight: 700;
}
.mx-purpose__op { color: var(--color-text-muted); }

/* §c20 — годовая матрица: сегментированный результат */
.calc-result__block--ym { display: flex; flex-direction: column; gap: var(--layer-gap); }

.ym-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); }

.ym-head__title { margin: 0; padding-left: var(--space-4); color: var(--color-heading); font-size: 1.3rem; font-weight: var(--fw-bold); }
.ym-head__title span { color: var(--brand); }
.ym-stats { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.ym-stat {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    padding: 8px 16px; min-width: 92px; text-align: center;
    background: var(--glass-bg-strong);
    border-radius: var(--radius-lg); box-shadow: var(--glass-highlight), var(--glass-shadow);
}
.ym-stat__label { font-size: .72rem; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: .03em; }
.ym-stat__value { font-family: var(--font-heading); font-weight: var(--fw-bold); font-size: 1.3rem; line-height: 1.1; color: var(--brand); }

.ym-stat--rating .ym-stat__label,
.ym-stat--rating .ym-stat__value { white-space: nowrap; }
.ym-stat--rating .ym-stat__value { letter-spacing: .03em; color: var(--color-club); }

.ym-stat__value--locked { display: inline-flex; align-items: center; gap: 5px; font-size: .95rem; letter-spacing: normal; }
.ym-stat__sep { display: inline-block; width: 5px; height: 5px; margin: 0 7px; background: var(--brand); transform: rotate(45deg); vertical-align: middle; position: relative; top: -2px; }

/* §c21 — секции текста (В плюсе / В минусе / Рекомендации) белыми панелями .ym-sec */
.ym-sec {
    background: var(--glass-bg-strong);
    border-radius: var(--radius-lg); padding: var(--space-4);
    box-shadow: var(--glass-highlight), var(--glass-shadow);
}
.ym-sec__title { margin: 0 0 var(--space-2); font-size: 1rem; font-weight: var(--fw-bold); color: var(--color-heading); }
.ym-sec__title--lg { font-size: 1.25rem; }

.mx-energy {
    display: flex; flex-direction: column; gap: var(--layer-gap);
    padding: var(--space-4);
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: var(--glass-radius);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
}
.mx-energy > .ym-sec__title, .mx-energy > .calc-result__lead { margin: 0; }

.ym-sec__num {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 28px; height: 28px; padding: 0 6px;
    margin-left: 8px; vertical-align: middle; position: relative; top: -2px;
    border-radius: var(--radius-pill, 999px);
    background: #fff; border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow);
    color: var(--color-heading); font-weight: 700; font-size: .95rem; line-height: 1;
}
.ym-sec .calc-result__text { line-height: 1.6; }
.ym-sec .calc-result__text p { margin: 0 0 .7em; }
.ym-sec .calc-result__text p:last-child { margin-bottom: 0; }
.ym-sec--plus  { box-shadow: var(--glass-highlight), 0 0 2px rgba(46, 125, 50, .30), 0 3px 10px rgba(46, 125, 50, .24); }
.ym-sec--plus  .ym-sec__title { color: var(--color-success); }
.ym-sec--minus { box-shadow: var(--glass-highlight), 0 0 2px rgba(239, 90, 111, .30), 0 3px 10px rgba(239, 90, 111, .24); }
.ym-sec--minus .ym-sec__title { color: var(--action-dark); }
.ym-sec--reco  { box-shadow: var(--glass-highlight), 0 0 2px rgba(212, 162, 60, .32), 0 3px 10px rgba(212, 162, 60, .26); }
.ym-sec--reco  .ym-sec__title { color: var(--color-club); }

.ym-lead {
    width: fit-content;
    max-width: 100%;
    padding: var(--space-3) var(--space-4);
    background: var(--bg-page);
    border-radius: var(--radius-lg);
    box-shadow: var(--glass-highlight), var(--glass-shadow);
}
.ym-lead .calc-result__lead { color: var(--color-heading); font-style: italic; font-size: .85rem; margin: 0; }

.mx-acc {
    padding: var(--space-4);
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: var(--glass-radius);
    box-shadow: var(--glass-shadow), var(--glass-highlight);
}

.mx-acc .ym-sec__title { margin-bottom: var(--space-4); }

.mx-acc__list { display: flex; flex-direction: column; gap: var(--layer-gap); }
.mx-acc__item { border-radius: var(--glass-radius); overflow: hidden; cursor: pointer; }
.mx-acc__q { margin: 0; }
.mx-acc__trigger {
    width: 100%; display: flex; align-items: center; justify-content: space-between;
    gap: var(--space-3); padding: var(--space-4);
    background: transparent; border: none; cursor: pointer; text-align: left;
    font-family: var(--font-heading); font-size: 1.05rem; line-height: 1.4;
    font-weight: var(--fw-semibold); color: var(--color-heading);
    transition: color var(--btn-transition);
}
.mx-acc__trigger:hover { color: var(--brand); }
.mx-acc__item.is-open .mx-acc__trigger { color: var(--brand); }
.mx-acc__trigger:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--action-light); }
.mx-acc__label { flex: 1 1 auto; min-width: 0; }
.mx-acc__icon {
    flex: 0 0 auto; width: 8px; height: 8px;
    background-color: var(--brand);
    border-right: 2px solid var(--brand); border-bottom: 2px solid var(--brand);
    transform: rotate(45deg);
    offset-path: path("M0 4 Q 14 28 0 52"); offset-rotate: 0deg; offset-distance: 0%;
    transition: offset-distance var(--anim-expand-dur) var(--anim-expand);
    position: relative; z-index: 1;
}
.mx-acc__item.is-open .mx-acc__icon { offset-distance: 100%; }
.mx-acc__answer {
    display: grid; grid-template-rows: 0fr;
    transition: grid-template-rows var(--anim-expand-dur) var(--anim-expand);
}
.mx-acc__item.is-open .mx-acc__answer { grid-template-rows: 1fr; }
.mx-acc__answer-inner { overflow: hidden; min-height: 0; }
.mx-acc__body {
    padding: 0 calc(var(--space-4) + var(--space-3) + var(--space-2)) var(--space-4) var(--space-4);
    color: var(--color-text-muted); font-size: .95rem; line-height: 1.6;
}
.mx-acc__body > * { margin: 0; }
.mx-acc__body > * + * { margin-top: var(--space-2); }
@media (prefers-reduced-motion: reduce) {
    .mx-acc__answer, .mx-acc__icon { transition: none; }
}
@media (max-width: 768px) {
    .mx-acc__trigger { padding: var(--space-3); }
    .mx-acc__body { padding-left: var(--space-3); }
    .mx-acc__icon { offset-path: path("M0 4 Q 12 24 0 44"); }
}

@media (max-width: 1024px) {
    .calc,
    .calc:not(.calc--soon):not(:has([data-calc-result] > *)):not(:has(.calc__main.is-calc-loading)) { grid-template-columns: minmax(0, 1fr); }

    .calc__aside { order: -1; width: 100%; max-width: 340px; margin-inline: auto; }

    .calc__aside--row { max-width: none; flex-direction: row; flex-wrap: wrap; align-items: start; justify-content: center; }
    .calc__aside--row > .calc-form { width: 340px; max-width: 100%; }

    .calc-result .calc-empty { margin-inline: auto; }
    .calc-expr { margin: var(--space-3) auto; }
}
@media (max-width: 768px) {

    .ym-sec { padding: var(--space-3); }
    .mx-acc { padding: var(--space-3); }
    .mx-energy { padding: var(--space-3); }

    .fmonth { padding: var(--layer-gap); }
    .fmonth__title { padding-inline: calc(var(--space-3) - var(--layer-gap)); }

    .ym-head { justify-content: center; }
    .ym-head__title { width: 100%; text-align: center; padding: var(--space-2) var(--space-3); }

    .ym-head .ym-stats,
    .forecast-day .ym-stats,
    .life-head:not(.life-head--sm) .ym-stats { width: 100%; justify-content: center; }

    .calc-cpu-media + .calc-cpu-media { margin-top: calc(var(--space-4) - var(--layer-gap)); }
}
@media (max-width: 480px) {
    .calc-card { min-width: 40px; height: 50px; font-size: 1.25rem; }
}
@media (max-width: 400px) {
    .calc-chakra th { font-size: .8rem; }
}

@media (max-width: 430px) {
    .forecast-day .ym-stats { flex-wrap: nowrap; }
    .forecast-day .ym-stat { min-width: 0; padding: 7px 12px; }
    .forecast-day .ym-stat__label { font-size: .68rem; }
    .forecast-day .ym-stat__value { font-size: 1.15rem; }
}
@media (max-width: 389px) {
    .forecast-day .ym-stat { padding: 6px 8px; }
    .forecast-day .ym-stat__label { font-size: .62rem; }
    .forecast-day .ym-stat__value { font-size: 1rem; }
    .forecast-day .ym-stat--rating .ym-stat__value { font-size: .95rem; }
}

@media (max-width: 450px) {
    .life-head--sm {
        display: grid; grid-template-columns: auto auto;
        justify-content: space-between; align-items: center;
        column-gap: var(--space-4); row-gap: var(--space-3);
    }
    .life-head--sm .life-birth { grid-column: 1; }
    .life-head--sm .ym-stats {
        grid-column: 2; grid-row: 1 / span 2;
        flex-direction: column; align-items: stretch; flex-wrap: nowrap;
        margin-left: 0; gap: var(--space-2);
    }
}
/* §c22 — компактный вид (на всех размерах, ПК как мобилка) */

.forecast-compact-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(310px, 100%), 1fr)); gap: var(--layer-gap); }

.forecast-compact-grid > .calc-result__block + .calc-result__block { margin-top: 0; }
.forecast-day--compact { flex-direction: row; align-items: center; gap: var(--space-3); }
.forecast-day--compact .ym-stats {
    width: auto; flex: 0 0 auto;
    flex-direction: column; flex-wrap: nowrap; align-items: stretch;
    justify-content: flex-start; gap: var(--space-2);
}
.forecast-day--compact .ym-stat { min-width: 0; padding: 6px 10px; }
.forecast-day--compact .ym-stat__label { font-size: .62rem; }
.forecast-day--compact .ym-stat__value { font-size: 1rem; }
.forecast-day--compact .ym-stat--rating .ym-stat__value { font-size: .95rem; }
.forecast-day--compact .forecast-compact__cards { flex: 1 1 auto; }

/* §c23 — низ детальной расчёта: слайдер статей + «Расчёты по теме» */
.calc-related { display: flex; flex-direction: column; align-items: stretch; gap: var(--layer-gap); margin-top: var(--layer-gap); }
.calc-detail__back { margin-top: var(--layer-gap); }
.calc-related > * { margin-top: 0; margin-bottom: 0; }

.calc-related__calcs { align-self: flex-start; width: fit-content; max-width: 100%; margin: 0; }

.calc-related__calcs .calcs__grid { display: flex; flex-wrap: wrap; gap: var(--space-4); max-width: 696px; }
.calc-related__calcs .calcs__grid > li { width: 120px; }
.calc-related__calcs .calc-item__label { height: auto; font-weight: 600; }

.calc-related__help .helpcta__text { max-width: none; }

@media (max-width: 768px) { .calc-related__calcs .calcs__grid { max-width: 408px; } }
@media (max-width: 520px) { .calc-related__calcs .calcs__grid { max-width: 264px; } }
