:root{--paper:#fffefa;--ink:#243c33;--muted:#65756e;--line:#d9dfd5;--green:#286455;--cable:#b27420;--horizontal:#775599;--vertical:#2d7895;--load:#ba5543;--ghost:#aab4ae;--wash:#f1f5ef}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Microsoft YaHei","Noto Sans SC",sans-serif;font-size:16px;line-height:1.65}main{max-width:1400px;margin:auto;padding:22px 26px}header{margin-bottom:18px}header small{color:var(--green);letter-spacing:.14em;font-weight:700}h1{font-family:"Noto Serif SC","Songti SC",serif;font-size:29px;line-height:1.35;margin:5px 0 7px}header p{max-width:1000px;margin:0;color:var(--muted)}h2{font-size:18px;margin:0 0 10px}h3{font-size:16px;margin:0 0 8px}.controls,.toolbar,.segmented{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.controls{justify-content:space-between;margin:15px 0}.segmented{gap:3px;padding:4px;background:var(--wash);border-radius:9px}button,select,input{font:inherit}button,select{border:1px solid var(--line);background:white;color:var(--ink);border-radius:6px;padding:8px 11px;cursor:pointer}button.active,button.primary{background:var(--green);border-color:var(--green);color:white}button:disabled{opacity:.38;cursor:default}button:hover:not(:disabled){border-color:var(--green)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b9cfbc;outline-offset:3px}label{font-size:14px;color:var(--muted)}input[type=range]{accent-color:var(--green);width:100%;display:block;margin:9px 0}output,.number{font-family:Consolas,monospace;font-variant-numeric:tabular-nums}.layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}.figure{min-width:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:linear-gradient(#fffefa,#f5f7f2)}svg{display:block;width:100%;height:auto;overflow:visible}svg text{font-family:"Microsoft YaHei","Noto Sans SC",sans-serif;fill:var(--ink)}svg .halo{paint-order:stroke;stroke:var(--paper);stroke-width:5px;stroke-linejoin:round}svg .dim{fill:var(--muted);font-size:15px}svg .small{font-size:13px}svg .major{font-size:18px;font-weight:700}.caption{padding:10px 16px;font-size:14px;border-top:1px solid var(--line);color:var(--muted);min-height:44px}.panel{background:white;border:1px solid var(--line);border-radius:10px;padding:17px}.panel+.panel{margin-top:13px}.readings{display:grid;grid-template-columns:1fr 1fr;gap:8px}.reading{padding:7px 0;border-bottom:1px solid #edf0e9}.reading span{display:block;color:var(--muted);font-size:13px}.reading b{display:block;font-family:Consolas,"Microsoft YaHei",monospace;font-size:20px}.reading.wide{grid-column:1/-1}.cable{color:var(--cable)}.horizontal{color:var(--horizontal)}.vertical{color:var(--vertical)}.load{color:var(--load)}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0}.step{padding-top:12px;border-top:3px solid var(--line)}.step strong{font-size:14px;color:var(--green)}.formula{font-family:"Cambria Math","Times New Roman","Microsoft YaHei",serif;font-size:20px;line-height:1.5;margin:8px 0}.substitution{font-size:13px;color:var(--muted)}p.note{font-size:14px;margin:10px 0 0;color:var(--muted)}.tiny{font-size:12px;color:var(--muted)}.status{padding:10px 13px;background:var(--wash);border-left:3px solid var(--green);margin:12px 0;font-size:15px}.status.warning{border-color:var(--load);background:#faf0e9}.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--muted);padding:10px 16px}.legend i{display:inline-block;width:23px;border-top:3px solid var(--cable);vertical-align:middle;margin-right:5px}details{border-top:1px solid var(--line);padding:12px 0;margin-top:14px}summary{cursor:pointer;color:var(--green);font-size:14px}details p,details li{font-size:14px;color:var(--muted)}table{border-collapse:collapse;width:100%;margin:14px 0;font-size:14px}td,th{padding:9px 11px;text-align:left;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:600;background:var(--wash)}td.number{text-align:right}.bar{display:flex;justify-content:space-between;gap:12px;align-items:center}.bar output{font-weight:bold;color:var(--ink)}.control-block{margin-bottom:16px}.iteration-controls{display:grid;grid-template-columns:auto minmax(120px,1fr) auto;gap:12px;align-items:center;padding:13px 16px}.iteration-controls input{margin:0}.node-card{background:#f8faf6;border-top:1px solid var(--line);padding:14px 18px}.node-row{display:grid;grid-template-columns:minmax(0,1.25fr) 1fr;gap:15px;align-items:center}.lengths{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;margin:18px 0}.length-example{border-left:3px solid var(--line);padding-left:15px}.length-example p{margin:4px 0;font-size:14px}.error{color:#a52e1f}.table-wrap{overflow-x:auto}.nav{font-size:12px;color:var(--muted);margin-top:18px}.nav a{color:var(--green);margin-right:12px}.focus-summary{font-size:14px;margin-bottom:10px}.flex-fill{flex:1;min-width:220px}.row{display:flex;gap:20px}.row>*{flex:1}.check{font-size:13px;color:var(--muted)}[hidden]{display:none!important}
.main-column>.steps{grid-template-columns:1fr 1fr;margin:18px 0}.main-column{min-width:0}

/* The book body is 760–850 px wide: keep the bridge full-width there. */
@media(max-width:980px){
 main{padding:18px}.layout{display:flex;flex-direction:column;gap:16px}
 .layout>.main-column{display:contents}.layout .figure{width:100%;order:0}
 .layout>aside{order:1;display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%;align-items:start}
 .layout>aside .panel+.panel{margin-top:0}.panel{padding:14px}
 .main-column>.steps,.main-column>.lengths{order:2;width:100%;margin:0 0 12px}
 .steps{grid-template-columns:1fr 1fr}.node-row{grid-template-columns:minmax(0,1fr) 1fr}
}
@media(max-width:720px){
 .layout>aside{grid-template-columns:1fr}.steps,.main-column>.steps,.lengths{grid-template-columns:1fr}
 .node-row{grid-template-columns:1fr}.row{display:block}h1{font-size:24px}
}
