/* ============================================================
   Подбор размера — окно. Зависит только от tokens.css.
   Кнопка-вход больше не своя: это обычная `.btn ghost` рядом с «В корзину».

   Сцена с фигурой убрана — окно стало одной колонкой шириной с текст.
   Композиция здесь одна: сверху параметры, ниже ОТВЕТ, ещё ниже
   подробности. Ответ — единственный крупный элемент на экране.

   ⚠️ Окно строит js и вешает на <body>, предка `.ar` у него НЕТ.
   Селекторы вида `.ar .btn` тут молча не работают — скоупить по .sheet.
   ============================================================ */

/* ── ОКНО ── */
.modal{position:fixed;inset:0;z-index:150;display:flex;align-items:center;
  justify-content:center;padding:clamp(0px,3vw,32px);
  background:rgba(14,17,22,.46);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  opacity:0;transition:opacity .28s}
.modal.on{opacity:1}
.modal[hidden]{display:none}

.sheet{width:min(520px,100%);max-height:100%;display:flex;flex-direction:column;
  background:var(--bg-1);border:1px solid var(--line-2);box-shadow:var(--sh-3);
  transform:translateY(14px) scale(.99);transition:transform .32s cubic-bezier(.2,.8,.2,1)}
.modal.on .sheet{transform:none}

.sheet-head{display:flex;align-items:flex-start;gap:14px;flex:none;
  padding:20px 22px 18px;border-bottom:1px solid var(--line)}
.sheet-head h2{font-family:var(--f-d);font-weight:var(--w-d);font-size:17px;
  letter-spacing:-.01em;margin:0}
.sheet-head p{margin:5px 0 0;font-family:var(--f-m);font-size:9.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--fg-3)}
.sheet-head .close{margin-left:auto;flex:none;position:relative;width:38px;height:38px;
  border:1px solid var(--line-2);background:var(--bg);cursor:pointer;color:var(--fg-2)}
.sheet-head .close::before,.sheet-head .close::after{content:"";position:absolute;
  left:50%;top:50%;width:13px;height:1px;background:currentColor}
.sheet-head .close::before{transform:translate(-50%,-50%) rotate(45deg)}
.sheet-head .close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.sheet-head .close:hover{color:var(--fg);border-color:var(--fg)}

.cfg{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:22px}
.grp{margin-bottom:22px}
.grp .lbl{display:flex;align-items:baseline;gap:12px;margin-bottom:11px}
.grp .lbl span{font-family:var(--f-m);font-size:9.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--fg-3)}
/* Уточнение к вопросу о сложении. Без него «узкие/широкие» читается
   относительно всех подряд, и полный человек засчитывает свой вес дважды. */
.grp .lbl span em{display:block;margin-top:4px;font-style:normal;
  letter-spacing:.1em;text-transform:none;font-size:10.5px;color:var(--fg-2)}
.grp .lbl b{margin-left:auto;font-family:var(--f-d);font-weight:var(--w-d);
  font-size:17px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}

.sheet input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:2px;
  background:var(--line-2);cursor:pointer;display:block}
.sheet input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;
  border-radius:50%;background:var(--bg-1);border:1px solid var(--line-2);
  box-shadow:var(--sh-2);cursor:grab}
.sheet input[type=range]::-moz-range-thumb{width:26px;height:26px;border-radius:50%;
  background:var(--bg-1);border:1px solid var(--line-2);box-shadow:var(--sh-2);cursor:grab}
.sheet input[type=range]:focus-visible{outline:2px solid var(--blue);outline-offset:6px}

/* сегменты: телосложение и размеры */
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}
.seg button{padding:13px 6px;border:1px solid var(--line-2);background:var(--bg-1);
  font-family:var(--f-d);font-weight:var(--w-d);font-size:13px;color:var(--fg);
  cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.seg button:hover{border-color:var(--fg)}
.seg button.on{background:var(--fg);color:var(--bg-1);border-color:var(--fg)}
.seg button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
/* рекомендованный размер помечен точкой — тише, чем выбранный */
.seg-sz button{position:relative}
.seg-sz button[data-rec]::after{content:"";position:absolute;left:50%;bottom:6px;
  width:4px;height:4px;border-radius:50%;background:var(--fg-3);transform:translateX(-50%)}
.seg-sz button[data-rec].on::after{background:var(--bg-1)}

/* ── ОТВЕТ ── */
.answer{margin:26px 0;padding:20px 20px 18px;background:var(--graphite);color:#EEF1F5}
.answer .a-size{display:flex;align-items:baseline;gap:14px}
.answer .a-size .k{font-family:var(--f-m);font-size:9.5px;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(238,241,245,.5)}
.answer .a-size b{margin-left:auto;font-family:var(--f-d);font-weight:var(--w-d);
  font-size:42px;line-height:.9;letter-spacing:-.04em}
.answer p{margin:14px 0 0;font-size:13.5px;line-height:1.6;color:rgba(238,241,245,.8)}
.answer p b{color:#fff;font-weight:400}

/* ── подробности ── */
.read{border-top:1px solid var(--line);margin-top:4px}
.read .r{display:flex;align-items:baseline;gap:12px;padding:13px 0;
  border-bottom:1px solid var(--line)}
.read .k{font-size:13.5px;color:var(--fg-2)}
.read .v{margin-left:auto;font-family:var(--f-d);font-weight:var(--w-d);font-size:14px;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.read .s{flex:none;min-width:150px;text-align:right;font-family:var(--f-m);font-size:9.5px;
  letter-spacing:.1em;text-transform:uppercase}
.read .s.ok{color:var(--ok)}
.read .s.tight{color:var(--bad)}
.read .s.wide{color:var(--warn)}
.read .s.nb{color:var(--fg-3)}

.note{margin-top:18px;font-size:11.5px;line-height:1.6;color:var(--fg-3)}

/* ── подвал ── */
.sheet-foot{flex:none;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:14px 22px max(14px,env(safe-area-inset-bottom));
  border-top:1px solid var(--line-2);background:var(--bg)}
.sheet-foot .sum{flex:1 1 100%;font-family:var(--f-m);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--fg-3);order:-1}
.sheet-foot .sum b{color:var(--fg);font-weight:500}
.sheet-foot .btn{flex:1;justify-content:center;padding:14px 18px}
.sheet-foot .btn.ghost{background:transparent;color:var(--fg);
  border:1px solid var(--line-2);box-shadow:none}
.sheet-foot .btn.ghost:hover{border-color:var(--fg)}
.sheet-foot .btn.apply{color:#fff;border:0;
  background:linear-gradient(180deg,var(--blue),var(--blue-deep));
  box-shadow:0 1px 0 rgba(255,255,255,.32) inset,0 14px 30px -14px rgba(30,72,255,.7)}

@media(min-width:520px){
  .sheet-foot .sum{flex:1 1 auto;order:0}
  .sheet-foot .btn{flex:0 0 auto;min-width:136px}
}
@media(max-width:519px){
  .sheet{width:100%;max-height:100%;height:100%}
  .cfg{padding:18px 16px}
  .sheet-head{padding:16px}
  .answer .a-size b{font-size:38px}
  /* на узком экране словесная оценка не влезает рядом с числом */
  .read .r{flex-wrap:wrap}
  .read .s{min-width:0;flex:1 1 100%;text-align:left;margin-top:4px}
}
@media (prefers-reduced-motion: reduce){
  .modal,.sheet{transition:none}
}
