:root{font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif;color:#243532;background:#f5f6f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #d89065;outline-offset:3px}.app-shell{max-width:1720px;min-height:100dvh;margin:auto;display:flex;flex-direction:column}.topbar{height:82px;display:flex;align-items:center;gap:24px;padding:0 38px;border-bottom:1px solid #e1e6e0;background:#fff}.brand{display:flex;align-items:center;gap:13px;min-width:225px}.brand-mark{width:33px;height:33px;border:2px solid #3b716d;border-radius:7px;transform:rotate(-8deg);display:grid;place-items:center}.brand-mark span{width:17px;height:17px;border:2px solid #d98454;transform:rotate(30deg)}.brand-text{font-size:17px;font-weight:750;letter-spacing:.03em;line-height:1.1}.brand-text span{display:block;margin-top:5px;font-size:9px;letter-spacing:.2em;color:#87938e;font-weight:700}.topbar-note{flex:1;color:#8a9690;font-size:13px}.topbar-tag{border:1px solid #dfe7e1;border-radius:999px;padding:9px 14px;color:#60756d;font-size:12px}.workspace{display:grid;grid-template-columns:240px minmax(440px,1fr) 320px;min-height:555px;flex:1;background:#fff}.solid-sidebar,.result-panel{padding:30px 24px;background:#fcfdfa}.solid-sidebar{border-right:1px solid #e6eae4}.result-panel{border-left:1px solid #e6eae4}.eyebrow{display:block;font-size:10px;letter-spacing:.16em;font-weight:800;color:#b87853}.panel-heading h2,.controls-title h2{font-size:20px;letter-spacing:-.025em;margin:11px 0 7px}.panel-heading p,.controls-title p{font-size:12px;line-height:1.6;color:#8a9690;margin:0}.solid-list{display:grid;gap:8px;margin-top:29px}.solid-button{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid transparent;background:transparent;border-radius:10px;padding:11px 12px;color:#41514d;transition:background .18s,border-color .18s,transform .18s}.solid-button:hover{background:#f0f5f1;transform:translate(2px)}.solid-button.active{background:#e8f2ed;border-color:#c9ded2;color:#22584e}.solid-button>span:nth-child(2){font-size:13px;font-weight:700;flex:1}.solid-button small{display:block;margin-top:3px;font-size:10px;font-weight:400;color:#93a29a}.solid-arrow{opacity:0;font-size:15px}.solid-button.active .solid-arrow{opacity:1}.solid-icon{width:31px;height:31px;display:block;flex:none;border:2px solid #9bb9ad;transform:rotate(-12deg);border-radius:3px}.icon-pyramid{clip-path:polygon(50% 0,100% 100%,0 100%);background:#a4c5b7;border:0;border-radius:0}.icon-prism{clip-path:polygon(20% 0,80% 0,100% 50%,80% 100%,20% 100%,0 50%);background:#a4c5b7;border:0;border-radius:0}.icon-cylinder{border-radius:50%/22%;background:linear-gradient(90deg,#bad4ca,#e3f0e8,#9abcb0)}.icon-cone{clip-path:polygon(50% 0,100% 93%,80% 100%,20% 100%,0 93%);background:#a4c5b7;border:0;border-radius:0}.icon-sphere{border-radius:50%;background:radial-gradient(circle at 30% 27%,#e3f1e8,#91b9ac 75%);border:0}.sidebar-tip{display:flex;gap:10px;margin-top:36px;padding:14px;background:#f4f7f3;border-radius:10px;color:#829189;font-size:11px;line-height:1.55}.tip-icon{font-size:19px;color:#6a9683;line-height:1}.scene-panel{display:flex;flex-direction:column;position:relative;min-width:0;background:#f9faf8}.view-header{display:flex;justify-content:space-between;align-items:center;padding:28px 31px 0;z-index:1}.view-header h1{font-size:23px;margin:9px 0 0;letter-spacing:-.025em}.view-header h1 span{color:#d68c63;font-weight:400}.live-indicator{color:#759688;background:#edf5ef;border:1px solid #dceae1;border-radius:999px;font-size:11px;padding:7px 10px;white-space:nowrap}.live-indicator i,.state-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#5caf79;margin-right:5px}.scene-canvas{position:absolute;right:0;left:0;top:73px;bottom:42px;touch-action:none}.scene-canvas canvas{display:block;width:100%;height:100%}.view-footer{margin-top:auto;display:flex;justify-content:center;gap:21px;padding:12px 12px 18px;z-index:1;font-size:11px;color:#728179}.view-footer span{display:flex;align-items:center;gap:6px}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%}.solid-dot{background:#8fb8b0}.plane-dot{background:#edc6af}.section-dot{background:#e17e4a}.result-panel{display:flex;flex-direction:column}.section-view{height:290px;margin-top:22px;border:1px solid #e5ebe5;border-radius:10px;overflow:hidden;background:#fcfdfb}.section-svg{display:block;width:100%;height:100%}.empty-section{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;color:#98a69d;font-size:12px;padding:20px}.empty-section strong{font-size:14px;color:#61776b}.empty-symbol{font-size:43px;font-weight:200;color:#b9c9bf}.section-state{display:flex;align-items:center;color:#597467;font-size:12px;margin:19px 2px}.state-dot.inactive{background:#c7cfca}.metrics{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #e8ede7;padding-top:20px;gap:8px}.metrics>div{display:flex;flex-direction:column;gap:8px}.metrics span{font-size:11px;color:#8b9990}.metrics strong{font-size:25px;font-weight:650;letter-spacing:-.04em;color:#344942}.metrics small{font-size:10px;letter-spacing:0;font-weight:400;color:#9baa9e}.precision-note{font-size:10px;color:#9ca99f;line-height:1.5;margin-top:auto}.controls-panel{display:grid;grid-template-columns:210px minmax(450px,1fr) 175px;gap:28px;align-items:center;background:#fff;border-top:1px solid #e1e7e0;padding:24px 38px 29px}.controls-title h2{margin:9px 0 5px;font-size:18px}.sliders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.range-control{display:block;min-width:0}.range-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;gap:8px;font-size:12px;color:#64766c}.range-heading output{font-size:13px;font-variant-numeric:tabular-nums;color:#314b40;font-weight:700}.range-control input{width:100%;height:5px;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:99px;background:linear-gradient(to right,#5a9680 var(--progress),#e3ebe4 var(--progress))}.range-control input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid #4b8b75;box-shadow:0 1px 5px #80968a4d}.range-control input::-moz-range-thumb{width:11px;height:11px;border-radius:50%;background:#fff;border:3px solid #4b8b75}.range-ends{display:flex;justify-content:space-between;margin-top:9px;font-size:10px;color:#a9b4ac}.control-actions{border-left:1px solid #e8ede8;padding-left:25px;display:grid;gap:12px}.switch-row{display:flex;align-items:center;gap:8px;font-size:11px;color:#65776d;cursor:pointer}.switch-row input{position:absolute;opacity:0}.switch-track{width:27px;height:15px;background:#d9e2da;border-radius:99px;position:relative;transition:background .2s}.switch-track:after{content:"";position:absolute;top:2px;left:2px;width:11px;height:11px;background:#fff;border-radius:50%;transition:transform .2s}.switch-row input:checked+.switch-track{background:#5a9680}.switch-row input:checked+.switch-track:after{transform:translate(12px)}.switch-row input:focus-visible+.switch-track{outline:3px solid #d89065;outline-offset:3px}.reset-button{justify-self:start;margin-top:4px;border:0;background:none;padding:0;color:#b96942;font-size:11px;font-weight:700}.reset-button:hover{text-decoration:underline}.app-footer{display:flex;justify-content:space-between;padding:12px 38px 17px;color:#a1aea4;font-size:10px;background:#fff;border-top:1px solid #f1f3ef}@media (max-width:1150px){.workspace{grid-template-columns:190px minmax(370px,1fr) 265px}.solid-sidebar,.result-panel{padding:25px 17px}.controls-panel{grid-template-columns:170px 1fr;gap:20px}.control-actions{grid-column:1/-1;display:flex;align-items:center;gap:22px;border-left:0;border-top:1px solid #e8ede8;padding:15px 0 0}.reset-button{margin:0 0 0 auto}}@media (max-width:850px){.topbar{height:68px;padding:0 20px}.topbar-note{display:none}.topbar-tag{margin-left:auto}.workspace{grid-template-columns:175px minmax(0,1fr)}.solid-sidebar{grid-row:1/3}.scene-panel{min-height:470px}.result-panel{grid-column:2;border-left:0;border-top:1px solid #e6eae4;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.result-panel .panel-heading{grid-column:1/-1}.section-view{height:240px;margin-top:5px}.section-state{align-self:end;margin-bottom:0}.metrics{align-self:start}.precision-note{grid-column:1/-1}.controls-panel{grid-template-columns:1fr;padding:22px}.sliders{gap:18px}.control-actions{grid-column:1}}@media (max-width:600px){.topbar-tag{display:none}.workspace{display:flex;flex-direction:column}.solid-sidebar{border-right:0;border-bottom:1px solid #e6eae4;padding:19px}.solid-sidebar .panel-heading p,.sidebar-tip{display:none}.solid-sidebar .panel-heading h2{font-size:16px;margin:6px 0}.solid-list{display:flex;overflow:auto;margin-top:14px;gap:6px;padding-bottom:3px}.solid-button{width:auto;flex:none;padding:8px 10px}.solid-button small,.solid-arrow{display:none!important}.solid-icon{width:22px;height:22px}.scene-panel{min-height:425px}.view-header{padding:20px 20px 0}.view-header h1{font-size:19px}.live-indicator{font-size:10px}.scene-canvas{top:60px}.result-panel{display:block;padding:20px}.section-view{height:280px}.metrics{padding-bottom:8px}.controls-panel{display:block;padding:20px}.sliders{display:grid;grid-template-columns:1fr;gap:17px;margin-top:23px}.range-heading{margin-bottom:12px}.control-actions{display:flex;flex-wrap:wrap;margin-top:21px}.app-footer{padding:12px 20px}.app-footer span:last-child{display:none}}:root{--section-accent:#b96942}.edit-toolbar{position:absolute;z-index:5;top:91px;left:27px;display:flex;gap:3px;padding:4px;border:1px solid #e0e8e0;border-radius:10px;background:#fffe;box-shadow:0 4px 18px #526a5b14}.edit-toolbar button{border:0;border-radius:7px;background:transparent;padding:8px 11px;color:#6e8075;font-size:11px;font-weight:650;white-space:nowrap}.edit-toolbar button:hover{background:#f3f6f2;color:#3e6e5d}.edit-toolbar button.selected{background:#e4f1e9;color:#245e49}.edit-hint{position:absolute;z-index:4;left:50%;bottom:50px;transform:translate(-50%);white-space:nowrap;padding:8px 12px;border:1px solid #e1e9df;border-radius:99px;background:#fffe;color:#6a7e70;font-size:10px;box-shadow:0 3px 14px #54705a12}.number-wrap{display:inline-flex;align-items:center;gap:2px;border:1px solid #dce6dc;border-radius:6px;background:#fbfdfb;padding:2px 5px;color:#516c5e}.number-wrap:focus-within{border-color:#67a282;box-shadow:0 0 0 2px #dceee2}.number-wrap input{width:53px;min-width:0;border:0;background:transparent;text-align:right;color:#314b40;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;outline:none;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.number-wrap input::-webkit-inner-spin-button,.number-wrap input::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.number-wrap>span{font-size:10px}@media (max-width:600px){.edit-toolbar{top:68px;left:17px}.edit-toolbar button{padding:7px 8px;font-size:10px}.edit-hint{bottom:51px;max-width:95%;overflow:hidden;text-overflow:ellipsis}}.edit-toolbar button:disabled{opacity:.42;cursor:not-allowed;background:transparent;color:#819087}.point-controls{position:absolute;z-index:5;top:143px;left:27px;display:flex;align-items:center;gap:6px;padding:6px;border:1px solid #eadfd5;border-radius:10px;background:#fffdfbee;box-shadow:0 4px 18px #6e594012}.point-controls button{display:flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:7px;background:transparent;padding:6px 8px;color:#7a8278;white-space:nowrap;font-size:10px}.point-controls button.active{border-color:#edc5a9;background:#fff0e4;color:#a7502d}.point-controls button:hover{background:#f9efe7}.point-controls strong{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#c1693e;color:#fff;font-size:10px}.point-controls .clear-points{color:#aa6748;font-weight:700}.range-control:has(input:disabled){opacity:.45}.number-wrap input:disabled{cursor:not-allowed}@media (max-width:600px){.point-controls{top:109px;left:17px;gap:2px;padding:4px}.point-controls button{gap:3px;padding:5px;font-size:9px}.point-controls strong{width:15px;height:15px}}.legend-edge{display:inline-block;width:13px;height:0;border-top:2px dashed #59786e}@media (max-width:600px){.view-footer{gap:12px;font-size:10px}}
