.hwc-potree-container{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}.hwc-potree-cesium{position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:hidden}.hwc-potree-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:auto;overflow:hidden}.hwc-potree-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--hdr-fg, #ffffff);background:var(--hdr-bg, rgba(41, 44, 48, .95));padding:2rem 3rem;border-radius:.5rem;box-shadow:0 4px 12px #0000004d}.hwc-potree-loading .spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--hwc-red, #EE2F27);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hwc-potree-loading p{margin:0;font-size:.875rem;opacity:.9}.hwc-potree-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;text-align:center;color:var(--hdr-fg, #ffffff);background:var(--hdr-bg, rgba(41, 44, 48, .95));padding:2rem 3rem;border-radius:.5rem;box-shadow:0 4px 12px #0000004d}.hwc-potree-error p{margin:0 0 .5rem}.hwc-potree-error .error-detail{font-size:.875rem;opacity:.7;color:#fca5a5}.hwc-potree-controls{position:absolute;bottom:1rem;right:1rem;z-index:1001;display:flex;flex-direction:row;gap:.5rem;background:var(--hdr-bg, rgba(41, 44, 48, .95));border-radius:.5rem;padding:.5rem;box-shadow:0 2px 8px #0000004d;backdrop-filter:saturate(120%) blur(8px);border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));pointer-events:auto}.hwc-potree-control-btn{width:2.75rem;height:2.75rem;min-width:44px;min-height:44px;border-radius:.375rem;border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));background:#ffffff1a;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;touch-action:manipulation;color:var(--hdr-fg, #ffffff)}.hwc-potree-control-btn:hover{background:#ffffff26;border-color:var(--accent, var(--hwc-red, #EE2F27))}.hwc-potree-control-btn:active{transform:scale(.95)}.hwc-potree-control-btn svg{width:18px;height:18px}.hwc-potree-attribution{position:absolute;z-index:1000;bottom:0;left:50%;display:flex;align-items:center;gap:.5rem;padding:4px 12px;background-color:#fffc;backdrop-filter:blur(4px);border-top-left-radius:4px;border-top-right-radius:4px;color:#333;font-size:10px;transform:translate(-50%);white-space:nowrap;pointer-events:auto}.hwc-potree-attribution .separator{opacity:.5}.hwc-panel{position:fixed;top:var(--header-h, 0);bottom:0;width:300px;height:calc(100vh - var(--header-h, 0));background:var(--hdr-bg, rgba(41, 44, 48, .95));border-radius:0;box-shadow:0 2px 8px #0000004d;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;flex-direction:column;z-index:1100;overflow:hidden;transition:transform .3s ease;padding:0}.hwc-panel.left{left:0;border-right:1px solid var(--hdr-border, rgba(255, 255, 255, .1))}.hwc-panel.right{right:0;border-left:1px solid var(--hdr-border, rgba(255, 255, 255, .1))}.hwc-panel-header{padding:1rem 1.25rem;border-bottom:1px solid var(--hdr-border, rgba(255, 255, 255, .1));background:#0000001a;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.hwc-panel-header h3{margin:0;font-size:.875rem;font-weight:600;color:var(--hdr-fg, #ffffff);text-transform:uppercase;letter-spacing:.05em}.hwc-panel-close{background:transparent;border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));color:var(--hdr-fg, #ffffff);cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;transition:all .15s ease;border-radius:.25rem;min-width:36px;min-height:36px}.hwc-panel-close:hover{background:#ffffff1a;border-color:var(--accent, var(--hwc-red, #EE2F27))}.hwc-panel-close:active{transform:scale(.95)}.hwc-panel-close svg{width:16px;height:16px}.hwc-panel-content{overflow-y:auto;flex:1;min-height:0}.hwc-panel-toggle{position:fixed;top:calc(var(--header-h, 0) + 50%);transform:translateY(-50%);background:var(--hdr-bg, rgba(41, 44, 48, .95));border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));padding:1.5rem .5rem;box-shadow:2px 0 8px #0000004d;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--hdr-fg, #ffffff);transition:all .15s ease;z-index:1100}.hwc-panel-toggle.left{left:0;border-left:none;border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.hwc-panel-toggle.left:hover{padding-right:.75rem}.hwc-panel-toggle.right{right:0;border-right:none;border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.hwc-panel-toggle.right:hover{padding-left:.75rem}.hwc-panel-toggle:hover{background:#1a1c20f2;border-color:var(--accent, var(--hwc-red, #EE2F27))}.hwc-panel-toggle:active{transform:translateY(-50%) scale(.98)}.hwc-panel-toggle svg{width:16px;height:16px}.panel-section{border-bottom:1px solid var(--hdr-border, rgba(255, 255, 255, .1))}.panel-section:last-child{border-bottom:none}.panel-section-header{width:100%;padding:.875rem 1.25rem;background:transparent;border:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:background .15s ease;color:var(--hdr-fg, #ffffff)}.panel-section-header:hover{background:#ffffff14}.panel-section-title{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500}.panel-section-icon{width:16px;height:16px;filter:brightness(0) invert(1);opacity:.8}.panel-section-icon-wrapper{display:flex;align-items:center;justify-content:center;width:16px;height:16px;opacity:.8}.panel-section-icon-wrapper svg{width:16px;height:16px}.panel-section-header svg{width:12px;height:12px;opacity:.6}.panel-section-content{padding:1.25rem;background:#0000000d}.panel-slider{width:100%;height:4px;border-radius:2px;background:#ffffff1a;outline:none;-webkit-appearance:none}.panel-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--hwc-red, #EE2F27);cursor:pointer;transition:all .2s ease}.panel-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.panel-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--hwc-red, #EE2F27);cursor:pointer;border:none;transition:all .2s ease}.panel-slider::-moz-range-thumb:hover{transform:scale(1.2)}.panel-select{width:100%;padding:.625rem .75rem;background:#ffffff14;border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));border-radius:.375rem;color:var(--hdr-fg, #ffffff);font-size:.75rem;cursor:pointer;transition:all .15s ease;min-height:44px}.panel-select:hover{background:#ffffff1f;border-color:var(--accent, var(--hwc-red, #EE2F27))}.panel-select:focus{outline:none;border-color:var(--accent, var(--hwc-red, #EE2F27));background:#ffffff26}.panel-checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.75rem;color:var(--hdr-fg, #ffffff)}.panel-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--hwc-red, #EE2F27)}.panel-button{width:100%;padding:.75rem;background:#ffffff14;border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));border-radius:.375rem;color:var(--hdr-fg, #ffffff);font-size:.75rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .15s ease;min-height:44px}.panel-button:hover{background:#ffffff1f;border-color:var(--accent, var(--hwc-red, #EE2F27))}.panel-button:active{transform:scale(.98)}.panel-button svg{width:16px;height:16px}@media(max-width:768px){.hwc-panel{inset:auto 0 0;width:100%;max-height:70vh;border-radius:.75rem .75rem 0 0;border-right:none;border-left:none;border-top:1px solid var(--hdr-border, rgba(255, 255, 255, .1))}.hwc-panel.left,.hwc-panel.right{left:0;right:0;border-right:none;border-left:none}.hwc-panel-toggle{top:auto;bottom:1rem;left:50%;right:auto;transform:translate(-50%);border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));border-radius:.5rem;padding:.75rem 1.5rem}.hwc-panel-toggle.left,.hwc-panel-toggle.right{left:50%;right:auto;border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));border-radius:.5rem}.hwc-panel-toggle:hover{transform:translate(-50%) scale(1.02);padding:.75rem 1.5rem}.hwc-panel-toggle.left:hover,.hwc-panel-toggle.right:hover{padding:.75rem 1.5rem}.hwc-panel-toggle:active{transform:translate(-50%) scale(.98)}.hwc-panel-toggle svg{transform:rotate(90deg)}.hwc-panel-header h3{font-size:.8125rem}.panel-section-content{padding:1rem}}.potree-icon{width:20px;height:20px;filter:brightness(0) invert(1);opacity:.9}.tool-btn.active .potree-icon{filter:brightness(0) saturate(100%) invert(28%) sepia(94%) saturate(2843%) hue-rotate(349deg) brightness(95%) contrast(93%)}.tools-section{display:flex;flex-direction:column;gap:1rem}.tool-loading{padding:2rem 1rem;text-align:center;color:#fff9;font-size:.875rem}.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.tool-btn{aspect-ratio:1;padding:.625rem;background:#ffffff14;border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));border-radius:.5rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;color:var(--hdr-fg, #ffffff);font-size:.625rem;transition:all .15s ease;text-align:center;width:100%;height:auto}.tool-btn:hover:not(:disabled){background:#ffffff1f;border-color:var(--accent, var(--hwc-red, #EE2F27))}.tool-btn:active:not(:disabled){transform:scale(.95)}.tool-btn.active{background:#ee2f2733;border-color:var(--hwc-red, #EE2F27);color:var(--hwc-red, #EE2F27)}.tool-btn:disabled{opacity:.4;cursor:not-allowed}.tool-btn svg{width:16px;height:16px;flex-shrink:0}.tool-btn span{font-size:.625rem;line-height:1.1;white-space:nowrap}.tool-instructions{padding:.75rem;background:#ee2f271a;border:1px solid rgba(238,47,39,.3);border-radius:.375rem;font-size:.75rem;color:var(--hdr-fg, #ffffff);line-height:1.4}.tool-instructions p{margin:0}.measurements-list{display:flex;flex-direction:column;gap:.5rem}.measurements-header{font-size:.75rem;font-weight:600;color:#fff9;text-transform:uppercase;letter-spacing:.05em;padding-bottom:.5rem;border-bottom:1px solid var(--hdr-border, rgba(255, 255, 255, .1))}.measurement-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#ffffff14;border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));border-radius:.375rem;transition:all .15s ease}.measurement-item:hover{background:#ffffff1f;border-color:var(--accent, var(--hwc-red, #EE2F27))}.measurement-info{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.measurement-type{font-size:.75rem;font-weight:500;color:var(--hdr-fg, #ffffff)}.measurement-value{font-size:.7rem;color:#fff9}.measurement-remove{background:transparent;border:none;color:#fff6;cursor:pointer;padding:.25rem;border-radius:.25rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.measurement-remove:hover{background:#ef444433;color:#fca5a5}.measurement-remove svg,.measurement-remove img{width:14px;height:14px}.appearance-section{display:flex;flex-direction:column;gap:1rem}.control-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.control-group:last-child{margin-bottom:0}.control-group label{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;font-weight:500;color:var(--hdr-fg, #ffffff)}.control-value{font-size:.7rem;color:#fff9;font-weight:400}.slider{width:100%;height:4px;border-radius:2px;background:#ffffff1a;outline:none;-webkit-appearance:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--hwc-red, #EE2F27);cursor:pointer;transition:all .2s ease}.slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--hwc-red, #EE2F27);cursor:pointer;border:none;transition:all .2s ease}.slider::-moz-range-thumb:hover{transform:scale(1.2)}.custom-select-container{position:relative;width:100%}.custom-select-label{display:block;margin-bottom:.5rem;font-size:.75rem;font-weight:500;color:#ffffffe6}.custom-select-trigger{width:100%;padding:.625rem .75rem;background:#ffffff14;border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));border-radius:.375rem;color:var(--hdr-fg, #ffffff);font-size:.875rem;cursor:pointer;transition:all .15s ease;min-height:44px;display:flex;align-items:center;justify-content:space-between;text-align:left}.custom-select-trigger:hover{background:#ffffff1f;border-color:var(--accent, var(--hwc-red, #EE2F27))}.custom-select-trigger.open{border-color:var(--accent, var(--hwc-red, #EE2F27));background:#ffffff26;box-shadow:0 0 0 3px #ee2f271a}.custom-select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-arrow{width:14px;height:14px;margin-left:.5rem;transition:transform .2s ease;flex-shrink:0}.custom-select-arrow.rotate{transform:rotate(180deg)}.custom-select-dropdown{position:absolute;top:calc(100% + .25rem);left:0;right:0;background:#1a1d21;border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));border-radius:.375rem;box-shadow:0 4px 12px #0000004d;max-height:240px;overflow-y:auto;z-index:1000;animation:slideDown .15s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.custom-select-option{width:100%;padding:.75rem;background:transparent;border:none;color:#fff;font-size:.875rem;cursor:pointer;transition:all .1s ease;text-align:left;display:flex;align-items:center;justify-content:space-between}.custom-select-option:hover,.custom-select-option.highlighted{background:#ffffff14}.custom-select-option.selected{background:var(--accent, var(--hwc-red, #EE2F27));font-weight:500}.custom-select-option.selected:hover,.custom-select-option.selected.highlighted{background:var(--accent, var(--hwc-red, #EE2F27));filter:brightness(1.1)}.custom-select-checkmark{margin-left:.5rem;font-size:1rem}.custom-select-dropdown::-webkit-scrollbar{width:6px}.custom-select-dropdown::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.custom-select-dropdown::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.custom-select-dropdown::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.select{display:none}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.75rem;color:var(--hdr-fg, #ffffff)}.checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--hwc-red, #EE2F27)}.control-btn{width:100%;padding:.75rem;background:#ffffff14;border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));border-radius:.375rem;color:var(--hdr-fg, #ffffff);font-size:.75rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .15s ease;min-height:44px}.control-btn:hover{background:#ffffff1f;border-color:var(--accent, var(--hwc-red, #EE2F27))}.control-btn:active{transform:scale(.98)}.control-btn svg{width:16px;height:16px}.scene-section,.scene-tree{display:flex;flex-direction:column;gap:.5rem}.scene-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#ffffff14;border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));border-radius:.375rem;transition:all .15s ease}.scene-item:hover{background:#ffffff1f;border-color:var(--accent, var(--hwc-red, #EE2F27))}.scene-item-name{font-size:.75rem;color:var(--hdr-fg, #ffffff);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-item-toggle{background:transparent;border:1px solid var(--hdr-border, rgba(255, 255, 255, .1));color:#ffffffb3;cursor:pointer;padding:.5rem;border-radius:.25rem;display:flex;align-items:center;justify-content:center;transition:all .15s ease;min-width:36px;min-height:36px}.scene-item-toggle:hover{background:#ffffff1a;border-color:var(--accent, var(--hwc-red, #EE2F27));color:var(--hdr-fg, #ffffff)}.scene-item-toggle:active{transform:scale(.95)}.scene-item-toggle svg{width:16px;height:16px}.empty-message{font-size:.75rem;color:#fff6;text-align:center;padding:1rem;margin:0}.export-section{display:flex;flex-direction:column;gap:.5rem}.classification-toggle-all{padding:.5rem .75rem;font-size:.7rem;min-height:36px;margin-bottom:.5rem}.classification-list{display:flex;flex-direction:column;gap:.5rem;max-height:300px;overflow-y:auto;padding:.5rem;background:#0003;border-radius:4px}.classification-item{display:flex;align-items:center;gap:.5rem;padding:.25rem;border-radius:4px;transition:background .15s ease}.classification-item:hover{background:#ffffff0d}.classification-color{width:16px;height:16px;border-radius:3px;border:1px solid rgba(255,255,255,.3);flex-shrink:0}.classification-name{font-size:.75rem;flex:1}.range-controls{display:flex;flex-direction:column;gap:.75rem;padding:.5rem;background:#0003;border-radius:4px}.range-input{display:flex;flex-direction:column;gap:.25rem}.range-input label{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;margin-bottom:0}@media(max-width:768px){.tool-grid{grid-template-columns:repeat(3,1fr);gap:.625rem}.classification-list{max-height:200px}}.mode-toggle{position:absolute;bottom:10.5rem;right:1rem;z-index:1000;display:flex;gap:.5rem;background:var(--hdr-bg, rgba(41, 44, 48, .95));border-radius:2rem;padding:.5rem;box-shadow:0 2px 8px #0000004d;backdrop-filter:blur(8px);border:1px solid var(--hdr-border, rgba(255, 255, 255, .1))}.mode-btn{width:2.75rem;height:2.75rem;border-radius:50%;border:2px solid transparent;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--hdr-fg, #ffffff);font-size:.75rem;font-weight:600;transition:all .2s ease}.mode-btn:hover{border-color:#ffffff4d}.mode-btn.active{border-color:var(--accent, #EE2F27);background:#ee2f2733}.viewer-layer-toggles{position:absolute;bottom:5.75rem;right:1rem;z-index:1000;display:flex;gap:.5rem;background:var(--hdr-bg, rgba(41, 44, 48, .95));border-radius:2rem;padding:.5rem;box-shadow:0 2px 8px #0000004d;backdrop-filter:blur(8px);border:1px solid var(--hdr-border, rgba(255, 255, 255, .1))}.viewer-layer-btn{width:2.75rem;height:2.75rem;min-width:44px;min-height:44px;padding:2px;border-radius:50%;border:2px solid transparent;background:transparent;cursor:pointer;position:relative;overflow:hidden;transition:all .2s ease;touch-action:manipulation}.viewer-layer-btn:hover{border-color:#ffffff4d}.viewer-layer-btn:active{transform:scale(.95)}.viewer-layer-btn[aria-checked=true]{border-color:var(--accent, #EE2F27)}.viewer-layer-btn img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}.viewer-layer-btn .active-dot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:.5rem;height:.5rem;background-color:var(--accent, #EE2F27);border-radius:50%;border:2px solid white;box-shadow:0 1px 3px #00000080;opacity:0;transition:opacity .15s ease;pointer-events:none}.viewer-layer-btn[aria-checked=true] .active-dot{opacity:1}@media(max-width:768px){.mode-toggle{bottom:10rem;right:.75rem;padding:.375rem;gap:.375rem}.mode-btn{width:2.25rem;height:2.25rem;font-size:.625rem}.viewer-layer-toggles{bottom:5.5rem;right:.75rem;padding:.375rem;gap:.375rem}.viewer-layer-btn{width:2.25rem;height:2.25rem;min-width:40px;min-height:40px}}.ortho-opacity-control{position:absolute;bottom:1rem;left:1rem;z-index:1000;background:var(--hdr-bg);border-radius:var(--radius-md);padding:.75rem 1rem;box-shadow:0 2px 8px #0000004d;backdrop-filter:blur(8px);border:1px solid var(--hdr-border);min-width:200px}.ortho-opacity-control label{display:flex;align-items:center;gap:.75rem;color:var(--hdr-fg);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer}.ortho-opacity-control input[type=range]{flex:1;height:4px;border-radius:2px;background:#fff3;outline:none;-webkit-appearance:none;appearance:none}.ortho-opacity-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid white;box-shadow:0 1px 3px #0000004d;transition:transform .15s ease}.ortho-opacity-control input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1)}.ortho-opacity-control input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid white;box-shadow:0 1px 3px #0000004d;transition:transform .15s ease}.ortho-opacity-control input[type=range]::-moz-range-thumb:hover{transform:scale(1.1)}.ortho-opacity-control .opacity-value{min-width:3ch;text-align:right;font-variant-numeric:tabular-nums}@media(max-width:768px){.ortho-opacity-control{left:50%;transform:translate(-50%);min-width:auto;width:calc(100% - 2rem);max-width:300px}}
