/* Здоровье и беременность в новом виде: kalendar-beremennosti, kalkulyator-daty-rodov, kalkulyator-ovulyacii, nabor-vesa-pri-beremennosti, alkogolnyy-kalkulyator, kalkulyator-caloriy, kalkulyator-idealnogo-vesa, kalkulyator-indeksa-massy-tela, kalkulyator-skf, shagi-v-kilometry */
/* Файл подключается после rd-geometriya.css и раньше calc.css, redesign.css и rd.css, поэтому селекторы начинаются с .rd #simple-calc */

/* Цвета оценок: тёмные оттенки ради контраста текста на мягком фоне */
.rd #simple-calc { --zd-ok: #17663A; --zd-warn-bg: #FBF0E0; --zd-warn: #92400E; --zd-bad: #B3261E; --zd-zone: #BDE3CC; }

/* Строки «Подпись: значение» из JS */
.rd #simple-calc .res-line { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin: 0; padding: 8px 0; border-top: 1px solid var(--line); font: 400 14px/1.45 var(--f-ui); color: var(--mute); }
.rd #simple-calc .res-line:first-child { border-top: 0; padding-top: 0; }
.rd #simple-calc .res-line b { font-weight: 600; text-align: right; color: var(--ink); overflow-wrap: break-word; }

/* Календарь беременности */
.rd #simple-calc :is(#f-lmp, #f-conception) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.rd #simple-calc :is(#f-lmp, #f-conception) > :only-child { grid-column: 1 / -1; }
.rd #simple-calc .calculator + .calculator { margin-top: 32px; padding-top: 32px; border-top: 1px solid var(--line); }
.rd #simple-calc .calculator__h2 { margin: 0; font: 600 20px/1.3 var(--f-ui); color: var(--ink); }
.rd #simple-calc .cal-week-nav { display: flex; align-items: flex-end; gap: 8px; }
.rd #simple-calc .cal-week-nav .custom-select { flex: 1 1 auto; min-width: 0; margin: 0; }
.rd #simple-calc .cal-week-arrow { display: inline-flex; align-items: center; justify-content: center; flex: none; box-sizing: border-box; width: 48px; height: 48px; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 14px; background: var(--tile); box-shadow: none; font: 500 22px/1 var(--f-ui); color: var(--ink); cursor: pointer; transition: background-color .15s, border-color .15s; }
.rd #simple-calc .cal-week-arrow:hover { border-color: var(--accent-mid); background: var(--accent-soft); }
.rd #simple-calc .cal-week-arrow:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.rd #simple-calc .cal-week-arrow:disabled { opacity: .4; cursor: default; }
.rd #simple-calc .cal-week-card { padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--tile); }
.rd #simple-calc .cal-week-title { margin: 0 0 12px; font: 600 18px/1.3 var(--f-ui); color: var(--ink); }
.rd #simple-calc .cal-now { display: inline-block; margin-left: 6px; padding: 3px 10px; border-radius: 999px; background: var(--ink); font: 500 12px/1.3 var(--f-ui); color: #fff; vertical-align: middle; }
.rd #simple-calc .cal-week-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.rd #simple-calc .cal-pill { display: inline-block; padding: 6px 12px; border-radius: 999px; background: var(--pill); font: 400 13px/1.3 var(--f-ui); color: var(--ink); }
.rd #simple-calc .cal-pill b { font-weight: 600; }
.rd #simple-calc .cal-week-text { margin: 0; font: 400 15px/1.6 var(--f-text); color: var(--ink); }
.rd #simple-calc .cal-week-text + .cal-week-text { margin-top: 10px; }
.rd #simple-calc .cal-note { margin: 12px 0 0; font: 400 13px/1.5 var(--f-ui); color: var(--mute); }

/* Вложенная пара полей: недели и дни, рост и вес */
.rd #simple-calc .fg-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
/* Подпись списка ниже подписи поля: ряд «список + поле» выравниваем по низу */
.rd #simple-calc :is(.form-group__wrapper:has(> .custom-select), .sk-2col) { align-items: end; }

/* Таблицы результата */
.rd #simple-calc .formula-wrapper .table-scroll { margin: 12px 0 0; }
.rd #simple-calc :is(.ov-scroll, .kc-scroll, .iw-scroll, .imt-scroll, .sk-scroll) { margin: 12px 0 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rd #simple-calc :is([id="res-table"], [id="rody-table"], .ov-fore, .nv-wt, .kc-tbl, .iw-tbl, .imt-tbl, .skf-cmp, .sk-all) { width: 100%; margin: 0; border: 0; border-collapse: collapse; background: none; font: 400 13px/1.45 var(--f-ui); color: var(--ink); }
.rd #simple-calc :is([id="res-table"], [id="rody-table"], .ov-fore, .nv-wt, .kc-tbl, .iw-tbl, .imt-tbl, .skf-cmp, .sk-all) th { padding: 0 10px 8px; border: 0; border-bottom: 1px solid var(--line); background: none; font: 500 11px/1.3 var(--f-mono); letter-spacing: .04em; text-transform: uppercase; text-align: left; vertical-align: bottom; color: var(--mute); }
.rd #simple-calc :is([id="res-table"], [id="rody-table"], .ov-fore, .nv-wt, .kc-tbl, .iw-tbl, .imt-tbl, .skf-cmp, .sk-all) td { padding: 8px 10px; border: 0; border-top: 1px solid var(--line); background: none; text-align: left; vertical-align: top; }
.rd #simple-calc :is([id="res-table"], [id="rody-table"], .ov-fore, .nv-wt, .kc-tbl, .iw-tbl, .imt-tbl, .skf-cmp, .sk-all) tbody tr:first-child td { border-top: 0; }
.rd #simple-calc :is([id="res-table"], [id="rody-table"], .ov-fore, .nv-wt, .kc-tbl, .iw-tbl, .imt-tbl, .skf-cmp, .sk-all) thead + tbody tr:first-child td { border-top: 1px solid var(--line); }
.rd #simple-calc :is(tr.kc-is-active, tr.nv-cur, tr.sk-act, tr.skf-cmp-cur) td { background: var(--accent-soft); font-weight: 600; }
.rd #simple-calc .iw-tbl--bands tr.iwb.c2 td { background: var(--good-soft); color: var(--zd-ok); font-weight: 600; }
.rd #simple-calc :is(.kc-tbl, .iw-tbl, .imt-tbl) :is(th, td):last-child { text-align: right; white-space: nowrap; }
.rd #simple-calc :is(.kc-tbl, .iw-tbl, .imt-tbl) td:last-child { font-weight: 600; }
.rd #simple-calc .ov-fore :is(th, td) { white-space: nowrap; }
.rd #simple-calc .ov-fore td:first-child { font-weight: 600; }

/* Главное значение и строки разбора */
/* balance — на 320px «кг» не остаётся один на второй строке заголовка результата */
.rd #simple-calc :is(.ov-main-val, .nv-main-val, .kc-main-val, .iw-main-val, .imt-main-val) { margin: 0; font: 600 24px/1.25 var(--f-ui); letter-spacing: -.01em; color: var(--ink); text-wrap: balance; }
.rd #simple-calc :is(.ov-main-val, .nv-main-val, .kc-main-val, .iw-main-val, .imt-main-val) b { font-weight: 700; }
.rd #simple-calc :is(.ov-main-sub, .kc-main-sub, .iw-main-sub) { margin: 6px 0 12px; font: 400 14px/1.5 var(--f-ui); color: var(--mute); }
.rd #simple-calc :is(.ov-main-sub, .kc-main-sub, .iw-main-sub) b { font-weight: 600; color: var(--ink); }
.rd #simple-calc :is(.nv-row, .kc-row, .iw-row, .imt-row) { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin: 0; padding: 8px 0; border-top: 1px solid var(--line); font: 400 14px/1.45 var(--f-ui); }
.rd #simple-calc :is(.nv-row, .kc-row, .iw-row, .imt-row):first-child { border-top: 0; padding-top: 0; }
/* подпись растёт от нуля: значение берёт свою ширину (до 60%), подпись — остаток, но не уже своего длинного слова; иначе длинная подпись «Вес для максимальной продолжительности жизни» сжимала «≈ 68,1 кг (ИМТ 22)» в четыре строки на 320px */
.rd #simple-calc :is(.nv-row, .kc-row, .iw-row, .imt-row) > span { flex: 1 1 0; color: var(--mute); }
/* min-width: 0 — иначе flex не даёт значению сжаться уже самого длинного слова, и «сбалансированное» вылезает за карточку на 320px; переносим только слова от 12 букв: короче в столбец входят целиком */
.rd #simple-calc :is(.nv-row, .kc-row, .iw-row, .imt-row) > b { min-width: 0; max-width: 60%; font-weight: 600; text-align: right; color: var(--ink); overflow-wrap: break-word; -webkit-hyphens: auto; hyphens: auto; hyphenate-limit-chars: 12 5 5; }

/* Пунктирные кнопки: доп. параметры, «Добавить напиток» */
.rd #simple-calc :is(.ov-adv-toggle, .imt-adv-toggle, .alco-add) { display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%; height: 46px; margin: 0; padding: 0 16px; border: 1px dashed var(--accent-mid); border-radius: 14px; background: none; box-shadow: none; font: 500 14px/1.2 var(--f-ui); letter-spacing: 0; text-transform: none; color: var(--accent); cursor: pointer; transition: background-color .15s; }
.rd #simple-calc :is(.ov-adv-toggle, .imt-adv-toggle, .alco-add):hover { background: var(--accent-soft); }
.rd #simple-calc :is(.ov-adv-toggle, .imt-adv-toggle, .alco-add):focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Раскрываемые подробности */
.rd #simple-calc :is(.ov-details, #kc-details, #iw-details, #imt-a-details, #imt-c-details) { margin: 16px 0 0; padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: none; }
.rd #simple-calc :is(.ov-details, #kc-details, #iw-details, #imt-a-details, #imt-c-details) > :first-child { margin-top: 0; }
.rd #simple-calc :is(#ov-toggle, #kc-toggle, #iw-toggle, #imt-a-toggle, #imt-c-toggle, #nv-copy, #skf-copy) { margin-top: 16px; }
.rd #simple-calc :is(#kc-toggle, #iw-toggle) { max-width: 100%; height: auto; min-height: 46px; padding-block: 12px; white-space: normal; line-height: 1.3; text-align: center; }

/* Ошибки, которые JS открывает через style.display */
.rd #simple-calc :is(.ov-error, .kc-error, .iw-error, .imt-error, .sk-error) { display: none; margin: 0; padding: 12px 16px; border: 0; border-radius: 14px; background: var(--bad-soft); font: 500 14px/1.45 var(--f-ui); color: var(--bad); }

/* Овуляция */
.rd #simple-calc .ov-cal-wrap { margin: 16px 0 0; }
.rd #simple-calc .ov-cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; max-width: 420px; }
.rd #simple-calc .ov-cal__wd { padding: 0 0 4px; font: 500 11px/1.2 var(--f-mono); text-transform: uppercase; text-align: center; color: var(--mute); }
.rd #simple-calc .ov-cal__day { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; border-radius: 10px; background: var(--card); font: 500 13px/1 var(--f-ui); color: var(--ink); }
.rd #simple-calc .ov-cal__day.is-out { background: transparent; color: var(--mute); opacity: .5; }
.rd #simple-calc .ov-cal__day.is-menstr { background: var(--bad-soft); color: var(--zd-bad); }
.rd #simple-calc .ov-cal__day.is-fert { background: var(--good-soft); color: var(--zd-ok); }
.rd #simple-calc .ov-cal__day.is-ovu { background: var(--zd-ok); color: #fff; font-weight: 700; }
.rd #simple-calc .ov-cal__mon { position: absolute; top: 3px; left: 0; right: 0; font: 500 10px/1 var(--f-mono); text-transform: uppercase; text-align: center; opacity: .7; }
.rd #simple-calc .ov-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 12px 0 0; font: 400 13px/1.4 var(--f-ui); color: var(--mute); }
.rd #simple-calc .ov-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.rd #simple-calc .ov-dot { display: inline-block; flex: none; width: 12px; height: 12px; border-radius: 50%; background: var(--card); }
.rd #simple-calc .ov-dot.is-menstr { background: var(--bad-soft); box-shadow: inset 0 0 0 1px var(--zd-bad); }
.rd #simple-calc .ov-dot.is-fert { background: var(--good-soft); box-shadow: inset 0 0 0 1px var(--zd-ok); }
.rd #simple-calc .ov-dot.is-ovu { background: var(--zd-ok); }
.rd #simple-calc .ov-sub { margin: 0 0 8px; font: 600 14px/1.4 var(--f-ui); color: var(--ink); }
.rd #simple-calc .ov-note-txt { margin: 12px 0 0; font: 400 13px/1.55 var(--f-ui); color: var(--mute); }
.rd #simple-calc .ov-note-txt + .ov-sub { margin-top: 20px; }

/* Набор веса: оценка и полоса нормы */
.rd #simple-calc .nv-verdict { display: inline-block; margin: 12px 0 0; padding: 6px 12px; border-radius: 999px; font: 600 14px/1.35 var(--f-ui); }
.rd #simple-calc .nv-verdict.is-ok { background: var(--good-soft); color: var(--zd-ok); }
.rd #simple-calc .nv-verdict.is-low { background: var(--zd-warn-bg); color: var(--zd-warn); }
.rd #simple-calc .nv-verdict.is-high { background: var(--bad-soft); color: var(--zd-bad); }
.rd #simple-calc .nv-band { margin: 8px 0 0; }
.rd #simple-calc .nv-band__track { position: relative; height: 14px; border-radius: 999px; background: var(--card); }
.rd #simple-calc .nv-band__zone { position: absolute; top: 0; bottom: 0; border-radius: 999px; background: var(--zd-zone); }
.rd #simple-calc .nv-band__mark { position: absolute; top: -4px; width: 4px; height: 22px; border-radius: 2px; background: var(--ink); box-shadow: 0 0 0 2px var(--tile); transform: translateX(-50%); }
.rd #simple-calc .nv-band__mark.is-ok { background: var(--zd-ok); }
.rd #simple-calc .nv-band__mark.is-low { background: var(--zd-warn); }
.rd #simple-calc .nv-band__mark.is-high { background: var(--zd-bad); }
.rd #simple-calc .nv-band__scale { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 8px 0 0; font: 400 12px/1.4 var(--f-ui); color: var(--mute); }
.rd #simple-calc .nv-band__norm { font-weight: 600; color: var(--zd-ok); }

/* Алкоголь: форма и история слева, график справа */
.rd #simple-calc .calc-layout:has(> #alco-form) { display: grid; grid-template-columns: minmax(0, 1fr) 272px; column-gap: 28px; row-gap: 16px; align-items: start; }
.rd #simple-calc .calc-layout:has(> #alco-form) > :is(#alco-form, .alco-history) { grid-column: 1; min-width: 0; }
.rd #simple-calc #alco-form ~ .calc-visual { grid-column: 2; grid-row: 1 / span 2; }
.rd #simple-calc .alco-chart-box { min-width: 0; }
.rd #simple-calc .alco-chart-title { margin: 0 0 8px; font: 500 11px/1.3 var(--f-mono); letter-spacing: .04em; text-transform: uppercase; text-align: center; color: var(--mute); }
.rd #simple-calc .alco-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.rd #simple-calc .alco-presets { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rd #simple-calc .alco-presets__label { font: 400 13px/1.3 var(--f-ui); color: var(--mute); }
.rd #simple-calc :is(.alco-preset, .sk-chip) { display: inline-flex; align-items: center; justify-content: center; flex: none; box-sizing: border-box; width: auto; height: 38px; margin: 0; padding: 0 16px; border: 0; border-radius: 999px; background: var(--pill); box-shadow: none; font: 500 13px/1.2 var(--f-ui); letter-spacing: 0; text-transform: none; color: var(--ink); white-space: nowrap; cursor: pointer; opacity: 1; transition: background-color .15s; }
.rd #simple-calc :is(.alco-preset, .sk-chip):hover { background: var(--accent-soft); }
.rd #simple-calc :is(.alco-preset, .sk-chip):focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.rd #simple-calc .sk-chip.selected { background: var(--ink); color: #fff; }
.rd #simple-calc .alco-drinks { display: flex; flex-direction: column; gap: 12px; }
.rd #simple-calc .alco-drink { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 96px 96px 32px; gap: 8px; align-items: end; }
.rd #simple-calc .alco-drink__col { min-width: 0; }
.rd #simple-calc .alco-drink__col label { display: block; margin: 0 0 8px; font: 500 13px/1.35 var(--f-ui); color: var(--ink); }
.rd #simple-calc .alco-drink :is(.alco-abv, .alco-vol) { display: block; box-sizing: border-box; width: 100%; height: 48px; margin: 0; padding: 0 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--tile); box-shadow: none; outline: none; font: 500 16px/1.2 var(--f-ui); color: var(--ink); }
.rd #simple-calc .alco-select { display: block; -webkit-appearance: none; appearance: none; box-sizing: border-box; width: 100%; max-width: 100%; height: 48px; margin: 0; padding: 0 44px 0 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; background: var(--tile) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236B7075' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center / 18px; border: 1px solid var(--line); border-radius: 14px; box-shadow: none; outline: none; font: 500 16px/1.2 var(--f-ui); color: var(--ink); cursor: pointer; }
.rd #simple-calc .alco-drink :is(.alco-select, .alco-abv, .alco-vol):focus { border-color: var(--accent); }
.rd #simple-calc .alco-drink__remove { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; width: 32px; height: 48px; margin: 0; padding: 0; border: 0; border-radius: 10px; background: none; box-shadow: none; font: 400 24px/1 var(--f-ui); color: var(--mute); cursor: pointer; transition: color .15s; }
.rd #simple-calc .alco-drink__remove:hover { color: var(--bad); }
.rd #simple-calc .alco-drink__remove:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Алкоголь: результат */
.rd #simple-calc .alco-verdict { margin: 0 0 8px; padding: 10px 14px; border-radius: 14px; font: 600 15px/1.4 var(--f-ui); letter-spacing: 0; }
.rd #simple-calc .alco-verdict.is-ok { background: var(--good-soft); color: var(--zd-ok); }
.rd #simple-calc .alco-verdict.is-bad { background: var(--bad-soft); color: var(--zd-bad); }
.rd #simple-calc .alco-verdict__note { margin: 0 0 12px; font: 400 13px/1.45 var(--f-ui); color: var(--mute); }
.rd #simple-calc .alco-danger { margin: 0 0 12px; padding: 10px 14px; border-radius: 14px; background: var(--bad-soft); font: 600 14px/1.45 var(--f-ui); color: var(--zd-bad); }
.rd #simple-calc .alco-big { margin: 4px 0 0; }
.rd #simple-calc .alco-big__sub { display: block; margin: 2px 0 0; font: 400 13px/1.4 var(--f-ui); color: var(--mute); }
.rd #simple-calc .alco-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0 0 12px; }
.rd #simple-calc .alco-cell { padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; }
.rd #simple-calc .alco-cell__l { display: block; font: 400 12px/1.4 var(--f-ui); color: var(--mute); }
.rd #simple-calc .alco-cell__v { display: block; margin: 2px 0 0; font: 600 15px/1.3 var(--f-ui); color: var(--ink); }
.rd #simple-calc .alco-stage { margin: 0 0 12px; padding: 10px 12px; border-radius: 12px; background: var(--card); font: 400 13px/1.45 var(--f-ui); color: var(--ink); }
.rd #simple-calc .alco-stage b { font-weight: 600; }
.rd #simple-calc .alco-times { display: flex; flex-direction: column; }
.rd #simple-calc .alco-time { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 8px 0; border-top: 1px solid var(--line); font: 400 14px/1.45 var(--f-ui); }
.rd #simple-calc .alco-time:first-child { border-top: 0; padding-top: 0; }
.rd #simple-calc .alco-time > span { color: var(--mute); }
.rd #simple-calc .alco-time > b { font-weight: 600; text-align: right; color: var(--ink); }
.rd #simple-calc .alco-time__clock { font-weight: 400; color: var(--mute); }
.rd #simple-calc .alco-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; }
.rd #simple-calc .alco-actions > *, .rd #simple-calc .alco-actions #copy-btn { margin: 0; }

/* Алкоголь: история расчётов (без display, чтобы работал атрибут hidden) */
.rd #simple-calc .alco-history { padding: 16px 20px; border: 1px solid var(--line); border-radius: 16px; }
.rd #simple-calc .alco-history__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 10px; }
.rd #simple-calc .alco-history__head .label-text { margin: 0; }
.rd #simple-calc .alco-history__clear { width: auto; height: auto; margin: 0; padding: 4px 0; border: 0; background: none; box-shadow: none; font: 500 13px/1.3 var(--f-ui); color: var(--accent); cursor: pointer; }
.rd #simple-calc .alco-history__clear:hover { text-decoration: underline; }
.rd #simple-calc .alco-history__list { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; list-style: none; }
.rd #simple-calc .alco-history__list li { margin: 0; padding: 0; }
.rd #simple-calc .alco-history__list li::before { content: none; }
.rd #simple-calc .st-history__item { display: block; box-sizing: border-box; width: 100%; height: auto; margin: 0; padding: 10px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--tile); box-shadow: none; font: 400 14px/1.4 var(--f-ui); text-align: left; color: var(--ink); cursor: pointer; transition: background-color .15s, border-color .15s; }
.rd #simple-calc .st-history__item:hover { border-color: var(--accent-mid); background: var(--accent-soft); }

/* Тост «Скопировано» добавляется в body, вне карточки */
body.rd .rnd-toast { position: fixed; left: 50%; bottom: 24px; z-index: 2000; box-sizing: border-box; max-width: calc(100% - 32px); padding: 12px 18px; border-radius: 14px; background: var(--ink); font: 500 14px/1.4 var(--f-ui); color: #fff; opacity: 0; pointer-events: none; transform: translate(-50%, 8px); transition: opacity .2s, transform .2s; }
body.rd .rnd-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

/* Калории, идеальный вес, ИМТ */
.rd #simple-calc :is(.kc-fg-413, .iw-fg-413) { min-width: 0; }
.rd #simple-calc :is(.kc-tip, .iw-tip) { margin: 0; font: 400 13px/1.5 var(--f-ui); color: var(--mute); }
.rd #simple-calc .kc-warn { margin: 12px 0 0; padding: 12px 16px; border-radius: 14px; background: var(--bad-soft); font: 500 14px/1.45 var(--f-ui); color: var(--zd-bad); }
.rd #simple-calc :is(.kc-cur, .iw-cur) { margin: 16px 0 0; padding: 16px 0 0; border-top: 1px solid var(--line); }
.rd #simple-calc :is(.kc-cur__head, .iw-cur__head) { margin: 0 0 8px; font: 600 14px/1.4 var(--f-ui); color: var(--ink); }
.rd #simple-calc :is(.kc-sub, .iw-sub, .imt-sub) { margin: 20px 0 8px; font: 600 14px/1.4 var(--f-ui); color: var(--ink); }
.rd #simple-calc :is(.kc-sub, .iw-sub, .imt-sub):first-child { margin-top: 0; }
.rd #simple-calc :is(.kc-step, .iw-step, .imt-step) { margin: 6px 0; font: 400 14px/1.55 var(--f-ui); color: var(--ink); }
.rd #simple-calc :is(.kc-note, .iw-note, .imt-note, .kc-hint-inline, .iw-hint-inline) { margin: 12px 0 0; font: 400 13px/1.55 var(--f-ui); color: var(--mute); }
.rd #simple-calc .imt-mut { color: var(--mute); }
.rd #simple-calc .imt-xlink { display: inline-block; margin: 12px 0 0; font: 500 14px/1.4 var(--f-ui); color: var(--accent); text-decoration: none; }
.rd #simple-calc .imt-xlink:hover { text-decoration: underline; }
.rd #simple-calc :is(.iw-main-cat, .imt-main-cat) { display: inline-block; margin: 8px 0 12px; padding: 6px 12px; border-radius: 999px; background: var(--card); font: 600 14px/1.35 var(--f-ui); color: var(--ink); }
.rd #simple-calc :is(.iw-main-cat, .imt-main-cat).c2 { background: var(--good-soft); color: var(--zd-ok); }
.rd #simple-calc :is(.iw-main-cat, .imt-main-cat):is(.c1, .c3) { background: var(--zd-warn-bg); color: var(--zd-warn); }
.rd #simple-calc :is(.iw-main-cat, .imt-main-cat).c4 { background: #FBE6D4; color: #9A3412; }
.rd #simple-calc :is(.iw-main-cat, .imt-main-cat):is(.c0, .c5) { background: var(--bad-soft); color: var(--zd-bad); }
.rd #simple-calc :is(.iw-main-cat, .imt-main-cat).c6 { background: var(--bad-soft); color: #8A1C12; }
.rd #simple-calc :is(.iw-scale, .imt-scale) { margin: 4px 0 16px; }
.rd #simple-calc :is(.iw-scale__bar, .imt-scale__bar) { position: relative; height: 10px; border-radius: 999px; background: linear-gradient(90deg, var(--bad) 0%, #E5A33D 4%, #E5A33D 14%, var(--good) 14%, var(--good) 40%, #E5A33D 40%, #E5A33D 60%, #E0783A 60%, #E0783A 80%, var(--bad) 80%, #A32D2D 100%); }
.rd #simple-calc :is(.iw-scale__mark, .imt-scale__mark) { position: absolute; top: -4px; width: 4px; height: 18px; border-radius: 2px; background: var(--ink); box-shadow: 0 0 0 2px var(--tile); transform: translateX(-50%); }
.rd #simple-calc :is(.iw-scale__lbl, .imt-scale__lbl) { display: flex; justify-content: space-between; margin: 6px 0 0; font: 400 12px/1.3 var(--f-mono); color: var(--mute); }
/* Подписи 15 / 18,5 / 25 / 30 / 40 под границами зон: шкала линейная от 15 до 40, JS расставляет подписи поровну */
.rd #simple-calc :is(.iw-scale__lbl, .imt-scale__lbl):has(> span:nth-child(5):last-child) { display: block; position: relative; height: 16px; }
.rd #simple-calc :is(.iw-scale__lbl, .imt-scale__lbl):has(> span:nth-child(5):last-child) > span { position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap; }
.rd #simple-calc :is(.iw-scale__lbl, .imt-scale__lbl):has(> span:nth-child(5):last-child) > span:nth-child(1) { left: 0; transform: none; }
.rd #simple-calc :is(.iw-scale__lbl, .imt-scale__lbl):has(> span:nth-child(5):last-child) > span:nth-child(2) { left: 14%; }
.rd #simple-calc :is(.iw-scale__lbl, .imt-scale__lbl):has(> span:nth-child(5):last-child) > span:nth-child(3) { left: 40%; }
.rd #simple-calc :is(.iw-scale__lbl, .imt-scale__lbl):has(> span:nth-child(5):last-child) > span:nth-child(4) { left: 60%; }
.rd #simple-calc :is(.iw-scale__lbl, .imt-scale__lbl):has(> span:nth-child(5):last-child) > span:nth-child(5) { left: auto; right: 0; transform: none; }

/* ИМТ: вкладки «Взрослые» и «Дети», как в rd-schet.css */
.rd #simple-calc .tabs { display: inline-flex; align-self: flex-start; flex-wrap: wrap; gap: 4px; margin: 0; padding: 4px; border: 0; border-radius: 999px; background: var(--tile); }
.rd #simple-calc .tabs .tab-button { display: inline-flex; align-items: center; justify-content: center; width: auto; height: auto; margin: 0; padding: 10px 18px; border: 0; border-radius: 999px; background: none; box-shadow: none; font: 500 14px/1.2 var(--f-ui); letter-spacing: 0; text-transform: none; color: var(--mute); cursor: pointer; transition: background-color .15s, color .15s; }
.rd #simple-calc .tabs .tab-button:hover { color: var(--ink); }
.rd #simple-calc .tabs .tab-button.active { background: var(--ink); color: #fff; }
.rd #simple-calc .tabs .tab-button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.rd #simple-calc .tab-content:not(.active) { display: none; }

/* СКФ */
.rd #simple-calc .skf-hint { margin: 0; padding: 12px 16px; border: 1px dashed var(--accent-mid); border-radius: 14px; background: var(--tile); font: 400 13px/1.5 var(--f-ui); color: var(--ink); }
.rd #simple-calc .form-group__wrapper:has(> #skf-grp-weight[style*="none"]):has(> #skf-grp-height[style*="none"]) { display: none; }
.rd #simple-calc .skf-res-formula { margin: 0 0 4px; font: 400 13px/1.4 var(--f-ui); color: var(--mute); }
.rd #simple-calc .skf-res-value { margin: 0; font: 600 32px/1.2 var(--f-ui); letter-spacing: -.01em; color: var(--ink); }
.rd #simple-calc .skf-res-unit { margin-left: 6px; font: 400 15px/1.3 var(--f-ui); letter-spacing: 0; color: var(--mute); }
.rd #simple-calc .skf-stage { margin: 12px 0 0; padding: 10px 14px; border: 0; border-left: 4px solid var(--line); border-radius: 4px 12px 12px 4px; background: var(--card); font: 400 14px/1.5 var(--f-ui); color: var(--ink); }
.rd #simple-calc .skf-stage b { font-weight: 600; }
.rd #simple-calc .skf-stage.c1 { border-left-color: var(--good); background: var(--good-soft); }
.rd #simple-calc .skf-stage.c2 { border-left-color: #7BC59A; background: #EEF8F1; }
.rd #simple-calc .skf-stage.c3a { border-left-color: #E5B93D; background: #FCF5E1; }
.rd #simple-calc .skf-stage.c3b { border-left-color: #E5893D; background: var(--zd-warn-bg); }
.rd #simple-calc .skf-stage.c4 { border-left-color: var(--bad); background: var(--bad-soft); }
.rd #simple-calc .skf-stage.c5 { border-left-color: #8A1C12; background: #F6DCDC; }
.rd #simple-calc .skf-res-interp { margin: 12px 0 0; font: 400 14px/1.55 var(--f-ui); color: var(--ink); }
.rd #simple-calc .skf-compare { margin: 16px 0 0; overflow-x: auto; }
.rd #simple-calc .skf-cmp-std { color: var(--mute); }
.rd #simple-calc .skf-cmp-note { margin: 8px 0 0; font: 400 12px/1.5 var(--f-ui); color: var(--mute); }
.rd #simple-calc .skf-step { margin: 0 0 8px; font: 400 14px/1.6 var(--f-ui); color: var(--ink); }
.rd #simple-calc .skf-step:last-child { margin-bottom: 0; }

/* Шаги в километры */
.rd #simple-calc .sk-seg { display: flex; gap: 4px; margin: 0; padding: 4px; border: 0; border-radius: 999px; background: var(--tile); }
.rd #simple-calc .sk-seg__btn { display: inline-flex; align-items: center; justify-content: center; flex: 1 1 0; min-width: 0; width: auto; height: auto; margin: 0; padding: 10px 14px; border: 0; border-radius: 999px; background: none; box-shadow: none; font: 500 14px/1.25 var(--f-ui); letter-spacing: 0; text-transform: none; text-align: center; color: var(--mute); cursor: pointer; transition: background-color .15s, color .15s; }
.rd #simple-calc .sk-seg__btn:hover { color: var(--ink); }
.rd #simple-calc .sk-seg__btn.is-active { background: var(--ink); color: #fff; }
.rd #simple-calc .sk-seg__btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.rd #simple-calc .sk-2col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.rd #simple-calc .sk-chips-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rd #simple-calc .sk-chips__label { font: 400 13px/1.3 var(--f-ui); color: var(--mute); }
.rd #simple-calc .sk-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.rd #simple-calc .sk-extra { color: var(--mute); }
.rd #simple-calc .sk-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 16px 0 0; }
.rd #simple-calc .sk-metric { display: flex; flex-direction: column; gap: 4px; padding: 12px 10px; border: 1px solid var(--line); border-radius: 14px; text-align: center; }
.rd #simple-calc .sk-metric__v { font: 600 16px/1.25 var(--f-ui); color: var(--ink); }
.rd #simple-calc .sk-metric__l { font: 400 12px/1.35 var(--f-ui); color: var(--mute); }
.rd #simple-calc .sk-step { margin: 0 0 8px; font: 400 14px/1.6 var(--f-ui); color: var(--ink); }
.rd #simple-calc .sk-step:last-child { margin-bottom: 0; }
.rd #simple-calc .ld-mut { color: var(--mute); }
.rd #simple-calc .sk-all td.sk-val { font-weight: 600; white-space: nowrap; }
.rd #simple-calc .sk-all td:is(:nth-child(1), :nth-child(4)) { white-space: nowrap; }
.rd #simple-calc .sk-copy { margin-top: 16px; }

/* Узкая карточка: алкоголь в одну колонку, график между формой и историей */
@container (max-width: 699px) {
    .rd #simple-calc .calc-layout:has(> #alco-form) { display: flex; flex-direction: column; align-items: stretch; gap: 16px; }
    .rd #simple-calc #alco-form ~ .calc-visual { order: 1; flex: none; align-self: stretch; width: auto; max-width: none; }
    .rd #simple-calc #alco-form ~ .calc-visual > div { position: static; }
    .rd #simple-calc .calc-layout:has(> #alco-form) > .alco-history { order: 2; }
}

/* Совсем узкая карточка: строка напитка в два ряда, крестик в углу */
@container (max-width: 479px) {
    .rd #simple-calc .alco-drink { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "type type" "abv vol"; }
    .rd #simple-calc .alco-drink + .alco-drink { padding-top: 12px; border-top: 1px solid var(--line); }
    .rd #simple-calc .alco-drink__type { grid-area: type; }
    .rd #simple-calc .alco-drink__col:nth-child(2) { grid-area: abv; }
    .rd #simple-calc .alco-drink__col:nth-child(3) { grid-area: vol; }
    .rd #simple-calc .alco-drink__remove { position: absolute; top: -6px; right: 0; width: 32px; height: 32px; }
    .rd #simple-calc .alco-drink + .alco-drink .alco-drink__remove { top: 6px; }
    .rd #simple-calc .sk-metrics { grid-template-columns: 1fr; }
    .rd #simple-calc .sk-seg__btn { padding: 10px 6px; font-size: 12px; }
    .rd #simple-calc .ov-cal__day:has(> .ov-cal__mon) { align-items: flex-end; padding-bottom: 3px; font-size: 12px; }
    .rd #simple-calc .ov-cal__mon { top: 2px; font-size: 7px; }
    .rd #simple-calc .iw-tbl--bands td:last-child { white-space: normal; }
}

/* Вкладки шагов с неразрывными пробелами на самом узком экране встают друг под другом */
@container (max-width: 279px) {
    .rd #simple-calc .sk-seg { flex-direction: column; border-radius: 22px; }
    .rd #simple-calc .sk-seg__btn { flex: none; padding: 10px 14px; font-size: 14px; }
}

@media (max-width: 639px) {
    .rd #simple-calc :is(#f-lmp, #f-conception, .fg-row, .alco-two, .sk-2col) { grid-template-columns: 1fr; gap: 12px; }
    .rd #simple-calc .calculator + .calculator { margin-top: 24px; padding-top: 24px; }
    .rd #simple-calc .cal-week-card { padding: 16px; }
    .rd #simple-calc :is(.ov-main-val, .nv-main-val, .kc-main-val, .iw-main-val, .imt-main-val) { font-size: 20px; }
    .rd #simple-calc .skf-res-value { font-size: 26px; }
    .rd #simple-calc :is(.ov-details, #kc-details, #iw-details, #imt-a-details, #imt-c-details) { padding: 16px; }
    .rd #simple-calc .alco-history { padding: 14px 16px; }
    .rd #simple-calc .imt-spacer { display: none; }
    .rd #simple-calc .tabs { align-self: stretch; }
    .rd #simple-calc .tabs { flex-wrap: nowrap; }
    .rd #simple-calc .tabs .tab-button { flex: 1 1 auto; padding: 10px; font-size: 13px; white-space: nowrap; }
    .rd #simple-calc :is([id="res-table"], [id="rody-table"], .ov-fore, .nv-wt, .kc-tbl, .iw-tbl, .imt-tbl, .skf-cmp, .sk-all) :is(th, td) { padding-left: 6px; padding-right: 6px; }
    /* значение, которому рядом с подписью тесно, уходит под неё: фраза «Сбалансируйте питание…» шла столбцом в восемь строк. Короткое значение остаётся справа (margin-left: auto), длинное идёт абзацем на всю ширину */
    .rd #simple-calc :is(.nv-row, .kc-row, .iw-row, .imt-row) { flex-wrap: wrap; row-gap: 2px; }
    .rd #simple-calc :is(.nv-row, .kc-row, .iw-row, .imt-row) > span { flex: 1 1 45%; }
    .rd #simple-calc :is(.nv-row, .kc-row, .iw-row, .imt-row) > b { max-width: none; margin-left: auto; text-align: left; }
    body.rd .rnd-toast { bottom: 16px; }
    /* зона «недостаток» на узкой шкале — около 30px: подписи мельче, «18,5» чуть сдвинута вправо, иначе «15» и «18,5» стоят вплотную; при −30% она уходила от своей границы на 5px */
    .rd #simple-calc :is(.iw-scale__lbl, .imt-scale__lbl) { font-size: 11px; }
    .rd #simple-calc :is(.iw-scale__lbl, .imt-scale__lbl):has(> span:nth-child(5):last-child) > span:nth-child(2) { transform: translateX(-40%); }
}

@media (prefers-reduced-motion: reduce) {
    .rd #simple-calc :is(.cal-week-arrow, .ov-adv-toggle, .imt-adv-toggle, .alco-add, .alco-preset, .sk-chip, .alco-drink__remove, .st-history__item, .tab-button, .sk-seg__btn) { transition: none; }
    body.rd .rnd-toast { transition: none; }
}
