/* 46 · 积碳判断与清理 —— 视觉母题「发动机工况仪表 / 排查阶梯」
   独立布局：左侧 SVG 半圆仪表（指针随权重）+ 右侧症状芯片；结果用阶梯式编号条，非普通卡片。 */
.b29.ec-wrap {
    --b29-bg: #f4f5f6;
    --b29-surface: #ffffff;
    --b29-surface-2: #eff1f3;
    --b29-ink: #232930;
    --b29-sub: #535c65;
    --b29-muted: #8a939c;
    --b29-line: #e2e6e9;
    --b29-line-strong: #ccd3d9;
    --b29-accent: #465b6c;
    --b29-accent-2: #b4793a;
    --b29-tint: #e9eef2;
    --b29-radius: 14px;
    --b29-radius-sm: 9px;
}
:root[data-theme="dark"] .b29.ec-wrap {
    --b29-bg: #101316;
    --b29-surface: #1b2025;
    --b29-surface-2: #232a30;
    --b29-ink: #edf1f4;
    --b29-sub: #b8c1c9;
    --b29-muted: #8b969f;
    --b29-line: #2e373e;
    --b29-line-strong: #3e4a53;
    --b29-accent: #9fb8cc;
    --b29-accent-2: #e0af74;
    --b29-tint: #24313a;
}
.ec-hero h1 em { font-style: normal; color: var(--b29-accent-2); display: block; font-size: .56em; margin-top: 10px; }
.ec-console { display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); gap: 0;
    border: 1px solid var(--b29-line); border-radius: var(--b29-radius); overflow: hidden; box-shadow: var(--b29-shadow); }
.ec-gauge { padding: 26px; background: var(--b29-surface-2); text-align: center; }
.ec-tag { font-family: var(--b29-mono); font-size: 11.5px; letter-spacing: .16em; color: var(--b29-accent-2); margin-bottom: 14px; text-align: left; }
.ec-dial { width: 100%; height: auto; display: block; }
.ec-arc-bg { fill: none; stroke: var(--b29-line-strong); stroke-width: 18; stroke-linecap: round; }
.ec-arc-fg { fill: none; stroke: var(--b29-accent-2); stroke-width: 18; stroke-linecap: round;
    stroke-dasharray: 377; stroke-dashoffset: 377; transition: stroke-dashoffset .5s ease; }
.ec-needle { stroke: var(--b29-danger); stroke-width: 4; stroke-linecap: round; transform-origin: 150px 150px;
    transition: transform .5s ease; }
.ec-hub { fill: var(--b29-ink); }
.ec-value { font-family: var(--b29-mono); font-size: 30px; font-weight: 800; fill: var(--b29-ink); }
.ec-scale { font-size: 11px; fill: var(--b29-muted); font-family: var(--b29-font); }
.ec-gauge-note { font-size: var(--b29-xs); color: var(--b29-muted); line-height: 1.8; margin-top: 8px; }
.ec-gauge-note b { color: var(--b29-danger); }
.ec-side { padding: 26px 24px; background: var(--b29-surface); border-left: 1px solid var(--b29-line); display: flex; flex-direction: column; gap: 12px; }
.ec-side h2 { font-size: var(--b29-lg); margin-bottom: 2px; }
.ec-signs-label { font-size: var(--b29-sm); font-weight: 750; color: var(--b29-sub); }
.ec-side .b29-chip { border-radius: 8px; }

.ec-verdict { padding: 18px 21px; border-radius: var(--b29-radius); background: var(--b29-tint);
    border-left: 5px solid var(--b29-accent); font-size: var(--b29-sm); line-height: 1.85; margin-bottom: 22px; }
.ec-verdict b { color: var(--b29-accent); }
.ec-steps { display: flex; flex-direction: column; }
.ec-step { display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 16px; padding: 0 0 18px; position: relative; }
.ec-step:not(:last-child)::before { content: ""; position: absolute; left: 22px; top: 44px; bottom: 0; width: 2px; background: var(--b29-line-strong); }
.ec-step-no { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; z-index: 2;
    background: var(--b29-tint); border: 2px solid var(--b29-accent); color: var(--b29-accent);
    font-family: var(--b29-mono); font-size: var(--b29-sm); font-weight: 800; }
.ec-step.is-last .ec-step-no { border-color: var(--b29-accent-2); color: var(--b29-accent-2); background: var(--b29-warn-tint); }
.ec-step-body { padding: 8px 0 0; }
.ec-step h3 { font-size: var(--b29-md); margin-bottom: 5px; }
.ec-step p { font-size: var(--b29-sm); color: var(--b29-sub); line-height: 1.78; margin: 0 0 5px; }
.ec-step small { font-size: var(--b29-xs); color: var(--b29-muted); line-height: 1.7; }

@media (max-width: 900px) {
    .ec-console { grid-template-columns: minmax(0, 1fr); }
    .ec-side { border-left: 0; border-top: 1px solid var(--b29-line); }
}
@media (max-width: 560px) {
    .ec-gauge, .ec-side { padding: 18px 16px; }
    .ec-step { grid-template-columns: 48px minmax(0, 1fr); gap: 11px; }
    .ec-step:not(:last-child)::before { left: 19px; }
    .ec-step-no { width: 40px; height: 40px; }
}
