:root{font-family:"Segoe UI",Inter,Arial,sans-serif;color:#142e50;background:#f4f7fa;font-size:14px}
*{box-sizing:border-box}body{margin:0;color:#142e50}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #8da9ca;border-radius:5px;background:#fff;color:#12335b;padding:7px 10px;font-weight:650}button:hover{background:#e1edff}button:disabled{cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #2563eb;outline-offset:2px}
input,select{border:1px solid #9eb5cf;border-radius:5px;background:#fff;color:#102b4e;padding:7px 8px;min-width:0;width:100%;min-height:35px}input[type=number]{appearance:textfield;-moz-appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=range]{padding:0;border:0;border-radius:0;background:transparent;accent-color:#2563eb;width:100%;min-height:23px;cursor:ew-resize}input[type=checkbox]{width:17px;height:17px;min-height:0;accent-color:#2563eb;padding:0;margin:0;flex-shrink:0}input::placeholder{color:#31537d}
.dnode-brand-copy small{color:#fff}.dnode-account-identity{color:#12335b}.yellowbar{display:flex;align-items:center;gap:16px;border-bottom:1px solid #e0b94d;position:sticky;top:64px;z-index:90}.yellowbar input{width:min(280px,60vw);min-height:31px;border-color:transparent;background:transparent;font-weight:750;color:#111827;padding:5px 7px}.yellowbar input:focus{background:#fff8da;border-color:#c99421}.live-state{margin-left:auto;color:#153f27;font-size:12px;font-weight:700;display:flex;align-items:center;gap:7px}.live-state:before{content:'';width:7px;height:7px;background:#168344;border-radius:50%}.live-state[data-state=busy]:before{background:#9b5a00}.live-state[data-state=error]{color:#9d231b}.live-state[data-state=error]:before{background:#b42318}
.workspace{display:grid;grid-template-columns:350px minmax(0,1fr);gap:15px;max-width:2000px;margin:0 auto;padding:14px}.controls{background:#edf4ff;border:1px solid #d4e2f6;border-radius:8px;padding:11px;display:grid;gap:12px;align-content:start}.card{border:1px solid #bfd1ec;border-radius:7px;overflow:hidden;background:#f4f8ff}.card h2,.editor-heading{margin:0;background:#dceaff;border-left:4px solid #2563eb;border-bottom:1px solid #bfd1ec;color:#102f55;min-height:43px;padding:10px 12px;font-size:15px;font-weight:750;display:flex;align-items:center;justify-content:space-between;gap:8px}.card h2 button{font-size:11px;padding:5px 7px;min-height:27px}.card-body{padding:13px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.full{grid-column:1/-1}.field{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:#16365e;min-width:0}.section-fields{margin-top:12px}.section-values{font-size:11px;color:#15385f;line-height:1.65;margin-top:10px;font-variant-numeric:tabular-nums}.check{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#12355d}.support-list{display:grid;gap:7px}.support-item{display:flex;align-items:center;gap:10px;text-align:left;width:100%;font-size:12px;padding:7px 9px;background:#fff}.support-item svg{width:32px;height:30px;flex:none}.support-item .support-caption{flex:1}.support-item b{font-size:12px}.support-item.selected{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb}.support-coordinate{font-variant-numeric:tabular-nums;color:#15365d}.load-card{padding:0 0 14px;margin-bottom:14px;border-bottom:1px solid #bfd1ec}.load-card:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.load-card.selected{outline:2px solid #d9a331;outline-offset:6px;border-radius:3px}.load-card-head{display:flex;align-items:center;gap:9px;margin-bottom:10px}.load-card-head b{font-size:12px;color:#4d3509}.load-card-head select{flex:1;font-size:12px;min-height:31px}.remove{font-size:19px;padding:2px 8px;min-height:31px;color:#a22a25}.position-control{grid-column:1/-1;display:grid;grid-template-columns:1fr 85px;column-gap:10px;row-gap:4px;align-items:center}.position-control>label{font-size:12px;color:#15375f;font-weight:650}.position-control>input[type=number]{font-size:12px;min-height:29px;padding:4px 6px;text-align:right}.position-control>input[type=range]{grid-column:1/-1}.card details{margin-top:13px}.card summary{font-size:12px;font-weight:650;color:#15375f;cursor:pointer}.card details[open]>summary{margin-bottom:12px}.check-row{display:flex;gap:22px;margin:14px 0}.object-editor{position:fixed;width:310px;background:#f4f8ff;border:1px solid #91aed0;border-radius:8px;box-shadow:0 10px 35px #15386330;z-index:150;max-height:calc(100dvh - 24px);overflow:auto}.editor-heading h2{font-size:14px;margin:0}.editor-heading button{font-size:20px;border:0;background:transparent;padding:0 5px;min-height:20px}.object-editor .grid{margin-top:12px}.object-editor .editor-note{font-size:12px;color:#163b6a;margin:9px 0 0}.object-editor .load-card{padding:0;margin:0}.editor-error{color:#a2251b;font-size:12px;line-height:1.4;margin-top:8px}.restraint-icon{stroke:#153d70;fill:#e3edfb;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.results{min-width:0;align-self:start;position:sticky;top:122px}.canvas{background:#fff;border:1px solid #bfd1ec;border-radius:8px;overflow:hidden;box-shadow:0 2px 10px #15386308}.diagram{position:relative;border-bottom:1px solid #d7e2f0;background:#fff;height:144px;overflow:hidden}.diagram:last-child{border:0}.diagram[data-key=load]{height:auto;background:#fbfdff}.diagram-title{position:absolute;left:17px;top:13px;font-size:16.5px;font-weight:750;z-index:1;pointer-events:none}.diagram-title span{font-size:13px;font-weight:600;margin-left:8px}.readout{position:absolute;right:17px;top:13px;font-size:16.5px;font-weight:650;line-height:1.3;pointer-events:none;z-index:1;font-variant-numeric:tabular-nums}.diagram svg{display:block;width:100%;height:144px;touch-action:pan-y}.diagram svg text{font:600 14px "Segoe UI",Arial,sans-serif;pointer-events:none}.diagram svg .value-label{font-size:15px}.diagram svg .dimension-label{font-size:14px;fill:#102d4f;font-weight:650}.diagram svg .support-name{font-size:12px;font-weight:700;fill:#12355e}.diagram svg .beam-line{stroke:#173e6c;stroke-width:5;stroke-linecap:round}.diagram svg .curve{stroke-width:2.5;fill:none;vector-effect:non-scaling-stroke}.diagram svg .cursor{stroke:#315a8b;stroke-width:1;stroke-dasharray:4 5;opacity:.65;pointer-events:none}.diagram svg .drag-target{cursor:ew-resize;touch-action:none;outline:none}.diagram svg .drag-target:focus-visible{outline:none}.diagram svg .drag-target:focus-visible .hit-zone{stroke:#2563eb;stroke-width:2}.diagram svg .selected-symbol{stroke:#2563eb;stroke-width:2}.diagram svg .hit-zone{fill:transparent;stroke:transparent;pointer-events:all}.diagram svg .load-handle{fill:#fff9e9;stroke:#a56700;stroke-width:2;cursor:ew-resize}.diagram[data-key=reaction].pending svg,.diagram[data-key=shear].pending svg,.diagram[data-key=bending].pending svg,.diagram[data-key=deflection].pending svg{visibility:hidden}.pending .readout{visibility:hidden}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.metric{background:#edf4ff;border:1px solid #bfd1ec;border-radius:7px;padding:12px 15px;color:#15385f}.metric>span{font-size:12px;font-weight:600}.metric strong{display:block;margin-top:6px;font-size:20px;font-weight:750;color:#102b4e;font-variant-numeric:tabular-nums}.error{margin:12px 14px 0;background:#fff1ed;border:1px solid #f1b8ab;border-radius:6px;color:#9b2416;padding:10px 14px;font-size:13px;font-weight:600}.error[hidden]{display:none}body.dragging,body.dragging *{cursor:ew-resize!important;user-select:none!important}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:1100px){.workspace{grid-template-columns:310px minmax(0,1fr);gap:10px;padding:10px}.controls{padding:8px}.card-body{padding:11px}.results{top:118px}.metric{padding:10px}.metric strong{font-size:17px}.diagram-title,.readout{font-size:16px}.diagram-title span{font-size:12px}}
@media(max-width:760px){.workspace{grid-template-columns:1fr}.results{position:static;grid-row:1}.controls{grid-row:2}.diagram-title,.readout{font-size:15px;top:10px}.diagram-title{left:10px}.readout{right:10px;top:34px;font-size:15px}.diagram-title span{font-size:12px}.diagram svg text{font-size:12px}.diagram svg .value-label{font-size:12px}.metrics{gap:6px}.metric{padding:9px}.metric strong{font-size:15px}.metric>span{font-size:11px}.yellowbar{padding:0 10px!important}.yellowbar input{width:210px}.main-nav{gap:1px!important}.dnode-nav-link{padding:6px!important}.dnode-account-button>span{display:none}.object-editor{width:min(310px,calc(100vw - 16px))}.dnode-brand-copy{display:none}.diagram svg .support-name{font-size:11px}}
.field:has(.reset-area){position:relative}.field:has(.reset-area) input{padding-right:39px}.reset-area{position:absolute;right:2px;bottom:2px;border:0;min-height:31px;padding:3px 8px;background:transparent;color:#164e91;font-size:20px}.formulation-label{font-size:12px;font-weight:650;color:#15385f}.object-editor details{margin-top:14px}.object-editor summary{font-size:12px;cursor:pointer;color:#15385f}
body{height:100dvh;overflow:hidden}.yellowbar{height:44px;min-height:44px;gap:10px;padding:0 12px!important;top:64px}#beamTabs{display:flex;gap:4px;overflow-x:auto;max-width:42%;flex-shrink:1}.beam-tab{display:flex;white-space:nowrap;border:1px solid transparent;border-radius:5px}.beam-tab.active{border-color:#a6811d;background:#fff5c8}.beam-tab button{background:transparent;border:0;padding:6px 7px;font-size:12px;min-height:30px;color:#111}.beam-tab button+button{font-size:20px;padding:0 7px}#addBeam,#printReport{white-space:nowrap;font-size:12px;padding:6px 9px}.peak-strip{display:flex;gap:18px;align-items:center;margin-left:auto;white-space:nowrap}.metric{display:inline;background:none;border:0;padding:0;border-radius:0;font-size:12px}.metric strong{display:inline;font-size:14px;margin:0 0 0 3px}.metric>span{font-size:12px}.metric:nth-child(1) strong{color:#7736b8}.metric:nth-child(2) strong{color:#175cbd}.metric:nth-child(3) strong{color:#b54900}#runState{font-size:11px;color:#111;white-space:nowrap}.workspace{height:calc(100dvh - 108px);padding:10px;gap:12px;grid-template-columns:340px minmax(0,1fr)}.controls{height:100%;min-height:0;overflow:auto;scrollbar-gutter:stable;padding:8px;gap:9px}.results{position:static;overflow:auto;height:100%;min-height:0;scrollbar-gutter:stable}.card h2{min-height:36px;font-size:14px;padding:8px 9px}.card-body{padding:10px}.grid{gap:8px}.field{font-size:12px;gap:4px}input,select{min-height:32px;padding:5px 7px}.section-fields{margin-top:9px}.section-values{margin-top:7px;font-size:10.5px}#materialSettings{margin-top:9px}.formulation-label{font-size:11px}.mouse-help{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:500;color:#000;white-space:nowrap}.mouse-help button{padding:0!important;width:17px;height:17px;min-height:17px!important;border-radius:50%;font-size:11px!important;background:#fff;color:#000}.diagram-title{font-size:15px;top:10px;pointer-events:none}.diagram-title span{font-size:11px}.readout{font-size:15px;top:10px}.diagram-title select{pointer-events:auto;display:inline-block;width:90px;min-height:23px;margin-left:8px;font-size:11px;padding:1px 4px;vertical-align:middle}.diagram svg .load-handle{stroke:#000;fill:#fff}.load-card-head b{color:#000}.beam-menu{position:fixed;z-index:160;background:white;border:1px solid #9eb5cf;border-radius:6px;padding:4px;box-shadow:0 6px 20px #173e6c22;width:145px}.beam-menu button{display:block;width:100%;text-align:left;border:0;font-size:12px}.region-card{border-bottom:1px solid #bfd1ec;padding-bottom:12px;margin-bottom:12px}.region-card:last-child{border-bottom:0;margin:0;padding:0}.axle-row{display:grid;grid-template-columns:1fr 1fr 28px;gap:6px;align-items:end;margin:10px 0}.axle-row .remove{padding:2px 4px}.object-editor{width:330px}.help-copy p{font-size:13px;line-height:1.5;color:#111}#beamDialog{padding:0;width:min(550px,calc(100vw - 24px));border:1px solid #91aed0;border-radius:8px;color:#15385f}#beamDialog::backdrop{background:#102b4e55}#beamDialog form{display:grid;gap:12px}.error:not([hidden])~.workspace{height:calc(100dvh - 159px)}
.controls{grid-auto-rows:max-content}.diagram svg{touch-action:none}.load-card.selected{outline-color:#111}
@media(max-width:1250px){.workspace{grid-template-columns:310px minmax(0,1fr)}.peak-strip{gap:9px}.metric>span{display:none}#beamTabs{max-width:32%}.mouse-help{font-size:9px}}
@media(max-width:760px){body{height:auto;overflow:auto}.yellowbar{height:auto;min-height:44px;flex-wrap:wrap;padding:5px 8px!important;position:static}#beamTabs{max-width:65%}.peak-strip{order:3;width:100%;justify-content:space-between}#printReport{margin-left:auto}.workspace{height:auto;grid-template-columns:1fr}.controls,.results{height:auto;overflow:visible;scrollbar-gutter:auto}.results{grid-row:1}.controls{grid-row:2}.diagram-title{font-size:13px}.readout{top:32px;font-size:12px}.diagram-title span{font-size:10px}.diagram-title select{width:75px}.mouse-help{font-size:10px}}

#peakKind{font-size:11px;color:#111}#peakKind:empty{display:none}
#momentMetric strong{color:#7736b8}#shearMetric strong{color:#175cbd}#deflectionMetric strong{color:#b54900}
