:root{color-scheme:dark;--bg:#091321;--panel:#101e2e;--panel2:#142438;--line:#2b3d50;--ink:#edf4f9;--muted:#a9bdcc;--a:#58d6d2;--b:#ff998a;--green:#61cfaa;--red:#ff8179;--gold:#ecc775;font:16px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}[hidden]{display:none!important}a{color:var(--a);text-underline-offset:3px}button,input,select{font:inherit}button,.file-button{background:#1c3043;color:var(--ink);border:1px solid #3c5268;border-radius:7px;padding:.5rem .8rem;cursor:pointer;font-size:.875rem;line-height:1.4;display:inline-block;text-align:center}button:hover,.file-button:hover{border-color:var(--a);background:#233c50}button:disabled{opacity:.45;cursor:default}input,select{max-width:100%;min-width:0;color:var(--ink);background:#091727;border:1px solid #3b5267;border-radius:6px;padding:.4rem .55rem;font-size:.875rem;min-height:36px}input[type=range]{padding:0;accent-color:var(--a);min-height:24px;width:100%}input[type=checkbox]{min-height:0;accent-color:var(--a)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[role=button]:focus-visible,summary:focus-visible{outline:2px solid var(--a);outline-offset:4px}h1,h2,h3,p{margin:0 0 .65rem}h1{font-size:1.75rem;line-height:1.2;letter-spacing:-.03em}h2{font-size:1rem;font-weight:650}h3{font-size:.9375rem}small,.hint{color:var(--muted);font-size:.8125rem;line-height:1.5}h2 small,h3 small{font-weight:400}.eyebrow{font-size:.75rem;letter-spacing:.13em;color:var(--muted);margin-bottom:.35rem}.topbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.1rem 2rem;border-bottom:1px solid var(--line)}.brand{color:var(--ink);text-decoration:none;letter-spacing:.07em;font-size:.875rem}.brand b{color:var(--a)}.brand small{display:block;font-size:.75rem;letter-spacing:.14em;color:var(--muted);margin-top:.25rem}.topbar nav{display:flex;gap:1.3rem;font-size:.875rem}.shell{max-width:1840px;padding:1.5rem 2rem;margin:auto}.heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.document-actions,.inline-actions,.inline-fields{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.notice{background:#112b37;border-left:3px solid var(--a);padding:.65rem .9rem;font-size:.875rem;margin:.6rem 0 1rem}.intro-note{color:#c1d6df}.layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:1.25rem;align-items:start}.controls{display:grid;gap:1rem}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem;margin-bottom:1rem}.controls .panel{margin:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.7rem;flex-wrap:wrap}.section-head h2{margin:0}.plain{border:0;background:none;padding:.2rem}.segmented{display:flex;background:var(--bg);border-radius:8px;padding:3px;margin-bottom:.8rem;gap:3px}.segmented button{flex:1;border:0;background:none;padding:.55rem .4rem}.segmented button[aria-pressed=true]{background:#244552;color:var(--a)}.field{display:flex;flex-direction:column;gap:.3rem;color:#c9d9e4;font-size:.875rem;margin-bottom:.65rem;min-width:0}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .65rem}.field-grid .full{grid-column:1/-1}.check{font-size:.875rem;display:flex;align-items:center;gap:.6rem;margin:.6rem 0 1rem}.presets{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.7rem}.presets button{font-size:.8125rem;padding:.4rem .5rem}.primary{background:#58d6d2;color:#071b26;border-color:#58d6d2;font-weight:650}.primary:hover{background:#8bebdf}.controls .primary{width:100%;margin-top:.3rem}#status{font-size:.8125rem;color:var(--muted);margin:.7rem 0 .3rem}progress{width:100%;height:4px;accent-color:var(--a);margin-bottom:.5rem}details{border-top:1px solid var(--line);padding-top:.7rem;margin:.7rem 0}summary{cursor:pointer;font-size:.875rem;font-weight:600;color:var(--ink);padding:.15rem 0 .6rem}.tabs{display:flex;gap:.4rem;margin-bottom:1rem;flex-wrap:wrap}.tabs button{border-color:transparent;background:none;border-radius:0;border-bottom:2px solid transparent;padding:.6rem .8rem}.tabs button[aria-pressed=true]{border-bottom-color:var(--a);color:var(--a)}.workarea{min-width:0}.frame-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.frame-card{background:linear-gradient(160deg,#132b3c,#101a2a);border:1px solid #31505b;border-radius:9px;padding:.8rem;min-width:0}.frame-card.b{background:linear-gradient(160deg,#252532,#101a2a);border-color:#5a4446}.frame-heading{display:flex;gap:.4rem;justify-content:space-between;align-items:start}.frame-heading h3{color:var(--a)}.frame-card.b h3{color:var(--b)}.frame-heading span{font-size:.75rem;color:var(--muted)}.metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem}.metric span{display:block;color:var(--muted);font-size:.75rem}.metric strong{font-size:1.2rem;font-weight:550}.metric small{font-size:.75rem}.frame-card svg{width:100%;display:block;max-height:430px}.frame-card p{margin:0}.frame-legend{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.75rem;color:var(--muted);margin:.7rem 0}.frame-legend i{display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:2px}.playback{display:flex;align-items:center;gap:.6rem;border-top:1px solid var(--line);padding-top:.9rem}.playback .time-field{flex:1}#time-label{font-variant-numeric:tabular-nums;min-width:100px;font-size:.875rem;text-align:right}.scale-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;font-size:.75rem;color:var(--muted);margin-top:.6rem}.scale-row label{display:flex;align-items:center;gap:.5rem}.scale-row input{max-width:90px}.plot-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;min-width:0}.plot-grid>div{min-width:0}.plot-grid .panel{min-width:0}.chart{width:100%;height:auto;display:block;min-height:160px;overflow:visible}.wide-chart{min-height:240px}.chart text,#force-diagram text,#section-chart text,#frame-a text,#frame-b text{font-family:inherit;font-size:13px;fill:#aec3d3}svg .axis{stroke:#385167;stroke-width:1}svg .grid{stroke:#283f53;stroke-width:1}svg .hit{cursor:pointer;pointer-events:stroke}.chart .cursor{stroke:#eaf3f7;stroke-dasharray:3 4}.table-scroll{overflow-x:auto;width:100%}table{border-collapse:collapse;width:100%;font-size:.8125rem;text-align:left}th{font-weight:550;color:var(--muted);white-space:nowrap}th,td{padding:.65rem .6rem;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;vertical-align:top}td input{width:78px;font-size:.8125rem}.events{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.events button{font-size:.75rem;padding:.35rem .5rem}.events .limit{border-color:#995854;color:#ffb9af}.inspector{border-top:3px solid var(--a);scroll-margin-top:1rem}.inline-fields label,.compact{font-size:.8125rem;display:flex;align-items:center;gap:.4rem}.member-snapshot{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem;margin:.8rem 0}.member-snapshot div{padding:.65rem;border:1px solid var(--line);border-radius:6px}.member-snapshot span{color:var(--muted);font-size:.75rem;display:block}.member-snapshot strong{font-size:1.05rem;font-weight:550}.inspector-grid{display:grid;grid-template-columns:.8fr 1fr;gap:1rem;margin-bottom:1rem}.inspector-grid svg{width:100%;display:block}.property-grid{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .7rem;font-size:.8125rem}.property-grid span{color:var(--muted)}.property-grid strong{font-weight:550}.section-fields{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:.6rem}.insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.insight-grid article{border-left:3px solid var(--a);padding:.6rem .9rem;background:#122a38}.insight-grid article:nth-child(2){border-left-color:var(--b)}.insight-grid h3{color:var(--a)}.insight-grid article:nth-child(2) h3{color:var(--b)}.insight-grid p{font-size:.875rem}.error{background:#3c212b;border:1px solid #a65b62;border-radius:8px;padding:1rem;margin-bottom:1rem;color:#ffe1df}#toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);max-width:90%;background:#e2f7f4;color:#13222f;padding:.8rem 1.2rem;border-radius:8px;box-shadow:0 4px 35px #0008;z-index:10}.support{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:1.5rem}.support input{max-width:400px}footer{display:flex;justify-content:space-between;gap:1rem;font-size:.8125rem;color:var(--muted);padding:1rem 0}.skip{position:absolute;left:-9999px;top:0}.skip:focus{left:1rem;top:1rem;background:var(--bg);padding:1rem;z-index:20}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}body.learn .advanced-only{display:none}.method{max-width:1000px;margin:auto}.method p,.method li{color:#c6d8e4}.method code{color:var(--a);background:#0a1929;padding:.15rem .35rem;border-radius:4px}.method h2{font-size:1.3rem;margin:1.5rem 0 .5rem}.method pre{white-space:pre-wrap;overflow-wrap:anywhere}.badge{border-radius:4px;padding:.15rem .35rem;background:#294351;color:#c5efe8;font-size:.75rem}
.selection-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem;margin-top:.8rem;background:#142c3b;border:1px solid #416572;border-radius:8px}.selection-bar>div{display:grid;gap:.15rem}.selection-bar strong{font-size:.9375rem}.selection-bar .eyebrow{font-size:.75rem}.member-navigation{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.member-playback{margin-top:.8rem}#member-time-label{font-size:.875rem;white-space:nowrap;font-variant-numeric:tabular-nums}.member-graphics{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}.member-drawing{background:#0c1928;border:1px solid var(--line);border-radius:9px;padding:.8rem;min-width:0}.member-drawing svg{display:block;width:100%;height:auto}.member-drawing h3{margin:0}.member-drawing .hint{margin:.4rem 0 0}.member-drawing svg text,#force-diagram text{font:14px ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.cut-controls{display:flex;align-items:center;gap:1rem;margin:1rem 0;font-size:.875rem}.cut-controls input{flex:1;min-width:80px}.cut-controls output{min-width:112px;text-align:right;font-variant-numeric:tabular-nums}.cut-result{display:flex;gap:.7rem 1.5rem;flex-wrap:wrap;padding:.8rem 1rem;background:#142c3b;border-left:3px solid var(--a);margin-bottom:1.2rem;font-size:.9375rem}.cut-result span{white-space:nowrap}#force-diagram{display:block;width:100%;height:auto;max-height:590px;margin-bottom:.4rem}.inspector .property-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;padding:.8rem 0;border-top:1px solid var(--line)}.inspector .property-grid>div{min-width:0}.section-editor{margin:1rem 0 1.3rem}.section-editor summary{font-size:1rem}.section-fields .field{font-size:.875rem}.member-snapshot>p{grid-column:1/-1}.tabs{scroll-margin-top:.5rem}.tabs [data-tab=member]{background:#123039;border-radius:7px 7px 0 0}.inspector:focus{outline:none}
/* Keep intrinsic form-control widths inside their grid track. A long record
   option must not widen the sidebar into the neighbouring result panels. */
.layout > *{min-width:0;max-width:100%}
.controls{grid-template-columns:minmax(0,1fr);min-width:0}
.controls > .panel,.controls details,.controls .table-scroll{min-width:0;max-width:100%}
.field-grid > *{min-width:0}
.controls .field input,.controls .field select{width:100%;min-width:0;max-width:100%}
.controls .field select{text-overflow:ellipsis}
.controls .field,.controls .hint,.controls summary,.controls .check{overflow-wrap:anywhere}
.segmented button{flex:1 1 0;min-width:0;overflow-wrap:anywhere}
.controls .check input{flex:0 0 auto}
.inline-fields label,.compact{min-width:0;max-width:100%;flex-wrap:wrap}
.inline-fields select,.compact select{min-width:0;max-width:100%}
.stress-controls{display:grid;grid-template-columns:minmax(240px,380px) minmax(0,1fr);gap:1rem;align-items:center;margin:.8rem 0}.stress-controls .field{margin:0}.stress-controls p{margin:0}.stress-panel{border-top:1px solid var(--line);padding-top:1.1rem;margin:1rem 0}.stress-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1rem}.stress-profile-grid>div{min-width:0;background:#0c1928;border:1px solid var(--line);border-radius:8px;padding:.7rem}.stress-status{padding:.55rem .7rem;margin:.6rem 0;background:#142c3b;border-left:3px solid var(--a);font-size:.875rem}.stress-status[data-state=warning]{background:#392b27;border-color:var(--gold);color:#f1dcb4}.stress-status[data-state=unavailable]{background:#37252c;border-color:var(--red);color:#ffd2c8}.stress-panel .member-snapshot{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}.stress-panel .section-head{margin-top:1rem}.member-drawing .section-head h3{margin:0}.member-drawing .compact{flex-wrap:wrap}.member-drawing .compact select{max-width:100%}#stress-legend{line-height:1.8}#stress-legend .compression{color:#ff9b85}#stress-legend .tension{color:#70ccec}
@media(max-width:1100px){.stress-controls{grid-template-columns:1fr}.stress-controls p{font-size:.8125rem}}
@media(max-width:1200px){.member-graphics{grid-template-columns:1fr}.member-drawing{max-width:100%}.inspector .property-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1550px){.layout{grid-template-columns:320px minmax(0,1fr)}.frame-card svg{max-height:480px}}
@media(max-width:1100px){.shell{padding:1rem}.topbar{padding:1rem}.layout{grid-template-columns:260px minmax(0,1fr)}.plot-grid,.inspector-grid{grid-template-columns:1fr}.heading{align-items:start}.document-actions{max-width:350px;justify-content:flex-end}.member-snapshot{grid-template-columns:repeat(3,1fr)}.metrics{grid-template-columns:1fr 1fr}.metric:last-child{display:none}.section-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.frame-pair{gap:.5rem}.frame-card{padding:.5rem}.frame-heading{display:block}.topbar nav{gap:.7rem}.frame-card svg{min-height:240px}}
@media(max-width:780px){.layout{grid-template-columns:1fr}.controls{grid-template-columns:repeat(2,minmax(0,1fr))}.controls>.panel:last-child{grid-column:1/-1}.heading{display:block}.document-actions{justify-content:flex-start;max-width:none;margin:.7rem 0}.topbar{align-items:start}.topbar nav{flex-direction:column;gap:.3rem;font-size:.8125rem}.brand{font-size:.75rem;max-width:190px}.inspector-grid{grid-template-columns:1fr 1fr}.plot-grid{grid-template-columns:1fr 1fr}.frame-card svg{min-height:0}.insight-grid{grid-template-columns:1fr}.support{gap:1rem}.heading h1{font-size:1.5rem}.scale-row>span{max-width:240px}}
@media(max-width:540px){.shell{padding:.8rem}.controls{grid-template-columns:minmax(0,1fr)}.controls>.panel:last-child{grid-column:auto}.plot-grid,.inspector-grid,.support{grid-template-columns:1fr}.panel{padding:.8rem}.member-snapshot{grid-template-columns:1fr 1fr}.frame-pair{gap:.4rem}.frame-heading h3{font-size:.8125rem}.metric strong{font-size:1rem}.metrics{gap:.3rem}.frame-card .hint{font-size:.75rem}.playback{gap:.35rem;flex-wrap:wrap}#time-label{min-width:75px;font-size:.8125rem}.playback .primary{padding:.4rem .6rem}.playback .time-field{min-width:100px}.section-fields{grid-template-columns:1fr 1fr}.inline-fields{width:100%}.inline-fields select{max-width:150px}.compact{flex-wrap:wrap}.tabs button{font-size:.8125rem;padding:.45rem .3rem}footer{flex-direction:column;gap:.4rem}.frame-legend{font-size:.75rem}.scale-row label{flex-wrap:wrap}}
@media(max-width:780px){.member-graphics{grid-template-columns:1fr 1fr}.cut-controls{flex-wrap:wrap}.cut-controls label{flex-basis:100%}.selection-bar{align-items:flex-start}.selection-bar .primary{flex-shrink:0}}
@media(max-width:600px){.member-graphics{grid-template-columns:1fr}.selection-bar{flex-direction:column;gap:.6rem}.inspector .property-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.member-navigation .inline-actions{gap:.4rem}.member-drawing{padding:.5rem}.member-snapshot strong{font-size:.9375rem}.cut-result{gap:.6rem 1rem}.member-playback{flex-wrap:wrap}.member-playback .time-field{min-width:100px}.member-playback input{min-width:90px}.tabs{gap:.3rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{body{background:white;color:#14212b}.topbar,.controls,.tabs,.document-actions,.playback,.scale-row,.section-editor,button,.support{display:none!important}.shell{padding:0}.layout,.plot-grid{display:block}.panel,.frame-card{background:white;border-color:#ccc;break-inside:avoid}.hint,small{color:#444}.chart text,svg text{fill:#333}.heading{margin-bottom:1rem}}
