/* ============================================================
   КадастрМинус — стили интерактивных инструментов (/ew3, /calc)
   ============================================================ */
.tool-hero { background: radial-gradient(120% 120% at 80% 0%, var(--navy-700), var(--navy-900)); color: #fff; padding: calc(var(--header-h) + 48px) 0 56px; position: relative; overflow: hidden; }
.tool-hero .hero__blob { opacity: .4; }
.tool-hero h1 { font-size: clamp(1.9rem, 4vw, 3rem); }
.tool-hero p { color: rgba(255,255,255,.82); max-width: 620px; margin-top: 12px; }
.tool-hero .badge { margin-bottom: 14px; }

.tool-wrap { max-width: 760px; margin: -36px auto 0; position: relative; z-index: 3; padding: 0 var(--gutter) 80px; }
.tool-card { background: var(--paper); border-radius: var(--r-xl); box-shadow: var(--sh-lg); padding: clamp(24px, 3.5vw, 44px); border: 1px solid var(--line); }

/* прогресс */
.tool-progress { margin-bottom: 26px; }
.tool-progress__bar { height: 8px; background: var(--paper-3); border-radius: 5px; overflow: hidden; }
.tool-progress__fill { height: 100%; width: 0; background: linear-gradient(90deg, var(--gold-400), var(--gold-600)); border-radius: 5px; transition: width .4s var(--ease); }
.tool-progress__txt { display: flex; justify-content: space-between; font-size: .85rem; color: var(--ink-soft); margin-top: 8px; }

/* интро-форма */
.tool-intro .field { margin-bottom: 18px; }
.intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 560px) { .intro-grid { grid-template-columns: 1fr; } }

/* вопрос */
.q-step { animation: heroWord .4s var(--ease); }
.q-num { font-size: .82rem; font-weight: 700; color: var(--gold-600); letter-spacing: .08em; text-transform: uppercase; }
.q-text { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.2rem, 2.4vw, 1.6rem); margin: 8px 0 6px; line-height: 1.3; }
.q-hint { color: var(--ink-soft); font-size: .94rem; margin-bottom: 22px; padding-left: 14px; border-left: 3px solid var(--gold-300); }
.q-opts { display: grid; gap: 12px; }
.q-opt { display: flex; align-items: center; gap: 14px; padding: 16px 20px; border: 2px solid var(--line); border-radius: var(--r-md); cursor: pointer; transition: all .15s var(--ease); font-weight: 500; background: var(--paper); }
.q-opt:hover { border-color: var(--gold-400); background: #fffdf9; transform: translateX(4px); }
.q-opt.sel { border-color: var(--gold-500); background: linear-gradient(90deg, rgba(212,165,116,.1), transparent); box-shadow: var(--sh-sm); }
.q-opt__radio { width: 22px; height: 22px; border: 2px solid var(--line); border-radius: 50%; flex-shrink: 0; display: grid; place-items: center; transition: all .15s; }
.q-opt.sel .q-opt__radio { border-color: var(--gold-500); }
.q-opt.sel .q-opt__radio::after { content: ""; width: 12px; height: 12px; border-radius: 50%; background: var(--gold-500); }
.status-ok { color: var(--success); font-weight: 700; }
.status-warn { color: #c98a1a; font-weight: 700; }
.status-err { color: var(--danger); font-weight: 700; }

.q-nav { display: flex; justify-content: space-between; margin-top: 26px; gap: 12px; }

/* стоп-экран */
.tool-stop { text-align: center; padding: 16px 0; }
.tool-stop .ic { width: 72px; height: 72px; border-radius: 50%; background: #fdecea; color: var(--danger); display: grid; place-items: center; margin: 0 auto 18px; }
.tool-stop h3 { font-size: 1.4rem; margin-bottom: 10px; }
.tool-stop p { color: var(--ink-soft); white-space: pre-line; max-width: 520px; margin: 0 auto 24px; }

/* результат */
.tool-result { text-align: center; }
.result-ring { width: 180px; height: 180px; margin: 0 auto 10px; transform: rotate(-90deg); }
.result-ring .tk { fill: none; stroke: var(--paper-3); stroke-width: 12; }
.result-ring .br { fill: none; stroke: url(#tg); stroke-width: 12; stroke-linecap: round; transition: stroke-dashoffset 1s var(--ease); }
.result-score { font-family: var(--font-display); font-weight: 800; font-size: 3rem; color: var(--navy-700); }
.result-verdict { font-family: var(--font-display); font-weight: 800; font-size: 1.6rem; margin: 6px 0 8px; }
.result-verdict.good { color: var(--success); }
.result-verdict.mid { color: #c98a1a; }
.result-verdict.low { color: var(--danger); }
.result-desc { color: var(--ink-soft); max-width: 540px; margin: 0 auto 26px; }
.result-lead { background: var(--paper-2); border-radius: var(--r-lg); padding: 26px; margin-top: 10px; text-align: left; }
.result-lead h4 { text-align: center; margin-bottom: 16px; }
