*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;overflow:hidden;background:linear-gradient(135deg,#3d3d5c,#4a4a7a,#5a5a8a);color:#fff}canvas{display:block}.direction-grid{display:grid;grid-template-columns:repeat(2,55px);grid-template-rows:repeat(3,55px);gap:8px}.dir-btn{width:55px;height:55px;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;color:#fff}.dir-btn svg{width:28px;height:28px;stroke-width:2.5}#ui{position:absolute;top:20px;left:20px;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:15px;border-radius:8px;max-width:280px;max-height:calc(100vh - 120px);overflow-y:auto;z-index:1000;border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #0000004d}#ui::-webkit-scrollbar{width:6px}#ui::-webkit-scrollbar-track{background:#ffffff1a;border-radius:3px}#ui::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}#ui::-webkit-scrollbar-thumb:hover{background:#ffffff80}.hide-all-btn{background:#fff3;color:#fff;border:none;padding:10px 15px;border-radius:6px;cursor:pointer;font-size:13px;width:100%;transition:all .3s;font-weight:600;margin-bottom:15px}.hide-all-btn:hover{background:#ffffff4d}.mesh-section{margin-bottom:15px}.section-header{font-size:12px;font-weight:600;color:#ffffffb3;margin-bottom:10px;display:flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.section-header:before{content:"▼";margin-right:5px;font-size:10px;transition:transform .3s}.section-header.collapsed:before{transform:rotate(-90deg)}.mesh-list{display:flex;flex-direction:column;gap:8px}.mesh-list.collapsed{display:none}.mesh-item{background:#ffffff1a;padding:10px;border-radius:6px;display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.15);transition:all .3s}.mesh-item:before{content:"";width:4px;height:100%;position:absolute;left:0;top:0;border-radius:6px 0 0 6px}.mesh-item{position:relative;padding-left:14px}.mesh-checkbox{width:20px;height:20px;cursor:pointer;accent-color:#4a90e2}.mesh-name{flex:1;font-size:13px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-color-icon{width:18px;height:18px;border-radius:3px;cursor:pointer;transition:transform .2s}.mesh-color-icon:hover{transform:scale(1.2)}.mesh-opacity{display:none;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1)}.mesh-item.selected .mesh-opacity{display:block}.right-controls{position:fixed;right:20px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:20px;z-index:1000}.circle-btn{width:70px;height:70px;border-radius:50%;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;color:#fff;font-size:11px;font-weight:600;text-align:center}.circle-btn:hover{background:#ffffff40;border-color:#ffffff80;transform:scale(1.05)}.circle-btn svg{width:28px;height:28px;margin-bottom:4px}.circle-btn.close{background:#dc35454d;border-color:#dc354580}.circle-btn.close:hover{background:#dc354580}.circle-btn.add{background:#28a7454d;border-color:#28a74580}.circle-btn.add:hover{background:#28a74580}.view-controls{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;align-items:center;gap:10px;z-index:1000}.view-label{font-size:12px;font-weight:600;color:#fffc;margin-bottom:5px}.direction-grid{display:grid;grid-template-columns:repeat(2,80px);grid-template-rows:repeat(3,60px);gap:8px}.dir-btn{width:80px;height:60px;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;color:#fff;font-size:11px;font-weight:600;gap:4px}.dir-btn svg{width:24px;height:24px;stroke-width:2.5}.dir-btn span{font-size:10px;text-transform:uppercase;letter-spacing:.5px}.dir-btn:hover{background:#ffffff40;border-color:#ffffff80;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.dir-btn:active{transform:translateY(0)}input[type=range]{width:100%;height:4px;background:#fff3;border-radius:2px;outline:none;-webkit-appearance:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:#4a90e2;border-radius:50%;cursor:pointer;transition:all .3s;border:2px solid white}input[type=range]::-webkit-slider-thumb:hover{background:#357abd;transform:scale(1.2)}input[type=range]::-moz-range-thumb{width:14px;height:14px;background:#4a90e2;border-radius:50%;cursor:pointer;border:2px solid white;transition:all .3s}input[type=range]::-moz-range-thumb:hover{background:#357abd;transform:scale(1.2)}.tool-section{background:#ffffff1a;padding:12px;border-radius:6px;margin-bottom:12px;border:1px solid rgba(255,255,255,.15)}.tool-section h3{font-size:13px;color:#fff;margin-bottom:10px;font-weight:600}.toggle-control{display:flex;align-items:center;gap:8px;margin-bottom:10px}.toggle-control input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#4a90e2}.toggle-control label{font-size:12px;color:#ffffffe6;cursor:pointer;-webkit-user-select:none;user-select:none}button{background:#4a90e24d;color:#fff;border:1px solid rgba(74,144,226,.5);padding:10px 15px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;width:100%;transition:all .3s}button:hover{background:#4a90e280;border-color:#4a90e2b3}button:disabled{opacity:.4;cursor:not-allowed}.small-btn{padding:8px 12px;font-size:12px}.danger-btn{background:#dc35454d;border-color:#dc354580}.danger-btn:hover{background:#dc354580;border-color:#dc3545b3}#stats{background:#ffffff1a;padding:12px;border-radius:6px;font-size:12px;line-height:1.6;margin-bottom:12px;border-left:3px solid #4a90e2}.pip-viewport{position:fixed;bottom:20px;left:20px;width:350px;height:350px;background:#000000b3;border:2px solid rgba(74,144,226,.5);border-radius:8px;overflow:hidden;box-shadow:0 8px 32px #00000080;z-index:1000}.pip-viewport canvas{display:block;width:100%;height:100%}.pip-label{position:absolute;top:10px;left:10px;background:#4a90e24d;color:#fff;padding:5px 10px;border-radius:4px;font-size:11px;font-weight:600;pointer-events:none;border:1px solid rgba(74,144,226,.5)}.measurement-label{position:absolute;background:#000c;color:#fff;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:700;pointer-events:none;transform:translate(-50%,-100%);margin-top:-10px;white-space:nowrap;border:2px solid #4a90e2;z-index:1000;box-shadow:0 4px 12px #00000080}.status-text{display:none;font-size:11px;color:#4a90e2;margin:8px 0;padding:6px;background:#4a90e21a;border-radius:4px;border:1px solid rgba(74,144,226,.3)}.tool-hint{font-size:11px;color:#fff9;margin:8px 0 0;line-height:1.4;font-style:italic}.select-control{margin-top:10px}.select-control label{display:block;font-size:12px;color:#fffc;margin-bottom:6px}.select-control select{width:100%;padding:8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;font-size:12px;cursor:pointer}.select-control select:focus{outline:none;border-color:#4a90e2}.select-control select option{background:#3d3d5c;color:#fff}.slider-control{margin-top:10px}.slider-control label{display:block;font-size:12px;color:#fffc;margin-bottom:6px}input[type=file]{display:none}.file-input-label{display:block;background:#4a90e24d;color:#fff;border:1px solid rgba(74,144,226,.5);padding:10px 15px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;text-align:center;transition:all .3s;margin-bottom:10px}.file-input-label:hover{background:#4a90e280;border-color:#4a90e2b3}.instructions{font-size:11px;color:#fff9;line-height:1.6;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.instructions strong{color:#fffc;display:block;margin-bottom:5px}.mesh-item{background:#ffffff1a;padding:10px;border-radius:6px;display:flex;flex-direction:column;gap:8px;border:1px solid rgba(255,255,255,.15);border-left:4px solid #4a90e2;transition:all .3s;position:relative}.mesh-item:hover{background:#ffffff26}.mesh-checkbox{width:20px;height:20px;min-width:20px;cursor:pointer;accent-color:#4a90e2}.mesh-name{flex:1;font-size:13px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.mesh-remove-btn{width:20px;height:20px;min-width:20px;padding:0;border-radius:50%;background:#dc35454d;border:1px solid rgba(220,53,69,.5);color:#fff;font-size:14px;line-height:1;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center}.mesh-remove-btn:hover{background:#dc354599;transform:scale(1.1)}.mesh-opacity{display:block;width:100%;margin-top:4px}.mesh-opacity label{font-size:11px;color:#ffffffb3;display:block;margin-bottom:5px}.settings-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#1e1e32fa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:2px solid rgba(255,255,255,.2);border-radius:12px;padding:24px;min-width:320px;max-width:400px;z-index:2000;box-shadow:0 10px 40px #00000080}.settings-overlay{position:fixed;inset:0;background:#00000080;z-index:1999}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.2)}.settings-header h2{margin:0;font-size:18px;color:#fff;font-weight:600}.settings-close{background:none;border:none;color:#ffffffb3;font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .3s}.settings-close:hover{background:#ffffff1a;color:#fff}.settings-section{margin-bottom:20px}.settings-section:last-child{margin-bottom:0}.settings-section h3{font-size:11px;color:#ffffff80;text-transform:uppercase;letter-spacing:1px;margin:0 0 12px;font-weight:600}.settings-option{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05)}.settings-option:last-child{border-bottom:none}.settings-option label{font-size:13px;color:#ffffffe6;cursor:pointer;-webkit-user-select:none;user-select:none}.settings-option input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#4a90e2}.settings-option select{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;padding:6px 12px;font-size:13px;cursor:pointer;min-width:140px}.settings-option select:focus{outline:none;border-color:#4a90e2;background:#ffffff26}.settings-option select option{background:#2a2a4a;color:#fff}.cross-section-2d-window{position:fixed;bottom:20px;left:320px;width:400px;height:400px;background:#fafafafa;border:2px solid #ccc;border-radius:8px;box-shadow:0 4px 12px #0000004d;z-index:100;display:flex;flex-direction:column}.section-window-header{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;background:#e8e8e8;border-bottom:2px solid #ccc;border-radius:6px 6px 0 0}.section-window-header span{font-weight:600;font-size:14px;color:#333}.close-window-btn{background:none;border:none;font-size:24px;color:#666;cursor:pointer}.close-window-btn:hover{color:#f44}.section-window-canvas{flex:1;background:#fafafa;border-radius:0 0 6px 6px;overflow:hidden}
