/* ════════════════════════════════════════════════════════════════════════
   dewpoint.css — страница «Точка росы и плесень»
   Использует переменные темы из styles.css (--gold, --surface, --border …).
   Все классы с префиксом dp-, чтобы не задевать остальной сайт.
   ════════════════════════════════════════════════════════════════════════ */

/* ── Хиро ───────────────────────────────────────────────────────────── */
.dp-hero { padding: clamp(3rem,5.5vw,5rem) 0 clamp(1.5rem,2.5vw,2.5rem); border-bottom: 1px solid var(--border); position: relative; overflow: hidden; }
.dp-hero::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 70% 120% at 82% 40%, rgba(47,127,208,.09) 0%, transparent 68%);
}
.dp-hero .wrap { display: grid; grid-template-columns: 1.15fr 1fr; gap: 2.5rem; align-items: center; }
@media(max-width:880px){ .dp-hero .wrap { grid-template-columns: 1fr; gap: 1.4rem; } }
.dp-hero__tag {
  font-size: .65rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gold); display: flex; align-items: center; gap: .6rem; margin-bottom: .9rem;
}
.dp-hero__tag::before { content: ''; width: 24px; height: 2px; background: var(--gold); border-radius: 2px; }
.dp-hero__h1 { font-family: var(--f-head); font-size: clamp(2rem,4.2vw,3.3rem); line-height: 1.1; letter-spacing: -.025em; font-weight: 700; margin-bottom: 1rem; }
.dp-hero__h1 em { font-style: italic; color: var(--gold); }
.dp-hero__desc { font-size: clamp(.9rem,1.1vw,1rem); line-height: 1.75; color: var(--text-muted); max-width: 48ch; }
.dp-hero__cta { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.3rem; }
.dp-hero__trust { font-size: .7rem; color: var(--text-dim); margin-top: .7rem; line-height: 1.5; }
.dp-hero__feats { display: flex; flex-direction: column; gap: .7rem; }
.dp-feat { display: flex; gap: .85rem; align-items: flex-start; background: var(--surface); border: 1px solid var(--border-lt); border-radius: var(--r); padding: .85rem 1rem; }
.dp-feat__icon { font-size: 1.15rem; line-height: 1.2; }
.dp-feat__title { font-size: .82rem; font-weight: 700; margin-bottom: .15rem; }
.dp-feat__desc { font-size: .74rem; color: var(--text-muted); line-height: 1.5; }

/* ── Обёртка приложения ──────────────────────────────────────────────── */
.dp-body { max-width: var(--max); margin: 0 auto; padding: 1.5rem 1.25rem 4rem; }
#dpApp { display: flex; flex-direction: column; gap: 1.1rem; }

.dp-topbar { display: flex; gap: .6rem; align-items: flex-end; flex-wrap: wrap; }
.dp-field { display: flex; flex-direction: column; gap: .28rem; min-width: 0; }
.dp-field--grow { flex: 1; min-width: 240px; }
.dp-field--sm { flex: 1 1 96px; }
.dp-field__lbl { font-size: .6rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--text-dim); }

.dp-select, .dp-num {
  font-family: var(--f-body); font-size: .82rem; color: var(--text);
  background: var(--surface); border: 1px solid var(--border); border-radius: 9px;
  padding: .5rem .6rem; width: 100%; transition: border-color .15s;
}
.dp-select:focus, .dp-num:focus { outline: none; border-color: var(--gold); }
.dp-select--sm { font-size: .76rem; padding: .38rem .5rem; }
.dp-num { max-width: 84px; text-align: right; }
.dp-num--w { max-width: none; text-align: left; }

.dp-btn {
  font-family: var(--f-body); font-size: .78rem; font-weight: 700; cursor: pointer;
  background: var(--text); color: #fff; border: 1px solid var(--text);
  border-radius: 9px; padding: .55rem 1rem; transition: all .18s; white-space: nowrap;
  display: inline-flex; align-items: center; justify-content: center;
}
.dp-btn:hover { background: var(--gold); border-color: var(--gold); }
.dp-btn--ghost { background: none; color: var(--text-muted); border-color: var(--border); }
.dp-btn--ghost:hover { color: var(--gold); border-color: var(--gold); background: rgba(176,120,64,.07); }
.dp-btn--gold { background: var(--gold); border-color: var(--gold); }
.dp-btn--gold:hover { background: var(--gold-dk); border-color: var(--gold-dk); }
.dp-btn--add { width: 100%; margin-top: .55rem; background: none; color: var(--gold); border: 1px dashed rgba(176,120,64,.55); }
.dp-btn--add:hover { background: rgba(176,120,64,.09); color: var(--gold-dk); }
.dp-btn--sm { font-size: .74rem; padding: .45rem .8rem; margin-top: .7rem; }

/* ── Сетка ───────────────────────────────────────────────────────────── */
.dp-grid { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 1.1rem; align-items: start; }
@media(max-width:1000px){ .dp-grid { grid-template-columns: 1fr; } }
.dp-main { display: flex; flex-direction: column; gap: 1.1rem; min-width: 0; }
.dp-side { display: flex; flex-direction: column; gap: 1.1rem; min-width: 0; }

.dp-card { background: var(--surface); border: 1px solid var(--border-lt); border-radius: var(--r); padding: 1.1rem; box-shadow: 0 1px 4px rgba(0,0,0,.04); }
.dp-card__title { font-size: .63rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-dim); margin-bottom: .85rem; }
.dp-lead { font-size: .78rem; line-height: 1.6; color: var(--text-muted); margin-bottom: .85rem; }
.dp-note { font-size: .68rem; line-height: 1.5; color: var(--text-dim); margin-top: .4rem; }
.dp-note--off { color: #c07a55; }
.dp-h2 { font-family: var(--f-head); font-size: clamp(1.4rem,2.4vw,2rem); font-weight: 700; letter-spacing: -.02em; margin: 1.5rem 0 1rem; }
.dp-subtitle { font-size: .63rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-dim); margin: 1.2rem 0 .6rem; }

/* ── Вьюер ───────────────────────────────────────────────────────────── */
.dp-viewer {
  position: relative; border-radius: var(--r); overflow: hidden;
  border: 1px solid var(--border); user-select: none;
  background: radial-gradient(ellipse at 50% 25%, rgba(60,90,120,.20) 0%, #14120e 72%);
  box-shadow: 0 8px 34px rgba(0,0,0,.16);
}
.dp-canvas { display: block; width: 100%; height: 460px; cursor: grab; }
.dp-canvas:active { cursor: grabbing; }
.dp-chartwrap { background: var(--surface); padding: 2.6rem .5rem .5rem; }
.dp-chart { display: block; width: 100%; }

.dp-pill {
  position: absolute; top: .7rem; left: .7rem; z-index: 6; display: flex; gap: 2px;
  background: linear-gradient(180deg, rgba(46,38,28,.92), rgba(12,10,7,.92));
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 100px; padding: 3px; backdrop-filter: blur(10px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 4px 14px rgba(0,0,0,.45);
}
/* В режиме графика переключатель кривых уходит вправо, чтобы не закрывать
   переключатель «3D-пирог / График» в левом верхнем углу. */
.dp-pill--chart { left: auto; right: .7rem; background: var(--surface-2); border-color: var(--border-lt); }
.dp-pill__btn {
  font-family: var(--f-body); font-size: .66rem; font-weight: 700; cursor: pointer;
  padding: .3rem .8rem; border-radius: 100px; border: 1px solid transparent; background: none;
  color: #b3a692; transition: all .18s var(--ease); white-space: nowrap;
}
.dp-pill__btn:hover { color: #fff; background: rgba(255,255,255,.09); }
.dp-pill--chart .dp-pill__btn { color: var(--text-muted); }
.dp-pill--chart .dp-pill__btn:hover { background: rgba(30,26,20,.07); color: var(--text); }
.dp-pill__btn.active {
  background: linear-gradient(180deg, var(--gold-lt), var(--gold-dk));
  color: #fff; border-color: rgba(255,255,255,.28);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 2px 8px rgba(176,120,64,.5);
}
.dp-pill__btn:active { transform: translateY(1px); }

.dp-legend { position: absolute; top: .7rem; right: .7rem; z-index: 6; display: flex; flex-direction: column; gap: .28rem; align-items: flex-end; pointer-events: none; }
.dp-lg { display: inline-flex; align-items: center; gap: .35rem; font-size: .62rem; font-weight: 600; color: rgba(255,255,255,.78); background: rgba(10,8,6,.62); border-radius: 100px; padding: .18rem .55rem; backdrop-filter: blur(8px); }
.dp-lg i { width: 8px; height: 8px; border-radius: 2px; display: block; }
.dp-lg--note { color: rgba(255,255,255,.45); font-weight: 500; }

.dp-hint { position: absolute; bottom: .7rem; left: 50%; transform: translateX(-50%); z-index: 5; font-size: .66rem; color: rgba(255,255,255,.55); background: rgba(0,0,0,.5); padding: .28rem .7rem; border-radius: 100px; white-space: nowrap; pointer-events: none; backdrop-filter: blur(8px); }
@media(max-width:760px){ .dp-hint { display: none; } }

/* Кнопки режимов — вторым рядом сверху: снизу их закрывает cookie-баннер */
.dp-vctrls { position: absolute; top: 3.05rem; left: .7rem; z-index: 6; display: flex; flex-wrap: wrap; gap: .3rem; max-width: calc(100% - 1.4rem); }
@media(max-width:600px){
  .dp-legend { top: auto; bottom: .55rem; right: .55rem; }
  .dp-vctrls { max-width: calc(100% - 1rem); left: .5rem; }
}
/* Кнопки режимов над 3D — объёмные, чтобы читались как нажимаемые */
.dp-vbtn {
  font-family: var(--f-body); font-size: .68rem; font-weight: 700; cursor: pointer;
  color: #d8ccb8; letter-spacing: .01em;
  background: linear-gradient(180deg, rgba(58,48,36,.95), rgba(16,13,9,.95));
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 100px; padding: .38rem .85rem;
  transition: transform .16s var(--ease), box-shadow .18s, background .18s, color .18s, border-color .18s;
  backdrop-filter: blur(10px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 3px 10px rgba(0,0,0,.5);
}
.dp-vbtn:hover {
  color: #fff; border-color: rgba(255,255,255,.4);
  transform: translateY(-1.5px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 6px 16px rgba(0,0,0,.55);
}
.dp-vbtn:active { transform: translateY(1px); box-shadow: inset 0 2px 5px rgba(0,0,0,.55); }
.dp-vbtn:focus-visible { outline: 2px solid var(--gold-lt); outline-offset: 2px; }
.dp-vbtn.active {
  color: #fff; border-color: rgba(255,255,255,.35);
  background: linear-gradient(180deg, var(--gold-lt), var(--gold-dk));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 4px 16px rgba(176,120,64,.55);
}
.dp-vbtn.active:hover { box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 7px 20px rgba(176,120,64,.65); }
/* Нечего показывать — кнопка есть, но приглушена */
.dp-vbtn--muted { opacity: .4; box-shadow: none; }
.dp-vbtn--muted.active { background: rgba(176,120,64,.3); box-shadow: none; }
.dp-vbtn--muted:hover { transform: none; }

/* Короткий «поманить» на кнопке плесени, когда риск есть, а её ещё не открывали */
@keyframes dp-invite {
  0%, 100% { box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 4px 16px rgba(176,120,64,.55); }
  50%      { box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 0 0 4px rgba(200,144,78,.28), 0 6px 22px rgba(176,120,64,.7); }
}
.dp-vbtn--invite { animation: dp-invite 1.5s ease-in-out 3; }
@media (prefers-reduced-motion: reduce) {
  .dp-vbtn, .dp-pill__btn { transition: none; }
  .dp-vbtn:hover { transform: none; }
  .dp-vbtn--invite { animation: none; }
}

.dp-tip {
  position: absolute; z-index: 20; pointer-events: none; opacity: 0; transform: translateY(-6px);
  transition: opacity .14s, transform .14s; min-width: 168px; max-width: 220px;
  background: rgba(18,16,12,.96); border: 1px solid rgba(176,120,64,.4);
  border-radius: 10px; padding: .6rem .75rem; backdrop-filter: blur(14px);
}
.dp-tip.show { opacity: 1; transform: translateY(0); }
.dp-tip__n { font-size: .78rem; font-weight: 700; color: #f5f0e8; margin-bottom: .2rem; }
.dp-tip__row { font-size: .68rem; color: rgba(255,255,255,.6); line-height: 1.45; }
.dp-bad { color: #ff8f8f; }

/* ── Числа ───────────────────────────────────────────────────────────── */
/* 118px подобрано под реальную ширину левой колонки (~780px): в ряд встаёт
   шесть карточек, и одиннадцать чисел ложатся как 6+5, без одинокой карточки
   в последнем ряду */
.dp-stats { display: grid; grid-template-columns: repeat(auto-fit,minmax(118px,1fr)); gap: .5rem; }
/* min-width:0 обязателен: иначе длинное слово в подписи расширяет колонку
   грида, карточек в ряду становится меньше и последняя остаётся одна */
.dp-stat { background: var(--surface); border: 1px solid var(--border-lt); border-radius: 10px; padding: .65rem .7rem; min-width: 0; overflow-wrap: break-word; }
.dp-stat__v { font-size: 1.06rem; font-weight: 700; color: var(--text); line-height: 1.2; }
.dp-stat__v span { font-size: .66rem; font-weight: 600; color: var(--text-dim); }
.dp-stat__v--sm { font-size: .8rem; line-height: 1.35; }
.dp-stat__l { font-size: .62rem; color: var(--text-muted); margin-top: .2rem; line-height: 1.3; }
.dp-stat--good { border-color: rgba(64,145,108,.4); background: rgba(64,145,108,.06); }
.dp-stat--good .dp-stat__v { color: #2f6a4f; }
.dp-stat--warn { border-color: rgba(200,144,78,.45); background: rgba(200,144,78,.08); }
.dp-stat--warn .dp-stat__v { color: #9a6a24; }
.dp-stat--bad { border-color: rgba(200,70,70,.4); background: rgba(200,70,70,.07); }
.dp-stat--bad .dp-stat__v { color: #b03d3d; }

.dp-warn { font-size: .76rem; line-height: 1.55; color: #9a4a2a; background: rgba(224,120,60,.1); border: 1px solid rgba(224,120,60,.32); border-radius: 9px; padding: .6rem .8rem; margin: .7rem 0; }

/* ── Климат ──────────────────────────────────────────────────────────── */
.dp-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-bottom: .7rem; }
.dp-slider { margin-bottom: .75rem; }
.dp-slider__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: .25rem; gap: .5rem; }
.dp-slider__val { font-size: .78rem; font-weight: 700; color: var(--gold); white-space: nowrap; }
.dp-range { -webkit-appearance: none; appearance: none; width: 100%; height: 4px; border-radius: 4px; background: var(--border); outline: none; }
.dp-range::-webkit-slider-thumb { -webkit-appearance: none; width: 16px; height: 16px; border-radius: 50%; background: var(--gold); cursor: pointer; border: 2px solid var(--surface); box-shadow: 0 1px 4px rgba(0,0,0,.25); }
.dp-range::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: var(--gold); cursor: pointer; border: 2px solid var(--surface); }

.dp-spot { margin-top: .9rem; padding-top: .9rem; border-top: 1px solid var(--border-lt); }
.dp-segrow { display: flex; gap: .3rem; margin-top: .35rem; }
.dp-seg {
  flex: 1; font-family: var(--f-body); font-size: .7rem; font-weight: 600; cursor: pointer;
  background: none; color: var(--text-muted); border: 1px solid var(--border-lt);
  border-radius: 8px; padding: .42rem .3rem; transition: all .18s;
}
.dp-seg.active { background: rgba(176,120,64,.1); color: var(--gold); border-color: rgba(176,120,64,.45); }

/* ── Слои ────────────────────────────────────────────────────────────── */
.dp-layers { display: flex; flex-direction: column; gap: .3rem; }
.dp-envrow { display: flex; justify-content: space-between; font-size: .64rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .32rem .5rem; border-radius: 7px; }
.dp-envrow--in { background: rgba(200,144,78,.12); color: #9a6a24; }
.dp-envrow--out { background: rgba(60,120,180,.12); color: #37699a; }
.dp-layer { display: flex; gap: .45rem; align-items: flex-start; padding: .32rem .4rem; border-radius: 9px; border: 1px solid transparent; transition: background .15s, border-color .15s; }
.dp-layer:hover { background: var(--surface-2); border-color: var(--border-lt); }
.dp-layer--off { opacity: .5; }
.dp-layer__sw { width: 8px; align-self: stretch; min-height: 34px; border-radius: 3px; flex-shrink: 0; }
.dp-layer__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .2rem; }
.dp-layer__d { display: flex; align-items: center; gap: .3rem; flex-wrap: wrap; }
.dp-layer__d .dp-num { padding: .18rem .35rem; font-size: .72rem; max-width: 58px; }
.dp-layer .dp-select--sm { padding: .28rem .45rem; }
.dp-unit { font-size: .64rem; color: var(--text-dim); }
.dp-layer__phys { font-size: .6rem; color: var(--text-dim); font-variant-numeric: tabular-nums; }
/* кнопки в ряд, а не столбиком — столбик задавал высоту всей строки */
.dp-layer__acts { display: flex; flex-direction: row; gap: 2px; align-self: center; }
.dp-icon { width: 20px; height: 20px; border-radius: 5px; border: 1px solid var(--border-lt); background: var(--surface); color: var(--text-muted); font-size: .7rem; line-height: 1; cursor: pointer; transition: all .15s; display: flex; align-items: center; justify-content: center; }
.dp-icon:hover { color: var(--gold); border-color: var(--gold); }
.dp-icon--del:hover { color: #c04a4a; border-color: #c04a4a; }
.dp-total { font-weight: 700; color: var(--text-muted); }

/* ── Отчёт ───────────────────────────────────────────────────────────── */
.dp-report { border-color: var(--border); }
.dp-verdict { border-radius: 10px; padding: .95rem 1.1rem; border: 1px solid; margin-bottom: .7rem; }
.dp-verdict__t { font-family: var(--f-head); font-size: 1.25rem; font-weight: 700; margin-bottom: .25rem; }
.dp-verdict__d { font-size: .8rem; line-height: 1.6; }
.dp-verdict--good { background: rgba(64,145,108,.09); border-color: rgba(64,145,108,.4); }
.dp-verdict--good .dp-verdict__t { color: #2f6a4f; }
.dp-verdict--warn { background: rgba(200,144,78,.1); border-color: rgba(200,144,78,.45); }
.dp-verdict--warn .dp-verdict__t { color: #9a6a24; }
.dp-verdict--bad { background: rgba(200,70,70,.08); border-color: rgba(200,70,70,.4); }
.dp-verdict--bad .dp-verdict__t { color: #b03d3d; }
.dp-verdict__d { color: var(--text-muted); }
.dp-repmeta { font-size: .7rem; color: var(--text-dim); font-variant-numeric: tabular-nums; }
.dp-verdict__head { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; margin-bottom: .25rem; }
.dp-verdict__head .dp-verdict__t { margin-bottom: 0; }
.dp-chip {
  font-size: .58rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase;
  color: var(--text-muted); background: rgba(30,26,20,.06);
  border: 1px solid var(--border); border-radius: 100px; padding: .22rem .6rem; white-space: nowrap;
}

/* ── Границы точности ────────────────────────────────────────────────── */
.dp-limits {
  margin-top: 1.1rem; padding: 1.1rem 1.2rem;
  border: 1px solid var(--border); border-radius: 11px;
  background: linear-gradient(180deg, var(--surface-2), rgba(240,233,220,.4));
}
.dp-limits__t {
  font-family: var(--f-head); font-size: 1.05rem; font-weight: 700; margin-bottom: .35rem;
}
.dp-limits__lead { font-size: .82rem; line-height: 1.7; color: var(--text-muted); margin-bottom: 1rem; max-width: 72ch; }
.dp-limits__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media(max-width:820px){ .dp-limits__grid { grid-template-columns: 1fr; } }
.dp-lim__h {
  font-size: .62rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase;
  margin-bottom: .5rem; display: flex; align-items: center; gap: .4rem;
}
.dp-lim--can .dp-lim__h { color: #2f6a4f; }
.dp-lim--cant .dp-lim__h { color: var(--gold-dk); }
.dp-lim ul { list-style: none; display: flex; flex-direction: column; gap: .5rem; }
.dp-lim li { font-size: .78rem; line-height: 1.6; color: var(--text-muted); padding-left: 1.35rem; position: relative; }
.dp-lim li::before { position: absolute; left: 0; top: -.02em; font-weight: 700; }
.dp-lim--can li::before { content: '✓'; color: #2f6a4f; }
.dp-lim--cant li::before { content: '—'; color: var(--gold); }
.dp-limits__foot {
  font-size: .82rem; line-height: 1.7; color: var(--text); margin-top: 1rem;
  padding-top: .85rem; border-top: 1px solid var(--border-lt); max-width: 72ch;
}
.dp-limits .dp-method { margin-top: .7rem; padding-top: .6rem; }
.dp-moldtime { font-size: .78rem; font-weight: 600; color: #9a4a2a; background: rgba(224,120,60,.09); border-radius: 8px; padding: .5rem .75rem; margin-top: .6rem; }

.dp-recs { list-style: none; display: flex; flex-direction: column; gap: .5rem; counter-reset: dprec; }
.dp-rec { position: relative; background: var(--surface-2); border: 1px solid var(--border-lt); border-left: 3px solid var(--border); border-radius: 9px; padding: .7rem .9rem; counter-increment: dprec; }
.dp-rec--crit { border-left-color: #c04a4a; }
.dp-rec--warn { border-left-color: var(--gold); }
.dp-rec--info { border-left-color: #6f9bc0; }
.dp-rec__sev { font-size: .58rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--text-dim); }
.dp-rec--crit .dp-rec__sev { color: #b03d3d; }
.dp-rec--warn .dp-rec__sev { color: var(--gold-dk); }
.dp-rec__t { font-size: .85rem; font-weight: 700; margin: .1rem 0 .25rem; }
.dp-rec__t::before { content: counter(dprec) '. '; color: var(--text-dim); }
.dp-rec__b { font-size: .78rem; line-height: 1.65; color: var(--text-muted); }

.dp-repacts { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; }
.dp-method { font-size: .68rem; line-height: 1.6; color: var(--text-dim); margin-top: .9rem; padding-top: .8rem; border-top: 1px solid var(--border-lt); }
.dp-cta { margin-top: 1rem; padding: 1rem 1.1rem; border-radius: 10px; background: rgba(176,120,64,.07); border: 1px solid rgba(176,120,64,.32); display: flex; gap: 1rem; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.dp-cta p { font-size: .82rem; line-height: 1.6; color: var(--text-muted); margin: 0; max-width: 52ch; }

/* ── Решения: что даст каждый вариант работ ──────────────────────────── */
.dp-fixblock { border-color: var(--border); }
.dp-fixgrid { display: grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap: .7rem; }
.dp-fix { border: 1px solid var(--border-lt); border-radius: 11px; padding: .9rem 1rem; background: var(--surface-2); display: flex; flex-direction: column; }
.dp-fix--good { border-color: rgba(64,145,108,.45); background: rgba(64,145,108,.06); }
.dp-fix--warn { border-color: rgba(200,144,78,.45); background: rgba(200,144,78,.06); }
.dp-fix--bad  { border-color: var(--border-lt); }
.dp-fix__head { display: flex; align-items: flex-start; justify-content: space-between; gap: .6rem; margin-bottom: .4rem; }
.dp-fix__t { font-size: .88rem; font-weight: 700; line-height: 1.35; }
.dp-fix__badge { font-size: .58rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; padding: .22rem .5rem; border-radius: 100px; flex-shrink: 0; }
.dp-fix--good .dp-fix__badge { background: #2f6a4f; color: #fff; }
.dp-fix--warn .dp-fix__badge { background: var(--gold); color: #fff; }
.dp-fix--bad  .dp-fix__badge { background: var(--border); color: var(--text-muted); }
.dp-fix__d { font-size: .76rem; line-height: 1.6; color: var(--text-muted); margin-bottom: .7rem; }
.dp-fixtab { width: 100%; border-collapse: collapse; margin-bottom: .8rem; font-variant-numeric: tabular-nums; }
.dp-fixtab th { font-size: .58rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--text-dim); text-align: right; padding: 0 0 .3rem; }
.dp-fixtab th:first-child { text-align: left; }
.dp-fixtab td { font-size: .76rem; padding: .28rem 0; border-top: 1px solid var(--border-lt); text-align: right; color: var(--text-muted); }
.dp-fixtab td:first-child { text-align: left; color: var(--text-dim); font-size: .72rem; }
.dp-fixtab .dp-up { color: #2f6a4f; font-weight: 700; }
.dp-fixtab .dp-flat { color: var(--text); font-weight: 600; }
.dp-fix__acts { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: auto; }
.dp-fix__acts .dp-btn--sm { margin-top: 0; }

/* ── Лид-блок ────────────────────────────────────────────────────────── */
.dp-lead-box { margin-top: 1rem; padding: 1.1rem 1.2rem; border-radius: 11px; border: 1px solid rgba(176,120,64,.32); background: rgba(176,120,64,.07); }
.dp-lead-box--hot { border-color: rgba(200,70,70,.38); background: rgba(200,70,70,.06); }
.dp-lead-box__t { font-family: var(--f-head); font-size: 1.15rem; font-weight: 700; margin-bottom: .35rem; }
.dp-lead-box--hot .dp-lead-box__t { color: #b03d3d; }
.dp-lead-box__d { font-size: .82rem; line-height: 1.65; color: var(--text-muted); margin-bottom: .85rem; max-width: 62ch; }
.dp-lead-box__acts { display: flex; flex-wrap: wrap; gap: .45rem; }
.dp-proof { display: flex; flex-wrap: wrap; gap: .35rem .9rem; margin-top: .9rem; padding-top: .8rem; border-top: 1px solid var(--border-lt); }
.dp-proof__i { font-size: .68rem; font-weight: 600; color: var(--text-muted); display: inline-flex; align-items: center; gap: .35rem; }
.dp-proof__i::before { content: '✓'; color: #2f6a4f; font-weight: 700; }

/* ── Липкая панель с вердиктом ───────────────────────────────────────── */
.dp-sticky {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 8998;
  display: flex; align-items: center; gap: 1rem;
  padding: .6rem 1.25rem;
  background: rgba(20,17,12,.94); backdrop-filter: blur(14px);
  border-top: 1px solid rgba(255,255,255,.12);
  transform: translateY(110%); transition: transform .32s var(--ease);
}
.dp-sticky.show { transform: translateY(0); }
.dp-sticky__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .1rem; }
.dp-sticky__txt b { font-size: .82rem; color: #f5f0e8; }
.dp-sticky--hot .dp-sticky__txt b { color: #ff9b8f; }
.dp-sticky__txt span { font-size: .7rem; color: rgba(255,255,255,.6); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dp-sticky__acts { display: flex; gap: .4rem; flex-shrink: 0; }
.dp-sticky__acts .dp-btn { margin-top: 0; }
.dp-sticky__acts .dp-btn:not(.dp-btn--gold) { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.2); color: #fff; }
.dp-sticky__acts .dp-btn:not(.dp-btn--gold):hover { background: rgba(255,255,255,.22); }
.dp-sticky__x { position: absolute; top: .3rem; right: .5rem; width: 22px; height: 22px; border: none; background: none; color: rgba(255,255,255,.45); font-size: .7rem; cursor: pointer; }
.dp-sticky__x:hover { color: #fff; }
/* Плавающие кнопки сайта (WhatsApp, чат) уезжают вверх над панелью */
.floating-wa-wrap, #alexa-bubble, #alexa-chat { transition: bottom .32s var(--ease); }
body.dp-sticky-on .floating-wa-wrap,
body.dp-sticky-on #alexa-bubble { bottom: 6.2rem; }
body.dp-sticky-on #alexa-chat { bottom: 10.7rem; }

@media(max-width:700px){
  body.dp-sticky-on .floating-wa-wrap,
  body.dp-sticky-on #alexa-bubble { bottom: 8.5rem; }
  body.dp-sticky-on #alexa-chat { bottom: 13rem; }
  .dp-sticky { padding: .55rem 1rem .55rem .8rem; flex-wrap: wrap; gap: .5rem; }
  .dp-sticky__txt span { white-space: normal; font-size: .66rem; }
  .dp-sticky__acts { width: 100%; }
  .dp-sticky__acts .dp-btn { flex: 1; }
}

/* ── Плесень ─────────────────────────────────────────────────────────── */
/* В секции остался один блок диагностики — раскладываем его внутри на две
   колонки: слева схема комнаты с точками, справа разбор выбранной. */
.dp-mold__grid { display: grid; grid-template-columns: 1fr; gap: 1.1rem; align-items: start; }
.dp-diag { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1.1rem 1.4rem; align-items: start; }
.dp-diag__head { grid-column: 1 / -1; }
@media(max-width:900px){ .dp-diag { grid-template-columns: 1fr; } }
.dp-brow { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .7rem; }
.dp-bstats { display: grid; grid-template-columns: repeat(auto-fit,minmax(120px,1fr)); gap: .5rem; margin-top: .8rem; }
.dp-bverdict { font-size: .78rem; line-height: 1.55; border-radius: 9px; padding: .6rem .8rem; margin-top: .6rem; border: 1px solid; }
.dp-bverdict--ok { background: rgba(64,145,108,.08); border-color: rgba(64,145,108,.35); color: #2f6a4f; }
.dp-bverdict--warn { background: rgba(200,144,78,.1); border-color: rgba(200,144,78,.4); color: #9a6a24; }
.dp-bverdict--bad { background: rgba(200,70,70,.08); border-color: rgba(200,70,70,.38); color: #b03d3d; }

.dp-room { border-radius: 10px; overflow: hidden; border: 1px solid var(--border-lt); background: var(--surface-2); }
.dp-roomsvg { display: block; width: 100%; height: auto; }
.dp-hot { cursor: pointer; }
.dp-hot circle { fill: rgba(30,26,20,.55); stroke: #fff; stroke-width: 1.5; transition: fill .18s, r .18s; }
.dp-hot text { fill: #fff; font: 700 10px var(--f-body); pointer-events: none; }
.dp-hot:hover circle { fill: var(--gold); }
.dp-hot.active circle { fill: #c0392b; stroke: #fff; }

.dp-chips { display: flex; flex-wrap: wrap; gap: .35rem; margin: .7rem 0; }
.dp-chip { font-family: var(--f-body); font-size: .7rem; font-weight: 600; cursor: pointer; background: none; color: var(--text-muted); border: 1px solid var(--border-lt); border-radius: 100px; padding: .3rem .7rem; transition: all .18s; }
.dp-chip:hover { color: var(--gold); border-color: rgba(176,120,64,.5); }
.dp-chip.active { background: var(--text); color: #fff; border-color: var(--text); }

.dp-dout { background: var(--surface-2); border: 1px solid var(--border-lt); border-radius: 10px; padding: .85rem .95rem; }
.dp-dout__n { font-size: .88rem; font-weight: 700; margin-bottom: .5rem; }
.dp-dout__b { font-size: .78rem; line-height: 1.65; color: var(--text-muted); margin-bottom: .5rem; }
.dp-dout__lbl { display: block; font-size: .58rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: #b03d3d; margin-bottom: .15rem; }
.dp-dout__lbl--fix { color: #2f6a4f; }

.dp-clgrid { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: .8rem; }
.dp-clcol { border-radius: 10px; padding: .85rem .9rem; border: 1px solid var(--border-lt); background: var(--surface-2); }
.dp-clcol__h { font-size: .64rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; margin-bottom: .55rem; }
.dp-clcol--good { border-color: rgba(64,145,108,.35); } .dp-clcol--good .dp-clcol__h { color: #2f6a4f; }
.dp-clcol--warn { border-color: rgba(200,144,78,.4); } .dp-clcol--warn .dp-clcol__h { color: #9a6a24; }
.dp-clcol--gold { border-color: rgba(176,120,64,.4); } .dp-clcol--gold .dp-clcol__h { color: var(--gold-dk); }
.dp-clcol--bad  { border-color: rgba(200,70,70,.35); } .dp-clcol--bad .dp-clcol__h { color: #b03d3d; }
.dp-cllist { list-style: none; display: flex; flex-direction: column; gap: .45rem; }
.dp-cllist li { font-size: .76rem; line-height: 1.55; color: var(--text-muted); padding-left: 1.25rem; position: relative; }
.dp-cllist li::before { content: '·'; position: absolute; left: .35rem; font-weight: 700; color: var(--text-dim); }
.dp-cli { cursor: pointer; transition: color .15s; }
.dp-cli::before { content: '☐'; font-size: .8rem; left: 0; }
.dp-cli:hover { color: var(--text); }
.dp-cli.done { color: var(--text-dim); text-decoration: line-through; }
.dp-cli.done::before { content: '☑'; color: #2f6a4f; }
.dp-clcol--bad .dp-cllist li::before { content: '✕'; color: #b03d3d; font-size: .7rem; }

/* ── Статический SEO-блок ────────────────────────────────────────────── */
.dp-article { max-width: 760px; margin: 0 auto; padding: 0 1.25rem 4rem; }
.dp-article h2 { font-family: var(--f-head); font-size: clamp(1.35rem,2.2vw,1.8rem); font-weight: 700; letter-spacing: -.02em; margin: 2rem 0 .8rem; }
.dp-article h3 { font-size: 1rem; font-weight: 700; margin: 1.4rem 0 .5rem; }
.dp-article p, .dp-article li { font-size: .88rem; line-height: 1.8; color: var(--text-muted); }
.dp-article p { margin-bottom: .8rem; }
.dp-article ul, .dp-article ol { margin: 0 0 1rem 1.2rem; display: flex; flex-direction: column; gap: .35rem; }
.dp-article strong { color: var(--text); font-weight: 700; }
.dp-faq { border-top: 1px solid var(--border-lt); }
.dp-faq details { border-bottom: 1px solid var(--border-lt); padding: .85rem 0; }
.dp-faq summary { font-size: .9rem; font-weight: 700; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.dp-faq summary::-webkit-details-marker { display: none; }
.dp-faq summary::after { content: '+'; color: var(--gold); font-weight: 700; }
.dp-faq details[open] summary::after { content: '−'; }
.dp-faq details p { margin: .6rem 0 0; font-size: .84rem; }

/* ── Печать: остаётся только отчёт ───────────────────────────────────── */
@media print {
  .header, .mob-nav, .footer, .dp-hero, .dp-viewer, .dp-side, .dp-mold,
  .dp-topbar, .dp-repacts, .dp-cta, .dp-article, #alexa-widget, .dp-hint,
  .dp-sticky, .floating-wa-wrap, #cookie-banner { display: none !important; }
  /* В печатной версии оставляем контакты и варианты решений — это и есть оффер */
  .dp-fixblock { break-before: page; }
  body { padding-top: 0 !important; background: #fff; }
  .dp-body { padding: 0; }
  .dp-grid { display: block; }
  .dp-card { border: none; box-shadow: none; padding: 0; }
  .dp-stats { grid-template-columns: repeat(3,1fr); }
  .dp-rec { break-inside: avoid; }
}
