*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.\!relative{position:relative!important}.relative{position:relative}.sticky{position:sticky}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.\!hidden{display:none!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-width:1px}.outline{outline-style:solid}.\!ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)!important}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--background-hsl: 0 0% 9%;--foreground-hsl: 0 0% 90%;--card-hsl: 0 0% 15%;--card-foreground-hsl: 0 0% 90%;--popover-hsl: 0 0% 15%;--popover-foreground-hsl: 0 0% 90%;--primary-hsl: 77 71% 44%;--primary-foreground-hsl: 0 0% 10%;--secondary-hsl: 0 0% 9%;--secondary-foreground-hsl: 0 0% 90%;--muted-hsl: 0 0% 18%;--muted-foreground-hsl: 0 0% 73%;--accent-hsl: 77 71% 44%;--accent-foreground-hsl: 0 0% 10%;--destructive-hsl: 0 84% 60%;--destructive-foreground-hsl: 0 0% 98%;--border-hsl: 0 0% 25%;--input-hsl: 0 0% 25%;--ring-hsl: 77 71% 44%;--radius: 8px;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;--color-bg: hsl(var(--background-hsl));--color-panel: hsl(var(--secondary-hsl));--color-surface: hsl(var(--card-hsl));--color-surface-2: hsl(var(--popover-hsl));--color-surface-3: hsl(var(--input-hsl));--color-border: hsl(var(--border-hsl));--color-border-strong: hsl(var(--border-hsl));--color-text: hsl(var(--foreground-hsl));--color-text-muted: hsl(var(--muted-foreground-hsl));--color-accent: hsl(var(--accent-hsl));--color-accent-strong: hsl(var(--primary-hsl));--color-danger: hsl(var(--destructive-hsl));--color-success: hsl(142 70% 45%);--color-warning: hsl(38 92% 50%);--color-accent-soft: hsl(var(--accent-hsl) / .15);--color-accent-border: hsl(var(--accent-hsl) / .35);--color-info: hsl(207 85% 55%);--color-info-bg: hsl(207 85% 55% / .2);--color-info-border: hsl(207 85% 55% / .35);--color-info-text: hsl(207 85% 70%);--color-success-text: hsl(142 70% 70%);--color-success-bg: hsl(142 70% 45% / .2);--color-success-border: hsl(142 70% 45% / .35);--color-warning-text: hsl(38 92% 70%);--color-warning-bg: hsl(38 92% 50% / .2);--color-warning-border: hsl(38 92% 50% / .35);--color-danger-text: hsl(var(--destructive-hsl) / .8);--color-danger-bg: hsl(var(--destructive-hsl) / .2);--color-danger-border: hsl(var(--destructive-hsl) / .35);--color-overlay: hsl(var(--background-hsl) / .6);--color-ground-plane: #cc00cc;--color-plane-fader: hsl(var(--foreground-hsl));--radius-sm: var(--radius);--radius-md: var(--radius);--radius-lg: var(--radius);--radius-xl: var(--radius);--text-5xs: 7px;--text-4xs: 8px;--text-3xs: 9px;--text-2xs: 10px;--text-xs: 11px;--text-sm: 12px;--text-md: 13px;--text-base: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 22px;--text-hero: clamp(2.2rem, 4.5vw, 2.8rem);--rail-w: 64px;--panel-max-w: 640px;--panel-min-w: 320px;--panel-resizer-w: 10px;--panel-pad-x: 18px;--panel-pad-y: 16px;--panel-gap: 12px;--panel-header-gap: 10px;--plugin-pad: 12px;--plugin-gap: 8px;--panel-bg: hsl(var(--secondary-hsl));--rail-bg: hsl(var(--background-hsl));--accent: hsl(var(--accent-hsl));--text: hsl(var(--foreground-hsl));--muted: hsl(var(--muted-foreground-hsl));--shadow: 0 10px 30px hsl(var(--background-hsl) / .35);--scan-bg: hsl(0 1% 26%);--scan-bg-border: hsl(0 0% 26%);--color-red: hsl(var(--destructive-hsl));--color-green: hsl(109 96% 33%)}.potree_container{position:absolute;width:100%;height:100%;left:0;top:0;background:radial-gradient(1200px 800px at 20% 10%,hsl(var(--card-hsl) / .65),hsl(var(--background-hsl) / .95)),hsl(var(--background-hsl))}#potree_render_area{width:100%;height:100%;background:transparent}.dat-stack{display:flex;flex-direction:column;gap:8px}.dat-stack--tight{gap:6px}.dat-row{display:flex;align-items:center;gap:8px}.dat-row--between{justify-content:space-between}.dat-row--wrap{flex-wrap:wrap}.dat-inline{display:inline-flex;align-items:center;gap:6px}.dat-label{font-size:var(--text-sm);opacity:.85}.dat-label--muted{opacity:.7}.dat-text-muted{color:hsl(var(--muted-foreground-hsl))}.dat-tone--success{color:var(--color-success-text)}.dat-tone--warning{color:var(--color-warning-text)}.dat-tone--error{color:var(--color-danger-text)}.dat-tone--info{color:var(--color-info)}.dat-text-xs{font-size:var(--text-xs)}.dat-text-sm{font-size:var(--text-sm)}.dat-text-md{font-size:var(--text-md)}.dat-text-lg{font-size:var(--text-lg)}.dat-panel{background:var(--card-bg, var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px;color:var(--color-text)}.dat-card{--card-bg: hsl(var(--card-hsl) / .9);--card-border: var(--color-border);--card-shadow: var(--shadow);--card-pad: 24px 28px;--card-radius: var(--radius-lg);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:var(--card-pad);color:var(--color-text)}.dat-card--compact{--card-pad: 12px 16px}.dat-card--section{--card-bg: var(--color-surface-2);--card-border: var(--color-border);--card-shadow: none;--card-pad: 12px;--card-radius: var(--radius-md)}.dat-card--flat{--card-shadow: none}.dat-card--outline{--card-bg: transparent;--card-shadow: none}.dat-card--selectable{cursor:pointer}.dat-card--selectable:hover{--card-border: color-mix( in srgb, var(--color-border) 40%, var(--color-border-strong) );--card-shadow: var(--shadow)}.dat-card--selected{--card-border: var(--color-border-strong);--card-shadow: var(--shadow)}.dat-card--success{--card-bg: var(--color-success-bg);--card-border: var(--color-success-border);color:var(--color-success-text)}.dat-card--warning{--card-bg: var(--color-warning-bg);--card-border: var(--color-warning-border);color:var(--color-warning-text)}.dat-card--error{--card-bg: var(--color-danger-bg);--card-border: var(--color-danger-border);color:var(--color-danger-text)}.dat-card--info{--card-bg: var(--color-info-bg);--card-border: var(--color-info-border);color:var(--color-info)}.dat-card--expandable{padding:0}.dat-card--expandable>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:var(--card-pad);cursor:pointer}.dat-card--expandable[open]>summary{border-bottom:1px solid var(--card-border)}.dat-card--expandable summary::-webkit-details-marker{display:none}.dat-card--expandable summary::marker{content:""}.dat-card--expandable__content{padding:var(--card-pad)}.dat-card__header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.dat-card__title{margin:0;font-size:var(--text-base);font-weight:600}.dat-card__subtitle{margin:0;color:var(--color-text-muted);font-size:var(--text-sm)}.dat-card__actions{display:inline-flex;align-items:center;gap:8px}.dat-card__chevron{display:inline-flex;align-items:center;justify-content:center;width:10px;height:10px;border-right:2px solid var(--color-text-muted);border-bottom:2px solid var(--color-text-muted);transform:rotate(45deg);transition:transform .15s ease}.dat-card--expandable>summary .dat-card__chevron{margin-left:auto}.dat-card--expandable[open] .dat-card__chevron{transform:rotate(135deg)}.dat-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid hsl(var(--border-hsl) / .7);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:var(--text-sm);font-weight:600;transition:transform .12s ease,filter .12s ease,box-shadow .12s ease,background .2s ease,border-color .2s ease}.dat-button:disabled{opacity:.6;cursor:not-allowed}.dat-button:not(:disabled):hover{background:var(--color-surface-3)}.dat-button--full{width:100%}.dat-button--sm{padding:4px 8px;font-size:var(--text-xs)}.dat-button--icon{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center}.dat-button--lg{padding:8px 12px;font-size:var(--text-md)}.dat-button--primary{background:var(--color-accent-strong);border-color:var(--color-accent-strong);color:hsl(var(--primary-foreground-hsl))}.dat-button--secondary{background:var(--color-panel);border-color:hsl(var(--border-hsl) / .7);color:var(--color-text)}.dat-button--success{background:var(--color-success);border-color:var(--color-success-border);color:var(--color-success-text)}.dat-button--danger{background:transparent;border-color:var(--color-danger);color:var(--color-text)}.dat-button--danger:not(:disabled):hover{background:var(--color-danger-bg)}.dat-button--ghost{background:transparent;border-color:transparent}.dat-button--accent{background:hsl(var(--accent-hsl) / .2);border-color:hsl(var(--accent-hsl) / .6);color:var(--color-text)}.dat-button--purple{background:var(--color-accent-strong);border:none;color:hsl(var(--primary-foreground-hsl))}.dat-button--purple:hover{filter:brightness(1.06);transform:translateY(-2px);box-shadow:0 6px 14px hsl(var(--primary-hsl) / .25)}.dat-input,.dat-select{width:100%;padding:6px 8px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-3);color:var(--color-text);font-size:var(--text-sm);box-sizing:border-box}.dat-input:focus,.dat-select:focus{outline:none;border-color:var(--color-accent-strong);background:var(--color-surface-2);box-shadow:0 0 0 1px hsl(var(--primary-hsl) / .45)}.dat-select option{background:var(--color-surface-2);color:var(--color-text)}.dat-range{width:100%}.dat-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:var(--text-sm)}.dat-checkbox{accent-color:hsl(var(--primary-hsl));width:1.1em;height:1.1em}.dat-status{font-size:var(--text-sm);opacity:.85;color:hsl(var(--muted-foreground-hsl))}.dat-status--success{color:var(--color-success-text)}.dat-status--warning{color:var(--color-warning-text)}.dat-status--error{color:var(--color-danger-text)}.dat-status--info{color:var(--color-info-text)}.ui-hud{position:absolute;padding:6px 8px;background:var(--color-overlay);color:var(--color-text);font:12px/14px var(--font-sans);border-radius:var(--radius-md);pointer-events:none}.ui-hud--corner{right:12px;bottom:12px;z-index:99999}.ui-hud--anchor{transform:translate(-50%,-120%);z-index:9999;white-space:nowrap;padding:4px 6px}.dat-toast-container{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;max-width:360px;z-index:12020;pointer-events:none}.dat-toast{pointer-events:auto;border-radius:var(--radius-md);box-shadow:0 6px 18px hsl(var(--background-hsl) / .18);--toast-neutral-bg: hsl(var(--popover-hsl));--toast-success-bg: hsl(142 52% 20%);--toast-warning-bg: hsl(38 75% 21%);--toast-error-bg: hsl(0 55% 22%);padding:10px 14px;font-size:var(--text-md);line-height:1.4;transform:translateY(8px);opacity:0;transition:opacity .16s ease,transform .16s ease;border:1px solid transparent}.dat-toast.is-visible{opacity:1;transform:translateY(0)}.dat-toast--neutral{background:var(--toast-neutral-bg);border-color:var(--color-border);color:var(--color-text)}.dat-toast--success{background:var(--toast-success-bg);border-color:#299952;color:var(--color-success-text)}.dat-toast--warning{background:var(--toast-warning-bg);border-color:#ce8912;color:var(--color-warning-text)}.dat-toast--error{background:var(--toast-error-bg);border-color:hsl(var(--destructive-hsl));color:var(--color-danger-text)}.permission-notice{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,hsl(var(--background-hsl) / .92),hsl(var(--card-hsl) / .92));color:var(--color-text);font-family:var(--font-sans);text-align:center;z-index:20000}.permission-notice__title{margin:0 0 12px;font-size:var(--text-2xl);letter-spacing:.01em}.permission-notice__message{margin:0 0 18px;line-height:1.5}.permission-notice__hint{margin:0;font-size:var(--text-base);color:var(--color-text-muted)}#stage_icons{box-sizing:border-box;position:absolute;left:0;top:0;bottom:0;width:var(--rail-w);background:var(--rail-bg);border-right:1px solid var(--color-border);display:flex;flex-direction:column;gap:8px;padding:12px 8px;z-index:20}.stage-icons__top,.stage-icons__bottom{display:flex;flex-direction:column;gap:8px}.stage-icons__bottom{margin-top:auto}.stage-icon{width:100%;aspect-ratio:1/1;border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid transparent;display:grid;place-items:center;cursor:pointer;transition:transform .12s ease,border-color .12s ease,background .12s ease}.stage-icon--disabled{opacity:.45;filter:grayscale(.7);cursor:not-allowed;transform:none}.stage-icon--disabled:hover{transform:none;border-color:transparent}.stage-icon:hover{transform:translateY(-1px);border-color:var(--color-border-strong)}.stage-icon[aria-current=true]{background:var(--color-surface-3);border-color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent),transparent 70%)}.stage-icon img,.stage-icon svg{width:26px;height:26px;opacity:.95}#stage_panel{position:absolute;top:0;bottom:0;left:var(--rail-w);width:0;overflow:hidden;z-index:30;pointer-events:none;transition:width .22s ease;display:flex;flex-direction:row;background:var(--panel-bg)}#stage_panel.open{pointer-events:auto}#stage_panel .stage-panel__resizer{position:relative;width:var(--panel-resizer-w);height:100%;cursor:ew-resize;background:linear-gradient(90deg,var(--panel-bg) 0%,hsl(var(--foreground-hsl) / .04) 70%);z-index:31;flex:0 0 var(--panel-resizer-w)}#stage_panel_inner{height:100%;min-width:0;background:var(--panel-bg);color:var(--text);border-right:1px solid var(--color-border);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:auto;flex:1 1 auto;scrollbar-color:var(--color-border) var(--panel-bg)}#stage_panel_inner::-webkit-scrollbar{width:10px}#stage_panel_inner::-webkit-scrollbar-track{background:var(--panel-bg)}#stage_panel_inner::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-md);border:2px solid var(--panel-bg)}#companyLogo.dat-logo{position:absolute;right:15px;top:4px;z-index:10000;display:flex;flex-direction:column;align-items:flex-end;gap:4px}#companyLogo.dat-logo img{height:50px;cursor:pointer;display:block}.dat-version-tag{font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);text-align:right}.stage-panel{display:flex;flex-direction:column;min-height:100%}.stage-header{display:flex;align-items:center;gap:var(--panel-header-gap);padding:var(--panel-pad-y) var(--panel-pad-x);border-bottom:1px solid var(--color-border)}.stage-header__close{margin-left:auto;font-size:var(--text-lg);line-height:1}.stage-header h3{margin:0;font-size:var(--text-lg);color:var(--color-text)}.stage-header{border-left:4px solid var(--accent)}.stage-header .dot{display:none}.stage-notice{display:flex;align-items:flex-start;gap:12px;--card-pad: 16px}.stage-notice__badge{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--stage-notice-accent-bg, var(--color-info-bg));color:var(--stage-notice-accent-color, var(--color-info));font-weight:700;font-size:var(--text-xl);flex:0 0 auto}.stage-notice__text{display:flex;flex-direction:column;gap:4px}.stage-notice__title{margin:0;font-size:var(--text-xl);font-weight:600;color:var(--stage-notice-accent-color, var(--color-info))}.stage-notice__message{margin:0;color:var(--stage-notice-text-color, var(--color-info))}.stage-notice__details{margin:0;font-size:var(--text-base);color:var(--stage-notice-detail-color, var(--color-info))}.stage-notice--info{--stage-notice-accent-bg: var(--color-info-bg);--stage-notice-accent-color: var(--color-info);--stage-notice-text-color: var(--color-info);--stage-notice-detail-color: var(--color-info)}.stage-notice--error{--stage-notice-accent-bg: var(--color-danger-bg);--stage-notice-accent-color: var(--color-danger);--stage-notice-text-color: var(--color-danger-text);--stage-notice-detail-color: var(--color-danger-text)}.auth-card{max-width:520px;margin:40px auto;padding:28px 32px;background:linear-gradient(150deg,var(--color-surface),var(--color-surface-2));border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 18px 40px hsl(var(--background-hsl) / .32),0 0 0 1px var(--color-accent-border)}.auth-card__header{margin-bottom:16px}.auth-card__eyebrow{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:var(--text-xs);color:var(--color-text-muted)}.auth-card__title{margin:6px 0 4px;font-size:var(--text-2xl);letter-spacing:.01em}.auth-card__hint{margin:0;color:var(--color-text-muted)}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form__label{font-weight:600;font-size:var(--text-lg)}.auth-form__input{width:100%;padding:12px 14px;box-sizing:border-box;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-3);color:var(--color-text);font-size:var(--text-base);transition:border-color .14s ease,box-shadow .14s ease}.auth-form__input:focus{outline:none;border-color:var(--color-accent-strong);box-shadow:0 0 0 3px hsl(var(--primary-hsl) / .25)}.auth-form__checkbox{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-lg)}.auth-form__submit{margin-top:6px;padding:12px 14px;border:1px solid var(--color-accent-strong);border-radius:var(--radius-md);background:var(--color-accent-strong);color:hsl(var(--primary-foreground-hsl));font-weight:700;font-size:var(--text-base);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}@keyframes loading-button-spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.loading-button{position:relative}.loading-button__label{display:contents}.loading-button__spinner{position:absolute;left:50%;top:50%;width:16px;height:16px;border-radius:50%;border:2px solid hsl(var(--foreground-hsl) / .35);border-top-color:var(--color-text);display:none;animation:loading-button-spin .8s linear infinite}.loading-button--busy{cursor:progress}.loading-button--busy .loading-button__spinner{display:inline-block}.loading-button--busy .loading-button__label{opacity:.45}.loading-button--disabled{opacity:.6;cursor:not-allowed}.auth-form__submit:hover{transform:translateY(-1px);box-shadow:0 10px 20px hsl(var(--primary-hsl) / .35)}.auth-form__submit:active{transform:translateY(0);filter:brightness(.97)}.auth-form__error{min-height:18px;color:var(--color-danger-text);font-size:var(--text-base)}.stage-body{padding:var(--panel-pad-y) var(--panel-pad-x) calc(var(--panel-pad-y) + 4px);box-sizing:border-box;width:100%;flex:1 1 auto;min-height:0}.stage-content{width:100%;box-sizing:border-box;min-width:0;display:flex;flex-direction:column;gap:var(--panel-gap)}#stage_panel .stage-controls{display:flex;gap:8px;margin-top:12px}#stage_panel .stage-controls button{background:var(--color-surface-3);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 12px;cursor:pointer}#stage_panel .stage-controls button:hover{background:var(--color-surface-2)}#stage_panel div.group__hdr{color:var(--color-text)}#stage_panel :where(a.scan__btn,button.scan__btn){display:inline-block;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--scan-bg-border);background:var(--scan-bg);border-radius:var(--radius-md);padding:4px 6px;font:inherit;font-size:var(--text-2xs);line-height:1.25;text-decoration:none;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}#stage_panel a.scan__btn:link,#stage_panel a.scan__btn:visited,#stage_panel a.scan__btn:hover,#stage_panel a.scan__btn:active,#stage_panel a.scan__btn:focus{color:var(--text);text-decoration:none}#stage_panel :where(a.scan__btn,button.scan__btn){color:var(--text)}.exporter-ui{color:var(--color-text)}.exporter-ui__inner{display:flex;flex-direction:column;gap:16px}.exporter-ui__header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.exporter-ui__notice{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--text-base)}.exporter-ui__notice[hidden]{display:none}.exporter-ui__notice-message{flex:1}.exporter-ui__notice-close{font-size:var(--text-lg);line-height:1}.exporter-ui__title{margin:0 0 4px;font-size:var(--text-xl);font-weight:600}.exporter-ui__subtitle{margin:0;color:var(--color-text-muted);font-size:var(--text-base)}.exporter-ui__context{margin:4px 0 0;font-size:var(--text-md);color:var(--color-text-muted)}.exporter-ui__generators{display:grid;gap:12px}.exporter-ui__generators--disabled{opacity:.6}.exporter-ui__formats{display:flex;flex-direction:column;gap:8px}.exporter-ui__format{display:flex;gap:10px;align-items:flex-start;flex-direction:row;--card-pad: 10px 12px}.exporter-ui__format input{margin-top:2px;flex:0 0 auto}.exporter-ui__format-body{flex:1;min-width:0}.exporter-ui__format-title,.exporter-ui__format-desc{line-height:1.4}.exporter-ui__format-title{font-weight:600}.exporter-ui__format-desc{margin-top:2px}.exporter-ui__generate{display:flex;justify-content:flex-end}.exporter-ui__hint{margin:0;color:var(--color-text-muted)}.exporter-ui__list{display:flex;flex-direction:column;gap:12px}.exporter-ui__form{display:flex;flex-direction:column;gap:12px;margin-bottom:4px}.exporter-ui__field{display:flex;flex-direction:column;gap:8px}.exporter-ui__form label{margin:0}.exporter-ui__form input{width:100%}.exporter-ui__logo-field{gap:8px}.exporter-ui__logo-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.exporter-ui__logo-meta{font-size:var(--text-md);color:var(--color-text-muted)}.exporter-ui__logo-preview{display:flex;align-items:center;gap:8px;min-height:36px}.exporter-ui__logo-preview img{max-height:38px;max-width:160px;-o-object-fit:contain;object-fit:contain;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:4px 6px}.exporter-ui__logo-note{font-size:var(--text-sm);color:var(--color-text-muted)}.exporter-ui__empty{background:var(--color-surface-2);border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:16px;text-align:center;color:var(--color-text-muted);font-size:var(--text-lg)}.exporter-ui__empty--error{border-color:var(--color-danger-border);color:var(--color-danger-text)}.exporter-row{display:flex;gap:12px;align-items:center;padding:14px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md)}.exporter-row__icon{width:44px;height:44px;display:grid;place-items:center;flex-shrink:0}.exporter-row__icon svg{width:36px;height:36px;color:var(--color-text)}.exporter-row__body{flex:1;min-width:0}.exporter-row__name{font-weight:600;margin-bottom:4px}.exporter-row__meta{font-size:var(--text-md);color:var(--color-text-muted)}.exporter-row__actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.exporter-row__action--icon,.exporter-group__action--icon{text-decoration:none}.exporter-row__action--icon.dat-button--secondary,.exporter-group__action--icon.dat-button--secondary{background:transparent}.exporter-row__action--icon.dat-button--secondary:not(:disabled):hover,.exporter-group__action--icon.dat-button--secondary:not(:disabled):hover{background:var(--color-surface-3)}.exporter-action-icon{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.exporter-action-icon--times{color:var(--color-danger);font-size:var(--text-lg);line-height:1;font-weight:600}.exporter-ui__lock{margin-bottom:8px}.exporter-ui__lock-message{padding:10px 12px;border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-bg);color:var(--color-warning-text);font-size:var(--text-base)}.exporter-group{--card-pad: 0;overflow:hidden}.exporter-group__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;gap:12px;flex-wrap:wrap}.exporter-group__toggle{all:unset;display:flex;align-items:center;gap:12px;cursor:pointer;flex:1}.exporter-group__toggle[aria-pressed=false] .dat-card__chevron{transform:rotate(135deg)}.exporter-group__title{font-weight:600}.exporter-group__meta,.exporter-group__summary{font-size:var(--text-md);color:var(--color-text-muted)}.exporter-group__actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.exporter-group__confirm{margin:10px 12px 0;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-danger-bg);display:flex;flex-wrap:wrap;align-items:center;gap:10px}.exporter-group__confirm-text{color:var(--color-text);font-size:var(--text-lg)}.exporter-group__confirm-actions{margin-left:auto;display:flex;gap:8px}.exporter-group__body{padding:0 16px 16px;display:flex;flex-direction:column;gap:10px}.roi-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.roi-item{display:block;--card-radius: var(--radius-md);--card-shadow: none;--card-pad: 0;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease,background .18s ease}.roi-item:hover,.roi-item--selected{--card-bg: var(--color-surface-3);--card-border: var(--color-border-strong);--card-shadow: var(--shadow)}.roi-item__row{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:10px 12px;width:100%;flex:1 1 100%}.clip-item__row{align-items:stretch}.clip-item__defaults{flex:0 1 170px;min-width:0;margin-left:auto;display:flex;flex-direction:column;justify-content:center}.clip-item__defaults-actions{width:100%}.clip-item__defaults-actions .roi-item__delete{margin-left:auto}.clip-item__content{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:6px}.clip-item__mode-select{min-width:140px}.roi-item:hover .clip-item__mode-select:not(:focus),.roi-item--selected .clip-item__mode-select:not(:focus){background:var(--color-surface);border-color:hsl(var(--border-hsl) / .7)}.clip-item__mode-label{opacity:.85}.roi-item--inactive{opacity:.55;filter:grayscale(.35);border-style:dashed}.roi-item--hidden{opacity:.68;filter:grayscale(.25)}.roi-item--hidden .roi-item__name{text-decoration:line-through;text-decoration-color:var(--color-border)}.clip-item--deleted{opacity:.74;--card-border: hsl(var(--border-hsl) / .75)}.clip-item--deleted .roi-item__name{text-decoration:line-through;text-decoration-color:var(--color-danger-border)}.clip-item__deleted-label{color:var(--color-text-muted)}.roi-item__select{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;padding-right:4px}.roi-item__controls{display:inline-flex;align-items:center;gap:8px}.roi-item__select-input{cursor:pointer}.roi-item__visibility{border-radius:999px;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease,background .15s ease,border-color .15s ease,color .15s ease}.roi-item__visibility:hover{transform:translateY(-1px)}.roi-item__visibility:focus-visible{outline:2px solid var(--color-accent-strong);outline-offset:2px}.roi-item__visibility--hidden{color:var(--color-text-muted)}.roi-item__visibility-icon{width:16px;height:16px}.roi-item__main{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1 1 auto;min-width:0}.roi-item__name{font-weight:600;color:var(--color-text);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roi-item__badges{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:3px}.roi-item__badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-md);font-weight:600;line-height:1.35;border:1px solid hsl(var(--border-hsl) / .7);background:hsl(var(--card-hsl) / .8);color:var(--color-text-muted)}.roi-item__badge--accent,.roi-item__badge--warning,.roi-item__badge--muted{border-color:hsl(var(--border-hsl) / .7);background:hsl(var(--card-hsl) / .78);color:var(--color-text-muted)}.roi-item__meta-line{display:flex;align-items:center;gap:6px}.roi-item__meta-line--material{margin-top:2px}.roi-item__meta-line--stats{gap:12px}.roi-item__stats{display:flex;flex-direction:column;gap:2px}.roi-item__stats-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.roi-item__stats-row--head{text-transform:uppercase;letter-spacing:.05em;text-align:left}.roi-item__stats-row--values{font-weight:500}.roi-item__stats-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.volume-estimation-stage{display:flex;flex-direction:column;gap:16px}.volume-estimation-stage__plugin{flex:0 0 auto}.volume-estimation-stage__roi{--card-bg: hsl(var(--card-hsl) / .6);--card-border: var(--color-border);--card-radius: var(--radius-md);--card-shadow: none;--card-pad: 12px;flex:1 1 auto;display:flex;flex-direction:column;gap:12px}.volume-estimation-stage__roi-placeholder{font-size:var(--text-md);color:var(--color-text-muted)}.volume-estimation-stage__roi-list .roi-item__actions{display:none}.volume-estimation-stage__roi-list .roi-item{--card-bg: var(--color-surface-2)}.volume-estimation-stage__actions{margin-top:auto;display:flex;flex-direction:column;gap:8px}.volume-estimation-stage__calculate.dat-button--secondary{background:transparent}.volume-estimation-stage__calculate.dat-button--secondary:not(:disabled):hover{background:var(--color-surface-3)}.volume_estimator,.volume-estimator{background:hsl(var(--card-hsl) / .65);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px;color:var(--color-text);box-shadow:var(--shadow)}.volume-estimator__section{display:flex;flex-direction:column;gap:8px}.volume-estimator__toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;text-transform:none;letter-spacing:normal}.volume-estimator__panel{display:flex;flex-direction:column;gap:12px}.volume-estimator__field{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:var(--radius-md);background:var(--color-surface-2)}.volume-estimator__field-header{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-sm);color:var(--color-text)}.volume-estimator__value{font-variant-numeric:tabular-nums;font-weight:600}.volume-estimator__field input[type=range]{width:100%;margin:0;accent-color:var(--color-accent-strong)}.volume-estimator__field-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.volume-estimator__checkbox{display:flex;align-items:center;gap:8px;font-size:var(--text-sm)}.volume-estimator__hint{font-size:var(--text-sm);color:var(--color-text-muted);margin:8px 0 0}.volume-estimator__results{margin-top:8px}.volume-estimator__mesh-method-toggle{margin:1em 0 .5em;display:flex;align-items:center;gap:.5em}.volume-estimator__mesh-method-label{display:flex;align-items:center;gap:.5em;cursor:pointer;font-size:var(--text-base)}.volume-estimator__summary{padding:10px 12px;border-radius:var(--radius-md);background:var(--color-surface-2);font-size:var(--text-sm);color:var(--color-text)}.roi-meta__label{font-weight:500;text-transform:uppercase;letter-spacing:.04em;font-size:var(--text-xs);color:var(--color-text-muted)}.roi-meta__value{font-size:var(--text-sm);color:var(--color-text)}.roi-item__name:hover{color:var(--color-text)}.roi-name-edit{flex:1 1 auto;min-width:0;font-size:inherit}.roi-name-edit:focus{border-color:var(--color-accent-strong);box-shadow:0 0 0 1px hsl(var(--primary-hsl) / .45)}.roi-item__actions{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;margin-left:auto}.roi-item__confirm{width:95%;margin:6px auto 10px;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:10px;box-sizing:border-box}.roi-item__confirm.dat-card{flex-direction:row}.roi-item__confirm[hidden]{display:none!important}.location-defaults-action-card__scroll-spacer{width:100%;height:calc(var(--panel-pad-y) + 72px);flex:0 0 auto;pointer-events:none}[data-role=roi-location-defaults-actions] .dat-row .dat-button--secondary,[data-role=pcd-location-defaults-actions] .dat-row .dat-button--secondary{background:transparent}[data-role=roi-location-defaults-actions] .dat-row .dat-button--secondary:not(:disabled):hover,[data-role=pcd-location-defaults-actions] .dat-row .dat-button--secondary:not(:disabled):hover{background:var(--color-surface-3)}.roi-item__confirm-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roi-item__confirm-actions{margin-left:auto;display:inline-flex;gap:8px}.roi-action{display:inline-flex;flex-direction:column-reverse;align-items:center;gap:4px;color:var(--color-text-muted);font-size:var(--text-xs);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:2px 6px 6px;border-radius:var(--radius-md);transition:background .12s ease,color .12s ease,transform .12s ease}.roi-action:hover{color:var(--color-text);background:var(--color-surface-2);transform:translateY(-2px)}.roi-action__checkbox{width:18px;height:18px;accent-color:var(--color-accent-strong);cursor:pointer}.roi-action__checkbox:focus-visible{outline:2px solid var(--color-accent-strong);outline-offset:2px}.roi-action__checkbox:checked+.roi-action__label{color:var(--color-text)}.roi-action__checkbox:hover+.roi-action__label{color:var(--color-text)}.roi-action__label{letter-spacing:.02em;text-transform:uppercase;font-weight:600;text-align:center;line-height:1.2}.roi-item__delete{font-size:var(--text-base);line-height:1}.roi-item__delete:hover{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-text);transform:translateY(-1px)}.roi-item__delete:focus-visible{outline:2px solid var(--color-danger);outline-offset:2px}.roi-sublist{list-style:none;margin:6px 0 0 18px;padding:6px 0 0 12px;border-left:1px solid var(--color-border);display:flex;flex-direction:column;gap:6px}.roi-list:empty:before{content:"No regions yet";display:block;padding:12px;border-radius:var(--radius-md);text-align:center;background:var(--color-surface-2);border:1px dashed var(--color-border);color:var(--color-text-muted);font-size:var(--text-md)}.roof-slider__row--actions{gap:16px}.roof-slider__range-group{display:flex;align-items:center;gap:8px}.roof-slider__range-group--right{margin-left:auto}.roof-slider__range-label{font-size:var(--text-md);color:var(--muted)}.roof-slider__checkbox{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;justify-content:flex-start;text-align:left;width:auto;align-self:auto}.roof-slider__checkbox input{margin:0}.roof-slider__checkbox .roof-slider__range-label{white-space:nowrap;flex:0 0 auto}#stage_panel :where(a.scan__btn,button.scan__btn):hover{background:var(--color-surface-2);border-color:var(--color-border-strong)}#stage_panel :where(a.scan__btn,button.scan__btn):active{background:var(--color-surface-3)}#stage_panel :where(a.scan__btn,button.scan__btn).scan__btn--danger{border-color:var(--color-danger);background:var(--color-danger)}#stage_panel :where(a.scan__btn,button.scan__btn).scan__btn--danger:hover{border-color:var(--color-border-strong)}#stage_panel :where(a.scan__btn,button.scan__btn):focus-visible{outline:2px solid var(--color-accent-strong);outline-offset:2px}.group{border:1px solid var(--scan-bg-border);border-radius:var(--radius-md);margin:8px 0;overflow:hidden}.group__hdr{display:flex;align-items:center;gap:6px;padding:8px;background:var(--scan-bg);cursor:pointer;font-size:var(--text-sm);line-height:1.25}.group__hdr:hover{background:var(--scan-bg)}.group__title{color:var(--text);font-weight:1000;padding-right:16px}.group__hdr .pill{font-size:var(--text-2xs);padding:1px 5px}.scan{border-top:1px solid var(--scan-bg-border)}.scan__row{display:grid;grid-template-columns:72px 1fr 120px 160px 120px 120px 120px 100px 100px;gap:7px;align-items:center;padding:4px 8px;font-size:var(--text-3xs);line-height:1.2;overflow:visible;transition:padding .18s ease}.scan__row:hover{background:var(--color-surface-2);padding:8px}.scan__thumb{width:36px;height:36px;border:1px solid var(--color-border);border-radius:var(--radius-md);-o-object-fit:cover;object-fit:cover;background:var(--color-surface-2);transition:width .18s ease,height .18s ease,box-shadow .18s ease,border-color .18s ease;position:relative;z-index:1}.scan__row:hover .scan__thumb{width:72px;height:72px;border-color:var(--color-border-strong);box-shadow:0 6px 16px hsl(var(--background-hsl) / .32)}.scan__name{font-weight:600;padding-left:8px}.scan__files{display:none;padding:0 8px 8px}.scan__files table{width:100%;border-collapse:collapse;font-size:var(--text-5xs)}.scan__files th,.scan__files td{padding:3px 5px;border-bottom:1px solid var(--color-border);text-align:left}.files td.name{font-family:var(--font-mono);max-width:540px;overflow:hidden;text-overflow:ellipsis}.pill{font-size:var(--text-sm);border:1px solid var(--color-border);padding:2px 6px;border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text)}.hidden{display:none}.pcd-list-container{margin:0;width:100%;min-width:160px;height:30vh;display:flex;flex-direction:column;padding:8px;box-sizing:border-box;overflow-y:auto;font-family:var(--font-sans)}#menu_container .pcd-list-container h2{margin:2px 0;font-size:var(--text-base);color:var(--color-text);text-align:left;border-bottom:1px solid var(--color-border);padding-bottom:0}.pcd-item{display:flex;justify-content:space-between;align-items:left;background:var(--color-surface-2);margin:10px 0;padding:6px 8px;border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:background .2s;overflow:hidden}.pcd-item:hover{background:var(--color-surface-3)}.pcd-name{flex-grow:1;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:6px;cursor:pointer}.location-item{font-weight:700;margin-top:4px;margin-bottom:4px;list-style:none;color:var(--color-text)}.scan-list{margin-left:10px;padding-left:0;list-style:none}.delete-btn{background:none;border:none;color:var(--color-danger);font-size:var(--text-base);cursor:pointer}.delete-btn:hover{color:var(--color-danger-text)}.plugin{--card-pad: var(--plugin-pad);--card-radius: var(--radius-md);--card-bg: hsl(var(--card-hsl));--card-border: hsl(var(--border-hsl) / .6);--card-shadow: 0 8px 18px hsl(var(--background-hsl) / .18);margin:0;width:100%;box-sizing:border-box;color:hsl(var(--foreground-hsl))}.plugin-header{margin-bottom:var(--plugin-gap)}.plugin-header h2,.plugin h3{margin:0;padding:0;font-size:var(--text-base);letter-spacing:.01em}.plugin-body{display:grid;gap:var(--plugin-gap);width:100%;box-sizing:border-box;padding-right:8px}.plugin-body>*{max-width:100%;box-sizing:border-box}.pcd-clip__list{margin-top:var(--plugin-gap)}.roof-slider{display:flex;flex-direction:column;gap:12px;width:100%;text-align:left}.roof-slider__row{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px}.roof-slider__row--checkbox{justify-content:flex-start;align-items:center}.roof-slider .roof-slider__row--checkbox .roof-slider__checkbox{display:inline-flex}.roof-slider__row--summary{font-weight:500}.roof-slider__summary{flex:1 1 50%;font-size:var(--text-sm)}.roof-slider__summary:last-child{text-align:right}.roof-slider__sliders{display:flex;flex-direction:column;gap:12px;width:100%}.roof-slider__sliders input[type=range],.roof-slider input{width:100%}.roof-slider label{display:inline-flex;align-items:center;gap:8px;color:var(--color-text)}.roof-slider__dual-slider,.roi-height-slider{width:100%}.single-range-slider,input[type=range]{--single-slider-track-height: 6px;--single-slider-thumb-size: 18px;--single-slider-track-color: var(--panel-bg);--single-slider-fill-color: var(--color-accent-strong);--single-slider-progress: 0%;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:36px;margin:0;padding:0;background:transparent;cursor:pointer}input[type=range]:disabled{cursor:not-allowed;opacity:.6}input[type=range]::-webkit-slider-runnable-track{height:var(--single-slider-track-height);border-radius:calc(var(--single-slider-track-height) / 2);background-color:var(--single-slider-track-color);background-image:var(--single-slider-fill-color);background-repeat:no-repeat;background-size:var(--single-slider-progress, 0%) 100%;position:relative;box-shadow:inset 0 0 0 1px hsl(var(--border-hsl) / .5)}input[type=range]::-moz-range-track{height:var(--single-slider-track-height);border-radius:calc(var(--single-slider-track-height) / 2);background-color:var(--single-slider-track-color);box-shadow:inset 0 0 0 1px hsl(var(--border-hsl) / .5)}input[type=range]::-moz-range-progress{height:var(--single-slider-track-height);border-radius:calc(var(--single-slider-track-height) / 2);background:var(--single-slider-fill-color)}input[type=range]::-ms-track{height:var(--single-slider-track-height);border-radius:calc(var(--single-slider-track-height) / 2);background:transparent;border-color:transparent;color:transparent}input[type=range]::-ms-fill-lower{background:var(--single-slider-fill-color);border-radius:calc(var(--single-slider-track-height) / 2)}input[type=range]::-ms-fill-upper{background:var(--single-slider-track-color);border-radius:calc(var(--single-slider-track-height) / 2);box-shadow:inset 0 0 0 1px hsl(var(--border-hsl) / .5)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:var(--single-slider-thumb-size);height:var(--single-slider-thumb-size);border-radius:50%;border:2px solid var(--color-accent-strong);background:var(--color-surface-3);margin-top:calc((var(--single-slider-track-height) - var(--single-slider-thumb-size)) / 2);box-shadow:0 0 hsl(var(--primary-hsl) / 0);-webkit-transition:box-shadow .12s ease;transition:box-shadow .12s ease}input[type=range]::-moz-range-thumb{width:var(--single-slider-thumb-size);height:var(--single-slider-thumb-size);border-radius:50%;border:2px solid var(--color-accent-strong);background:var(--color-surface-3);-moz-transition:box-shadow .12s ease;transition:box-shadow .12s ease}input[type=range]::-ms-thumb{width:var(--single-slider-thumb-size);height:var(--single-slider-thumb-size);border-radius:50%;border:2px solid var(--color-accent-strong);background:var(--color-surface-3);-ms-transition:box-shadow .12s ease;transition:box-shadow .12s ease}input[type=range]:hover::-webkit-slider-thumb{box-shadow:0 0 0 3px hsl(var(--primary-hsl) / .2)}input[type=range]:hover::-moz-range-thumb,input[type=range]:hover::-ms-thumb{box-shadow:0 0 0 3px hsl(var(--primary-hsl) / .2)}input[type=range]:focus-visible{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px hsl(var(--primary-hsl) / .35)}input[type=range]:focus-visible::-moz-range-thumb,input[type=range]:focus-visible::-ms-thumb{box-shadow:0 0 0 3px hsl(var(--primary-hsl) / .35)}.dual-range-slider{position:relative;width:100%;height:36px;display:flex;align-items:center;--single-slider-track-height: 6px;padding:0;box-sizing:border-box}.dual-range-slider__track{position:relative;flex:1;height:var(--single-slider-track-height);border-radius:calc(var(--single-slider-track-height) / 2);background:var(--color-panel)}.dual-range-slider__fill{position:absolute;top:0;bottom:0;border-radius:calc(var(--single-slider-track-height) / 2);background:var(--color-accent-strong)}.dual-range-slider__handle{position:absolute;top:50%;width:18px;height:18px;border-radius:50%;border:2px solid var(--color-accent-strong);background:var(--color-surface-3);transform:translate(-50%,-50%);cursor:pointer;touch-action:none;transition:box-shadow .12s ease}.dual-range-slider__handle--max{border-color:var(--color-accent-strong)}.dual-range-slider__handle:hover,.dual-range-slider__handle--max:hover{box-shadow:0 0 0 3px hsl(var(--primary-hsl) / .2)}.dual-range-slider__handle:focus-visible{outline:none;box-shadow:0 0 0 3px hsl(var(--primary-hsl) / .35)}.dual-range-slider__handle--max:focus-visible{box-shadow:0 0 0 3px hsl(var(--primary-hsl) / .35)}.dual-range-slider--disabled .dual-range-slider__handle{cursor:default}.roof-slider--max-only .dual-range-slider__handle--min,.roof-slider--max-only .roof-slider__summary:first-child{display:none}.roi-actions{display:flex;align-items:center;gap:8px}.roi-toggle{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-sm);opacity:.9}.roi-item.selected>.roi-name{font-weight:600;text-decoration:underline}.delete-btn{margin-left:8px}#dat-modal{position:fixed;inset:0;z-index:2000000;display:contents;color:var(--color-text);font-family:var(--font-sans);--upl-bg: var(--color-bg);--upl-surface: var(--color-surface);--upl-surface-2: var(--color-surface-2);--upl-surface-3: var(--color-surface-3);--upl-border: var(--color-border);--upl-text: var(--color-text);--upl-muted: var(--color-text-muted);--upl-accent: var(--color-accent);--upl-accent-strong: var(--color-accent-strong);--upl-accent-soft: var(--color-accent-soft);--upl-danger: var(--color-danger);--upl-danger-text: var(--color-danger-text);--upl-danger-bg: var(--color-danger-bg);--upl-danger-border: var(--color-danger-border);--upl-info: var(--color-info);--upl-info-bg: var(--color-info-bg);--upl-info-border: var(--color-info-border);--upl-success: var(--color-success-text);--upl-success-bg: var(--color-success-bg);--upl-success-border: var(--color-success-border);--upl-warning: var(--color-warning-text);--upl-warning-bg: var(--color-warning-bg);--upl-warning-border: var(--color-warning-border);--upl-overlay: var(--color-overlay);--upl-radius: var(--radius-lg)}#dat-modal .dat-backdrop{position:fixed;inset:0;background:var(--upl-overlay);z-index:2000000}#dat-modal *,#dat-modal *:before,#dat-modal *:after{box-sizing:border-box}.is-hidden{display:none!important}#dat-modal .dat-window{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(880px,92vw);max-height:82vh;background:var(--upl-surface);border-radius:var(--upl-radius);border:1px solid var(--upl-border);box-shadow:var(--shadow);overflow:hidden;display:grid;grid-template-rows:auto auto 1fr auto;font-family:var(--font-sans);z-index:2000001}.dat-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--upl-border)}.dat-title{margin:0;font-weight:600;font-size:var(--text-lg);line-height:1.2;color:var(--upl-text)}.dat-close{font-size:var(--text-2xl);line-height:1;color:var(--upl-text)}.dat-toolbar{position:relative;z-index:1;width:100%;display:flex;flex-direction:column;gap:10px;padding:12px;border-bottom:1px solid var(--upl-border);background:var(--upl-surface)}.dat-toolbar__row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.dat-toolbar__row--customer{grid-template-columns:1fr}.dat-field{min-width:0;display:flex;flex-direction:column;gap:6px}.dat-field label{font-size:var(--text-sm);color:var(--upl-muted)}.dat-input--wide{min-width:200px}.dat-loc-row{display:flex;gap:8px;align-items:center}.dat-loc-combo{flex:1;min-width:200px}.dat-btn{padding:8px 12px;border:1px solid var(--upl-border);border-radius:var(--radius-md);background:var(--upl-surface-2);color:var(--upl-text);cursor:pointer}.dat-btn:hover{background:hsl(var(--popover-hsl) / .9)}.dat-btn--addloc{background:var(--upl-accent-strong);color:hsl(var(--primary-foreground-hsl));border:none}.dat-btn--addloc:hover{filter:brightness(1.05);color:hsl(var(--primary-foreground-hsl))}.dat-cc{position:relative}.dat-cc-input{width:100%;padding:8px 10px;border:1px solid var(--upl-border);border-radius:var(--radius-md);outline:none;background:var(--upl-surface-3);color:var(--upl-text)}.dat-cc-input:focus{border-color:hsl(var(--primary-hsl));box-shadow:0 0 0 3px hsl(var(--primary-hsl) / .2)}.dat-cc .dat-cc-list:not([aria-portal="1"]){position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:99999;background:var(--upl-surface-2);border:1px solid var(--upl-border);border-radius:var(--radius-md);box-shadow:0 6px 18px hsl(var(--background-hsl) / .2);max-height:220px;overflow:auto}.dat-cc-list[aria-portal="1"]{position:absolute;z-index:1;background:var(--upl-surface-2);border:1px solid var(--upl-border);border-radius:var(--radius-md);box-shadow:0 6px 18px hsl(var(--background-hsl) / .2);max-height:220px;overflow:auto}.dat-cc-list [role=option],.dat-cc-option{padding:8px 10px;cursor:pointer}.dat-cc-list [role=option]:hover,.dat-cc-option:hover,.dat-cc-option.is-active{background:hsl(var(--border-hsl) / .25)}.dat-cc-option--create{border-top:1px dashed var(--upl-border)}.dat-cc-empty{padding:8px 10px;color:var(--upl-muted)}.dat-cc-list--portal{pointer-events:auto}#dat-modal .dat-window{width:min(880px,92vw);max-height:82vh}.dat-toolbar__row{grid-template-columns:minmax(0,.95fr) minmax(0,.95fr) auto;-moz-column-gap:16px;column-gap:16px}.dat-field{min-width:0}.dat-field select.dat-input{position:relative;z-index:5;background:var(--upl-surface-3);color:var(--upl-text)}.dat-cc,.dat-cc-input{width:100%;display:block}.dat-toolbar.dat--two-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dat-body{position:relative;padding:16px;display:flex;justify-content:center;align-items:stretch;min-height:clamp(320px,46vh,540px);overflow:hidden}.dat-body-inner{width:100%;max-width:880px;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;min-height:0;transition:opacity .3s ease;overflow:hidden;margin:0 auto}.dat-step-panels{flex:1 1 auto;min-height:0;overflow:auto;padding-bottom:8px;width:100%;max-width:880px;margin:0 auto}.dat-body-inner.is-hidden{opacity:0;pointer-events:none}.dat-body-placeholder{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;padding:0;border-radius:0;background:none;transition:opacity .35s ease,visibility .35s ease;opacity:1;visibility:visible;min-height:clamp(320px,46vh,540px)}.dat-body-placeholder.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.dat-body-placeholder__image{width:100%;height:100%;min-height:clamp(320px,46vh,540px);border-radius:0;background-image:url(/assets/drone_scan_tinamu-16_9-1-scaled-CuVhwC9D.jpg);background-size:cover;background-repeat:no-repeat;background-position:center;box-shadow:none}.dat-loading-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:hsl(var(--background-hsl) / .72);z-index:3}.dat-loading-overlay.is-hidden{display:none}.dat-loading-spinner{width:38px;height:38px;border-radius:var(--radius-md);border:4px solid hsl(var(--foreground-hsl) / .18);border-top-color:var(--upl-accent-strong);animation:dat-spin .9s linear infinite}.dat-loading-text{margin:0;font-size:var(--text-base);color:var(--upl-text)}@keyframes dat-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dat-body-inner .uppy-Dashboard{width:100%;max-width:820px;height:clamp(320px,46vh,540px);min-height:320px;margin:0 auto}.dat-body .uppy-Dashboard-inner{margin:0 auto}.dat-toolbar.dat--two-cols{grid-template-columns:1fr 1fr;-moz-column-gap:20px;column-gap:20px;justify-items:center}.dat-toolbar.dat--two-cols .dat-cc{width:100%;margin-inline:auto}.dat-toolbar.dat--two-cols .dat-cc-input{width:100%;display:block}.dat-steps{display:flex;justify-content:center;align-items:stretch;gap:12px;margin:0 auto;padding:0 0 16px;list-style:none;flex-wrap:nowrap}.dat-step-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--upl-border);background:var(--upl-surface-2);color:var(--upl-muted);font-size:var(--text-md);font-weight:500;cursor:pointer;transition:all .15s ease}.dat-step-btn.is-active,.dat-step-btn[aria-current=step]{background:var(--upl-accent-strong);color:hsl(var(--primary-foreground-hsl));border-color:var(--upl-accent-strong);box-shadow:0 4px 10px hsl(var(--primary-hsl) / .25)}.dat-step-btn[disabled]{opacity:.55;cursor:default}.dat-step-index{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:hsl(var(--primary-hsl) / .2);color:var(--upl-accent-strong);font-size:var(--text-sm);font-weight:600}.dat-step-btn[aria-current=step] .dat-step-index{background:hsl(var(--primary-foreground-hsl) / .2);color:hsl(var(--primary-foreground-hsl))}.dat-step-panel{display:none;min-height:240px}.dat-step-panel.is-active{display:block}.dat-step-panel-header-offset{padding-top:12px}.dat-footer{display:flex;flex-direction:column;gap:14px;padding:12px 16px 16px;border-top:1px solid var(--upl-border);background:var(--upl-surface);width:100%;max-width:880px;margin:0 auto}.dat-footer__nav{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.dat-actions__left,.dat-actions__right{display:flex;gap:8px}.dat-nav-btn{font-weight:500}.dat-section{display:flex;flex-direction:column;gap:16px}.dat-section h3{margin:0;font-size:var(--text-base);font-weight:600;color:var(--upl-text)}#dat-modal .dat-card{border:1px solid var(--upl-border);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--upl-surface);box-shadow:var(--shadow)}#dat-modal .dat-card__header{display:flex;justify-content:space-between;align-items:center;gap:8px}#dat-modal .dat-card__title{font-weight:600;font-size:var(--text-lg);color:var(--upl-text)}#dat-modal .dat-card__subtitle{font-size:var(--text-sm);color:var(--upl-muted)}#dat-modal .dat-card__actions{display:flex;gap:8px}.dat-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));width:100%}.dat-grid--inventory{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.dat-grid--inventory .dat-field-row--unit-volume,.dat-grid--inventory .dat-field-row--density{grid-column:1}#dat-modal .dat-field-row{display:flex;flex-direction:column;gap:6px}#dat-modal .dat-field-row label{font-size:var(--text-sm);font-weight:500;color:var(--upl-muted);text-transform:uppercase;letter-spacing:.02em}.dat-field-row--full,.dat-review__grid-item--full{grid-column:1 / -1}#dat-modal .dat-input,#dat-modal .dat-select{width:100%;padding:8px 10px;border:1px solid var(--upl-border);border-radius:var(--radius-md);font-size:var(--text-base);outline:none;transition:border-color .15s ease,box-shadow .15s ease;background:var(--upl-surface-3);color:var(--upl-text)}#dat-modal .dat-input::-moz-placeholder{color:var(--upl-muted)}#dat-modal .dat-input::placeholder{color:var(--upl-muted)}#dat-modal .dat-select option{color:var(--upl-text);background:var(--upl-surface-2)}#dat-modal .dat-input:focus,#dat-modal .dat-select:focus,#dat-modal .dat-textarea:focus{border-color:var(--upl-accent-strong);box-shadow:0 0 0 3px hsl(var(--primary-hsl) / .2)}#dat-modal .dat-textarea{min-height:80px;resize:vertical;padding:8px 10px;border:1px solid var(--upl-border);border-radius:var(--radius-md);font-size:var(--text-base);background:var(--upl-surface-3);color:var(--upl-text)}#dat-modal .dat-input.small{max-width:160px}#dat-modal .dat-hidden-input{display:none}.dat-device-empty,.dat-roi-empty{padding:20px;border:1px dashed var(--upl-border);border-radius:var(--radius-lg);text-align:center;color:var(--upl-muted);font-size:var(--text-base);background:hsl(var(--card-hsl) / .25)}.dat-inline{display:flex;align-items:center;gap:10px}.dat-pair{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.dat-unit-inputs{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:8px}.dat-icon-btn{border:none;background:transparent;cursor:pointer;color:var(--upl-muted);border-radius:var(--radius-md)}.dat-icon-btn:hover{color:var(--upl-danger)}.dat-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--radius-md);background:var(--upl-accent-soft);color:var(--upl-text);font-size:var(--text-sm)}.dat-roi-card{border:1px solid var(--upl-border);border-radius:var(--radius-lg);padding:0;background:var(--upl-surface);box-shadow:var(--shadow);overflow:hidden}.dat-roi-card>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:14px 18px;background:hsl(var(--card-hsl) / .45);border-bottom:1px solid var(--upl-border);font-weight:600;font-size:var(--text-lg);color:var(--upl-text)}.dat-roi-card[open]>summary{background:hsl(var(--accent-hsl) / .12)}.dat-roi-card summary::-webkit-details-marker{display:none}.dat-roi-card__summary-main{display:flex;flex-direction:column;gap:4px}.dat-roi-card__summary-meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-size:var(--text-sm);color:var(--upl-accent)}.dat-roi-card__status{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--radius-md);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em}.dat-roi-card__status.complete{background:var(--upl-success-bg);color:var(--upl-success)}.dat-roi-card__status.missing{background:var(--upl-danger-bg);color:var(--upl-danger-text)}.dat-roi-body{padding:18px;display:flex;flex-direction:column;gap:16px}.dat-roi-images{display:flex;flex-direction:column;gap:12px}.dat-roi-images__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;width:100%}.dat-roi-image{border:1px solid var(--upl-border);border-radius:var(--radius-md);overflow:hidden;background:var(--upl-surface);display:flex;flex-direction:column;gap:6px}.dat-roi-image__preview{position:relative;padding-top:70%;background:hsl(var(--card-hsl) / .3);overflow:hidden}.dat-roi-image__preview img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.dat-roi-image__placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--upl-muted)}.dat-roi-image__meta{padding:8px;display:flex;flex-direction:column;gap:6px}.dat-roi-image__caption{width:100%;padding:6px 8px;border:1px solid var(--upl-border);border-radius:var(--radius-md);font-size:var(--text-sm);box-sizing:border-box;background:var(--upl-surface-3);color:var(--upl-text)}.dat-roi-image__actions{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm);color:var(--upl-muted)}.dat-addloc-backdrop{position:fixed;inset:0;background:var(--upl-overlay);z-index:2000002;display:none;align-items:center;justify-content:center}.dat-addloc{background:var(--upl-surface);border-radius:var(--radius-lg);padding:16px;width:min(420px,90vw);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}.dat-addloc h3{margin:0;font-size:var(--text-base)}.dat-addloc .dat-field-row{display:flex;flex-direction:column;gap:6px}.dat-addloc .dat-field-row input{padding:8px 10px;border:1px solid var(--upl-border);border-radius:var(--radius-md);font-size:var(--text-lg);background:var(--upl-surface-3);color:var(--upl-text)}.dat-addloc__actions{display:flex;justify-content:flex-end;gap:8px}.dat-addloc__actions button{padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--upl-border);cursor:pointer;background:var(--upl-surface-2);color:var(--upl-text)}.dat-addloc__actions .primary{background:var(--upl-accent-strong);color:hsl(var(--primary-foreground-hsl));border:none}.dat-addloc__error{color:var(--upl-danger-text);font-size:var(--text-base);min-height:20px}.dat-review{display:flex;flex-direction:column;gap:16px}.dat-review__section{border:1px solid var(--upl-border);border-radius:var(--radius-lg);padding:16px;background:var(--upl-surface);box-shadow:var(--shadow);list-style:none}.dat-review__section h4{margin:0 0 8px;font-size:var(--text-lg);font-weight:600;color:var(--upl-text)}.dat-review__grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.dat-review__roi-list{display:flex;flex-direction:column;gap:12px;list-style:none;padding:0;margin:0}.dat-review__roi-item{border:1px solid var(--upl-border);border-radius:var(--radius-md);padding:12px 14px;background:hsl(var(--card-hsl) / .25);box-shadow:0 1px 4px hsl(var(--background-hsl) / .2)}.dat-review__roi-title{font-weight:700;color:var(--upl-text);margin-bottom:4px}.dat-review__roi-meta{color:var(--upl-muted);font-size:var(--text-base)}.dat-review__progress-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.dat-review__progress-item{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-md);color:var(--upl-text);padding:6px 8px;background:hsl(var(--card-hsl) / .2);border:1px solid var(--upl-border);border-radius:var(--radius-md)}.dat-review__progress-name{font-weight:600}.dat-review__progress-status{color:var(--upl-muted)}.dat-review__json{max-height:220px;overflow:auto;background:hsl(var(--background-hsl) / .7);color:var(--upl-text);padding:14px;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-sm)}.dat-progress-slot{width:100%}.dat-review__progress{margin-top:14px;padding-top:12px;border-top:1px solid var(--upl-border);display:flex;flex-direction:column;gap:12px}.dat-review__progress-title{font-size:var(--text-md);font-weight:600;color:var(--upl-text);margin:0}.dat-progress__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.dat-progress__success{background:var(--upl-success-bg);color:var(--upl-success);border:1px solid var(--upl-success-border);text-align:center;font-weight:600;border-radius:var(--radius-md);padding:10px}.dat-progress__error{background:var(--upl-danger-bg);color:var(--upl-danger-text);border:1px solid var(--upl-danger-border);text-align:center;font-weight:600;border-radius:var(--radius-md);padding:10px}.dat-status-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.dat-review__keydata{display:flex;gap:12px;flex-wrap:wrap}.dat-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-md);background:hsl(var(--card-hsl) / .3);border:1px solid var(--upl-border);font-size:var(--text-base)}.dat-chip__label{color:var(--upl-muted);font-weight:500}.dat-chip__value{color:var(--upl-text);font-weight:600}.dat-status-chip--idle{background:hsl(var(--card-hsl) / .3);color:var(--upl-muted);border:1px solid var(--upl-border)}.dat-status-chip--success{background:var(--upl-success-bg);color:var(--upl-success);border:1px solid var(--upl-success-border)}.dat-status-chip--error{background:var(--upl-danger-bg);color:var(--upl-danger-text);border:1px solid var(--upl-danger-border)}.dat-status-chip svg{width:16px;height:16px}.dat-upload-list{margin:12px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.dat-upload-item{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--upl-border);background:hsl(var(--card-hsl) / .2)}.dat-upload-item__meta{display:flex;flex-direction:column;gap:4px}.dat-upload-item__name{font-weight:600;color:var(--upl-text)}.dat-upload-item__extra{font-size:var(--text-sm);color:var(--upl-muted)}.dat-upload-status{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.dat-upload-status--queued{background:hsl(var(--accent-hsl) / .15);color:var(--upl-accent)}.dat-upload-status--uploading,.dat-upload-status--processing{background:var(--upl-info-bg);color:var(--upl-info)}.dat-upload-status--uploaded{background:var(--upl-success-bg);color:var(--upl-success)}.dat-upload-status--error{background:var(--upl-danger-bg);color:var(--upl-danger-text)}.dat-upload-status--removed{background:hsl(var(--card-hsl) / .3);color:var(--upl-muted)}.dat-hint{font-size:var(--text-sm);color:var(--upl-muted)}.dat-inline-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--radius-md);font-size:var(--text-xs);background:hsl(var(--card-hsl) / .3);color:var(--upl-muted)}@media (max-width: 720px){.dat-step-btn{font-size:var(--text-sm);padding:8px 10px}#dat-modal .dat-card{padding:12px}.dat-roi-card summary{flex-direction:column;align-items:flex-start;gap:6px}.dat-grid--inventory{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.dat-grid--inventory .dat-field-row--density,.dat-grid--inventory .dat-field-row--unit-volume{grid-column:auto}}
