:root{--blue:#1f4e79;--bg:#f6f8fb;--line:#d8dee8;--ok:#c6efce;--ng:#ffc7ce;--info:#ededed}
*{box-sizing:border-box}body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:#1b1f24}
.gh a{color:#fff;text-decoration:none}.brand{font-weight:700;font-size:1.15rem}


#banner{background:#fff4d6;border-bottom:1px solid #f0d58a;padding:.35rem 1rem;font-size:.85rem}
main{max-width:1200px;margin:0 auto;padding:1rem}footer{text-align:center;color:#667;font-size:.8rem;padding:1.5rem 1rem}
.grid{display:grid;grid-template-columns:300px 1fr;gap:1rem}@media(max-width:800px){.grid{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:1rem;margin-bottom:1rem}
.topics button{display:block;width:100%;text-align:left;border:0;background:none;padding:.4rem .5rem;border-radius:5px;cursor:pointer;font:inherit}
.topics button.on,.topics button:hover{background:#e6eef8}.topics small{color:#778}
.eqlist a{display:flex;justify-content:space-between;gap:1rem;padding:.5rem;border-bottom:1px solid #eef;text-decoration:none;color:inherit}
.eqlist a:hover{background:#f2f6fb}.ref{color:#556;font-size:.85rem;white-space:nowrap}
input[type=search],input[type=number],input[type=text],select{font:inherit;padding:.35rem .5rem;border:1px solid #bbc;border-radius:5px;width:100%}
.vars{width:100%;border-collapse:collapse}.vars td,.vars th{padding:.35rem;border-bottom:1px solid #eef;vertical-align:middle;text-align:left}
.vars td.sym{width:80px}.vars td.val{width:170px}.vars td.u{width:80px;color:#556}.vars tr.solved{background:#fff2cc}
.btn{background:var(--blue);color:#fff;border:0;border-radius:6px;padding:.5rem 1rem;font:inherit;cursor:pointer}
.btn.sec{background:#e6eef8;color:var(--blue)}.btn:disabled{opacity:.5}
.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.muted{color:#667}.err{color:#b00020;font-weight:600}
.checks{width:100%;border-collapse:collapse;font-size:.9rem}.checks td,.checks th{border:1px solid var(--line);padding:.3rem .45rem;text-align:left;vertical-align:top}
.PASS{background:var(--ok)}.FAIL{background:var(--ng)}.INFO{background:var(--info)}
.presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.5rem}
.eqbig{font-size:1.25rem;overflow-x:auto;padding:.4rem 0}.result{font-size:1.15rem;font-weight:600}
.pmgrid{display:grid;grid-template-columns:320px 1fr;gap:1rem}@media(max-width:900px){.pmgrid{grid-template-columns:1fr}}
.form2{display:grid;grid-template-columns:1fr 1fr;gap:.4rem .6rem;align-items:center}.form2 label{font-size:.9rem}
#plot{width:100%;height:460px}table.cp{width:100%;border-collapse:collapse;font-size:.85rem}table.cp td,table.cp th{border:1px solid var(--line);padding:.25rem .4rem;text-align:right}table.cp td:first-child,table.cp th:first-child{text-align:left}
.verify{background:#ffe9a8;padding:0 .3rem;border-radius:3px;font-size:.8rem}
.status{margin:.6rem 0;padding:.45rem .6rem;border-radius:6px;border:1px solid var(--line);font-size:.92rem}
.st-valid{background:#eaf6ec;border-color:#9bd3a6}.st-outdated{background:#fff4d6;border-color:#e8c45c}.st-error{background:#fdeaea;border-color:#e39a9a}.st-pending{background:#eef}
.outdated{opacity:.55;position:relative}.outdated::before{content:"OUTDATED – inputs changed";position:absolute;top:.4rem;right:.6rem;background:#e8c45c;color:#000;font-weight:700;padding:.1rem .5rem;border-radius:4px;font-size:.8rem;opacity:1;z-index:2}
.small{font-size:.82rem}.tscroll{overflow-x:auto}[hidden]{display:none!important}

.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:.5rem;z-index:10;background:#fff;padding:.4rem;color:#000}
:focus-visible{outline:3px solid #f0a500;outline-offset:2px}
.entry{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:800px){.entry{grid-template-columns:1fr}}
.ecard{display:block;text-decoration:none;color:inherit;border-width:2px}.ecard:hover{border-color:var(--blue)}.ecard h2{margin-top:0;color:var(--blue)}
.lib{grid-template-columns:300px 1fr}.lib .topics{order:-1}@media(max-width:800px){.lib .topics{order:0}}
.topics summary{cursor:pointer}.wflink{background:#eef5ff}
.steps{display:flex;flex-wrap:wrap;gap:.3rem}.steps a{padding:.35rem .6rem;border:1px solid var(--line);border-radius:6px;text-decoration:none;color:var(--blue);font-size:.9rem}
.steps a.on{background:var(--blue);color:#fff}.stico{font-weight:700}
.bgrid{display:grid;grid-template-columns:1fr 360px;gap:1rem}@media(max-width:900px){.bgrid{grid-template-columns:1fr}.bgrid aside{order:-1}}
.MISS{background:#fff2cc}.OOS{background:#e4d7f5}.NE{background:#eceff3}.NA{background:#f6f6f6}.OUT{background:#fff4d6}
.verdict{padding:.4rem .6rem;border-radius:6px}.exnote{background:#e8f1fb;border-left:4px solid var(--blue);padding:.4rem .6rem}
.pdfprev{width:100%;height:640px;border:1px solid var(--line)}
.pmrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.6rem}.pmfig{margin:0}
.combos input[type=number],.combos input[type=text]{min-width:4.6rem;padding:.25rem}.combos td{padding:.2rem}

.qref .row{gap:.5rem;flex-wrap:wrap}.qref #aq{flex:1 1 16rem}.qtopic h3{border-bottom:1px solid #ccd;padding-bottom:.2rem;margin-top:1.4rem}
.qeq{padding:.5rem 0;border-bottom:1px dotted #ddd;break-inside:avoid}.qhead{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem}
.qtex{overflow-x:auto;max-width:100%}.qlink{display:block;font-weight:600;margin:.3rem 0 .6rem}
@media print{.gh,.gf,#banner,.noprint,.skip{display:none!important}body{background:#fff}.card{box-shadow:none;border:0}.qtopic{break-before:auto}.qtopic h3{break-after:avoid}}
.eqcard{display:flex;flex-direction:column;gap:.2rem;min-width:0}.eqcard a.btn{display:inline-block;text-decoration:none}.eqmore{margin:.4rem 0 0;padding-left:1.1rem}
.exnote.mod{background:#fff1e0;border-left:4px solid #d97800}
@media(max-width:800px){.grid.lib{grid-template-columns:minmax(0,1fr)}}
[aria-invalid="true"]{border-color:#b00020!important;box-shadow:0 0 0 2px #f6c6cc}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #f0a500;outline-offset:2px}
.katex-display{overflow-x:auto;overflow-y:hidden;padding:.2rem 0}.katex{font-size:1.08em}
table.checks{width:100%}@media(max-width:600px){table.checks td,table.checks th{padding:.3rem;font-size:.9rem}.vars td.sym{white-space:nowrap}}
.bgrid>*,.grid>*{min-width:0}.row{flex-wrap:wrap}
.qtex,.eqbig,.katex-display,td{position:relative}.eqbig{overflow-x:auto}
.qhead .ref{white-space:normal;overflow-wrap:anywhere;min-width:0}
.backs{display:flex;gap:1rem;flex-wrap:wrap}
.kind{font-size:.72em;padding:.05em .4em;border-radius:.6em;border:1px solid currentColor;white-space:nowrap;margin-right:.3em}
.k-code{color:#1f5fa8}.k-mechanics{color:#3a7d44}.k-approximation{color:#a35a00}.k-design_aid{color:#6b3fa0}
.vnote{font-size:.85em;background:#fff6e0;border-left:3px solid #d9a400;padding:.3em .6em;margin:.3em 0}
.eqlist a .ref{white-space:normal;text-align:right;min-width:0;overflow-wrap:anywhere}
@media (max-width:520px){.eqlist a .kind{display:none}}
.tblwrap{overflow-x:auto;max-width:100%}
details.why{margin:.25rem 0 .4rem;font-size:.9rem;border-left:3px solid #1f6feb;padding:.1rem .6rem;background:#f5f8ff}
details.why>summary{cursor:pointer;color:#1f6feb;font-weight:600}details.why p{margin:.3rem 0}
.tutor details.why{font-size:.95rem}details.scope{border-left-color:#d9480f;background:#fff8f3}
table.loads input,table.loads select{max-width:7.5rem}.card.inner{box-shadow:none;border:1px solid #ddd}svg.beamviz{display:block;margin:.3rem 0}

.portal{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}@media(max-width:800px){.portal{grid-template-columns:1fr}}
.pcard{display:block;text-decoration:none;color:inherit;border-top:4px solid #1f6feb}.pcard:hover{box-shadow:0 2px 10px rgba(0,0,0,.15)}
.pcard:nth-child(2){border-top-color:#6c757d}.sechead{margin:1rem 0 .5rem}.sec-l{font-weight:700;opacity:.85}
.steelchip{display:none;padding:.25rem .6rem;border-radius:4px;background:#fff;color:#333;font-weight:600}
body.steel .ed button{display:none}body.steel .steelchip{display:inline-block}
.phi{font-size:.75rem;background:#f1f3f5;border:1px solid #ced4da;border-radius:3px;padding:0 .3rem;white-space:nowrap}
.phibox{background:#f8f9fa;border-left:3px solid #6c757d;padding:.3rem .6rem}
