/* =====================================================================
 * 01 地漏排水坡度自查 · 独立视觉：工程图纸 / 蓝图剖面
 * 首屏左「参数控制台」右「A–A 剖面图」，与其余 9 个工具版式不共用。
 * ===================================================================== */

.hc.hc--fds { --hc-a: #2f6f8f; --hc-a-soft: #e3eff4; }
:root[data-theme="dark"] .hc.hc--fds { --hc-a: #78bcd8; --hc-a-soft: #1a2e38; }

.fds-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
    gap: 30px;
    align-items: start;
    padding: 36px 0 8px;
}
.fds-brief { min-width: 0; }

/* ---------- 参数控制台 ---------- */
.fds-console {
    margin-top: 22px;
    background: var(--hc-card);
    border: 1px solid var(--hc-line);
    border-radius: var(--hc-r);
    box-shadow: var(--hc-shadow);
    overflow: hidden;
}
.fds-console-head {
    display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px;
    padding: 12px 20px;
    background: var(--hc-a);
    color: #fff;
}
:root[data-theme="dark"] .fds-console-head { color: #0c1a20; }
.fds-console-head > span { font-family: var(--hc-serif); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
.fds-console-head small { font-size: 11.5px; opacity: .9; }
.fds-console > .hc-fields,
.fds-console > .fds-flags,
.fds-console > .hc-err,
.fds-console > .hc-btn-row,
.fds-console > .hc-demo { margin-left: 20px; margin-right: 20px; }
.fds-console > .hc-fields { margin-top: 20px; }
.fds-console > .hc-err { margin-top: 12px; }
.fds-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 16px; }
.fds-console .hc-field label b { color: var(--hc-danger); }
.fds-flags { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 16px; }
.fds-console > .hc-btn-row { margin-top: 2px; }
.fds-console > .hc-demo { margin-bottom: 20px; }

/* ---------- 剖面蓝图 ---------- */
.fds-blueprint {
    position: sticky; top: 84px;
    border: 1px solid var(--hc-a);
    border-radius: var(--hc-r);
    background: var(--hc-card);
    box-shadow: var(--hc-shadow);
    overflow: hidden;
}
.fds-bp-head {
    display: flex; justify-content: space-between; align-items: center; gap: 10px;
    padding: 11px 16px;
    border-bottom: 1px solid var(--hc-line-2);
    font-family: var(--hc-serif); font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
    color: var(--hc-a);
}
.fds-bp-head span:last-child { font-family: var(--hc-sans); letter-spacing: 0; font-size: 11.5px; color: var(--hc-muted); }
#fdsSvg { display: block; width: 100%; height: auto; color: var(--hc-a); }
.fds-grid { color: var(--hc-a); }
.fds-slab { fill: var(--hc-line); }
.fds-wedge { fill: var(--hc-a-soft); stroke: var(--hc-line); stroke-width: 1; }
.fds-tile { stroke: var(--hc-ink); stroke-width: 3; stroke-linecap: round; }
:root[data-theme="dark"] .fds-tile { stroke: var(--hc-ink-2); }
.fds-flow { stroke: var(--hc-a); stroke-width: 1.6; stroke-dasharray: 5 4; fill: none; opacity: .9; }
.fds-grate { fill: var(--hc-card-2); stroke: var(--hc-ink-2); stroke-width: 1.5; }
.fds-grate-lines line { stroke: var(--hc-ink-2); stroke-width: 1; }
.fds-body { fill: none; stroke: var(--hc-ink-2); stroke-width: 2; }
.fds-trap { fill: none; stroke: var(--hc-ink-2); stroke-width: 2.4; stroke-linecap: round; }
.fds-water { fill: var(--hc-a); opacity: .42; }
.fds-pipe { fill: none; stroke: var(--hc-ink-2); stroke-width: 2.2; }
.fds-dim { stroke: var(--hc-muted); stroke-width: 1; }
.fds-label, .fds-tiny { fill: var(--hc-ink-2); font-size: 11px; font-family: var(--hc-sans); }
.fds-tiny { fill: var(--hc-muted); font-size: 10px; }
.fds-bp-title { fill: var(--hc-a); font-size: 14px; font-weight: 700; letter-spacing: .08em; }
.fds-is-bad .fds-wedge { fill: var(--hc-danger-soft); }
.fds-is-bad .fds-tile { stroke: var(--hc-danger); }
.fds-is-good .fds-wedge { fill: var(--hc-ok-soft); }

.fds-ruler { padding: 4px 18px 18px; border-top: 1px solid var(--hc-line-2); }
.fds-ruler-track {
    position: relative; height: 10px; margin: 12px 0 5px; border-radius: 6px;
    background: linear-gradient(90deg, var(--hc-danger-soft) 0 18%, var(--hc-warn-soft) 18% 30%, var(--hc-ok-soft) 30% 56%, var(--hc-warn-soft) 56% 78%, var(--hc-danger-soft) 78% 100%);
    border: 1px solid var(--hc-line);
}
.fds-ruler-track span {
    position: absolute; top: -6px; left: 20%; width: 3px; height: 20px;
    background: var(--hc-ink); border-radius: 2px; box-shadow: 0 0 0 2px var(--hc-card);
    transition: left .3s ease;
}
.fds-ruler-labels { display: flex; justify-content: space-between; font-family: var(--hc-serif); font-size: 10.5px; color: var(--hc-muted); }
.fds-ruler p { margin: 8px 0 0; font-size: 11.5px; color: var(--hc-muted); }

/* ---------- 结论 ---------- */
.fds-verdict { margin-top: 14px; }
.fds-verdict .hc-callout { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: baseline; }
.fds-verdict .hc-callout strong { font-size: 16px; }
.fds-plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; margin-top: 16px; }
.fds-plan {
    padding: 17px 18px; border: 1px solid var(--hc-line-2); border-radius: var(--hc-r);
    background: var(--hc-card); box-shadow: var(--hc-shadow-sm);
}
.fds-plan.is-key { border-color: var(--hc-a); background: var(--hc-a-soft); }
.fds-plan .pt { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 12px; color: var(--hc-muted); }
.fds-plan h4 { margin: 7px 0 8px; font-size: 16px; font-weight: 720; }
.fds-plan p { margin: 0; font-size: 13px; line-height: 1.75; color: var(--hc-ink-2); }
.fds-plan ul { margin: 9px 0 0; padding-left: 18px; font-size: 12.5px; color: var(--hc-ink-2); }
.fds-plan li { margin-bottom: 4px; }

.fds-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.fds-checklist .hc-list-item { background: var(--hc-card); }
.fds-checklist .hc-list-item input { margin-top: 5px; }
.fds-checklist .hc-list-item .n { background: var(--hc-a-soft); color: var(--hc-a); }
.fds .hc-table td .hc-badge { white-space: nowrap; }

.fds-ai { border-left: 3px solid var(--hc-warm); }

@media (max-width: 1000px) {
    .fds-hero { grid-template-columns: 1fr; padding-top: 26px; }
    .fds-blueprint { position: static; }
    .fds-plan-grid { grid-template-columns: 1fr; }
    .fds-two { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .fds-grid, .fds-flags { grid-template-columns: 1fr; }
    .fds-console > .hc-fields, .fds-console > .fds-flags, .fds-console > .hc-err,
    .fds-console > .hc-btn-row, .fds-console > .hc-demo { margin-left: 14px; margin-right: 14px; }
    .fds-checklist { padding: 14px !important; }
    .fds-ai .hc-card-head, .fds-ai .hc-prose, .fds-ai .hc-btn-row { padding-left: 15px !important; padding-right: 15px !important; }
}
