/* PDAI: кожа (схема + 12 областей), голова, слизистые. Общее для калькуляторов — в calc.css.
   На схеме цвет области — балл активности; пунктирный контур — «след» заживших очагов. */
.calc { --idx: var(--pdai); }

.lesions { color: var(--ink-3); font-size: var(--fs-0); max-width: 70ch; margin: -0.6rem 0 1.25rem; }

/* Схема тела */
.sk-grid { display: grid; grid-template-columns: minmax(16rem, 0.8fr) minmax(0, 1.4fr); gap: 2rem; align-items: start; }
.figure { position: sticky; top: 4.6rem; background: var(--sheet); border: 1px solid var(--rule); border-radius: 1.25rem; padding: 0.8rem; }
.figure svg { display: block; width: 100%; max-height: 68vh; }
.mid { stroke: var(--rule); stroke-dasharray: 2 5; }
.zp {
  fill: color-mix(in srgb, var(--pdai) calc(var(--act, 0) * 90%), #e7ebe8);
  stroke: var(--rule-strong); stroke-width: 0.9; stroke-linejoin: round; cursor: pointer;
  transition: fill 0.35s var(--ease-out);
}
.zp.zero { fill: #d6e4dc; }
.zp:hover { stroke: var(--ink-2); stroke-width: 1.4; }
.zp.dmgd { stroke: #6b3a10; stroke-width: 1.8; stroke-dasharray: 3 2.5; }
.zp.sel { stroke: var(--ink); stroke-width: 2.2; stroke-dasharray: none; }
.side { fill: var(--ink-3); font-size: 11px; font-weight: 600; }
.vlabel { fill: var(--ink-2); font-size: 12px; font-weight: 600; }

/* Критерии баллов */
.crit { margin-bottom: 0.9rem; background: var(--paper-2); border-radius: 0.8rem; padding: 0.55rem 0.9rem; }
.crit summary { cursor: pointer; font-weight: 600; font-size: var(--fs-0); color: var(--ink-2); }
.crit dl { margin: 0.5rem 0 0.2rem; display: grid; gap: 0.2rem; }
.crit dl div { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: 0.6rem; align-items: baseline; }
.crit dt { font-family: var(--display); font-weight: 900; font-size: 1.25rem; color: var(--idx); text-align: right; }
.crit dd { margin: 0; font-size: var(--fs-0); color: var(--ink-2); }

/* Строки оценки */
.rows { list-style: none; margin: 0; padding: 0; }
.rows.two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2.5rem; }
.rows.one { max-width: 46rem; }
.pr { display: grid; grid-template-columns: minmax(7.5rem, 1fr) auto auto; gap: 0.75rem; align-items: center; padding: 0.45rem 0.4rem; border-bottom: 1px solid var(--rule); border-radius: 0.4rem; }
.rows.two .pr { grid-template-columns: minmax(7.5rem, 1fr) auto; }
.pr-name { font-weight: 600; }
.pr:not(.done) .pr-name { color: var(--ink-3); }
.pr.sel { background: #f2e6ef; }
.seg { display: flex; border: 1px solid var(--rule-strong); border-radius: 0.55rem; overflow: hidden; }
.sg { font: inherit; font-family: var(--display); font-weight: 800; font-size: 1.2rem; min-width: 2.6rem; min-height: 2.5rem; padding: 0 0.3rem; cursor: pointer; background: var(--sheet); color: var(--ink); border: 0; border-left: 1px solid var(--rule); }
.sg:first-child { border-left: 0; }
.sg:hover { background: var(--paper-2); }
.sg.on { background: var(--ink); color: var(--paper-2); }
.sg.on:not(.zero) { background: var(--idx); }
.sg:focus-visible { outline-offset: -3px; }
.dmg { font: inherit; font-size: var(--fs-0); font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 0.4rem; min-height: 2.5rem; padding: 0 0.4rem 0 0.7rem; color: var(--ink-2); background: var(--sheet); border: 1px dashed var(--rule-strong); border-radius: 2rem; }
.dmg b { font-family: var(--display); font-size: 1.05rem; min-width: 1.5rem; height: 1.5rem; border-radius: 1rem; display: grid; place-items: center; background: var(--paper); }
.dmg.on { border: 1px solid #6b3a10; color: #6b3a10; background: #f3e4d6; }
.dmg.on b { background: #6b3a10; color: #fff; }
.bulk { display: flex; gap: 1.25rem; flex-wrap: wrap; margin-top: 0.9rem; }
.link { font: inherit; cursor: pointer; border: 0; background: none; padding: 0; color: var(--ink); text-decoration: underline; font-size: var(--fs-0); }
.link.erase { color: var(--severe); }

/* Итог */
.formula { background: var(--sheet); border-radius: 1.25rem; padding: 1.5rem 1.75rem; }
.f-sym { font-family: var(--display); font-weight: 700; font-size: 1.6rem; color: var(--ink-3); }
.f-num { font-family: var(--display); font-weight: 700; font-size: clamp(2rem, 5vw, 3.4rem); line-height: 1.1; margin-top: 0.3rem; }
.f-num b { font-weight: 900; color: var(--idx); }
.f-leg { color: var(--ink-3); font-size: var(--fs-0); margin-top: 0.3rem; }
.scales.one { grid-template-columns: minmax(0, 46rem); }
.big-score em { max-width: 14rem; }

@media (max-width: 900px) {
  .sk-grid, .rows.two { grid-template-columns: 1fr; }
  .figure { position: static; }
  .figure svg { max-height: 60vh; }
}
@media (max-width: 640px) {
  .pr { grid-template-columns: minmax(0, 1fr) auto; gap: 0.4rem 0.6rem; padding: 0.6rem 0.2rem; }
  .pr .seg { grid-column: 1 / -1; grid-row: 2; }
  .pr .dmg { grid-column: 2; grid-row: 1; }
  .rows.two .pr .seg { grid-row: 2; }
  .sg { flex: 1; min-width: 0; }
}

@media print {
  .ps-cols { display: grid; grid-template-columns: 6.6cm 1fr; gap: 6mm; align-items: start; margin-top: 2mm; }
  .ps-fig svg { width: 100%; height: auto; }
  .ps-fig .zp { stroke: #9fb2ac; }
  .ps-fig .zp.dmgd { stroke: #6b3a10; }
  .ps-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 5mm; }
  .ps-tabs .scale { margin: 2mm 3mm 6mm 0; }
  .ps-total b small { font-size: 12pt; color: var(--ink-3); }
}
