.guide-diagram{margin:20px 0;overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:12px;background:var(--bg);padding:16px}
.guide-diagram svg{display:block;width:540px;max-width:none;margin:auto;font:17px/1.4 system-ui,sans-serif;color:var(--ink)}
.guide-diagram rect{fill:var(--surface);stroke:var(--accent);stroke-width:1.5}
.guide-diagram text{fill:var(--ink)}
.guide-diagram .edge-label{font-size:15px;fill:var(--muted)}
.guide-diagram .diagram-edge{stroke:var(--accent);stroke-width:2;fill:none}
.guide-diagram marker path{fill:var(--accent)}
.guide-diagram figcaption{font-size:.9375rem;line-height:1.6;margin-top:16px;overflow-wrap:anywhere}
.proof-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}
.proof-fields label{display:grid;gap:10px;line-height:1.6;min-width:0}
.proof-fields select{width:100%;min-width:0;min-height:48px;padding:10px;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px}
.proof-fields :focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.guide-ref{display:block;font-size:.875rem;font-weight:400;margin-top:4px;color:var(--muted)}
@media(max-width:700px){.proof-fields{grid-template-columns:minmax(0,1fr)}}
.validation-lab h1{overflow-wrap:anywhere}
.validation-lab li,.validation-lab td,.validation-lab label{overflow-wrap:anywhere}
@media(max-width:700px){.validation-lab h1{font-size:clamp(1.8rem,6vw,2.6rem)}}

.diagram-mobile{display:none}
@media(max-width:700px){.guide-diagram svg{display:none}.diagram-mobile{display:grid;gap:16px;list-style:none;padding:0;margin:0;counter-reset:diagram-step}.diagram-mobile li{counter-increment:diagram-step;position:relative;margin:0;padding:16px;border:1px solid var(--accent);border-radius:8px;background:var(--surface)}.diagram-mobile strong:before{content:counter(diagram-step) " / ";color:var(--accent)}.diagram-mobile p{font-size:1rem;margin:8px 0 0}.guide-diagram{padding:12px}}
.spec-map{list-style:none;counter-reset:spec;display:grid;gap:22px;margin:20px 0 28px;padding:0}
.spec-map>li{counter-increment:spec;position:relative;padding:14px 16px;border:1px solid var(--accent);border-radius:10px;background:var(--surface)}
.spec-map>li+li::before{content:"↓";position:absolute;top:-21px;left:24px;color:var(--accent)}
.spec-map h3{margin:0 0 4px;font-size:1.05rem}
.spec-map h3::before{content:counter(spec) " · ";color:var(--accent)}
.spec-map p{margin:0 0 10px;color:var(--muted);font-size:.9375rem}
.spec-map div{display:flex;flex-wrap:wrap;gap:8px}
.spec-map a{display:inline-flex;align-items:center;min-height:40px;padding:4px 12px;border:1px solid var(--line);border-radius:999px;background:var(--bg);text-decoration:none}
.spec-map a:hover,.spec-map a:focus-visible{border-color:var(--accent)}
