@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--ink:#18221f;--muted:#748078;--line:#dde3dc;--paper:#f5f7f2;--lime:#d4ef81;--green:#3a623a;--blue:#5486ab;--red:#bd4d3e;--font:'DM Sans',sans-serif;--display:'Space Grotesk',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);font-family:var(--font);color:var(--ink);font-size:14px}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button,a,input,select{outline-offset:4px}button{border:0;background:none}button:hover{filter:brightness(.95)}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600}h1{font-family:var(--display);font-size:40px;letter-spacing:-1.6px;line-height:1.2}h1>span{color:#799f49}h2{font-size:14px}h3{font-size:13px}.app-header{height:78px;border-bottom:1px solid var(--line);padding:0 40px;display:flex;align-items:center;gap:60px;background:#fbfcf8}.brand{display:flex;align-items:center;gap:11px;font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:-.7px}.brandmark{background:#263a30;color:var(--lime);width:36px;height:36px;border-radius:7px;text-align:center;line-height:36px;font-size:25px;letter-spacing:-8px;padding-right:8px}.lab{font-size:10px;margin-left:5px;letter-spacing:.7px;vertical-align:top;line-height:20px}.app-header nav{display:flex;height:100%;gap:30px}.nav{font-size:13px;color:var(--muted);padding:0;position:relative}.nav.active{color:var(--ink);font-weight:600}.nav.active:after{content:'';height:2px;background:var(--ink);position:absolute;bottom:0;left:0;right:0}.nav span{margin-left:8px}.version{margin-left:auto;font-family:var(--display);font-size:10px;letter-spacing:1px;color:#7c897a;white-space:nowrap}.version i,.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#729552;margin-right:7px}main{max-width:1600px;padding:35px 40px 0;margin:auto}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:29px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.7px;color:var(--muted);margin-bottom:10px}.intro p:not(.eyebrow){color:var(--muted);margin-top:10px;font-size:13px}.button{border-radius:7px;padding:11px 15px;font-size:12px;font-weight:600;display:flex;gap:10px;align-items:center}.button.light{border:1px solid #d5ddd0;background:#fbfcf8}.button.dark{background:var(--ink);color:white}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fff;margin-bottom:24px}.metrics article{padding:21px 24px;border-right:1px solid var(--line)}.metrics article:last-child{border:0}.metric-label{display:block;font-size:9px;font-weight:600;letter-spacing:1.1px;color:#647167}.metrics article>div{display:flex;align-items:baseline;gap:7px;margin:9px 0 4px}.metrics strong{font:500 35px var(--display);letter-spacing:-1.6px}.metrics article>div>span{color:#76836f;font-size:15px}.metrics small{font-size:10px;color:var(--muted)}.metrics .reserve-card{background:#e5efce}.reserve-card .reserve-icon{margin-left:auto;font-size:28px}.workspace{display:grid;grid-template-columns:287px minmax(0,1fr);gap:22px;align-items:start}.sidebar,.scene-card,.loads-card,.reactions-card{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.panel-heading{padding:20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.panel-heading>span{font:10px var(--display);color:#9ba498;letter-spacing:.5px}.control-section{padding:20px;border-bottom:1px solid var(--line)}.section-label{display:flex;align-items:center;gap:9px;margin-bottom:16px}.section-label>span:first-child{font:10px var(--display);color:#a5afa0}.maker{font:8px var(--display);letter-spacing:.8px;color:#899282;margin-left:auto}.profile-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:20px}.profile-tabs button{border:1px solid var(--line);border-radius:6px;padding:9px 3px;font:600 13px var(--display)}.profile-tabs small{display:block;color:#939c8d;font:9px var(--font);margin-top:4px}.profile-tabs button.selected{border-color:#879b6d;background:#f0f5e7;color:#465d30}.label-row{display:flex;justify-content:space-between;font-size:11px;margin-bottom:10px}output{font-weight:600}input[type=range]{width:100%;accent-color:#526941;height:5px;margin:4px 0;cursor:pointer}.range-ends{display:flex;justify-content:space-between;font:9px var(--display);color:#a1aa9a;margin-top:6px}.spec-line{margin:16px 0;padding:10px;background:#f6f8f2;border-radius:5px;font-size:10px;display:flex;justify-content:space-between;color:#7a8573}.spec-line b{color:#59634e;font-weight:500}.field-row{display:flex;justify-content:space-between;align-items:center;font-size:10px;gap:10px;margin-top:12px}.input-unit{display:inline-flex;align-items:center;border:1px solid #dfe5da;border-radius:5px;background:#fff;flex-shrink:0;overflow:hidden}.input-unit input{width:48px;height:30px;border:0;background:none;text-align:right;padding:3px;font-family:var(--display);font-size:11px}.input-unit span{font-size:10px;color:#a0a896;padding:0 7px 0 2px}.help{font-size:10px;color:#929c89;line-height:1.6;margin-top:10px}.motor-config{display:flex;align-items:center;gap:8px;font-size:11px;margin-bottom:10px}.point-badge{background:#edf0e8;border:1px solid #d7ded0;min-width:23px;height:23px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font:600 11px var(--display)}.motor-config select{margin-left:auto;border:1px solid #dfe5da;border-radius:5px;background:#fff;padding:7px 3px;font-size:10px}.control-section details{margin-top:13px;font-size:10px;color:#748168}.control-section summary{cursor:pointer}.add-loads{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.add-loads button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:11px 3px;border:1px solid var(--line);border-radius:6px;font-size:8px}.add-loads button>span{font-size:23px;color:#67715b}.add-loads small{font-family:var(--display);font-size:9px;color:#8e9982}.reset{display:block;width:100%;text-align:center;font-size:10px;color:#79876c;padding:16px}.main-panel{min-width:0}.scene-header{padding:17px 20px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--line)}.scene-header>div:first-child{display:flex;align-items:center;gap:6px}.scene-header h2{font-size:12px}.pill{font:8px var(--display);border:1px solid #dce4d5;padding:3px 6px;border-radius:4px;color:#849578;letter-spacing:.8px;margin-left:7px}.view-tabs{display:flex;padding:3px;background:#f0f3eb;border:1px solid #e8ede2;border-radius:6px;gap:2px}.view-tabs button{font-size:9px;padding:5px 8px;border-radius:4px;color:#869176;white-space:nowrap}.view-tabs button.selected{background:white;box-shadow:0 1px 3px #2d3e2712;color:#394c2d}.scene-wrap{position:relative;background-color:#fafcf8;background-image:radial-gradient(#a3b29055 .8px,transparent .8px);background-size:20px 20px;overflow:hidden}#scene{width:100%;display:block;touch-action:pan-y;min-height:300px;max-height:490px}.scene-coordinate,.scene-hint{position:absolute;bottom:17px;font:9px var(--display);color:#a0ac94;pointer-events:none}.scene-coordinate{left:22px;letter-spacing:1.5px}.scene-hint{right:22px}.scene-footer{border-top:1px solid var(--line);padding:13px 20px;display:flex;justify-content:space-between;gap:10px;font-size:9px;color:#8a967e}.legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.legend i{display:inline-block;width:15px;height:2px;vertical-align:middle;margin-right:4px}.line-blue{background:var(--blue)}.line-lime{background:#8eaa52}.switch-label{display:flex;align-items:center;gap:5px;white-space:nowrap}.switch-label input{accent-color:#748e4d;width:12px;height:12px}.motion-bar{border-top:1px solid var(--line);display:flex;gap:13px;align-items:center;padding:15px 20px;background:#fcfdf9}.motion-icon{font-size:21px;color:#829773}.motion-bar b{font-size:10px;display:block}.motion-bar small{display:block;font:9px var(--display);color:#8f9c82;margin-top:5px}.motion-controls{margin-left:auto;display:flex;gap:5px}.motion-controls button{font-size:10px;border:1px solid #d7dfcd;border-radius:5px;padding:8px 11px;background:#fff}.motion-controls button.active{background:#ddeaab}.motion-note{font-size:8px;color:#949f88;line-height:1.6}.status-banner{display:flex;align-items:center;gap:12px;border:1px solid #d8e4c7;background:#eef4e5;padding:14px 17px;border-radius:7px;margin:16px 0}.status-symbol{border:1px solid #a3b58d;color:#658044;border-radius:50%;width:23px;height:23px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.status-banner b{font-size:11px;color:#58713e}.status-banner p{font-size:10px;color:#879571;margin-top:4px;line-height:1.5}.status-banner.warning{background:#fff6e4;border-color:#ebd5a9}.status-banner.warning b,.status-banner.warning p{color:#95712e}.status-banner.danger{background:#fceeea;border-color:#e8bfb4}.status-banner.danger b,.status-banner.danger p{color:#a9513f}.status-banner.danger .status-symbol{border-color:#d37f6c;color:#b45641}.results-grid{display:grid;grid-template-columns:1.12fr 1fr;gap:17px}.results-grid .panel-heading{padding:16px}.results-grid h2{font-size:12px}.table-wrap{max-height:225px;overflow:auto}table{width:100%;border-collapse:collapse;font-size:10px}th{text-align:left;color:#99a28f;font-size:8px;font-weight:500;padding:12px 12px 8px}td{padding:8px 12px;border-top:1px solid #f1f3ec}td input{border:1px solid #e7ebe0;border-radius:4px;width:57px;padding:5px;font:10px var(--display);color:#52633e}td button{color:#afb7a6;font-size:15px;padding:0}td:first-child{white-space:nowrap}.load-dot{display:inline-block;width:6px;height:6px;background:#91aa60;border-radius:2px;margin-right:6px}.selected-row{background:#f3f7ea}.selected-position{border-top:1px solid var(--line);padding:12px 15px;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:9px;color:#8b977b}.motor-result{padding:13px 16px 0}.motor-result-top{display:flex;align-items:center;font-size:10px;gap:7px}.motor-result-top b{font:500 17px var(--display);margin-left:auto;letter-spacing:-.5px}.motor-result-top small{font-size:10px;color:#95a084}.progress{height:4px;background:#eff2e9;border-radius:3px;overflow:hidden;margin-top:8px}.progress>span{display:block;height:100%;background:#9eb76a;transition:width .15s}.motor-caption{display:flex;justify-content:space-between;margin-top:5px;font-size:8px;color:#9ca68f;gap:8px}.beam-results{border-top:1px solid var(--line);margin-top:15px;padding:12px 16px;display:flex;justify-content:space-between;gap:15px}.beam-results span{font-size:8px;color:#98a38a}.beam-results b{display:block;font:500 13px var(--display);color:#60704d;margin-top:4px}.footnote{display:flex;gap:11px;align-items:flex-start;padding:22px 0 27px;color:#8b9681;font-size:10px;line-height:1.65}.footnote p{max-width:1000px}.footnote>span:last-child{margin-left:auto;white-space:nowrap;font:9px var(--display);padding-top:3px}.footnote b{color:#6e7d60;font-weight:500}.footnote button{font-size:10px;color:#526d3d;text-decoration:underline;padding:0 4px}.footnote-icon{border:1px solid #abb69f;border-radius:50%;min-width:15px;height:15px;display:grid;place-items:center;font:10px var(--display);margin-top:2px}#scene text{font-family:var(--display)}.load-object{cursor:grab;touch-action:none;outline:none}.load-object:focus rect{stroke:#5486ab;stroke-width:3}.load-object:active{cursor:grabbing}.method-intro{margin-bottom:35px}.method-intro>p:last-child{color:var(--muted);margin-top:12px}.method-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.method-grid article{padding:30px;border:1px solid var(--line);background:white;border-radius:10px}.method-grid h2{font-size:20px;margin:10px 0}.method-grid p{font-size:13px;line-height:1.8;color:#73806b;margin-top:10px}.section-number{font:12px var(--display);color:#91a27f}.source-section{margin:35px 0}.source-section>p{font-size:12px;color:var(--muted);margin-top:10px}#source-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}#source-list a{border:1px solid var(--line);padding:15px;border-radius:6px;background:white;font-size:12px;line-height:1.5}#source-list a>small{display:block;color:#8e9985;font-size:10px;margin-top:8px}#method{padding-bottom:40px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 20px;background:var(--ink);color:#fff;font-size:12px;border-radius:8px;z-index:50;box-shadow:0 6px 30px #18221f25}body[hidden],[hidden]{display:none!important}.danger-text{color:var(--red)!important}input[type=number]{appearance:textfield;-moz-appearance:textfield}input::-webkit-inner-spin-button{opacity:.35}
@media(min-width:1500px){#scene{max-height:540px}.scene-wrap{min-height:430px}}@media(max-width:1150px){.app-header{padding:0 24px;gap:35px}main{padding-left:24px;padding-right:24px}.version{display:none}.workspace{grid-template-columns:260px minmax(0,1fr);gap:15px}.control-section{padding:16px}.metrics article{padding:18px}.metric-label{font-size:8px}.metrics strong{font-size:30px}.scene-header{flex-wrap:wrap;gap:12px}.motion-note{display:none}.results-grid{grid-template-columns:1fr}.reactions-card{display:block}.scene-footer{flex-wrap:wrap}.intro h1{font-size:35px}}@media(max-width:760px){.app-header{height:65px;padding:0 18px;gap:22px}.brand{font-size:16px}.brandmark{width:30px;height:30px;font-size:20px;line-height:30px}.app-header nav{gap:13px}.nav{font-size:10px}.nav span{display:none}.lab{display:none}main{padding:25px 15px 0}.intro{align-items:flex-start;gap:14px}.intro h1{font-size:28px;letter-spacing:-1px}.intro p:not(.eyebrow){font-size:11px;max-width:250px;line-height:1.6}.eyebrow{font-size:7px}.intro .button{font-size:0;padding:9px}.intro .button span{font-size:18px}.metrics{grid-template-columns:repeat(2,1fr);margin-bottom:15px}.metrics article{padding:16px;border-bottom:1px solid var(--line)}.metrics article:nth-child(2){border-right:0}.metrics article:nth-child(3){border-bottom:0}.metrics strong{font-size:28px}.metrics small{font-size:8px}.metric-label{font-size:7px}.workspace{display:flex;flex-direction:column}.sidebar{width:100%;display:grid;grid-template-columns:1fr 1fr}.sidebar>.panel-heading{grid-column:1/-1;padding:14px 16px}.control-section{border-right:1px solid var(--line)}.control-section:nth-child(4){grid-column:1/-1}.reset{grid-column:1/-1}.section-label{gap:5px}.maker{font-size:6px}.profile-tabs button{font-size:11px}.field-row{font-size:9px;gap:4px}.input-unit input{width:40px}.motor-config{flex-wrap:wrap}.motor-config select{width:100%;margin:0}.add-loads{gap:8px}.add-loads button{font-size:10px;flex-direction:row;justify-content:center}.add-loads small{display:none}.main-panel{width:100%;order:-1}.scene-header{padding:12px}.scene-header h2{font-size:11px}.scene-wrap{overflow:visible}#scene{min-height:240px}.scene-hint{font-size:7px;bottom:9px;right:10px}.scene-coordinate{font-size:7px;bottom:9px;left:10px}.scene-footer{padding:10px 12px;font-size:8px}.legend{gap:8px}.motion-bar{padding:12px;gap:8px}.motion-controls button{padding:7px 9px;font-size:9px}.results-grid{grid-template-columns:1fr}.reactions-card{display:block}.status-banner{margin:12px 0}.footnote>span:last-child{display:none}.footnote{font-size:9px}.method-grid{grid-template-columns:1fr}.method-grid article{padding:22px}#source-list{grid-template-columns:1fr}.method-intro h1{font-size:31px}}
@media print{.app-header,.sidebar,.intro .button,.motion-controls,.reset{display:none}.workspace{display:block}.main-panel{width:100%}.metrics{break-inside:avoid}.scene-card{break-inside:avoid}body{background:white}main{padding:10px}.results-grid{display:grid;grid-template-columns:1fr 1fr}.reactions-card{display:block}}

.project-label{display:flex;align-items:center;gap:10px;font-size:10px;color:#8a957e;margin-top:14px}.project-label input{font:12px var(--font);color:#536546;border:0;border-bottom:1px solid #ccd7c1;border-radius:0;background:transparent;padding:5px 2px;width:240px;max-width:100%}.motor-tools{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font:10px var(--display);color:#849277}.motor-tools button{font:9px var(--font);text-decoration:underline;color:#72885a}.motor-editor{border:1px solid #e1e8da;border-radius:6px;padding:10px;margin:8px 0;background:#fcfdf9}.motor-editor.selected-motor{border-color:#94adc0;background:#f5f9fb}.motor-editor-head{display:flex;align-items:center;gap:7px}.motor-editor-head select{min-width:0;flex:1;border:1px solid #dfe5da;border-radius:5px;background:#fff;padding:6px 3px;font-size:10px}.motor-editor-head>button{font-size:18px;color:#8b977f;padding:0 3px}.motor-editor-head>button:disabled{opacity:.2;cursor:default}.motor-editor .field-row{margin-top:8px;font-size:9px}.motor-editor input{width:55px}.add-motor{border:1px dashed #9cae88;color:#627e44;background:#f2f6e9;width:100%;padding:10px;border-radius:6px;font-size:11px;margin-top:5px}.add-motor:disabled{opacity:.4;cursor:default}.motor-object{cursor:grab;touch-action:none;outline:none}.motor-object:active{cursor:grabbing}.motor-object:focus rect{stroke:#5486ab;stroke-width:2}.load-id{font:9px var(--display);color:#8f9f7b}td input.load-name{font:10px var(--font);width:115px;text-align:left;border-color:transparent;background:transparent;padding:5px 2px;color:#536546}td input.load-name:focus{border-color:#bac9a7;background:white}.pdf-explainer{padding:25px 30px;margin-top:20px;background:#e9f0dd;border-radius:8px}.pdf-explainer p{font-size:12px;color:#738466;line-height:1.8;margin-top:10px}.intro .button:disabled{opacity:.55;cursor:wait}.main-panel{position:sticky;top:14px}.scene-coordinate,.scene-hint{bottom:8px}.sidebar .help{color:#7e8b70}
@media(max-width:1150px){.results-grid{grid-template-columns:1fr}.main-panel{position:static}.motor-caption{font-size:9px}}
@media(max-width:760px){.project-label{display:block;font-size:9px}.project-label input{display:block;width:215px;margin-top:3px}.sidebar{display:block}.sidebar>.panel-heading{padding:16px}.motor-editor{display:inline-block;width:calc(50% - 5px);vertical-align:top;margin:4px 2px;padding:9px}.motor-tools{margin-top:5px}.motor-editor .field-row{flex-wrap:wrap;gap:4px}.motor-editor .input-unit{margin-left:auto}.motor-editor-head{gap:4px}.motor-editor-head select{font-size:9px}.motor-editor-head>.point-badge{min-width:20px}.add-motor{margin-top:10px}.control-section{border-right:0}td input.load-name{width:105px}.scene-hint{font-size:6px}.intro{margin-bottom:20px}}

/* Direct manipulation: zoomable drawing and the selected object's controls. */
.scene-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fcfdf9;flex-wrap:wrap}
.quick-add,.zoom-tools{display:flex;align-items:center;gap:6px;min-width:0}
.quick-add{flex-wrap:wrap}
.quick-add button,.zoom-tools button{min-height:36px;padding:8px 10px;border:1px solid #d6dfce;border-radius:6px;font-size:11px;background:#fff;white-space:nowrap;touch-action:manipulation}
.quick-add button:first-child{color:#48663c;background:#edf4e2;border-color:#b8cba1}
.zoom-tools button:not(#zoom-fit){width:36px;padding:4px;font-size:20px}
.zoom-tools #zoom-fit{font-size:10px}
.quick-add button:disabled,.zoom-tools button:disabled{opacity:.4;cursor:default}
.scene-wrap{min-width:0;overflow:hidden;min-height:0}
.scene-viewport{width:100%;max-width:100%;overflow:auto;overscroll-behavior-x:contain;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#a8bb8b #edf2e6}
#scene{width:calc(100% * var(--scene-zoom,1));min-width:100%;min-height:0;max-height:none;height:auto;aspect-ratio:1000/480;touch-action:pan-x pan-y pinch-zoom;user-select:none;-webkit-user-select:none}
.load-object,.motor-object{touch-action:none}
.scene-guidance{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;background:#f9fcf6;border-top:1px solid #e9efe1;min-height:34px}
.scene-guidance .scene-coordinate,.scene-guidance .scene-hint{position:static;font-size:9px;color:#6d805c;letter-spacing:0;line-height:1.4}
.scene-guidance .scene-coordinate{white-space:nowrap;font-family:var(--display)}
.scene-guidance .scene-hint{text-align:right}
.object-editor{padding:14px 18px 12px;border-top:1px solid var(--line);background:#f8fbf3;min-width:0}
.object-picker{display:flex;align-items:center;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding:2px 1px 9px;min-width:0;max-width:100%;-webkit-overflow-scrolling:touch}
.object-picker button{flex:0 0 auto;min-width:40px;min-height:36px;padding:6px 10px;border:1px solid #d8e2cc;border-radius:7px;font:600 11px var(--display);background:white;color:#60734d;touch-action:manipulation}
.object-picker button[aria-pressed=true],.object-picker button.selected,.object-picker .object-chip.selected{border-color:#64814d;background:#ddeaaf;color:#354b28;box-shadow:inset 0 0 0 1px #64814d}
.object-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:5px 0 9px}
.object-editor-heading>div{min-width:0}
.object-editor-heading #object-kind{display:block;font-size:9px;color:#7d8d70;margin-bottom:3px}
.object-editor-heading strong{display:block;font-size:13px;font-weight:600;overflow-wrap:anywhere}
#object-current{white-space:nowrap;font:500 19px var(--display);color:#486a35;flex-shrink:0}
.position-control{display:flex;align-items:center;gap:12px}
.position-control>button{flex:0 0 40px;width:40px;min-height:40px;border:1px solid #c9d8b8;border-radius:7px;background:white;font-size:21px;touch-action:manipulation}
.position-control>label{min-width:0;flex:1}
.position-control>label>span{font-size:10px;color:#6d7f5d}
.position-control input[type=range]{display:block;height:36px;margin:0;background:transparent}
.object-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}
.object-fields>label{font-size:10px;color:#6d7f5d;min-width:0}
.object-fields input,.object-fields select{display:block;width:100%;min-width:0;height:36px;border:1px solid #d2ddc8;border-radius:6px;background:white;color:#354c2a;font:13px var(--display);padding:7px 10px;margin-top:5px}
.object-feedback{font-size:10px;line-height:1.5;color:#758965;min-height:15px;margin-top:8px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.scene-viewport:focus-visible{outline:2px solid #5486ab;outline-offset:3px}
@media(max-width:1150px){.scene-tools{gap:9px;padding:12px}.quick-add{flex:1}.object-editor{padding:14px}.scene-viewport{max-height:500px}}
@media(max-width:760px){
  main{padding:20px 12px 0;padding-bottom:env(safe-area-inset-bottom)}
  .app-header{gap:14px;padding:0 12px;justify-content:space-between}.brand{gap:7px;font-size:15px}.app-header nav{gap:12px}.nav{min-height:44px;font-size:10px}
  .intro{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin-bottom:18px}.intro>div{min-width:0}.intro h1{font-size:29px;line-height:1.15}.intro p:not(.eyebrow){font-size:12px;max-width:100%}.intro .button{font-size:13px;min-height:46px;padding:11px 15px;justify-content:center;width:100%}.intro .button span{font-size:19px}
  .project-label{font-size:11px;margin-top:12px}.project-label input{font-size:16px;min-height:44px;width:100%;max-width:100%;margin-top:3px;padding:8px 2px}
  .metrics article{padding:14px 12px}.metric-label{font-size:9px;letter-spacing:.6px;line-height:1.35}.metrics strong{font-size:29px}.metrics small{font-size:10px;line-height:1.5;display:block}.metrics article>div{margin-top:7px}.reserve-card .reserve-icon{font-size:22px}
  .workspace,.main-panel,.sidebar,.scene-card,.loads-card,.reactions-card{min-width:0;max-width:100%}
  .scene-header{padding:13px 12px;gap:12px}.scene-header>div:first-child{flex-wrap:wrap}.scene-header h2{font-size:12px}.pill{font-size:9px}.view-tabs{width:100%;display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:3px}.view-tabs button{font-size:11px;min-height:44px;padding:8px 4px}
  .scene-tools{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:12px}
  .quick-add{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;width:100%}.quick-add button{font-size:12px;min-height:44px;padding:9px 5px;width:100%;white-space:normal}
  .zoom-tools{justify-content:center;gap:8px}.zoom-tools button{min-height:44px}.zoom-tools button:not(#zoom-fit){width:44px}.zoom-tools #zoom-fit{min-width:124px;font-size:12px}
  .scene-viewport{max-height:390px;min-height:0;scrollbar-width:auto}.scene-wrap{overflow:hidden}.scene-guidance{padding:10px 12px;gap:8px;align-items:flex-start}.scene-guidance .scene-coordinate,.scene-guidance .scene-hint{font-size:10px}.scene-guidance .scene-hint{max-width:210px}
  .object-editor{padding:12px}.object-picker{gap:7px;padding-bottom:10px}.object-picker button{min-width:44px;min-height:44px;font-size:12px;padding:8px 11px}.object-editor-heading{margin-top:5px}.object-editor-heading #object-kind{font-size:10px}.object-editor-heading strong{font-size:15px}#object-current{font-size:21px}
  .position-control{gap:10px}.position-control>button{width:44px;flex-basis:44px;min-height:44px}.position-control>label>span{font-size:11px}.position-control input[type=range]{height:44px}.object-fields{gap:10px;margin-top:9px}.object-fields>label{font-size:11px}.object-fields input,.object-fields select{height:44px;font-size:16px;padding:9px}.object-feedback{font-size:11px;line-height:1.5;min-height:17px}
  input[type=range]{height:44px;touch-action:pan-y;margin:0;accent-color:#5c793f}.range-ends{font-size:11px;margin-top:0}.label-row{font-size:13px;margin-bottom:0}input[type=range]::-webkit-slider-thumb{width:25px;height:25px}input[type=range]::-moz-range-thumb{width:25px;height:25px}
  .scene-footer{font-size:10px;padding:11px 12px;gap:6px}.legend{gap:8px;line-height:1.6}.switch-label{min-height:44px;font-size:11px}.switch-label input{width:19px;height:19px}
  .motion-bar{flex-wrap:wrap;padding:12px;gap:10px}.motion-bar b{font-size:12px}.motion-bar small{font-size:11px}.motion-controls{width:100%;margin:0;display:grid;grid-template-columns:1fr 54px 1fr;gap:8px}.motion-controls button{min-height:44px;font-size:12px;padding:10px}
  .status-banner{padding:13px 12px;gap:10px}.status-banner b{font-size:12px;line-height:1.5}.status-banner p{font-size:11px;line-height:1.6}
  .sidebar>.panel-heading,.control-section{padding:16px}.panel-heading h2,.results-grid h2{font-size:14px}.section-label{gap:8px;margin-bottom:14px}.section-label h3{font-size:14px}.maker{font-size:9px}.section-label>span:first-child{font-size:11px}.profile-tabs button{min-height:58px;font-size:16px}.profile-tabs small{font-size:11px}.spec-line{font-size:12px;padding:12px}.help,.sidebar .help{font-size:12px;line-height:1.65}.field-row,.motor-editor .field-row{font-size:12px;gap:10px;flex-wrap:nowrap}.input-unit{max-width:100%;min-height:44px}.input-unit input,.motor-editor input{height:44px;width:75px;min-width:0;font-size:16px;padding:8px}.input-unit span{font-size:12px;padding-right:9px}
  #motor-list{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.motor-editor{display:block;width:100%;margin:0;padding:12px}.motor-editor-head{gap:9px}.motor-editor-head .point-badge{width:32px;height:32px;font-size:14px}.motor-editor-head select{height:44px;padding:8px;font-size:16px}.motor-editor-head>button{min-width:44px;min-height:44px;font-size:23px}.motor-editor .field-row{margin-top:10px}.motor-editor .input-unit{margin-left:0}.motor-tools{font-size:12px;margin-bottom:13px}.motor-tools button{font-size:12px;min-height:44px;padding:8px}.add-motor{min-height:46px;padding:12px;font-size:13px;margin-top:12px}
  .add-loads{grid-template-columns:minmax(0,1fr);gap:8px}.add-loads button{min-height:50px;justify-content:flex-start;gap:12px;padding:10px 14px;font-size:13px}.add-loads small{display:inline;margin-left:auto;font-size:12px}.reset{min-height:48px;font-size:12px;padding:14px}
  .table-wrap{max-height:360px}.loads-card table{table-layout:fixed}.loads-card th{font-size:10px;padding:12px 5px 8px}.loads-card th:first-child{width:37%;padding-left:10px}.loads-card th:nth-child(2),.loads-card th:nth-child(3){width:22%}.loads-card th:last-child{width:19%}.loads-card td{padding:8px 4px}.loads-card td:first-child{padding-left:10px;white-space:normal}.loads-card .load-dot{display:none}.load-id{display:block;font-size:11px;margin-bottom:1px}td input.load-name{font-size:16px;width:100%;padding:8px 0;height:44px;min-width:0}td input:not(.load-name){font-size:16px;width:100%;height:44px;padding:7px 3px;min-width:0}td button{font-size:22px;min-width:44px;min-height:44px;padding:7px 3px}.selected-position{font-size:11px;padding:12px;line-height:1.5}.selected-position label{min-width:0}.selected-position .input-unit input{width:63px}
  .motor-result{padding:15px 13px 0}.motor-result-top{font-size:12px;gap:6px}.motor-result-top b{font-size:19px}.motor-result-top small{font-size:11px}.motor-caption{font-size:10px;line-height:1.6;flex-wrap:wrap;gap:2px}.beam-results span{font-size:10px}.beam-results b{font-size:15px}.beam-results{padding:14px 13px}
  .footnote{font-size:11px;line-height:1.65}.footnote button{font-size:11px;min-height:44px;text-align:left}.method-grid p{font-size:14px}.source-section>p,.pdf-explainer p{font-size:13px}.pdf-explainer{padding:20px}.method-intro>p:last-child{font-size:14px;line-height:1.6}#source-list a{font-size:14px;overflow-wrap:anywhere}#source-list a>small{font-size:12px}
  #toast{max-width:calc(100vw - 24px);width:max-content;font-size:12px;line-height:1.5;bottom:calc(16px + env(safe-area-inset-bottom));padding:12px 15px;text-align:center}
}
@media(min-width:520px) and (max-width:760px){#motor-list{grid-template-columns:repeat(2,minmax(0,1fr))}.motor-editor .field-row{flex-wrap:wrap}.motor-editor .input-unit{margin-left:auto}.quick-add{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:359px){.app-header{gap:8px}.brand{font-size:13px;gap:5px}.brandmark{width:27px;height:27px;line-height:27px}.app-header nav{gap:8px}.nav{font-size:9px}.intro h1{font-size:26px}.metrics article{padding:12px 10px}.metric-label{font-size:8px}.metrics strong{font-size:27px}.object-editor-heading strong{font-size:14px}.scene-guidance .scene-hint{max-width:180px}.loads-card th:first-child{width:33%}.loads-card th:nth-child(2),.loads-card th:nth-child(3){width:24%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.progress>span{transition:none}}
@media print{.scene-tools,.object-editor,.scene-guidance{display:none}.scene-viewport{max-height:none;overflow:visible}#scene{width:100%}}

/* Keep the phone's first screen focused on editing the plan. */
.scene-shortcuts{display:none}
@media(max-width:760px){
  .intro{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:14px}
  .intro>div{display:contents}
  .intro>div>p{display:none}
  .intro h1{grid-column:1;grid-row:1;font-size:24px;line-height:1.15;letter-spacing:-.8px}
  .intro .button{grid-column:2;grid-row:1;width:auto;min-height:44px;padding:9px 10px;gap:6px;font-size:11px;align-self:center}
  .intro .button span{font-size:17px}
  .intro .project-label{grid-column:1/-1;grid-row:2;margin:0;font-size:10px}
  .intro .project-label input{margin-top:2px;min-height:44px}
  .scene-shortcuts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px;min-width:0}
  .scene-shortcuts button{min-height:44px;min-width:0;border:1px solid #d4dec9;border-radius:6px;padding:8px 7px;background:#f3f7eb;font-size:11px;line-height:1.4;color:#55713d;touch-action:manipulation}
  #configuration,#load-results{scroll-margin-top:14px}
}

.object-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}.object-actions .object-feedback{margin-top:0}.object-actions button{min-height:36px;padding:7px 10px;color:#a35240;border:1px solid #e8d4ca;border-radius:6px;font-size:11px;flex-shrink:0;background:#fff}.object-actions button:disabled{opacity:.35;cursor:default}.zoom-tools #zoom-fit.selected{border-color:#8da576;background:#edf4e2}.position-control>button:disabled{opacity:.35;cursor:default}.is-dragging .motor-object,.is-dragging .load-object{cursor:grabbing}@media(max-width:760px){.object-actions button{min-height:44px;font-size:12px}.object-actions .object-feedback{font-size:10px}.scene-shortcuts button{overflow-wrap:anywhere}}

@media(min-width:1151px){.scene-viewport{max-height:560px}}
