@import"https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap";:root{--hwc-red: #EE2F27;--hwc-dark-gray: #292C30;--hwc-medium-gray: #6C6864;--hwc-light-gray: #DDD4CC;--hdr-bg: rgba(26, 28, 32, .85);--hdr-fg: #F5F7FA;--hdr-border: rgba(255, 255, 255, .08);--accent: var(--hwc-red);--header-h: 56px;--z-header: 60}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}html,body{margin:0;padding:0;height:100%;width:100%;overflow:hidden;border:none;outline:none;display:flex;flex-direction:column}#root,#root>*{display:flex;flex-direction:column;flex:1;min-height:0}body{color:#0f1115;background:#fff;font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit}img,svg,video,canvas{display:block;max-width:100%;height:auto}.app-header{position:relative;z-index:var(--z-header);background:var(--hdr-bg);color:var(--hdr-fg);border-bottom:1px solid var(--hdr-border);backdrop-filter:saturate(120%) blur(8px);height:var(--header-h);box-sizing:border-box;flex-shrink:0}.hwc-dashboard{width:100%;height:calc(100vh - var(--header-h));overflow:hidden;border:none;outline:none}.map-wrapper{position:relative;width:100%;height:100%;flex:1}.leaflet-container{width:100%;height:100%}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem;color:var(--hwc-medium-gray)}.spinner{width:48px;height:48px;border:4px solid var(--hwc-light-gray);border-top-color:var(--hwc-red);border-radius:50%;animation:spin .8s linear infinite}.spinner-small{width:24px;height:24px;border:3px solid var(--hwc-light-gray);border-top-color:var(--hwc-red);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-more{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:2rem;color:var(--hwc-medium-gray);font-size:.9rem}.error-message{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem;color:var(--hwc-medium-gray);text-align:center;padding:2rem}.error-message p{margin:0;font-size:1rem}.error-message button{padding:.5rem 1.5rem;background:var(--hwc-red);color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500;transition:background .2s}.error-message button:hover{background:#d42820}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--hwc-medium-gray);font-size:1.1rem}.empty-state p{margin:0}.processing-indicator{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:.375rem;font-size:.875rem;font-weight:500;transition:all .2s ease}.processing-indicator-small{padding:.25rem .5rem;font-size:.75rem;gap:.375rem}.processing-indicator-small .processing-icon{width:14px;height:14px}.processing-indicator-medium{padding:.375rem .75rem;font-size:.875rem;gap:.5rem}.processing-indicator-medium .processing-icon{width:18px;height:18px}.processing-indicator-large{padding:.5rem 1rem;font-size:1rem;gap:.625rem}.processing-indicator-large .processing-icon{width:22px;height:22px}.processing-indicator.processing-active{background:#ee2f271a;border:1px solid rgba(238,47,39,.3);color:var(--hdr-fg)}.processing-indicator.processing-failed{background:#dc262626;border:1px solid rgba(220,38,38,.4);color:#fca5a5}.processing-indicator.processing-completed{background:#22c55e26;border:1px solid rgba(34,197,94,.4);color:#86efac}.processing-icon{flex-shrink:0}.processing-spinner{animation:spin 1s linear infinite}.processing-active .processing-icon{color:var(--accent)}.processing-failed .processing-icon{color:#fca5a5}.processing-completed .processing-icon{color:#86efac}.processing-text{white-space:nowrap}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}/ * Mobile Optimizations */ @media (max-width: 768px){body{font-size:14px;-webkit-text-size-adjust:100%;text-size-adjust:100%}button,a,input,select,textarea{min-height:44px;-webkit-tap-highlight-color:rgba(238,47,39,.2)}.viewer-container,.potree-container{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea{-webkit-user-select:text;user-select:text}.sidebar-content,.scene-tree,.measurement-list,.annotation-list,.bookmark-list{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}input,select,textarea{font-size:16px!important}*{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0)}}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@media(max-width:768px)and (orientation:landscape){.viewer-container{height:calc(100vh - 48px)}.viewer-sidebar{top:48px;height:calc(100vh - 48px)}.sidebar-overlay{top:48px}}.ortho-opacity-control{position:absolute;bottom:1rem;left:1rem;z-index:1000;background:var(--hdr-bg);border-radius:.5rem;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:.875rem;font-weight:500;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}}
