@charset "UTF-8";
:root{color-scheme:light;--bg:#f4f6f8;--panel:#fff;--paper:#fcfdfd;--text:#243244;--muted:#748092;--border:#e4e9ee;--subtle:#f5f7f9;--accent:#13796f;--accent-hover:#0b635b;--accent-soft:#e9f5f0;--blue:#537caa;--orange:#d58049;--red:#bd5959;--grid:#e9edf1;--axis:#cdd5dd;--shadow:0 2px 8px #22334403;--diagram:#13796f;--load:#c07845;--node:#355b72;--support:#6f8296;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif}
:root[data-theme=dark]{color-scheme:dark;--bg:#111923;--panel:#1a2430;--paper:#16202a;--text:#e1e9f0;--muted:#93a4b5;--border:#2b3947;--subtle:#202e3b;--accent:#70d4be;--accent-hover:#91e2d0;--accent-soft:#203e3b;--blue:#82aee0;--orange:#e5a26d;--red:#f18c8c;--grid:#243341;--axis:#435667;--shadow:none;--diagram:#70d4be;--load:#e5a26d;--node:#a7ccdf;--support:#8298ad}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:13px;line-height:1.6}button,input,select{font:inherit;color:inherit}button,select{cursor:pointer}button,select,input:not([type=checkbox]){border:1px solid var(--border);border-radius:7px;background:var(--panel);min-height:34px;padding:6px 11px;outline:none}button:hover{background:var(--subtle);border-color:var(--axis)}button:focus-visible,select:focus-visible,input:focus-visible,svg:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.4;cursor:default}input[type=number]{min-width:0;width:100%;font-variant-numeric:tabular-nums}input[type=checkbox]{accent-color:var(--accent)}button.primary{background:var(--accent);color:var(--panel);border-color:var(--accent);font-weight:600;padding:9px 18px}button.primary:hover{background:var(--accent-hover)}a{color:var(--accent);text-decoration:none}h2,h3,p{margin:0}h2{font-size:14px;font-weight:650}h3{font-size:12px;font-weight:600}.topbar{height:70px;border-bottom:1px solid var(--border);background:var(--panel);display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:16px}.brand{display:flex;align-items:center;gap:12px;color:var(--text);font-size:21px;font-weight:720;letter-spacing:.3px}.brand-symbol{background:var(--accent);color:var(--panel);border-radius:9px;width:36px;height:36px;display:grid;place-items:center;font-size:32px;font-weight:400;line-height:1}.brand-divider{color:var(--axis);margin:0 15px;font-weight:300}.brand-caption{font-size:13px;font-weight:500;letter-spacing:.5px}.header-actions{display:flex;align-items:center;gap:21px}.local-badge{font-size:11px;color:var(--muted);white-space:nowrap}.local-badge i{display:inline-block;background:var(--accent);width:6px;height:6px;border-radius:50%;margin-right:6px}.quiet{border:0;background:transparent;color:var(--muted)}.theme-label{display:flex;align-items:center;gap:4px}.theme-label>span{font-size:20px}.theme-label select{border:0;background:transparent;min-width:90px;font-size:12px}main{max-width:1660px;margin:0 auto;padding:28px 32px 18px}.project-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.eyebrow{font-size:9px;letter-spacing:1.8px;color:var(--muted);margin-bottom:5px}.project-name{font-size:23px;font-weight:630;letter-spacing:-.5px;padding:0!important;min-height:34px!important;max-width:100%;width:400px;background:transparent!important;border-color:transparent!important;box-shadow:none}.project-meta{display:flex;gap:8px;color:var(--muted);font-size:11px;margin-top:5px}#saved-state{margin-left:8px;font-size:10px;opacity:.8}.meta-dot{color:var(--axis)}.project-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}.project-actions select{font-size:12px}.project-actions #examples{max-width:175px}.project-actions #export{max-width:100px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow)}.workbench{display:grid;grid-template-columns:268px minmax(0,1fr);gap:20px;align-items:start}.inspector{padding:19px 18px;min-height:710px}.panel-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:17px}.tag{font-size:10px;border:1px solid var(--border);border-radius:4px;padding:1px 6px;color:var(--muted)}.tool-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.tool-grid button{font-size:10px;padding:5px 0;min-width:0;background:var(--subtle);border-color:transparent;display:flex;flex-direction:column;align-items:center;gap:2px}.tool-grid button b{font-size:19px;line-height:25px;font-weight:400}.tool-grid .active{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}.grid-settings{font-size:10px;display:flex;justify-content:space-between;gap:4px;align-items:center;padding:13px 0 17px;border-bottom:1px solid var(--border);color:var(--muted)}.grid-settings label{display:flex;align-items:center;gap:3px;white-space:nowrap}.grid-settings input[type=number]{width:47px;padding:1px 3px;min-height:25px}.editor-heading{margin:19px 0 14px;display:flex;align-items:center;justify-content:space-between;gap:5px}.editor-heading select{max-width:138px;min-height:29px;font-size:11px;padding:3px 6px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-grid .full{grid-column:1/-1}.form-grid label,.compact-form label{font-size:10px;color:var(--muted);display:flex;flex-direction:column;gap:4px}.form-grid input,.form-grid select{font-size:12px;padding:6px 8px;width:100%;color:var(--text)}.field-heading{font-size:11px;font-weight:600;margin:19px 0 9px}.check-row{display:flex;gap:11px;font-size:11px;align-items:center}.check-row label{display:flex;gap:3px;align-items:center}.editor-actions{display:flex;gap:7px;margin-top:17px}.editor-actions button{font-size:11px;flex:1}.delete{color:var(--red)}.point-row{padding:9px;background:var(--subtle);border-radius:6px;margin-bottom:7px}.point-row .point-title{display:flex;align-items:center;justify-content:space-between;font-size:10px;margin-bottom:5px}.point-row button{border:0;background:transparent;min-height:20px;padding:0 4px;color:var(--red)}.point-row .form-grid{grid-template-columns:1fr 1fr 1fr;gap:6px}.point-row input{padding:4px;min-height:28px;font-size:10px}.point-row label{font-size:9px}.add-point{width:100%;font-size:11px;border-style:dashed}.helper-text{font-size:10px;color:var(--muted);margin-top:8px;line-height:1.8}.empty-editor{font-size:12px;color:var(--muted);padding:20px 0}.manual-add{border-top:1px solid var(--border);margin-top:22px;padding-top:13px;color:var(--muted);font-size:11px}.manual-add summary{cursor:pointer}.compact-form{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.compact-form button{grid-column:1/-1;font-size:11px}.units-note{border-top:1px solid var(--border);margin-top:18px;padding-top:15px;font-size:10px;color:var(--muted)}.units-note>span{font-weight:600;color:var(--text)}.units-note p{line-height:1.9;margin-top:6px}.analysis-area{min-width:0}.canvas-panel{overflow:hidden}.canvas-heading{height:57px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;gap:8px;border-bottom:1px solid var(--border)}.view-tabs{display:flex;gap:4px;align-items:center;overflow:auto}.view-tabs button{border:0;background:transparent;color:var(--muted);font-size:12px;padding:7px 12px;min-height:30px;white-space:nowrap}.view-tabs button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.canvas-actions{display:flex;align-items:center;gap:3px}.canvas-actions button{border:0;padding:4px 7px;min-height:28px;font-size:13px;color:var(--muted)}.canvas-actions span{height:16px;border-left:1px solid var(--border);margin:0 5px}.canvas-wrap{position:relative;background:var(--paper);height:430px;overflow:hidden}#canvas{width:100%;height:100%;display:block;touch-action:none;user-select:none}.canvas-corner{position:absolute;bottom:15px;left:19px;display:flex;gap:15px;align-items:center;pointer-events:none;font-size:10px;color:var(--muted)}.axis-key{font-weight:600;color:var(--blue)}.diagram-note{position:absolute;top:17px;left:20px;font-size:10px;color:var(--muted);pointer-events:none}.canvas-footer{border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;font-size:10px;color:var(--muted);min-height:38px}.canvas-footer>span:first-child{display:flex;align-items:center;gap:6px;white-space:nowrap}#status-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}#cursor-coord{font-variant-numeric:tabular-nums;white-space:nowrap;min-width:110px;text-align:right}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.metric-grid article{background:var(--panel);border:1px solid var(--border);border-radius:9px;padding:14px 17px}.metric-grid article>span{font-size:11px;display:block;color:var(--muted);margin-bottom:7px}.metric-grid strong{font-size:24px;letter-spacing:-.6px;font-weight:600;font-variant-numeric:tabular-nums}.metric-grid small{color:var(--muted);font-size:10px;margin-left:7px}.metric-grid article:nth-child(3) strong{color:var(--accent)}.results-panel{min-height:200px;overflow:hidden}.results-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 15px;border-bottom:1px solid var(--border)}.balance-label{font-size:10px;color:var(--accent);white-space:nowrap}#issue-count{font-size:9px;background:var(--subtle);padding:1px 5px;border-radius:4px;margin-left:2px}.results-panel table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;font-size:12px}.results-panel th{text-align:right;color:var(--muted);font-size:10px;background:var(--subtle);font-weight:500;padding:9px 18px;white-space:nowrap}.results-panel td{text-align:right;padding:9px 18px;border-top:1px solid var(--border);white-space:nowrap}.results-panel th:first-child,.results-panel td:first-child{text-align:left}.results-panel tbody tr:hover{background:var(--subtle)}#result-content{overflow:auto;max-height:335px}.table-note{font-size:10px;color:var(--muted);padding:10px 18px}.result-empty{font-size:12px;color:var(--muted);text-align:center;padding:36px 20px}.check-item{padding:12px 18px;border-bottom:1px solid var(--border);display:flex;gap:10px;align-items:start}.check-symbol{border-radius:50%;width:19px;height:19px;display:grid;place-items:center;color:var(--orange);background:var(--subtle);flex-shrink:0;font-size:11px}.check-item.error .check-symbol{color:var(--red)}.check-item.success .check-symbol{color:var(--accent)}.check-item p{font-size:12px}.check-item small{display:block;font-size:11px;color:var(--muted);margin-top:2px}.page-footer{display:flex;justify-content:space-between;gap:15px;padding:24px 0 3px;font-size:10px;color:var(--muted)}.page-footer b{font-weight:400;margin:0 14px 0 4px}.page-footer>span:first-child{color:var(--text)}.page-footer>span:first-child>span{color:var(--muted)}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:var(--text);color:var(--panel);border-radius:9px;padding:11px 20px;max-width:90vw;box-shadow:0 5px 28px #0002;display:none;z-index:30;font-size:12px;white-space:pre-line}#toast.show{display:block}dialog{border:1px solid var(--border);border-radius:13px;background:var(--panel);color:var(--text);width:min(720px,94vw);padding:0;max-height:85vh}dialog::backdrop{background:#0e1f3266;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;padding:19px 24px;border-bottom:1px solid var(--border)}.dialog-heading h2{font-size:18px}.dialog-heading button{border:0}.help-content{padding:22px 27px;font-size:12px;color:var(--muted);line-height:1.9}.help-content ol{padding-left:19px;margin-top:0}.help-content li{margin-bottom:10px}.help-content h3{margin:18px 0 7px;color:var(--text);font-size:13px}.help-content p{margin-bottom:10px}.beam-line{stroke:var(--node);stroke-width:3;fill:none;stroke-linecap:round}.beam-line.selected{stroke:var(--accent);stroke-width:4}.member-hit{stroke:transparent;stroke-width:18;fill:none;cursor:pointer}.node-dot{fill:var(--panel);stroke:var(--node);stroke-width:2}.node-dot.selected{stroke:var(--accent);fill:var(--accent-soft)}.node-hit{fill:transparent;cursor:pointer}.support-line{stroke:var(--support);fill:var(--paper);stroke-width:1.6}.load-line{stroke:var(--load);fill:none;stroke-width:1.7}.load-text{fill:var(--load);font-size:12px}.node-text{fill:var(--muted);font-size:12px}.member-text{fill:var(--muted);font-size:11px}.dim-line{stroke:var(--axis);stroke-width:1;fill:none}.dim-text{fill:var(--muted);font-size:11px}.diagram-line{stroke:var(--diagram);stroke-width:2;fill:none}.diagram-fill{fill:var(--diagram);fill-opacity:.1;stroke:none}.diagram-text{fill:var(--diagram);font-size:12px;font-weight:500}.shape-original{stroke:var(--axis);stroke-width:2;stroke-dasharray:5 5;fill:none}.draw-preview{stroke:var(--accent);stroke-width:2;stroke-dasharray:6 4;fill:none}.print-intro{display:none}
@media(min-width:1500px){.canvas-wrap{height:480px}.inspector{min-height:760px}}
@media(max-width:1150px){main{padding:22px 20px}.topbar{padding:0 20px}.project-bar{align-items:flex-start}.project-actions{max-width:410px}.workbench{grid-template-columns:245px minmax(0,1fr);gap:14px}.inspector{padding:17px 14px}.canvas-heading{padding:0 8px}.view-tabs button{padding:7px 8px;font-size:11px}.canvas-actions button{padding:4px}.metric-grid{gap:8px}.metric-grid article{padding:12px}.metric-grid strong{font-size:21px}.canvas-footer #tool-hint{display:none}.balance-label{display:none}}
@media(max-width:820px){.topbar{height:60px}.brand-caption{display:none}.brand-divider{display:none}.header-actions{gap:8px}.local-badge{display:none}.project-bar{display:block}.project-name{font-size:21px}.project-actions{max-width:none;justify-content:flex-start;margin-top:15px}.workbench{grid-template-columns:215px minmax(0,1fr)}.canvas-heading{height:auto;min-height:48px;flex-wrap:wrap;padding:8px}.canvas-actions{margin-left:auto}.canvas-wrap{height:360px}.metric-grid{grid-template-columns:1fr 1fr}.page-footer{flex-direction:column;gap:4px}.results-panel th,.results-panel td{padding:9px 11px}.inspector{min-height:0}.results-heading{padding:8px}.brand{font-size:19px}}
@media(max-width:600px){main{padding:18px 12px}.topbar{padding:0 14px}.header-actions .quiet{font-size:11px;padding:5px}.theme-label select{font-size:11px;min-width:75px;padding:3px}.workbench{display:flex;flex-direction:column;gap:12px}.inspector{width:100%}.analysis-area{width:100%}.inspector .tool-grid{max-width:340px}.panel-title{padding-bottom:10px}.grid-settings{padding:9px 0}.editor-heading{margin:12px 0}.form-grid{grid-template-columns:1fr 1fr 1fr}.form-grid .full{grid-column:1/-1}.units-note{display:none}.manual-add{margin-top:10px;padding-top:9px}.canvas-wrap{height:325px}.project-actions{gap:5px}.project-actions button,.project-actions select{padding:6px 8px;font-size:11px}.project-actions #examples{max-width:143px}.project-actions .primary{padding:8px 10px}.project-meta{font-size:10px;flex-wrap:wrap}#saved-state{margin-left:0}.view-tabs button{padding:6px 9px}.canvas-corner{font-size:9px;left:12px}.canvas-footer{padding:8px 12px}.metric-grid strong{font-size:23px}.results-heading .view-tabs{gap:1px}.results-heading .view-tabs button{font-size:10px;padding:6px 7px}}
@media print{body{background:white;color:black}.topbar,.inspector,.project-actions,.canvas-actions,.canvas-footer,.page-footer,#toast,dialog,.theme-label{display:none!important}main{max-width:none;padding:0}.project-bar{margin-bottom:10px}.project-name{color:black!important}.workbench{display:block}.analysis-area{width:100%}.panel{box-shadow:none;break-inside:avoid}.canvas-wrap{height:300px}.metric-grid{grid-template-columns:repeat(4,1fr)}.results-panel{margin-top:10px}.results-heading{display:none}#result-content{max-height:none;overflow:visible}.print-intro{display:block;margin:15px 0}.project-meta{color:#555}svg{color-scheme:light}.metric-grid strong{font-size:20px}#saved-state{display:none}}
