:root{--color-bg:#f9fafb;--color-bg-elevated:#fff;--color-surface:#fff;--color-surface-2:#f4f6f8;--color-surface-3:#e8ecf0;--color-border:#eaecef;--color-border-soft:#f2f4f6;--color-border-strong:#d0d6de;--color-divider:#f2f4f6;--color-text:#111827;--color-text-strong:#030712;--color-text-muted:#4b5563;--color-text-subtle:#9ca3af;--color-text-faint:#d1d5db;--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-primary-active:#3730a3;--color-primary-soft:#eef2ff;--color-primary-text:#fff;--grad-primary:linear-gradient(135deg,#4f46e5,#7c3aed);--grad-accent:linear-gradient(135deg,#6366f1,#8b5cf6 50%,#ec4899);--color-accent:#7c3aed;--color-success:#059669;--color-success-soft:#ecfdf5;--color-warning:#d97706;--color-warning-soft:#fffbeb;--color-danger:#dc2626;--color-danger-soft:#fef2f2;--color-info:#0891b2;--color-info-soft:#ecfeff;--color-topbar:#0b1220;--color-topbar-2:#131c30;--color-topbar-text:#f8fafc;--color-topbar-mute:#94a3b8;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-2xl:24px;--radius-full:999px;--shadow-xs:0 1px 2px rgba(15,23,42,.04);--shadow-sm:0 2px 4px -1px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);--shadow-md:0 4px 12px -2px rgba(15,23,42,.08),0 2px 4px -1px rgba(15,23,42,.04);--shadow-lg:0 12px 32px -4px rgba(15,23,42,.1),0 4px 8px -2px rgba(15,23,42,.04);--shadow-xl:0 24px 56px -8px rgba(15,23,42,.18),0 8px 16px -4px rgba(15,23,42,.06);--shadow-glow:0 0 0 4px rgba(79,70,229,.12);--ring-primary:0 0 0 3px rgba(79,70,229,.18);--ring-danger:0 0 0 3px rgba(220,38,38,.18);--font:var(--font-sans),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:var(--font-mono),"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--fs-2xs:10px;--fs-xs:11px;--fs-sm:12px;--fs-base:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:26px;--fs-3xl:32px;--line-tight:1.2;--line-snug:1.35;--line-normal:1.5;--line-relaxed:1.65;--tracking-tight:-0.01em;--tracking-normal:0;--tracking-wide:0.02em;--tracking-wider:0.04em;--tracking-widest:0.08em;--t-instant:80ms cubic-bezier(0.4,0,0.2,1);--t-fast:140ms cubic-bezier(0.4,0,0.2,1);--t-base:220ms cubic-bezier(0.4,0,0.2,1);--t-slow:360ms cubic-bezier(0.4,0,0.2,1);--t-spring:500ms cubic-bezier(0.34,1.56,0.64,1)}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;font-family:var(--font);font-size:var(--fs-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01";text-rendering:optimizeLegibility}body{line-height:var(--line-normal);letter-spacing:var(--tracking-tight)}button{cursor:pointer}button,input,select,textarea{font-family:inherit;letter-spacing:var(--tracking-tight)}input,select,textarea{font-size:var(--fs-md);color:var(--color-text)}:focus-visible{outline:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:99px;-webkit-transition:background var(--t-fast);transition:background var(--t-fast)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-subtle)}::-webkit-scrollbar-track{background:transparent}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 rgba(79,70,229,.5)}to{box-shadow:0 0 0 12px rgba(79,70,229,0)}}@keyframes slide-in-right{0%{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}.spinner{display:inline-block;flex-shrink:0;border:2px solid var(--color-surface-3);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}.spinner-xs{width:10px;height:10px;border-width:1.5px}.spinner-sm{width:12px;height:12px;border-width:2px}.spinner-md{width:16px;height:16px;border-width:2px}.spinner-lg{width:28px;height:28px;border-width:3px}.opl{display:inline-flex;gap:12px}.opl,.opl-overlay{flex-direction:column;align-items:center;justify-content:center}.opl-overlay{position:absolute;inset:0;z-index:40;display:flex;gap:16px;background:var(--opl-bg,rgba(9,9,11,.74));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn var(--t-fast) ease both}.opl-ring{position:relative;width:var(--opl-size,72px);height:var(--opl-size,72px)}.opl-ring:after,.opl-ring:before{content:"";position:absolute;inset:0;border-radius:50%}.opl-ring:before{border:3px solid var(--opl-track,hsla(0,0%,100%,.14))}.opl-ring:after{border-left:3px solid transparent;border-bottom:3px solid transparent;border-top:3px solid transparent;border-top-color:var(--opl-accent,#fff);border-right:3px solid transparent;border-right-color:var(--opl-accent,#fff);animation:opl-spin 1s linear infinite}.opl-ring img{position:absolute;top:50%;left:50%;width:calc(var(--opl-size, 72px) * .5);height:calc(var(--opl-size, 72px) * .5);transform:translate(-50%,-50%);animation:opl-drop 1.6s ease-in-out infinite}.opl-label{font-size:var(--fs-sm,12px);font-weight:600;letter-spacing:.02em;color:var(--opl-label,hsla(0,0%,100%,.85));animation:opl-pulse 1.6s ease-in-out infinite}.opl--light{--opl-track:hsla(0,0%,5%,.12);--opl-accent:#0e0e0e;--opl-label:var(--color-text-muted)}.opl-overlay--light{--opl-bg:hsla(60,11%,96%,.8)}.opl--card{padding:24px 34px;background:hsla(0,0%,100%,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:18px;border:1px solid hsla(0,0%,100%,.7);box-shadow:0 12px 34px -6px rgba(16,19,26,.22),0 2px 8px rgba(16,19,26,.08)}@keyframes opl-spin{to{transform:rotate(1turn)}}@keyframes opl-drop{0%,to{transform:translate(-50%,-56%)}50%{transform:translate(-50%,-44%)}}@keyframes opl-pulse{0%,to{opacity:.55}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.opl-label,.opl-ring img,.opl-ring:after{animation-duration:2.4s}}.mono{font-family:var(--font-mono)}.mono,.tabular{font-feature-settings:"tnum"}.tabular{font-variant-numeric:tabular-nums}.grad-text{background:var(--grad-primary);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.anim-fadeIn{animation:fadeIn var(--t-base) ease both}.anim-slideUp{animation:fadeSlideUp var(--t-base) ease both}.anim-scaleIn{animation:scaleIn var(--t-base) ease both}.card-head{display:flex;align-items:center;gap:10px;width:100%;background:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-align:left;transition:background var(--t-fast),border-color var(--t-base)}.card-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;color:inherit;font:inherit}.card-toggle:hover{background:var(--color-surface-2)}.card-toggle:active{background:var(--color-surface-3)}.card-toggle:focus-visible{box-shadow:inset var(--ring-primary);border-radius:var(--radius-md)}.card-summary{animation:fadeIn var(--t-base) ease both}.pzt-cta-primary{background:var(--grad-primary);color:#fff;border:1px solid transparent;box-shadow:0 6px 16px -5px rgba(79,70,229,.5);transition:box-shadow var(--t-fast),transform var(--t-fast),filter var(--t-fast)}.pzt-cta-primary:hover{filter:brightness(1.07);transform:translateY(-1px);box-shadow:0 9px 22px -5px rgba(79,70,229,.6)}.pzt-cta-primary:active{transform:translateY(0);filter:brightness(.96)}.pzt-cta-primary:disabled{filter:saturate(.6) brightness(1.02);box-shadow:none;transform:none;cursor:wait}.pzt-cta-primary:focus-visible{box-shadow:0 0 0 3px rgba(79,70,229,.32),0 6px 16px -5px rgba(79,70,229,.5)}.pzt-action-tile:focus-visible{box-shadow:inset 0 0 0 2px var(--color-primary);border-color:var(--color-primary)!important}.pzt-cta-secondary{transition:filter var(--t-fast),box-shadow var(--t-fast)}.pzt-cta-secondary:hover{filter:brightness(.97);box-shadow:0 2px 8px rgba(79,70,229,.18)}.pzt-cta-secondary:active{filter:brightness(.93)}.pzt-cta-secondary:focus-visible{box-shadow:0 0 0 3px rgba(79,70,229,.28)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.maplibregl-popup-content{padding:12px 14px!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-lg)!important;font-family:var(--font);border:1px solid var(--color-border)!important}.maplibregl-popup-close-button{font-size:18px!important;color:var(--color-text-muted)!important;padding:2px 8px!important}.maplibregl-ctrl-scale{background:hsla(0,0%,100%,.96)!important;border-color:var(--color-border-strong)!important;border-radius:6px!important;font-family:var(--font)!important;font-size:11px!important;font-weight:600!important;padding:3px 8px!important;color:var(--color-text-muted)!important;box-shadow:var(--shadow-sm)!important}.maplibregl-ctrl-attrib{font-size:10px!important;background:hsla(0,0%,100%,.88)!important;border-radius:4px!important}.maplibregl-ctrl-group{border-radius:var(--radius-md)!important;box-shadow:var(--shadow-md)!important;border:1px solid var(--color-border)!important;overflow:hidden}.maplibregl-ctrl-group button{background:#fff!important}.maplibregl-ctrl-group button:hover{background:var(--color-surface-2)!important}.scene3d-card canvas{width:100%!important;height:100%!important;display:block}.app-shell-row{position:relative}.app-shell-row[data-report-overlay=open]{overflow:hidden}.report-panel{display:flex;flex-direction:column;min-height:0;background:var(--color-bg)}.report-panel--column{width:560px;flex:0 0 auto;height:100%;overflow:hidden}.report-panel--hidden{display:none!important}.report-panel--overlay{position:absolute;inset:0;z-index:60;display:flex;flex-direction:column;background:var(--color-bg);overflow:hidden}.report-panel__bar{display:flex;align-items:center;gap:8px;flex-shrink:0;padding:9px 14px;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.report-panel__bar--sticky{position:-webkit-sticky;position:sticky;top:0;z-index:1}.report-panel__bar-spacer{flex:1 1 auto}.report-panel__bar-title{font:700 10px/1 system-ui;letter-spacing:.11em;text-transform:uppercase;color:var(--color-text-muted)}.report-panel__parcel{font:500 11px/1 system-ui;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%}.report-panel__back,.report-panel__collapse{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 10px;border:1px solid var(--color-border);border-radius:8px;background:#fff;color:var(--color-text-strong);font:600 12px/1 system-ui;cursor:pointer}@media (max-width:768px){.report-panel__back{min-height:44px}}.workspace-scene-bar{display:flex;align-items:center;gap:10px;flex-shrink:0;padding:7px 12px;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.workspace-scene-bar__mode{font:700 10px/1 system-ui;letter-spacing:.11em;text-transform:uppercase;color:var(--color-text-muted)}.report-handle-floating{position:absolute;top:12px;left:12px;z-index:40}.pzt-2d-view{flex-direction:row;overflow:hidden}.pzt-2d-view .pzt-2d-sheet-area{flex:1 1;overflow:auto}.pzt-2d-view .pzt-tools-col{width:264px;flex-shrink:0;overflow:hidden}@media (max-width:1100px){.pzt-2d-view{flex-direction:column;overflow-y:auto;overflow-x:hidden}.pzt-2d-view .pzt-2d-sheet-area{flex:0 0 auto;min-height:clamp(240px,38vh,460px);overflow:visible}.pzt-2d-view .pzt-tools-col{width:100%;flex:0 0 auto;overflow:visible}}.pzt-3d-view{flex-direction:row;overflow:hidden}.pzt-3d-view .pzt-3d-stage{flex:1 1 auto;min-width:0}.pzt-3d-view .pzt-tools-col{width:264px;overflow-y:auto;overscroll-behavior:contain}.pzt-3d-view .pzt-layer-panel{min-height:200px}@media (max-width:1100px){.pzt-3d-view{flex-direction:column;overflow-y:auto;overflow-x:hidden}.pzt-3d-view .pzt-3d-stage{flex:0 0 auto;min-height:clamp(220px,34vh,420px)}.pzt-3d-view .pzt-tools-col{width:100%;flex:0 0 auto;overflow-y:visible}}@media (max-width:1100px) and (orientation:landscape) and (max-height:600px){.pzt-3d-view .pzt-3d-stage{min-height:clamp(200px,62vh,380px)}}@media (max-width:640px){.pzt-3d-view .sun-panel-header{min-height:44px}}.pzt-3d-view .pzt-3d-infochip,.pzt-3d-view .pzt-3d-legend{display:flex}@media (max-width:768px){.pzt-3d-view .pzt-3d-infochip,.pzt-3d-view .pzt-3d-legend{display:none}}@media (max-width:640px){.pzt-3d-view .pzt-3d-layers-header{min-height:44px}.pzt-3d-view .pzt-layer-panel[data-layers-open=false]{min-height:0}}