.code-shear-output-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}.code-shear-output-actions button{padding:7px 12px}.code-shear-output-actions label{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%}.code-shear-output-actions select{min-width:0;max-width:100%;flex:1 1 auto;padding:6px;font:inherit}.code-shear-output-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0008;padding:20px;display:grid;place-items:center}.code-shear-output-dialog{width:min(1400px,100%);max-height:calc(100vh - 40px);overflow:auto;box-sizing:border-box;padding:22px;border-radius:10px;background:var(--surface);color:var(--text);box-shadow:0 16px 60px #0005}.code-shear-output-dialog header{display:flex;gap:16px;align-items:center;justify-content:space-between}.code-shear-output-dialog h2{margin:0;font-size:22px}.code-shear-output-dialog p{line-height:1.5}.code-shear-output-table{max-height:55vh;overflow:auto}.code-shear-output-table table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px}.code-shear-output-table th,.code-shear-output-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.code-shear-output-table th{position:sticky;top:0;background:var(--surface);z-index:1}.code-shear-output-dialog details{margin-top:16px}@media(max-width:640px){.code-shear-output-overlay{padding:5px}.code-shear-output-dialog{padding:12px;max-height:calc(100vh - 10px)}}@media print{.code-shear-output-actions,.code-shear-output-overlay{display:none!important}}:root{--bg: #eef1f6;--surface: #ffffff;--surface-2: #f8fafc;--border: #e2e8f0;--border-strong: #cbd5e1;--text: #0f172a;--text-2: #475569;--text-3: #334155;--muted: #5b6b80;--line: #94a3b8;--line-soft: #eef2f7;--danger: #ef4444;--primary: #2563eb;--primary-700: #1d4ed8;--on-primary: #ffffff;--ok-bg: #dcfce7;--ok-fg: #15803d;--fail-bg: #fee2e2;--fail-fg: #b91c1c;--warn-bg: #fef3c7;--warn-fg: #b45309;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 2px 8px rgba(15, 23, 42, .05);--focus-ring: color-mix(in srgb, var(--primary) 55%, transparent);--label-halo: #ffffff;--header-h: 0px;--series-v: #1565c0;--series-m: #c62828;--series-n: #2e7d32;--series-deflection: #ab47bc;--series-rotation: #e65100;--series-crack-concrete: #00838f;--series-crack-bars: #e65100;--series-concrete: #37474f;--series-rebar: #c62828;--ur-interlock: #00838f;--ur-concrete: #6d4c41;--ur-reinforcement: #ab47bc;--ur-stirrups: #ad1457;--ur-general-crack: #4e342e;--ur-code-shear: #827717;--not-converged: #546e7a;color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--text)}:root[data-theme=dark]{--bg: #0b111d;--surface: #141d2e;--surface-2: #1b2740;--border: #26334a;--border-strong: #3a4a67;--text: #e6ebf3;--text-2: #b3c0d4;--text-3: #cad4e3;--muted: #8896ac;--line: #55688a;--line-soft: #223049;--danger: #f87171;--primary: #60a5fa;--primary-700: #3b82f6;--on-primary: #0b1220;--ok-bg: #123524;--ok-fg: #4ade80;--fail-bg: #3b1a1e;--fail-fg: #fca5a5;--warn-bg: #3a2f15;--warn-fg: #fcd34d;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 2px 10px rgba(0, 0, 0, .5);--label-halo: #e6ebf3;--series-v: #60a5fa;--series-m: #f87171;--series-n: #4ade80;--series-deflection: #c084fc;--series-rotation: #fb923c;--series-crack-concrete: #22d3ee;--series-crack-bars: #fb923c;--series-concrete: #cbd5e1;--series-rebar: #f87171;--ur-interlock: #22d3ee;--ur-concrete: #d7a98c;--ur-reinforcement: #c084fc;--ur-stirrups: #f472b6;--ur-general-crack: #ffcc80;--ur-code-shear: #d4e157;--not-converged: #b0bec5;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg)}:where(button,summary,select,[role=separator],input[type=range]):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.app{padding:12px 16px}header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}h1{font-size:18px;margin:0 0 8px}.app.header-fixed>header{position:sticky;top:0;z-index:40;background:var(--bg);margin:-12px -16px 8px;padding:10px 16px 6px;border-bottom:1px solid var(--border)}.app.header-fixed .inputs,.app.header-fixed .resizer,.app.header-fixed .theory-nav{top:calc(var(--header-h) + 8px);max-height:calc(100vh - var(--header-h) - 16px)}.app.header-fixed .resizer{height:calc(100vh - var(--header-h) - 16px)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.project-name{width:130px;padding:6px 8px;border:1px solid var(--line);border-radius:4px}.hidden-file{display:none}button.secondary{padding:7px 14px;font-size:14px;font-weight:600;color:var(--primary);background:var(--surface);border:1px solid var(--primary);border-radius:4px;cursor:pointer}button.secondary:hover:not(:disabled){background:var(--line-soft)}button.secondary:disabled{opacity:.5;cursor:default}button.calc{padding:8px 20px;font-size:15px;font-weight:600;color:var(--on-primary);background:var(--primary);border:none;border-radius:4px;cursor:pointer}button.calc:disabled{background:#90a4ae;cursor:default}.layout{display:grid;grid-template-columns:380px 8px minmax(0,1fr);gap:12px;align-items:start}.layout.dragging{cursor:col-resize;-webkit-user-select:none;user-select:none}.layout.stacked{grid-template-columns:minmax(0,1fr);gap:16px}.layout.stacked .resizer{display:none}.layout.stacked .inputs{position:static;top:auto;max-height:none}.inputs{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto;min-width:0}.resizer{align-self:start;position:sticky;top:12px;height:calc(100vh - 24px);cursor:col-resize;background:linear-gradient(var(--border-strong),var(--border-strong)) center / 2px 100% no-repeat;border-radius:2px;transition:background-size .12s ease}.resizer:hover,.layout.dragging .resizer{background-image:linear-gradient(var(--primary),var(--primary));background-size:4px 100%}.input-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:4px;margin-bottom:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px}.input-tab{flex:1 1 auto;padding:7px 6px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer}.input-tab:hover{color:var(--text)}.input-tab.active{background:var(--surface);color:var(--primary);border-color:var(--border);box-shadow:var(--shadow)}fieldset{min-width:0;border:1px solid var(--border-strong);border-radius:6px;margin:0 0 12px;padding:8px 12px 12px;background:var(--surface)}legend{font-weight:600;padding:0 4px}.field{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0}.field-label{color:var(--text-2)}:where(.inputs input:not([type=checkbox],[type=radio]),.inputs select){border:1px solid var(--border-strong);border-radius:4px;background:var(--surface);color:var(--text);font:inherit}.field input,.field select{flex:0 1 84px;width:84px;min-width:52px;padding:3px 6px;text-align:right}.field select{flex:0 1 auto;width:auto;min-width:min(205px,58%);text-align:left}.field input:not([inputmode]){flex:0 1 205px;width:auto;min-width:0;text-align:left}.derived{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.derived.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 10px}.derived.three .field{gap:6px}.derived.three .field input{min-width:40px}.derived.three .field-label{flex:none;white-space:nowrap}.drying-faces{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:0 12px;margin:4px 0 0;padding:0;border:none}.drying-faces legend{padding:0;font-size:12px;color:var(--text-2)}.field input.readonly{background:var(--surface-2);color:var(--text-2);cursor:not-allowed}.field:has(.field-error){flex-wrap:wrap}.field-error{flex-basis:100%;color:var(--fail-fg);font-size:12px}input.invalid{border-color:var(--fail-fg);background:var(--fail-bg);outline-color:var(--fail-fg)}.field-checkbox{justify-content:flex-start;cursor:pointer}.field.field-checkbox input{flex:none;width:auto;min-width:0}.check{display:flex;align-items:center;gap:8px;margin:4px 0;color:var(--text-2);cursor:pointer}.check input{flex:none}.prestress-cable{border:1px solid var(--border);border-radius:4px;padding:6px 8px;margin-bottom:8px;background:var(--surface-2)}.prestress-cable-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.prestress-cable-head .cable-id{width:60px;padding:3px 6px}.prestress-cable-head select{flex:1;padding:3px 6px}.link-danger{border:none;background:none;color:var(--fail-fg);cursor:pointer;font-size:14px;padding:2px 6px}.add-cable{width:100%}.limit-state-block{border-top:3px solid var(--primary);margin-top:16px;padding-top:4px}.limit-state-head{display:flex;align-items:baseline;gap:12px}.limit-state-head h2{font-size:16px;margin:4px 0}.hint,.field-hint{margin:2px 0 0;font-size:12px;color:var(--muted)}.note{margin:2px 0 0;font-size:12px;color:var(--text-2)}.collapsible{margin:6px 0 12px}.collapsible-toggle{background:none;border:none;padding:2px 0;color:var(--primary);font-size:13px;font-weight:600;cursor:pointer}.collapsible-body{margin-top:4px}.collapsible-body.collapsed{display:none}.check-summary table{width:auto;min-width:min(100%,520px)}.check-summary td:first-child{text-align:left}.check-summary .ur-swatch{margin-right:6px;vertical-align:-1px}.check-summary td.check-ok{color:var(--ok-fg)}.check-summary td.check-fail{color:var(--fail-fg);font-weight:600}.error-inline{margin:4px 0 0;font-size:12px;color:var(--fail-fg)}.userdef-editor{display:flex;flex-direction:column;gap:8px}.userdef-actions{display:flex;flex-wrap:wrap;gap:8px}.userdef-actions button{white-space:nowrap}.userdef-preview{width:100%;max-width:300px;background:var(--surface-2);border:1px solid var(--border);border-radius:4px}.userdef-points{max-height:220px;overflow-y:auto}.userdef-points input{width:80px}.rebar-table{table-layout:fixed}.rebar-table th{white-space:normal;font-size:12px;padding:3px 2px;vertical-align:bottom}.rebar-table td{padding:2px}.rebar-table th:first-child,.rebar-table td:first-child{width:34px}.rebar-table td input{width:100%;min-width:0;font-size:13px}.rebar-table tr.direction-start td{border-top:2px solid var(--border-strong)}.rebar-table tr.inactive-row input{color:var(--muted);background:var(--surface-2)}.results{min-width:0}.status{font-weight:600;padding:6px 10px;border-radius:4px;margin-bottom:10px}.status.ok{background:var(--ok-bg);color:var(--ok-fg)}.status.fail{background:var(--fail-bg);color:var(--fail-fg)}.status.note{background:var(--warn-bg);color:var(--warn-fg)}.section-head{font-size:15px;margin:18px 0 8px;padding-top:8px;border-top:1px solid var(--border-strong)}.result-grid{margin-bottom:16px}.result-grid h3{font-size:14px;margin:0 0 4px}.table-scroll{overflow-x:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:6px}tr.governing-row td{font-weight:600}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}th,td{padding:3px 8px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--surface-2)}th{background:var(--surface-2);position:sticky;top:0}td.row-index,th:first-child{text-align:left;color:var(--muted)}td input{width:78px;padding:2px 4px;text-align:right}.schematic-wrap{background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;padding:4px 8px}.schematic-svg{width:100%;height:auto;display:block}.schematic-svg .beam{stroke:#37474f;stroke-width:4}.schematic-svg .beam-body .concrete{stroke:var(--muted);stroke-width:1.5}.schematic-svg .beam-body .rebar{stroke:var(--text-3);stroke-width:.4}.schematic-svg .support{fill:#607d8b;stroke:none}.schematic-svg .ground{stroke:#90a4ae;stroke-width:1.5}.schematic-svg .roller{fill:#607d8b}.schematic-svg .dist{stroke:#2e7d32;fill:none;stroke-width:1.2}.schematic-svg .dist.ramp polygon{fill:var(--ok-bg);stroke:#2e7d32}.schematic-svg .load-label{font-size:11px;fill:var(--text-3)}.schematic-svg .span-label{font-size:11px;fill:var(--muted)}.schematic-svg .grab{cursor:ew-resize;touch-action:none}.schematic-svg .load.dragging line,.schematic-svg .load.dragging polygon{opacity:.6}.charts{display:flex;flex-direction:column;gap:6px}.chart{background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;padding:2px 8px}.chart-svg{width:100%;height:auto;display:block}.chart-title{font-size:11px;font-weight:600;fill:var(--text-3)}.not-converged-mark{stroke:var(--not-converged);stroke-width:1.4;stroke-dasharray:4 2}.not-converged-text{fill:var(--not-converged);font-weight:600}.chart-marker{stroke:#9c27b0;stroke-width:1;stroke-dasharray:2 2;opacity:.7}.strip-outline{fill:none;stroke:#607d8b;stroke-width:1}.ur-legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11px;color:var(--text-2);padding:2px 8px 4px}.ur-band{display:inline-flex;align-items:center;gap:4px}.ur-swatch{width:12px;height:12px;border-radius:2px;display:inline-block}.section-plot{display:flex;gap:10px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;padding:6px 8px}.section-svg{width:150px;height:auto}.section-outline{fill:none;stroke:#37474f;stroke-width:1.5}.profile-svg{width:170px;height:auto}.resizable{position:relative;width:100%;box-sizing:border-box}.resizable.dragging{-webkit-user-select:none;user-select:none}.resizable-content{height:calc(100% - 10px);overflow:auto}.resize-handle{position:absolute;left:0;right:0;bottom:0;height:10px;cursor:ns-resize;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:0 0 6px 6px;touch-action:none}.resize-handle:after{content:"";display:block;width:36px;height:3px;margin:3px auto 0;border-radius:2px;background:var(--line)}.resize-handle:hover{background:var(--border)}.resizable.section-panel .section-plot{height:100%;flex-wrap:nowrap;box-sizing:border-box}.resizable.section-panel .section-svg,.resizable.section-panel .profile-svg{height:100%;width:auto}.material-curves{display:flex;gap:10px;flex-wrap:wrap}.curve-svg{width:min(100%,420px);height:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:6px}.peak-label{font-size:9px;font-weight:600}.schematic-svg .section-marker line{stroke:#9c27b0;stroke-width:1;stroke-dasharray:2 2;opacity:.7}.schematic-svg .section-marker text{font-size:9px;fill:#9c27b0}.chart-frame{fill:var(--surface-2);stroke:var(--border)}.chart-axis{stroke:var(--line);stroke-dasharray:3 3}.chart-limit{stroke:var(--danger);stroke-dasharray:6 3}.chart-tick{font-size:9px;fill:var(--muted)}.alert{padding:8px 12px;border:1px solid var(--border);border-left:3px solid var(--muted);border-radius:4px;margin-bottom:10px;background:var(--surface)}.alert-info{border-left-color:var(--primary)}.import-notes-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.import-notes ul{margin:6px 0 0;padding-left:18px}.ghost.tiny{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.9em;padding:0 4px}.alert-warn{background:var(--warn-bg);color:var(--warn-fg);border-color:var(--warn-fg)}.alert-error{background:var(--fail-bg);color:var(--fail-fg);border-color:var(--fail-fg)}.derivation-failed{display:flex;align-items:center;justify-content:space-between;gap:10px}.page-alerts{position:sticky;top:4px;z-index:30}.app.header-fixed .page-alerts{top:calc(var(--header-h) + 4px)}.page-error{display:flex;align-items:center;justify-content:space-between;gap:10px}.page-error .ghost.tiny{color:inherit}.floating-calc{position:fixed;right:16px;bottom:16px;z-index:50;box-shadow:var(--shadow)}@media(max-width:980px){.app{padding-bottom:72px}}.print-only{display:none}.placeholder,.loading{color:var(--muted);padding:16px}.report-only{display:none}.report-header{margin-bottom:12px}.report-title{border-bottom:2px solid #1a1a1a;padding-bottom:6px;margin-bottom:8px}.report-title h2{margin:0 0 4px;font-size:16px}.report-meta{display:flex;gap:16px;font-size:12px;color:var(--text-3)}.report-meta .ok,.report-status.ok{color:var(--ok-fg)}.report-status{margin:4px 0 0;font-weight:600}.report-status.fail,.report-meta .fail{color:var(--fail-fg)}.report-inputs dl{display:grid;grid-template-columns:90px 1fr;gap:2px 12px;margin:0;font-size:12px}.report-inputs dt{font-weight:600;color:var(--text-2)}.report-inputs dd{margin:0}@media print{:root,:root[data-theme=dark]{--bg: #eef1f6;--surface: #ffffff;--surface-2: #f8fafc;--border: #e2e8f0;--border-strong: #cbd5e1;--text: #0f172a;--text-2: #475569;--text-3: #334155;--muted: #5b6b80;--line: #94a3b8;--line-soft: #eef2f7;--danger: #ef4444;--primary: #2563eb;--primary-700: #1d4ed8;--on-primary: #ffffff;--ok-bg: #dcfce7;--ok-fg: #15803d;--fail-bg: #fee2e2;--fail-fg: #b91c1c;--warn-bg: #fef3c7;--warn-fg: #b45309;--label-halo: #ffffff;--series-v: #1565c0;--series-m: #c62828;--series-n: #2e7d32;--series-deflection: #ab47bc;--series-rotation: #e65100;--series-crack-concrete: #00838f;--series-crack-bars: #e65100;--series-concrete: #37474f;--series-rebar: #c62828;--ur-interlock: #00838f;--ur-concrete: #6d4c41;--ur-reinforcement: #ab47bc;--ur-stirrups: #ad1457;--ur-general-crack: #4e342e;--ur-code-shear: #827717;--not-converged: #546e7a;color-scheme:light}body{background:var(--surface)}.app{padding:0}.toolbar,.inputs,.app>header h1,.hint,.placeholder,.error,.no-print,button,.resizer,.resizer-h,.resize-handle,.section-selector,.tool-label,.on-beam-tools,.theory-nav{display:none!important}.app.header-fixed>header{position:static;border:none}.collapsible-body.collapsed{display:block!important}.report-only,.layout{display:block}.results{width:100%}.chart,.report-header,tr{break-inside:avoid}h2,h3{break-after:avoid}.print-only{display:block}.screen-only{display:none!important}.print-only table{margin-bottom:6px}.print-only th{white-space:normal}.code-shear-results table{font-size:.8em}.code-shear-results th,.code-shear-results td{padding:2px 4px;white-space:normal}.code-shear-results div,.general-crack-results,.general-crack-results div{overflow:visible!important}.general-crack-table td{white-space:normal}.ur-swatch{print-color-adjust:exact;-webkit-print-color-adjust:exact}fieldset,.result-grid{box-shadow:none}}.section3d{display:flex;flex-direction:column;gap:8px}.canvas3d{width:100%;border-radius:8px;background:#0f172a;overflow:hidden}.canvas3d canvas{display:block}.section3d.v-dragging{cursor:row-resize;-webkit-user-select:none;user-select:none}.resizer-h{height:8px;cursor:row-resize;background:linear-gradient(var(--border-strong),var(--border-strong)) center / 100px 2px no-repeat;border-radius:2px;transition:background-size .12s ease}.resizer-h:hover,.section3d.v-dragging .resizer-h{background-image:linear-gradient(var(--primary),var(--primary));background-size:140px 4px}.series-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.chip{padding:4px 10px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);font-size:12px;cursor:pointer}.chip:hover{border-color:var(--primary)}.chip.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.values-ctl{display:inline-flex;align-items:center;gap:8px;margin-left:auto}.values-count{display:inline-flex;align-items:center;gap:6px}.values-count input[type=range]{width:110px;accent-color:var(--primary)}.values-n{font-size:12px;color:var(--text-2);min-width:2ch;text-align:right}.legend-3d{display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:12px;color:var(--text-2)}.legend-3d i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}.legend-3d .muted{color:var(--muted);margin-left:auto}.legend-3d .ur-ramp{display:inline-block;width:96px;height:10px;border-radius:5px;background:linear-gradient(90deg,#20c53c,#b8c520,#c52020,#dc2626)}.plot-empty,.plot-loading{color:var(--muted);padding:24px;text-align:center}.login-gate{--gate-green: #2e7d43;--gate-green-strong: #256b38;--gate-green-soft: rgba(46, 125, 67, .12);min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 85% -10%,var(--gate-green-soft),transparent 60%),radial-gradient(900px 500px at -10% 110%,var(--gate-green-soft),transparent 55%),var(--bg);padding:2rem 1rem}.gate-card{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--gate-green);border-radius:14px;box-shadow:0 10px 32px #0f172a1a,var(--shadow);padding:2.25rem 2.25rem 2rem;width:100%;max-width:24rem;text-align:center}.gate-icon{width:52px;height:52px;margin:0 auto 1.1rem;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--gate-green);color:#fff}.gate-card h1{margin:0 0 .4rem;font-size:1.45rem;color:var(--text)}.gate-subtitle{color:var(--text-2);margin:0 0 1.4rem;line-height:1.45}.gate-card form{text-align:left}.gate-card label{display:block;font-weight:600;font-size:.85rem;color:var(--text-2);margin-bottom:.9rem}.gate-optional{font-weight:400;color:var(--muted)}.gate-card input{display:block;width:100%;box-sizing:border-box;margin-top:.3rem;padding:.6rem .75rem;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface-2);color:var(--text);font-size:.95rem}.gate-card input:focus{outline:2px solid color-mix(in srgb,var(--gate-green) 55%,transparent);outline-offset:1px}.gate-forgot{text-align:right;margin:-.4rem 0 .9rem}.gate-primary{width:100%;padding:.65rem;border:none;border-radius:9px;background:var(--gate-green);color:#fff;font-size:1rem;font-weight:600;cursor:pointer}.gate-primary:not(:disabled):hover{background:var(--gate-green-strong)}.gate-primary:disabled{opacity:.55;cursor:default}.gate-link{border:none;background:none;padding:0;color:var(--gate-green);font-size:inherit;cursor:pointer;text-decoration:none}.gate-link:hover{text-decoration:underline}.gate-link:disabled{color:var(--muted);cursor:default;text-decoration:none}.gate-link-strong{font-weight:700}.gate-alt{color:var(--text-2);font-size:.9rem;margin:.9rem 0 0}.gate-divider{display:flex;align-items:center;gap:.75rem;color:var(--muted);font-size:.85rem;margin-top:1.4rem}.gate-divider:before,.gate-divider:after{content:"";flex:1;height:1px;background:var(--border)}.gate-benefits{list-style:none;margin:1.4rem 0 0;padding:1.1rem 0 0;border-top:1px solid var(--border);text-align:left}.gate-benefits li{display:flex;align-items:center;gap:.6rem;color:var(--text-2);font-size:.9rem;margin-bottom:.6rem}.gate-check{flex:none;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:5px;background:var(--gate-green-soft);color:var(--gate-green)}.gate-error{color:var(--fail-fg);background:var(--fail-bg);border-radius:8px;padding:.55rem .7rem;font-size:.9rem;text-align:left}.gate-notice{color:var(--ok-fg);background:var(--ok-bg);border-radius:8px;padding:.55rem .7rem;font-size:.9rem;text-align:left}.gate-spinner{width:26px;height:26px;margin:.5rem auto 0;border:3px solid var(--gate-green-soft);border-top-color:var(--gate-green);border-radius:50%;animation:gate-spin .9s linear infinite}@keyframes gate-spin{to{transform:rotate(360deg)}}.logout-corner{position:fixed;right:.75rem;bottom:.75rem;z-index:50;padding:.3rem .7rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.8rem;cursor:pointer;box-shadow:var(--shadow)}.logout-corner:hover{color:var(--text)}.plot-svg{width:100%;height:auto;display:block}.values-size{display:inline-flex;gap:4px}.values-size .chip{min-width:2.2em;justify-content:center}.diagram-tools{display:flex;justify-content:flex-end;margin-bottom:8px}.layer-values text{fill:var(--text-2)}.layer-values circle{fill:var(--text-2)}.axis-zero{stroke:var(--line);stroke-width:1.2}.curve{fill:none;stroke:var(--primary);stroke-width:2;stroke-linejoin:round}.profile-area{fill:color-mix(in srgb,var(--primary) 14%,transparent);stroke:none}.extreme circle{fill:var(--danger)}.extreme text{font-size:10px;fill:var(--text-3);font-weight:600}.diagram-strip{display:flex;flex-direction:column;gap:16px}.diagram-group h4{margin:0 0 8px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);padding-bottom:4px}.diagram-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.mini{margin:0}.mini figcaption{font-size:11px;font-weight:600;color:var(--text-3);text-align:center;margin-bottom:2px}.mini figcaption span{color:var(--muted);font-weight:400}.mini-empty{font-size:11px;color:var(--muted);padding:12px}.on-beam{display:flex;flex-direction:column;gap:6px}.on-beam-tools{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}.tool-label{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.on-beam-tools .tool-group,.section3d-tools .tool-group{border:1px solid var(--border-strong);border-radius:8px;padding:4px 8px;background:var(--surface-2)}.section3d-tools{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.tool-sublabel{font-size:11px;color:var(--muted);margin-left:4px}.on-beam-svg{cursor:crosshair}.on-beam-bar{opacity:.85}.on-beam-stirrup{stroke:var(--line);opacity:.7}.on-beam-support polygon{fill:var(--surface);stroke:var(--text-2);stroke-width:1}.on-beam-support line{stroke:var(--text-2);stroke-width:1}.on-beam-labels text{font-weight:500;paint-order:stroke;stroke:var(--label-halo);stroke-width:2.5px;stroke-linejoin:round}.on-beam-labels .extreme-label{font-weight:700}.section-selector{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 8px}.section-slider{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;flex:1 1 320px;min-width:0}.section-slider input[type=range]{flex:1 1 120px;min-width:0;accent-color:var(--primary)}.section-value{font-size:12px;color:var(--text-2);white-space:nowrap}.section-title-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.section-title-row h3{margin:0}.ur-legend .muted{color:var(--muted)}.page-hidden{display:none!important}header .toolbar button.secondary.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.results{container:results / inline-size}.general-crack-actions{display:flex;flex-wrap:wrap;align-items:end;gap:.6rem;margin:.8rem 0}.general-crack-actions label{display:flex;flex-direction:column;gap:.25rem}.general-crack-table td{vertical-align:top}@media screen{@container results (max-width: 760px){.result-grid{overflow-x:auto}.chart-svg,.schematic-svg{min-width:720px}.resizable.section-panel .section-svg,.resizable.section-panel .profile-svg{flex-shrink:0}.diagram-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}}@media(max-width:420px){.derived,.derived.three{grid-template-columns:minmax(0,1fr)}}
