:root{--rail-w: 64px;--panel-max-w: 640px;--panel-min-w: 320px;--panel-bg: #1f1f1f;--rail-bg: #0e0e0e;--accent: #95c121;--text: #fff;--muted: #bbb;--shadow: 0 10px 30px rgba(0,0,0,.35);--scan-bg: #434242;--scan-bg-border: #434343;--color-red: #b00020;--color-green: #20a303}#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 rgba(255,255,255,.06);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:12px;background:#222;border:1px solid transparent;display:grid;place-items:center;cursor:pointer;transition:transform .12s ease,border-color .12s ease,background .12s ease}.stage-icon:hover{transform:translateY(-1px);border-color:#ffffff26}.stage-icon[aria-current=true]{background:#2b2b2b;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}#stage_panel.open{pointer-events:auto}#stage_panel .stage-panel__resizer{position:absolute;top:0;right:0;width:10px;height:100%;cursor:ew-resize;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.04) 70%);z-index:31}#stage_panel_inner{height:100%;background:var(--panel-bg);color:var(--text);border-right:1px solid rgba(255,255,255,.06);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:auto}.stage-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.07)}.stage-header h3{margin:0;font-size:1.1rem;color:var(--text)}.stage-header .dot{width:10px;height:10px;border-radius:50%;background:var(--accent)}.auth-card{max-width:520px;margin:40px auto;padding:28px 32px;background:linear-gradient(150deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.08);border-radius:14px;box-shadow:0 18px 40px #00000052,0 0 0 1px #95c1212e}.auth-card__header{margin-bottom:16px}.auth-card__eyebrow{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:#ffffffa6}.auth-card__title{margin:6px 0 4px;font-size:1.4rem;letter-spacing:.01em}.auth-card__hint{margin:0;color:#ffffffb3}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form__label{font-weight:600;font-size:.95rem}.auth-form__input{width:100%;padding:12px 14px;box-sizing:border-box;border-radius:10px;border:1px solid rgba(255,255,255,.16);background:#ffffff0d;color:#fff;font-size:1rem;transition:border-color .14s ease,box-shadow .14s ease}.auth-form__input:focus{outline:none;border-color:#95c121cc;box-shadow:0 0 0 3px #95c12140}.auth-form__checkbox{display:inline-flex;align-items:center;gap:8px;font-size:.95rem}.auth-form__submit{margin-top:6px;padding:12px 14px;border:1px solid rgba(149,193,33,.8);border-radius:10px;background:linear-gradient(140deg,#95c121,#c7f163);color:#0c0e12;font-weight:700;font-size:1rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.auth-form__submit:hover{transform:translateY(-1px);box-shadow:0 10px 20px #95c12159}.auth-form__submit:active{transform:translateY(0);filter:brightness(.97)}.auth-form__error{min-height:18px;color:#ffb3b3;font-size:.9rem}.stage-body{padding:16px}#stage_panel .stage-controls{display:flex;gap:8px;margin-top:12px}#stage_panel .stage-controls button{background:#333;color:#fff;border:1px solid #444;border-radius:8px;padding:8px 12px;cursor:pointer}#stage_panel .stage-controls button:hover{background:#3a3a3a}#stage_panel div.group__hdr{color:#0e0e0e}#stage_panel :where(a.scan__btn,button.scan__btn){display:inline-block;-webkit-appearance:none;appearance:none;border:1px solid var(--scan-bg-border);background:var(--scan-bg);border-radius:6px;padding:4px 6px;font:inherit;font-size:.6rem;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:#f4f4f4}.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__title{margin:0 0 4px;font-size:1.25rem;font-weight:600}.exporter-ui__subtitle{margin:0;color:#ffffffb3;font-size:.9rem}.exporter-ui__context{margin:4px 0 0;font-size:.85rem;color:#fff9}.exporter-ui__refresh{background:#2e2e2e;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fefefe;padding:8px 14px;font:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.exporter-ui__refresh:hover:not(:disabled){background:#3a3a3a;border-color:#ffffff59}.exporter-ui__refresh:disabled{opacity:.5;cursor:progress}.exporter-ui__generators{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.exporter-ui__generators--disabled .exporter-ui__generator{opacity:.5;cursor:not-allowed}.exporter-ui__generator{background:#2b2b2b;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px;text-align:left;color:inherit;font:inherit;cursor:pointer;transition:border-color .12s ease,transform .12s ease;display:flex;flex-direction:column;gap:4px}.exporter-ui__generator:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.exporter-ui__generator:disabled{opacity:.6;cursor:progress}.exporter-ui__generator-label{font-weight:600}.exporter-ui__generator-desc{font-size:.85rem;color:#ffffffa6}.exporter-ui__hint{margin:0;color:#fff9}.exporter-ui__list{display:flex;flex-direction:column;gap:12px}.exporter-ui__form{display:flex;flex-direction:column;gap:4px;margin-bottom:4px}.exporter-ui__form label{font-size:.85rem;color:#ffffffb3}.exporter-ui__form input{border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#0003;color:inherit;font:inherit;padding:8px 10px;transition:border-color .12s ease,background .12s ease}.exporter-ui__form input:focus{outline:none;border-color:var(--accent);background:#00000059}.exporter-ui__empty{background:#ffffff0a;border:1px dashed rgba(255,255,255,.15);border-radius:10px;padding:16px;text-align:center;color:#ffffffb3;font-size:.95rem}.exporter-ui__empty--error{border-color:var(--color-red, #b00020);color:#ffb4b4}.exporter-row{display:flex;gap:12px;align-items:center;padding:14px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px}.exporter-row__icon{width:44px;height:44px;display:grid;place-items:center;flex-shrink:0}.exporter-row__icon svg{width:36px;height:36px}.exporter-row__body{flex:1;min-width:0}.exporter-row__name{font-weight:600;margin-bottom:4px}.exporter-row__meta{font-size:.85rem;color:#ffffffa6}.exporter-row__actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.exporter-row__action{background:#2e2e2e;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:6px 12px;color:inherit;font:inherit;cursor:pointer;transition:background .12s ease,border-color .12s ease}.exporter-row__action:hover:not(:disabled){background:#3a3a3a;border-color:#ffffff40}.exporter-row__action:disabled{opacity:.5;cursor:progress}.exporter-row__action--danger{border-color:#ff00004d}.exporter-row__action--danger:hover:not(:disabled){border-color:#f009;background:#ff00001f}.exporter-ui__lock{margin-bottom:8px}.exporter-ui__lock-message{padding:10px 12px;border:1px solid rgba(255,196,0,.4);border-radius:10px;background:#ffc4001a;color:#ffe6a0;font-size:.9rem}.exporter-group{border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#ffffff05;overflow:hidden}.exporter-group__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;gap:12px}.exporter-group__toggle{all:unset;display:flex;align-items:center;gap:12px;cursor:pointer;flex:1}.exporter-group__chevron{width:12px;height:12px;border-right:2px solid rgba(255,255,255,.7);border-bottom:2px solid rgba(255,255,255,.7);transform:rotate(45deg);transition:transform .15s ease}.exporter-group__toggle[aria-pressed=true] .exporter-group__chevron{transform:rotate(-45deg)}.exporter-group__title{font-weight:600}.exporter-group__meta{font-size:.85rem;color:#ffffffa6}.exporter-group__summary{font-size:.85rem;color:#ffffffbf}.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{--roi-item-bg: linear-gradient(135deg, rgba(255,255,255,.04), rgba(0,0,0,.25));--roi-item-hover-bg: rgba(255,255,255,.05);--roi-item-selected-bg: rgba(149,193,33,.18);--roi-item-border: rgba(255,255,255,.06);--roi-item-border-selected: rgba(149,193,33,.65);border-radius:10px;background:var(--roi-item-bg);border:1px solid var(--roi-item-border);transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease,background .18s ease}.roi-item__row{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:10px 12px;width:100%;flex:1 1 100%}.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:#ffffff59}.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{width:16px;height:16px;accent-color:#00c6ff;cursor:pointer}.roi-item__visibility{width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:#ffffff0d;color:#ffffffd9;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease,color .15s ease}.roi-item__visibility:hover{transform:translateY(-1px);background:#ffffff1a;border-color:#ffffff4d}.roi-item__visibility:focus-visible{outline:2px solid #00c6ff;outline-offset:2px}.roi-item__visibility--hidden{color:#fff9;background:#ffffff08;border-color:#ffffff26}.roi-item__visibility-icon{width:16px;height:16px}.roi-item--selected{background:var(--roi-item-selected-bg, rgba(149,193,33,.18));border-color:var(--roi-item-border-selected, rgba(149,193,33,.7));box-shadow:0 6px 18px #00000059,0 0 0 1px color-mix(in srgb,var(--roi-item-border-selected, rgba(149,193,33,.65)) 60%,transparent)}.roi-item:hover{background:var(--roi-item-hover-bg, rgba(255,255,255,.05));border-color:color-mix(in srgb,var(--roi-item-border, rgba(255,255,255,.08)) 40%,rgba(255,255,255,.28));transform:translateY(-1px);box-shadow:0 8px 20px #00000059}.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(--text);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roi-item__meta-line{display:flex;align-items:center;gap:6px;font-size:12px;color:#ffffffbf}.roi-item__meta-line--material{margin-top:2px}.roi-item__meta-line--stats{gap:12px;color:#ffffffad}.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;font-size:12px}.roi-item__stats-row--head{text-transform:uppercase;font-size:11px;letter-spacing:.05em;color:#ffffff8c;text-align:left}.roi-item__stats-row--values{color:#ffffffd9;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{flex:1 1 auto;background:#131820b8;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:12px}.volume-estimation-stage__roi-placeholder{font-size:13px;color:#ffffffa6}.volume-estimation-stage__roi-list .roi-item__actions{display:none}.volume-estimation-stage__roi-list .roi-item{background:#ffffff0f}.volume-estimation-stage__actions{margin-top:auto;display:flex;flex-direction:column;gap:8px}.volume-estimation-stage__calculate{padding:10px 16px;border:none;border-radius:10px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:linear-gradient(135deg,#00c6ff,#0072ff);color:#06131b;transition:opacity .2s ease,transform .1s ease}.volume-estimation-stage__calculate:hover:not(:disabled){opacity:.95;transform:translateY(-1px)}.volume-estimation-stage__calculate:disabled{opacity:.55;cursor:not-allowed;transform:none}.volume_estimator,.volume-estimator{background:#121a26a6;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px;color:#f4f7fb;box-shadow:0 12px 24px #00000040}.volume-estimator__section{display:flex;flex-direction:column;gap:8px}.volume-estimator__toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#00000059;color:inherit;cursor:pointer;text-transform:uppercase;letter-spacing:.04em;font-size:12px}.volume-estimator__panel{display:flex;flex-direction:column;gap:12px;margin-top:6px}.volume-estimator__field{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:10px;background:#ffffff0a}.volume-estimator__field-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#ffffffd9}.volume-estimator__value{font-variant-numeric:tabular-nums;font-weight:600}.volume-estimator__field input[type=range]{width:100%;margin:0;accent-color:#22d1ee}.volume-estimator__field-hint{font-size:11px;color:#ffffff8c}.volume-estimator__checkbox{display:flex;align-items:center;gap:8px;font-size:12px}.volume-estimator__checkbox input{accent-color:#22d1ee}.volume-estimator__number{border-radius:6px;border:1px solid rgba(255,255,255,.25);background:#00000059;color:inherit;padding:4px 6px;font-size:13px}.volume-estimator__hint{font-size:12px;color:#ffffffb3;margin:8px 0 0}.volume-estimator__results{margin-top:8px}.volume-estimator__summary{padding:10px 12px;border-radius:10px;background:#ffffff14;font-size:12px;color:#ffffffe6}.roi-meta__label{font-weight:500;text-transform:uppercase;letter-spacing:.04em;font-size:11px;color:#fff9}.roi-meta__value{font-size:12px;color:#ffffffd9}.roi-item__name:hover{color:#fff}.roi-name-edit{flex:1 1 auto;min-width:0;border-radius:6px;border:1px solid rgba(255,255,255,.18);background:#00000059;color:var(--text);padding:6px 8px;font:inherit;outline:none}.roi-name-edit:focus{border-color:var(--accent);box-shadow:0 0 0 1px #95c12173}.roi-item__actions{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;margin-left:auto}.roi-item__confirm{margin:6px 10px 10px;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#b0002024;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.roi-item__confirm-text{color:var(--text, #fff);font-size:.92rem}.roi-item__confirm-actions{margin-left:auto;display:inline-flex;gap:8px}.roi-item__confirm-btn{border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:var(--text, #fff);padding:6px 12px;cursor:pointer;font:inherit}.roi-item__confirm-btn--danger{border-color:#ff80808c;color:#ffc6c6}.roi-action{display:inline-flex;flex-direction:column-reverse;align-items:center;gap:4px;color:var(--muted);font-size:.7rem;cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 6px 6px;border-radius:6px;transition:background .12s ease,color .12s ease,transform .12s ease}.roi-action:hover{color:var(--text);background:#ffffff0d;transform:translateY(-2px)}.roi-action__checkbox{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.roi-action__checkbox:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.roi-action__checkbox:checked+.roi-action__label{color:var(--text)}.roi-action__checkbox:hover+.roi-action__label{color:var(--text)}.roi-action__label{letter-spacing:.02em;text-transform:uppercase;font-weight:600;text-align:center;line-height:1.2}.roi-item__delete{width:28px;height:28px;border-radius:6px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:#ffffffb3;display:grid;place-items:center;font-size:1rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}.roi-item__delete:hover{background:#b0002052;border-color:#b000207a;color:#fff;transform:translateY(-1px)}.roi-item__delete:focus-visible{outline:2px solid rgba(176,0,32,.6);outline-offset:2px}.roi-sublist{list-style:none;margin:6px 0 0 18px;padding:6px 0 0 12px;border-left:1px solid rgba(255,255,255,.07);display:flex;flex-direction:column;gap:6px}.roi-list:empty:before{content:"No regions yet";display:block;padding:12px;border-radius:10px;text-align:center;background:#ffffff0a;border:1px dashed rgba(255,255,255,.12);color:var(--muted);font-size:.85rem}.roof-slider__row--actions{gap:16px}.roof-slider__action{padding:6px 14px;border-radius:6px;border:1px solid #444;background:#2f2f2f;color:var(--text);cursor:pointer;transition:background .12s ease,border-color .12s ease}.roof-slider__action:hover{background:#3a3a3a;border-color:#4c4c4c}.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:.85rem;color:var(--muted)}.roof-slider__value-btn{padding:4px 12px;border-radius:6px;border:1px solid #444;background:#2a2a2a;color:var(--text);cursor:pointer;transition:background .12s ease,border-color .12s ease}.roof-slider__value-btn:hover{background:#343434;border-color:#505050}.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:#565555;border-color:#ccc}#stage_panel :where(a.scan__btn,button.scan__btn):active{background:#eee}#stage_panel :where(a.scan__btn,button.scan__btn).scan__btn--danger{border-color:#e72626;background:var(--color-red)}#stage_panel :where(a.scan__btn,button.scan__btn).scan__btn--danger:hover{border-color:#ccc}#stage_panel :where(a.scan__btn,button.scan__btn):focus-visible{outline:2px solid #6aa6ff;outline-offset:2px}.group{border:1px solid var(--scan-bg-border);border-radius:8px;margin:8px 0;overflow:hidden}.group__hdr{display:flex;align-items:center;gap:6px;padding:8px;background:var(--scan-bg);cursor:pointer;font-size:.8rem;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:.6rem;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:.55rem;line-height:1.2;overflow:visible;transition:padding .18s ease}.scan__row:hover{background:#252525;padding:8px}.scan__thumb{width:36px;height:36px;border:1px solid #eee;border-radius:6px;object-fit:cover;background:#f7f7f7;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:#d0d0d0;box-shadow:0 6px 16px #00000052}.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:.46rem}.scan__files th,.scan__files td{padding:3px 5px;border-bottom:1px solid #eee;text-align:left}.files td.name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;max-width:540px;overflow:hidden;text-overflow:ellipsis}.pill{font-size:12px;border:1px solid #eee;padding:2px 6px;border-radius:999px;background:#fff}.hidden{display:none}.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%}.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:#fff}.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: #4a4a4a;--single-slider-fill-color: linear-gradient(90deg, #4da3ff 0%, #7f5bff 100%);--single-slider-progress: 0%;-webkit-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:var(--single-slider-fill-color) 0 / var(--single-slider-progress, 0%) 100% no-repeat,var(--single-slider-track-color);position:relative}input[type=range]::-moz-range-track{height:var(--single-slider-track-height);border-radius:calc(var(--single-slider-track-height) / 2);background:var(--single-slider-track-color)}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)}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 #4da3ff;background:#1c1c1c;margin-top:calc((var(--single-slider-track-height) - var(--single-slider-thumb-size)) / 2);box-shadow:0 0 #4da3ff00;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 #4da3ff;background:#1c1c1c;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 #4da3ff;background:#1c1c1c;transition:box-shadow .12s ease}input[type=range]:hover::-webkit-slider-thumb{box-shadow:0 0 0 3px #4da3ff33}input[type=range]:hover::-moz-range-thumb,input[type=range]:hover::-ms-thumb{box-shadow:0 0 0 3px #4da3ff33}input[type=range]:focus-visible{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px #4da3ff59}input[type=range]:focus-visible::-moz-range-thumb,input[type=range]:focus-visible::-ms-thumb{box-shadow:0 0 0 3px #4da3ff59}.dual-range-slider{position:relative;width:100%;height:36px;display:flex;align-items:center}.dual-range-slider__track{position:relative;flex:1;height:6px;border-radius:3px;background:#4a4a4a}.dual-range-slider__fill{position:absolute;top:0;bottom:0;border-radius:3px;background:linear-gradient(90deg,#4da3ff,#7f5bff)}.dual-range-slider__handle{position:absolute;top:50%;width:18px;height:18px;border-radius:50%;border:2px solid #4da3ff;background:#1c1c1c;transform:translate(-50%,-50%);cursor:pointer;touch-action:none;transition:box-shadow .12s ease}.dual-range-slider__handle--max{border-color:#7f5bff}.dual-range-slider__handle:hover{box-shadow:0 0 0 3px #4da3ff33}.dual-range-slider__handle--max:hover{box-shadow:0 0 0 3px #7f5bff33}.dual-range-slider__handle:focus-visible{outline:none;box-shadow:0 0 0 3px #4da3ff59}.dual-range-slider__handle--max:focus-visible{box-shadow:0 0 0 3px #7f5bff59}.dual-range-slider--disabled .dual-range-slider__handle{cursor:default}.roi-item{display:flex;align-items:center;justify-content:space-between;gap:8px}.roi-actions{display:flex;align-items:center;gap:8px}.roi-toggle{display:inline-flex;align-items:center;gap:4px;font-size:12px;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}#dat-modal .dat-backdrop{position:fixed;inset:0;background:#00000080;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:#fff;border-radius:12px;box-shadow:0 10px 40px #00000040;overflow:hidden;display:grid;grid-template-rows:auto auto 1fr auto;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;z-index:2000001}.dat-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #eee}.dat-title{margin:0;font-weight:600;font-size:16px;line-height:1.2}.dat-close{border:0;background:transparent;font-size:22px;line-height:1;cursor:pointer}.dat-toolbar{position:relative;z-index:1;width:100%;display:flex;flex-direction:column;gap:10px;padding:12px;border-bottom:1px solid #eee;background:#fff}.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:12px;color:#666}.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 #ddd;border-radius:8px;background:#fff;cursor:pointer}.dat-btn:hover{background:#f8f9fb}.dat-btn--addloc{background:#19a24b;color:#fff;border:none}.dat-btn--addloc:hover{background:#169043;color:#fff}.dat-cc{position:relative}.dat-cc-input{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:8px;outline:none}.dat-cc-input:focus{border-color:#b9cdf4;box-shadow:0 0 0 3px #5887ff2b}.dat-cc .dat-cc-list:not([aria-portal="1"]){position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:99999;background:#fff;border:1px solid #eee;border-radius:8px;box-shadow:0 6px 18px #00000014;max-height:220px;overflow:auto;display:none}.dat-cc-list[aria-portal="1"]{position:absolute;z-index:1;background:#fff;border:1px solid #eee;border-radius:8px;box-shadow:0 6px 18px #00000014;max-height:220px;overflow:auto;display:none}.dat-cc-list [role=option]{padding:8px 10px;cursor:pointer}.dat-cc-list [role=option]:hover{background:#f5f7fb}#dat-modal .dat-window{width:min(880px,92vw);max-height:82vh}.dat-toolbar__row{grid-template-columns:minmax(0,.95fr) minmax(0,.95fr) auto;column-gap:16px}.dat-field{min-width:0}.dat-field select.dat-input{position:relative;z-index:5;background:#fff}.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:#ffffffd1;z-index:3}.dat-loading-overlay.is-hidden{display:none}.dat-loading-spinner{width:38px;height:38px;border-radius:999px;border:4px solid #e5e7eb;border-top-color:#95c121;animation:dat-spin .9s linear infinite}.dat-loading-text{margin:0;font-size:14px;color:#0f172a}@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;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:999px;border:1px solid #d0d5dd;background:#f8f9fb;color:#4a5568;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.dat-step-btn[aria-current=step]{background:#1967d2;color:#fff;border-color:#1967d2;box-shadow:0 4px 10px #1967d240}.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:#1967d21f;color:#1967d2;font-size:.75rem;font-weight:600}.dat-step-btn[aria-current=step] .dat-step-index{background:#fff3;color:#fff}.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 #eee;background:#fff;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{padding:9px 16px;border-radius:999px;border:1px solid #d0d5dd;background:#fff;color:#333;font-weight:500;cursor:pointer;transition:all .15s ease}.dat-nav-btn.primary{background:#1967d2;color:#fff;border-color:#1967d2}.dat-nav-btn[disabled]{opacity:.6;cursor:not-allowed}.dat-section{display:flex;flex-direction:column;gap:16px}.dat-section h3{margin:0;font-size:1rem;font-weight:600;color:#14213d}.dat-card{border:1px solid #e4e6eb;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px;background:#fff;box-shadow:0 2px 12px #0f172a0d}.dat-card__header{display:flex;justify-content:space-between;align-items:center;gap:8px}.dat-card__title{font-weight:600;font-size:.95rem;color:#111827}.dat-card__subtitle{font-size:.8rem;color:#6b7280}.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-field-row{display:flex;flex-direction:column;gap:6px}.dat-field-row label{font-size:.75rem;font-weight:500;color:#64748b;text-transform:uppercase;letter-spacing:.02em}.dat-field-row--full,.dat-review__grid-item--full{grid-column:1 / -1}.dat-input,.dat-select{width:100%;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;font-size:.9rem;outline:none;transition:border-color .15s ease,box-shadow .15s ease;background:#fff}.dat-input:focus,.dat-select:focus,.dat-textarea:focus{border-color:#1967d2;box-shadow:0 0 0 3px #1967d22e}.dat-textarea{min-height:80px;resize:vertical;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;font-size:.9rem}.dat-input.small{max-width:160px}.dat-hidden-input{display:none}.dat-device-empty,.dat-roi-empty{padding:20px;border:1px dashed #cbd5e1;border-radius:12px;text-align:center;color:#6b7280;font-size:.9rem;background:#fafbfd}.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:#6b7280;padding:4px;border-radius:6px}.dat-icon-btn:hover{color:#ef4444}.dat-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:.75rem}.dat-roi-card{border:1px solid #e5e7eb;border-radius:12px;padding:0;background:#fff;box-shadow:0 2px 10px #0f172a0f;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:#f9fafb;border-bottom:1px solid #e5e7eb;font-weight:600;font-size:.95rem}.dat-roi-card[open]>summary{background:#eef2ff}.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:.8rem;color:#6366f1}.dat-roi-card__status{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.dat-roi-card__status.complete{background:#22c55e29;color:#15803d}.dat-roi-card__status.missing{background:#ef444429;color:#b91c1c}.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 #e5e7eb;border-radius:10px;overflow:hidden;background:#fff;display:flex;flex-direction:column;gap:6px}.dat-roi-image__preview{position:relative;padding-top:70%;background:#f8fafc;overflow:hidden}.dat-roi-image__preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.dat-roi-image__placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#64748b}.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 #d1d5db;border-radius:8px;font-size:.8rem;box-sizing:border-box}.dat-roi-image__actions{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:#64748b}.dat-addloc-backdrop{position:fixed;inset:0;background:#00000059;z-index:2000002;display:none;align-items:center;justify-content:center}.dat-addloc{background:#fff;border-radius:12px;padding:16px;width:min(420px,90vw);box-shadow:0 12px 48px #00000040;display:flex;flex-direction:column;gap:12px}.dat-addloc h3{margin:0;font-size:1rem}.dat-addloc .dat-field-row{display:flex;flex-direction:column;gap:6px}.dat-addloc .dat-field-row input{padding:8px 10px;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem}.dat-addloc__actions{display:flex;justify-content:flex-end;gap:8px}.dat-addloc__actions button{padding:8px 12px;border-radius:8px;border:1px solid #d1d5db;cursor:pointer}.dat-addloc__actions .primary{background:#19a24b;color:#fff;border:none}.dat-addloc__error{color:#b91c1c;font-size:.9rem;min-height:20px}.dat-review{display:flex;flex-direction:column;gap:16px}.dat-review__section{border:1px solid #e5e7eb;border-radius:12px;padding:16px;background:#fff;box-shadow:0 1px 8px #0f172a0d;list-style:none}.dat-review__section h4{margin:0 0 8px;font-size:.95rem;font-weight:600;color:#111827}.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 #e5e7eb;border-radius:10px;padding:12px 14px;background:#f8fafc;box-shadow:0 1px 4px #0f172a0a}.dat-review__roi-title{font-weight:700;color:#0f172a;margin-bottom:4px}.dat-review__roi-meta{color:#475569;font-size:.9rem}.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:.85rem;color:#0f172a;padding:6px 8px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.dat-review__progress-name{font-weight:600}.dat-review__progress-status{color:#475569}.dat-review__json{max-height:220px;overflow:auto;background:#0f172a;color:#e2e8f0;padding:14px;border-radius:10px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.78rem}.dat-progress-slot{width:100%}.dat-review__progress{margin-top:14px;padding-top:12px;border-top:1px solid #e5e7eb;display:flex;flex-direction:column;gap:12px}.dat-review__progress-title{font-size:.85rem;font-weight:600;color:#111827;margin:0}.dat-progress__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.dat-progress__success{background:#22c55e29;color:#15803d;border:1px solid rgba(34,197,94,.35);text-align:center;font-weight:600;border-radius:10px;padding:10px}.dat-progress__error{background:#ef444424;color:#b91c1c;border:1px solid rgba(239,68,68,.25);text-align:center;font-weight:600;border-radius:10px;padding:10px}.dat-status-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;font-size:.82rem;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:999px;background:#f1f5f9;border:1px solid #e2e8f0;font-size:.9rem}.dat-chip__label{color:#475569;font-weight:500}.dat-chip__value{color:#0f172a;font-weight:600}.dat-status-chip--idle{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.dat-status-chip--success{background:#22c55e24;color:#047857;border:1px solid rgba(34,197,94,.25)}.dat-status-chip--error{background:#ef444424;color:#b91c1c;border:1px solid rgba(239,68,68,.25)}.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:10px;border:1px solid #e2e8f0;background:#f8fafc}.dat-upload-item__meta{display:flex;flex-direction:column;gap:4px}.dat-upload-item__name{font-weight:600;color:#0f172a}.dat-upload-item__extra{font-size:.78rem;color:#64748b}.dat-upload-status{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.dat-upload-status--queued{background:#eef2ff;color:#4338ca}.dat-upload-status--uploading,.dat-upload-status--processing{background:#3b82f626;color:#1d4ed8}.dat-upload-status--uploaded{background:#22c55e24;color:#047857}.dat-upload-status--error{background:#ef444424;color:#b91c1c}.dat-upload-status--removed{background:#f1f5f9;color:#475569}.dat-hint{font-size:.8rem;color:#64748b}.dat-inline-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;font-size:.7rem;background:#f1f5f9;color:#475569}@media (max-width: 720px){.dat-step-btn{font-size:.8rem;padding:8px 10px}.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}}
