@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-duration:initial}}}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.static{position:static}.top-1\/2{top:50%}.z-\[999\]{z-index:999}.container{width:100%}.flex{display:flex}.hidden{display:none}.table{display:table}.min-h-screen{min-height:100vh}.w-full{width:100%}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.items-center{align-items:center}.justify-center{justify-content:center}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[\#4070f4\]{border-color:#4070f4}.bg-\[\#2E3192\]{background-color:#2e3192}.bg-transparent{background-color:#0000}.text-center{text-align:center}.text-left{text-align:left}.text-\[\#2E3192\]{color:#2e3192}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}.peer-valid\:text-\[\#4070f4\]:is(:where(.peer):valid~*),.peer-focus\:text-\[\#4070f4\]:is(:where(.peer):focus~*){color:#4070f4}@media(hover:hover){.hover\:bg-\[\#23256d\]:hover{background-color:#23256d}.hover\:underline:hover{text-decoration-line:underline}}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{background-color:#f7f6f6;font-family:Krub,sans-serif}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;position:relative;overflow:hidden}.wave-top{position:fixed;top:0;left:0;right:0;transform:rotate(180deg);z-index:1;pointer-events:none;margin:0;padding:0;line-height:0}.wave-bottom{position:fixed;bottom:0;left:0;right:0;z-index:1;pointer-events:none;margin:0;padding:0;line-height:0}.wave-top svg,.wave-bottom svg{display:block;margin:0;padding:0}.login-card{max-width:28rem;width:100%;background-color:#fff;border-radius:1.5rem;box-shadow:0 10px 15px -3px #0000001a;padding:2rem;z-index:10;position:relative}.login-title{font-size:1.875rem;font-weight:700;margin-bottom:.5rem;color:#1f2937}.login-subtitle{color:#4b5563;text-align:left;margin-bottom:1.5rem}.login-form{padding-bottom:1rem}.floating-label-group{position:relative;height:3rem;margin-top:1rem;margin-bottom:1rem}.floating-input{width:100%;height:100%;background-color:transparent;outline:none;padding-left:1rem;padding-right:2.5rem;font-size:1rem;border-radius:.75rem;border:1px solid #4070f4;transition:all .15s ease}.floating-input:focus{box-shadow:0 0 0 2px #4070f44d}.floating-label{position:absolute;top:50%;transform:translateY(-50%);background-color:#fff;left:1rem;padding-left:.5rem;padding-right:.5rem;font-weight:300;font-size:1rem;color:#6b7280;transition:all .15s ease;pointer-events:none}.floating-input:not(:-moz-placeholder)~.floating-label{top:0;left:.75rem;font-size:.875rem;color:#4070f4}.floating-input:focus~.floating-label,.floating-input:not(:placeholder-shown)~.floating-label{top:0;left:.75rem;font-size:.875rem;color:#4070f4}.password-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);cursor:pointer;color:#6b7280;background:none;border:none;padding:0;display:flex;align-items:center;justify-content:center;z-index:2}.password-toggle:hover{color:#4b5563}.login-button{width:100%;background-color:#2e3192;color:#fff;padding:.75rem;border-radius:.5rem;border:none;cursor:pointer;transition:background-color .3s;font-weight:700;font-size:1rem}.login-button:hover:not(:disabled){background-color:#23256d}.login-button:disabled{opacity:.5;cursor:not-allowed}.register-text{margin-top:2rem;font-size:.875rem;text-align:center;color:#4b5563}.register-link{color:#2e3192;font-weight:700;text-decoration:none}.register-link:hover{text-decoration:underline}:global(.swal2-confirm.confirm-button){color:#fff!important;background-color:#2e3192!important;border-color:#2e3192!important}:global(.swal2-confirm.confirm-button:hover){background-color:#23256d!important;border-color:#23256d!important}.loading-layers-container{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem 0}.loading-layer{width:200px;height:8px;background-color:#e5e7eb;border-radius:4px;position:relative;overflow:hidden}.loading-layer-fill{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,#2e3192,#4070f4);border-radius:4px;transition:width .3s ease;box-shadow:0 0 10px #2e319280}.loading-layer-text{font-size:.875rem;color:#4b5563;margin-top:.25rem;min-height:20px;font-weight:500}.loading-layer-text.completed{color:#2e3192}.loading-layer-text .check-icon{color:#10b981;margin-right:.25rem}.success-animation{display:flex;flex-direction:column;align-items:center;gap:1rem}.success-checkmark{width:80px;height:80px;border-radius:50%;background-color:#10b981;display:flex;align-items:center;justify-content:center;animation:scaleIn .5s ease}.success-checkmark i{color:#fff;font-size:3rem}@keyframes scaleIn{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.success-message{font-size:1.25rem;font-weight:700;color:#2e3192;animation:fadeIn .5s ease .3s both}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.custom-loading-popup{border-radius:1rem!important;padding:2rem!important}.custom-loading-popup .swal2-title{font-size:1.5rem!important;color:#1f2937!important;margin-bottom:1.5rem!important}html,body,#root{height:100%;margin:0;padding:0;overflow:hidden}.home-container{position:relative;height:100vh}.home-header{display:flex;align-items:center;padding:.5rem 1rem;background-color:#2e3192;color:#fff;box-shadow:0 2px 4px #0000001a;z-index:1001}.home-header-logo{font-size:1.5rem;font-weight:700;background-color:#1a73e8;padding:.25rem .75rem;border-radius:.25rem;margin-right:1rem}.home-header-user{margin-left:auto;width:2rem;height:2rem;background-color:#9ca3af;border-radius:50%;padding:.25rem;cursor:pointer;transition:background-color .2s}.home-header-user:hover{background-color:#6b7280}.map-container{position:absolute;inset:0;width:100%;height:100%}.map-wrapper{position:absolute;inset:0;z-index:10}.sidebar-toggle{position:absolute;top:4.5rem;left:1rem;z-index:998;background-color:#2e3192;color:#fff;padding:.75rem 1rem;border-radius:.375rem;border:none;box-shadow:0 4px 6px #0000001a;cursor:pointer;transition:background-color .2s;min-width:3rem}.sidebar-toggle:hover{background-color:#23256d}.map-controls{position:absolute;bottom:1rem;left:1rem;z-index:998;display:flex;flex-direction:column;gap:.5rem}.map-control-btn{background-color:#fff;color:#374151;padding:.5rem;border-radius:.375rem;border:none;box-shadow:0 4px 6px #0000001a;cursor:pointer;transition:background-color .2s,color .2s}.map-control-btn:hover{background-color:#f3f4f6}.map-control-btn.active{background-color:#2e3192;color:#fff}.map-control-btn.active:hover{background-color:#23256d}.leaflet-container{height:100%;width:100%;font-family:Krub,sans-serif}.leaflet-top.leaflet-right{top:4rem}.dropdown-user-container{margin-left:auto;position:relative}.dropdown-user-button{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:0;cursor:pointer;outline:none}.dropdown-user-button:focus{outline:none}.dropdown-user-button:focus-visible{outline:none}.dropdown-user-avatar{width:2.5rem;height:2.5rem;border-radius:50%;cursor:pointer;-o-object-fit:cover;object-fit:cover}.dropdown-user-icon{width:2.5rem;height:2.5rem;background-color:#9ca3af;border-radius:50%;padding:.5rem;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center}.dropdown-user-icon:hover{background-color:#6b7280}.dropdown-user-menu{position:absolute;top:100%;right:0;margin-top:.5rem;width:16rem;background-color:#fff;border-radius:.375rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;z-index:1002;transform-origin:top right;transition:all .2s ease-out}.dropdown-user-menu.hidden{opacity:0;transform:scale(.95);visibility:hidden;pointer-events:none}.dropdown-user-menu.visible{opacity:1;transform:scale(1);visibility:visible;pointer-events:auto}.dropdown-user-info{padding:1rem;display:flex;align-items:center;gap:.75rem}.dropdown-user-info-avatar{width:3rem;height:3rem;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.dropdown-user-info-icon{width:3rem;height:3rem;color:#9ca3af;flex-shrink:0}.dropdown-user-info-details{flex:1;min-width:0}.dropdown-user-info-name{font-weight:700;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-user-info-email{font-size:.875rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-user-info-storage{font-size:.875rem;color:#dc2626;font-weight:700;margin-top:.25rem}.dropdown-user-divider{height:1px;background-color:#e5e7eb;margin:0;border:none}.dropdown-user-menu-items{padding:.5rem 0}.dropdown-user-menu-item{width:100%;display:flex;align-items:center;padding:.5rem 1rem;color:#374151;background:none;border:none;cursor:pointer;text-align:left;transition:background-color .15s ease;font-size:.875rem}.dropdown-user-menu-item:hover{background-color:#f3f4f6}.dropdown-user-menu-item-icon{width:1.25rem;height:1.25rem;color:#4b5563;margin-right:.75rem;flex-shrink:0}.dropdown-user-logout{padding:.5rem 0}.dropdown-user-logout-button{width:100%;display:flex;align-items:center;padding:.5rem 1rem;color:#374151;background:none;border:none;cursor:pointer;text-align:left;transition:background-color .15s ease;font-size:.875rem}.dropdown-user-logout-button:hover{background-color:#f3f4f6}.dropdown-user-logout-icon{width:1.25rem;height:1.25rem;color:#4b5563;margin-right:.75rem;flex-shrink:0}.navbar{display:flex;align-items:center;padding:.5rem 1rem;background-color:#4f4949a6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;box-shadow:0 2px 8px #00000026;z-index:1001;position:fixed;top:0;left:0;right:0;width:100%}.navbar-menu-toggle{color:#fff;padding:.5rem;margin-right:.5rem;border-radius:.375rem;background:none;border:none;cursor:pointer;transition:background-color .2s;display:flex;align-items:center;justify-content:center}.navbar-menu-toggle:hover{background-color:#fff3}.navbar-divider{color:#ffffff4d;font-size:1.5rem;margin:0 .5rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.navbar-logo{font-size:1.5rem;font-weight:700;background-color:#2e3192;width:2.5rem;height:2.5rem;border-radius:50%;margin-right:1rem;color:#fff;display:flex;align-items:center;justify-content:center}.navbar-created-container{position:relative}.navbar-created-button{display:flex;align-items:center;color:#fff;background:none;border:none;padding:.5rem;border-radius:.375rem;cursor:pointer;transition:background-color .2s}.navbar-created-button:hover{background-color:#fff3}.navbar-created-icon{margin-left:.25rem}.navbar-created-menu{position:absolute;top:100%;left:0;margin-top:.5rem;width:16rem;background-color:#fff;border-radius:.375rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;z-index:1002;transform-origin:top left;transition:all .2s ease-out}.navbar-created-menu.hidden{opacity:0;transform:scale(.95);visibility:hidden;pointer-events:none}.navbar-created-menu.visible{opacity:1;transform:scale(1);visibility:visible;pointer-events:auto}.navbar-created-menu-content{padding:0;color:#374151}.navbar-created-project{padding:1rem;background-color:#f9fafb;border-bottom:1px solid #e5e7eb}.navbar-created-project-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;color:#1f2937;font-weight:600;font-size:.875rem}.navbar-created-project-header i{font-size:1.25rem;color:#2e3192}.navbar-created-project-label{flex:1}.navbar-created-project-new{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem;background-color:#2e3192;color:#fff;border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:background-color .2s}.navbar-created-project-new:hover{background-color:#23256d}.navbar-created-project-new i{font-size:1rem}.navbar-created-divider{margin:0;border:none;border-top:1px solid #e5e7eb}.navbar-created-projects-list{padding:1rem}.navbar-created-menu-title{font-weight:600;font-size:.75rem;margin-bottom:.5rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.navbar-created-menu-item{width:100%;display:flex;align-items:center;gap:.5rem;padding:.5rem;color:#374151;text-decoration:none;border:none;background:none;border-radius:.25rem;transition:background-color .15s;cursor:pointer;text-align:left;font-size:.875rem}.navbar-created-menu-item:hover{background-color:#f3f4f6}.navbar-created-menu-item i{font-size:1rem;color:#9ca3af}.navbar-created-menu-loading{padding:.5rem 1rem;color:#6b7280;display:flex;align-items:center;gap:.5rem;font-size:.875rem}.navbar-created-menu-empty{padding:.5rem 1rem;color:#9ca3af;font-size:.875rem;text-align:center}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::-moz-selection{background:transparent}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.sidebar-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:999;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.sidebar-overlay.visible{opacity:1;visibility:visible}.sidebar{position:absolute;top:3.5rem;left:0;height:calc(100% - 3.5rem);width:18rem;background-color:#fff;z-index:1000;box-shadow:2px 0 10px #0000001a;transform:translate(-100%);transition:transform .3s ease;display:flex;flex-direction:column}.sidebar.open{transform:translate(0)}.sidebar-content{flex:1;display:flex;flex-direction:column;overflow-y:auto}.sidebar-nav{padding:.5rem;display:flex;flex-direction:column;gap:.5rem}.sidebar-nav-item{display:flex;align-items:center;padding:.75rem;border-radius:.375rem;color:#374151;text-decoration:none;transition:background-color .2s;font-weight:500}.sidebar-nav-item:hover{background-color:#f3f4f6}.sidebar-nav-item i{font-size:1.25rem;color:#4b5563;margin-right:1rem;width:1.5rem;text-align:center}.sidebar-nav-item span{flex:1}.sidebar-nav-item-divider{border-top:1px solid #e5e7eb;padding-top:.75rem;margin-top:.75rem}.sidebar-banner-container{padding:1rem}.sidebar-banner{width:100%;height:3rem;background-color:#000;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.125rem;letter-spacing:.1em}.sidebar-footer{padding:1rem;border-top:1px solid #e5e7eb}.sidebar-version{font-size:.875rem;color:#9ca3af;margin:0}.project-sidebar{position:fixed;top:0;right:0;height:100%;width:18rem;background-color:#fff;z-index:1001;box-shadow:-2px 0 10px #0000001a;transform:translate(100%);transition:transform .3s ease;display:flex;flex-direction:column}.project-sidebar.open{transform:translate(0)}.project-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid #e5e7eb}.project-sidebar-header h2{margin:0;font-size:1.125rem;font-weight:600;color:#1f2937}.project-sidebar-header-actions{display:flex;align-items:center;gap:.5rem}.project-action-btn{background:none;border:none;cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:9999px;transition:background-color .2s;color:#6b7280}.project-action-btn:hover{background-color:#f3f4f6}.project-action-btn i{font-size:1.25rem}.project-sidebar-content{flex:1;padding:.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.project-item-wrapper{display:flex;flex-direction:column;position:relative}.project-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;border-radius:.5rem;cursor:pointer;transition:background-color .2s}.project-item:hover,.project-item.expanded{background-color:#f3f4f6}.project-item-left{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.project-shared-icon{font-size:1.25rem;color:#6b7280;flex-shrink:0}.project-name{font-weight:500;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-item-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.project-item-btn{background:none;border:none;cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:9999px;transition:background-color .2s;color:#6b7280}.project-item-btn:hover{background-color:#e5e7eb}.project-item-btn i{font-size:1rem}.project-sub-items{padding-left:2rem;padding-bottom:.5rem;position:relative}.project-sub-items:before{content:"";position:absolute;left:.75rem;top:-.5rem;width:1.25rem;height:calc(100% - .5rem);border-left:2px solid #d1d5db;border-bottom:2px solid #d1d5db;border-bottom-left-radius:.5rem}.project-sub-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:.375rem;background:none;border:none;cursor:pointer;transition:background-color .2s;color:#374151;width:100%;text-align:left;position:relative}.project-sub-item:hover{background-color:#e5e7eb}.project-sub-item i{font-size:1rem;color:#6b7280}.project-sub-item span{font-weight:400}.project-sidebar-footer{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-top:1px solid #e5e7eb}.storage-label{font-size:.875rem;color:#6b7280}.storage-value{font-size:.875rem;font-weight:600;color:#dc2626}.layer-sidebar{position:fixed;top:0;right:0;height:100%;width:18rem;background-color:#fff;z-index:1001;box-shadow:-2px 0 10px #0000001a;transform:translate(100%);transition:transform .3s ease;display:flex;flex-direction:column}.layer-sidebar.open{transform:translate(0)}.layer-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid #e5e7eb}.layer-sidebar-header h2{margin:0;font-size:1.125rem;font-weight:600;color:#1f2937}.layer-sidebar-header-actions{display:flex;align-items:center;gap:.5rem}.layer-action-btn{background:none;border:none;cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:9999px;transition:background-color .2s;color:#6b7280}.layer-action-btn:hover{background-color:#f3f4f6}.layer-action-btn i{font-size:1.25rem}.layer-sidebar-content{flex:1;padding:.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.layer-item-wrapper{display:flex;flex-direction:column;position:relative}.layer-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;border-radius:.5rem;cursor:pointer;transition:background-color .2s}.layer-item:hover,.layer-item.expanded{background-color:#f3f4f6}.layer-item-left{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.layer-name{font-weight:500;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-item-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.layer-item-btn{background:none;border:none;cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:9999px;transition:background-color .2s;color:#6b7280}.layer-item-btn:hover{background-color:#e5e7eb}.layer-item-btn i{font-size:1rem}.layer-sub-items{padding-left:2rem;padding-bottom:.5rem;position:relative}.layer-sub-items:before{content:"";position:absolute;left:.75rem;top:-.5rem;width:1.25rem;height:calc(100% - .5rem);border-left:2px solid #d1d5db;border-bottom:2px solid #d1d5db;border-bottom-left-radius:.5rem}.layer-sub-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:.375rem;background:none;border:none;cursor:pointer;transition:background-color .2s;color:#374151;width:100%;text-align:left;position:relative}.layer-sub-item:hover{background-color:#e5e7eb}.layer-sub-item i{font-size:1rem;color:#6b7280}.layer-sub-item span{font-weight:400}.layer-sidebar-footer{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-top:1px solid #e5e7eb}.layer-count-label{font-size:.875rem;color:#6b7280}.layer-count-value{font-size:.875rem;font-weight:600;color:#2563eb}.add-layer-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;padding:2rem;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.add-layer-modal-container{width:100%;max-width:900px;height:85vh;max-height:700px;background-color:#fff;border-radius:.75rem;box-shadow:0 20px 60px #0006;display:flex;flex-direction:column;overflow:hidden;animation:slideUp .4s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.add-layer-modal-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem;border-bottom:1px solid #e5e7eb}.add-layer-modal-header-left{display:flex;align-items:center;gap:.75rem}.add-layer-modal-title{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0}.geometry-type-toggle{display:flex;align-items:center;background-color:#e5e7eb;border-radius:.5rem;padding:.25rem;gap:.25rem}.geometry-type-btn{padding:.5rem .875rem;background:transparent;border:none;border-radius:.5rem;color:#6b7280;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:2.5rem}.geometry-type-btn i{font-size:1.5rem}.geometry-type-btn:hover{background-color:#d1d5db}.geometry-type-btn.active{background-color:#3b82f6;color:#fff}.geometry-type-btn .rotate-90{transform:rotate(90deg)}.add-layer-modal-close-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:transparent;border:none;border-radius:9999px;color:#6b7280;cursor:pointer;transition:all .2s ease}.add-layer-modal-close-btn:hover{background-color:#f3f4f6}.add-layer-modal-close-btn i{font-size:1.5rem}.add-layer-modal-content{display:flex;flex-direction:column;flex:1;overflow:hidden}.add-layer-modal-scroll{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1.25rem}.add-layer-modal-scroll::-webkit-scrollbar{width:8px}.add-layer-modal-scroll::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.add-layer-modal-scroll::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:10px}.add-layer-modal-scroll::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.add-layer-form-group{display:flex;flex-direction:column;gap:.25rem}.add-layer-label{font-size:.75rem;color:#6b7280;font-weight:400}.add-layer-section-label{font-size:.875rem;font-weight:500;color:#374151}.floating-label-group{position:relative}.floating-input{width:100%;padding:.75rem;font-size:1rem;border:1px solid #d1d5db;border-radius:.375rem;outline:none;transition:border-color .2s;background:#fff}.floating-input:focus{border-color:#3b82f6}.floating-label{position:absolute;top:50%;transform:translateY(-50%);left:.75rem;padding:0 .25rem;background-color:#fff;color:#6b7280;font-size:1rem;transition:all .2s ease;pointer-events:none}.floating-input:not(:-moz-placeholder)~.floating-label{top:0;transform:translateY(-50%);font-size:.75rem;color:#3b82f6}.floating-input:focus~.floating-label,.floating-input:not(:placeholder-shown)~.floating-label{top:0;transform:translateY(-50%);font-size:.75rem;color:#3b82f6}.floating-input:not(:focus):not(:-moz-placeholder)~.floating-label{color:#6b7280}.floating-input:not(:focus):not(:placeholder-shown)~.floating-label{color:#6b7280}.add-layer-input,.add-layer-select{width:100%;padding:.625rem .75rem;font-size:.9375rem;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;outline:none;transition:all .2s ease}.add-layer-input:focus,.add-layer-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.geometry-color-display{width:100%;padding:.75rem;background-color:#e5e7eb;border:1px solid #d1d5db;border-radius:.375rem;color:#6b7280;font-family:Courier New,monospace;font-size:.875rem;text-align:left}.base-layers-grid{margin-top:.5rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.base-layer-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem;height:6rem;background:#fff;border:1px solid #d1d5db;border-radius:.5rem;cursor:pointer;transition:all .2s ease}.base-layer-card:hover{background-color:#f9fafb;border-color:#9ca3af}.base-layer-card.selected{border:2px solid #3b82f6;background-color:#f9fafb}.base-layer-icon-wrapper{width:2.5rem;height:2.5rem;background:#fff;border-radius:9999px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;margin-bottom:.25rem}.base-layer-icon-wrapper i{font-size:1.5rem}.base-layer-name{font-size:.75rem;color:#374151;text-align:center;margin-top:.25rem}.base-layer-card.selected .base-layer-name{color:#1f2937;font-weight:500}.add-layer-modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;padding:.75rem;border-top:1px solid #e5e7eb;background-color:#f9fafb}.add-layer-modal-footer:has(.add-layer-back-btn){justify-content:space-between}.add-layer-back-btn{padding:.5rem 1rem;background-color:#f3f4f6;color:#374151;font-size:.875rem;font-weight:500;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;transition:all .2s ease}.add-layer-back-btn:hover{background-color:#e5e7eb;border-color:#9ca3af}.add-layer-back-btn:active{transform:scale(.98)}.add-layer-submit-btn{padding:.5rem 1rem;background-color:#2563eb;color:#fff;font-size:.875rem;font-weight:500;border:none;border-radius:.375rem;cursor:pointer;transition:all .2s ease}.add-layer-submit-btn:hover{background-color:#1d4ed8}.add-layer-submit-btn:active{transform:scale(.98)}.layer-tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.layer-tab-title{font-size:1rem;font-weight:600;color:#1f2937;margin:0}.add-layer-plus-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:.5rem;color:#fff;cursor:pointer;transition:all .2s ease}.add-layer-plus-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:scale(1.05)}.add-layer-plus-btn i{font-size:1.25rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;background:#f9fafb;border:2px dashed #d1d5db;border-radius:.5rem;text-align:center}.empty-state-icon{font-size:3rem;color:#9ca3af;margin-bottom:1rem}.empty-state-text{font-size:.9375rem;color:#6b7280;margin:0}.project-layers-list{display:flex;flex-direction:column;gap:.75rem}.project-layer-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;transition:all .2s ease}.project-layer-item:hover{background:#f3f4f6;border-color:#d1d5db}.project-layer-number{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;font-weight:600;color:#6b7280;flex-shrink:0}.project-layer-select{flex:1;padding:.5rem .75rem;font-size:.9375rem;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;outline:none;transition:all .2s ease}.project-layer-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.project-layer-remove-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:transparent;border:1px solid #e5e7eb;border-radius:.375rem;color:#ef4444;cursor:pointer;transition:all .2s ease;flex-shrink:0}.project-layer-remove-btn:hover{background:#fef2f2;border-color:#ef4444}.project-layer-remove-btn i{font-size:1.125rem}.table-fields-list{display:flex;flex-direction:column;gap:.75rem}.table-field-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;transition:all .2s ease}.table-field-item:hover{background:#f3f4f6;border-color:#d1d5db}.table-field-number{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;font-weight:600;color:#6b7280;flex-shrink:0;margin-top:.125rem}.table-field-inputs{flex:1;display:flex;flex-direction:column;gap:.5rem}.table-field-name-input{width:100%;padding:.5rem .75rem;font-size:.9375rem;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;outline:none;transition:all .2s ease}.table-field-name-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.table-field-type-select{width:100%;padding:.5rem .75rem;font-size:.9375rem;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;outline:none;transition:all .2s ease}.table-field-type-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.table-field-required{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#374151;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.table-field-required input[type=checkbox]{width:1rem;height:1rem;cursor:pointer;accent-color:#3b82f6}.table-field-remove-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:transparent;border:1px solid #e5e7eb;border-radius:.375rem;color:#ef4444;cursor:pointer;transition:all .2s ease;flex-shrink:0;margin-top:.125rem}.table-field-remove-btn:hover{background:#fef2f2;border-color:#ef4444}.table-field-remove-btn i{font-size:1.125rem}.field-options-container{width:100%;padding:.75rem;background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;margin-top:.25rem}.field-options-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.field-options-label{font-size:.8125rem;font-weight:600;color:#374151}.add-option-btn{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:.25rem;color:#fff;cursor:pointer;transition:all .2s ease}.add-option-btn:hover{background:linear-gradient(135deg,#059669,#047857);transform:scale(1.05)}.add-option-btn i{font-size:1rem}.field-options-list{display:flex;flex-direction:column;gap:.5rem}.field-option-item{display:flex;align-items:center;gap:.5rem}.option-bullet{font-size:1.25rem;color:#9ca3af;line-height:1;flex-shrink:0}.field-option-input{flex:1;padding:.375rem .625rem;font-size:.875rem;color:#1f2937;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.25rem;outline:none;transition:all .2s ease}.field-option-input:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.remove-option-btn{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:transparent;border:1px solid #e5e7eb;border-radius:.25rem;color:#6b7280;cursor:pointer;transition:all .2s ease;flex-shrink:0}.remove-option-btn:hover{background:#fef2f2;border-color:#ef4444;color:#ef4444}.remove-option-btn i{font-size:1rem}@media(max-width:768px){.add-layer-modal-overlay{padding:0}.add-layer-modal-container{max-width:100%;height:100vh;max-height:100vh;border-radius:0}.add-layer-modal-header{padding:.625rem}.add-layer-modal-title{font-size:1rem}.geometry-type-toggle{padding:.0625rem}.geometry-type-btn{padding:.1875rem .375rem}.geometry-type-btn i{font-size:1.125rem}.add-layer-modal-scroll{padding:.75rem}.base-layers-grid{grid-template-columns:repeat(2,1fr)}.add-layer-modal-footer{padding:.625rem}.project-layer-item,.table-field-item{flex-wrap:wrap}.table-field-inputs{width:100%}.project-layer-remove-btn,.table-field-remove-btn{margin-top:0}}.layer-toggle-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:999}.layer-toggle-card{position:absolute;top:4.5rem;left:1rem;width:22rem;height:250px;background-color:#fffc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:.5rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.layer-toggle-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem;border-bottom:1px solid #e5e7eb}.layer-toggle-header h2{margin:0;font-size:1.125rem;font-weight:600;color:#1f2937}.layer-toggle-close{background:none;border:none;cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:9999px;transition:background-color .2s;color:#6b7280}.layer-toggle-close:hover{background-color:#f3f4f6}.layer-toggle-close i{font-size:1.5rem}.layer-toggle-tabs{display:flex;align-items:center;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;padding:.5rem;gap:.25rem}.layer-toggle-tab{flex:1;padding:.5rem;border:none;background:none;color:#6b7280;font-weight:500;font-size:.875rem;border-radius:.375rem;cursor:pointer;transition:all .2s;text-align:center;white-space:nowrap;min-width:0}.layer-toggle-tab:hover{color:#111827}.layer-toggle-tab.active{background-color:#2563eb;color:#fff;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.layer-toggle-content{flex:1;padding:1rem;overflow-y:auto}.layer-toggle-content::-webkit-scrollbar{width:8px}.layer-toggle-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.layer-toggle-content::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:10px}.layer-toggle-content::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.layer-toggle-content fieldset{border:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.layer-toggle-option{margin:0}.layer-toggle-option label{display:flex;align-items:center;gap:.75rem;cursor:pointer}.layer-toggle-option span{color:#1f2937;font-weight:500}.custom-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;width:20px;height:20px;padding:3px;background-clip:content-box;border:2px solid #9ca3af;border-radius:50%;cursor:pointer;flex-shrink:0;transition:all .2s}.custom-radio:checked{background-color:#3b82f6;border-color:#3b82f6}.custom-radio:hover{border-color:#6b7280}.custom-radio:checked:hover{border-color:#2563eb}.layer-toggle-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#9ca3af;font-size:.875rem}.layer-toggle-empty p{margin:0}.fab-group{position:absolute;bottom:3rem;right:1rem;z-index:998;display:flex;flex-direction:column;align-items:flex-end;gap:1rem;min-height:400px}.fab-button{width:3.5rem;height:3.5rem;background-color:#2e3192;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;transition:background-color .2s;border:none;cursor:pointer}.fab-button:hover{background-color:#23256d}.fab-button i{font-size:1.75rem}.fab-label{background-color:#1f2937e6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:.875rem;font-weight:500;padding:.5rem 1rem;border-radius:.5rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;white-space:nowrap}.fab-item{display:flex;align-items:center;justify-content:flex-end;gap:1rem;opacity:0;transform:translateY(-20px) scale(.8);transition:all .3s ease-in-out;pointer-events:none}.fab-toggle-close{display:none}.fab-toggle-open{display:flex}.fab-group.expanded .fab-item{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.fab-group.expanded .fab-toggle-open{display:none}.fab-group.expanded .fab-toggle-close{display:flex}.photo-modal-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:10000;padding:4rem .5rem .5rem}.photo-modal{background:#fff;border-radius:8px;width:100%;max-width:480px;max-height:calc(100vh - 5rem);overflow:hidden;box-shadow:0 10px 40px #0000004d;animation:modalSlideIn .3s ease-out;display:flex;flex-direction:column}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.photo-modal-header{padding:1rem 1.25rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.photo-modal-header h2{font-size:1.1rem;font-weight:600;color:#1f2937;margin:0;display:flex;align-items:center;gap:.5rem}.photo-modal-close{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;padding:0}.photo-modal-close:hover{background-color:#f3f4f6;color:#1f2937}.photo-modal-body{padding:1rem 1.25rem;overflow-y:auto;flex:1}.image-source-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem}.source-button{padding:.75rem;border:2px solid #e5e7eb;border-radius:6px;background:#fff;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:.4rem}.source-button:hover{border-color:#3b82f6;background-color:#eff6ff}.source-button.active{border-color:#3b82f6;background-color:#dbeafe}.source-button i{font-size:1.75rem;color:#3b82f6}.source-button span{font-size:.875rem;font-weight:500;color:#374151}.image-preview-container{margin-bottom:1rem}.image-preview{width:100%;border-radius:6px;overflow:hidden;border:2px solid #e5e7eb;margin-bottom:.75rem}.image-preview img{width:100%;height:auto;max-height:200px;-o-object-fit:contain;object-fit:contain;display:block;background-color:#f9fafb}.image-preview video{width:100%;height:auto;max-height:200px;-o-object-fit:cover;object-fit:cover;display:block;background-color:#000}.camera-controls{display:flex;justify-content:center;gap:1rem}.camera-button{padding:.6rem 1.25rem;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem}.camera-button-capture{background-color:#3b82f6;color:#fff}.camera-button-capture:hover{background-color:#2563eb}.camera-button-retake{background-color:#6b7280;color:#fff}.camera-button-retake:hover{background-color:#4b5563}.form-group{margin-bottom:.85rem}.form-label{display:block;font-size:.8rem;font-weight:500;color:#374151;margin-bottom:.35rem}.form-label.required:after{content:" *";color:#ef4444}.form-input,.form-textarea{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:5px;font-size:.85rem;color:#1f2937;transition:all .2s}.form-input:focus,.form-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-textarea{resize:vertical;min-height:60px}.form-input.read-only{background-color:#f9fafb;cursor:not-allowed}.coordinates-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-bottom:0}.coordinate-field{background-color:#f9fafb;padding:.6rem;border-radius:5px;border:1px solid #e5e7eb}.coordinate-label{font-size:.7rem;font-weight:500;color:#6b7280;margin-bottom:.2rem;display:block}.coordinate-value{font-size:.8rem;font-weight:600;color:#1f2937;font-family:Courier New,monospace}.coordinate-value.loading{color:#9ca3af;font-style:italic;font-family:inherit}.hidden-input{display:none}.photo-modal-footer{padding:.85rem 1.25rem;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:.65rem;background-color:#f9fafb;border-bottom-left-radius:8px;border-bottom-right-radius:8px;flex-shrink:0}.modal-button{padding:.55rem 1.1rem;border:none;border-radius:5px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem}.modal-button-cancel{background-color:#fff;color:#374151;border:1px solid #d1d5db}.modal-button-cancel:hover{background-color:#f9fafb}.modal-button-save{background-color:#10b981;color:#fff}.modal-button-save:hover{background-color:#059669}.modal-button-save:disabled{background-color:#d1d5db;cursor:not-allowed}.error-message{background-color:#fef2f2;color:#991b1b;padding:.6rem;border-radius:5px;font-size:.8rem;margin-bottom:.75rem;border:1px solid #fecaca}@media(max-width:640px){.photo-modal-overlay{padding:3.5rem .25rem .25rem}.photo-modal{max-width:100%;max-height:calc(100vh - 4rem);border-radius:0}.photo-modal-header,.photo-modal-body{padding:.85rem 1rem}.photo-modal-footer{padding:.75rem 1rem}.image-source-buttons{grid-template-columns:1fr;gap:.6rem}.coordinates-grid{grid-template-columns:1fr;gap:.5rem}.image-preview img,.image-preview video{max-height:180px}}.export-modal-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:10000;padding:4rem .5rem .5rem}.export-modal{background:#fff;border-radius:8px;width:100%;max-width:480px;max-height:calc(100vh - 5rem);overflow:hidden;box-shadow:0 10px 40px #0000004d;animation:exportModalSlideIn .3s ease-out;display:flex;flex-direction:column}@keyframes exportModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.export-modal-header{padding:1rem 1.25rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.export-modal-header h2{font-size:1.1rem;font-weight:600;color:#1f2937;margin:0;display:flex;align-items:center;gap:.5rem}.export-modal-header h2 i{font-size:1.3rem;color:#3b82f6}.export-modal-epsg{font-size:.75rem;font-weight:500;color:#6b7280;background:#f3f4f6;padding:.25rem .5rem;border-radius:4px;margin-left:.5rem}.export-modal-close{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;padding:0}.export-modal-close:hover{background-color:#f3f4f6;color:#1f2937}.export-modal-body{padding:1.25rem;overflow-y:auto;flex:1}.export-modal-description{font-size:.875rem;color:#6b7280;margin-bottom:1.25rem;line-height:1.5}.export-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.export-type-card{border:2px solid #e5e7eb;border-radius:8px;padding:1rem;background:#fff;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;position:relative;overflow:hidden}.export-type-card:hover{border-color:#3b82f6;background-color:#eff6ff;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f626}.export-type-card.selected{border-color:#3b82f6;background-color:#dbeafe;box-shadow:0 4px 12px #3b82f633}.export-type-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:all .2s}.export-type-card:hover .export-type-icon{transform:scale(1.1)}.export-type-card[data-type=kmz] .export-type-icon{background:#fef2f2;color:#ef4444}.export-type-card[data-type=geopackage] .export-type-icon{background:#eff6ff;color:#3b82f6}.export-type-card[data-type=shapefile] .export-type-icon{background:#f0fdf4;color:#10b981}.export-type-card[data-type=csv] .export-type-icon{background:#fef3c7;color:#f59e0b}.export-type-card[data-type=photo] .export-type-icon{background:#fae8ff;color:#a855f7}.export-type-card[data-type=share] .export-type-icon{background:#ecfeff;color:#06b6d4}.export-type-name{font-weight:600;font-size:.9rem;color:#1f2937}.export-type-description{font-size:.75rem;color:#6b7280;line-height:1.3}.export-type-checkmark{position:absolute;top:.5rem;right:.5rem;width:20px;height:20px;border-radius:50%;background:#3b82f6;color:#fff;display:none;align-items:center;justify-content:center;font-size:.75rem}.export-type-card.selected .export-type-checkmark{display:flex;animation:checkmarkPop .3s ease-out}.export-modal-footer{padding:.85rem 1.25rem;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;gap:.65rem;background-color:#f9fafb;border-bottom-left-radius:8px;border-bottom-right-radius:8px;flex-shrink:0}.export-modal-info{font-size:.75rem;color:#6b7280;display:flex;align-items:center;gap:.35rem}.export-modal-info i{font-size:1rem}.export-modal-actions{display:flex;gap:.65rem}.export-modal-button{padding:.55rem 1.1rem;border:none;border-radius:5px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem}.export-modal-button-cancel{background-color:#fff;color:#374151;border:1px solid #d1d5db}.export-modal-button-cancel:hover{background-color:#f9fafb;border-color:#9ca3af}.export-modal-button-export{background-color:#3b82f6;color:#fff;border:none}.export-modal-button-export:hover{background-color:#2563eb}.export-modal-button-export:disabled{background:#d1d5db;cursor:not-allowed;transform:none;box-shadow:none}@media(max-width:640px){.export-modal-overlay{padding:3.5rem .25rem .25rem}.export-modal{max-width:100%;max-height:calc(100vh - 4rem);border-radius:0}.export-modal-header{padding:.85rem 1rem}.export-modal-body{padding:1rem}.export-modal-footer{padding:.75rem 1rem;flex-direction:column;align-items:stretch}.export-modal-info{justify-content:center;margin-bottom:.5rem}.export-modal-actions{width:100%}.export-modal-button{flex:1}.export-type-grid{grid-template-columns:1fr;gap:.65rem}.export-type-card{flex-direction:row;justify-content:flex-start;text-align:left;padding:.85rem}.export-type-icon{width:40px;height:40px;font-size:1.25rem;flex-shrink:0}.export-type-content{flex:1}.export-type-checkmark{position:static;margin-left:auto}}.export-config-modal-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:10001;padding:4rem .5rem .5rem}.export-config-modal{background:#fff;border-radius:8px;width:100%;max-width:520px;max-height:calc(100vh - 5rem);overflow:hidden;box-shadow:0 10px 40px #0000004d;animation:configModalSlideIn .3s ease-out;display:flex;flex-direction:column}@keyframes configModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.export-config-modal-header{padding:1rem 1.25rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.export-config-modal-header h2{font-size:1.1rem;font-weight:600;color:#1f2937;margin:0;display:flex;align-items:center;gap:.5rem}.export-config-modal-header h2 i{font-size:1.3rem;color:#3b82f6}.export-type-badge{font-size:.75rem;font-weight:500;color:#6b7280;background:#f3f4f6;padding:.25rem .5rem;border-radius:4px;margin-left:.5rem;text-transform:uppercase}.export-config-modal-close{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;padding:0}.export-config-modal-close:hover{background-color:#f3f4f6;color:#1f2937}.export-config-modal-body{padding:1.25rem;overflow-y:auto;flex:1}.export-config-section{margin-bottom:1.25rem}.export-config-section:last-child{margin-bottom:0}.export-config-section-title{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.65rem;display:flex;align-items:center;gap:.4rem}.export-config-section-title i{font-size:1rem;color:#6b7280}.export-config-input{width:100%;padding:.6rem .75rem;border:1px solid #d1d5db;border-radius:5px;font-size:.85rem;color:#1f2937;transition:all .2s}.export-config-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.export-config-input::-moz-placeholder{color:#9ca3af}.export-config-input::placeholder{color:#9ca3af}.export-options-list{display:flex;flex-direction:column;gap:.5rem}.export-option-item{display:flex;align-items:center;padding:.65rem;border:1px solid #e5e7eb;border-radius:5px;cursor:pointer;transition:all .2s}.export-option-item:hover{background-color:#f9fafb;border-color:#3b82f6}.export-option-item.selected{background-color:#eff6ff;border-color:#3b82f6}.export-option-radio{width:18px;height:18px;margin-right:.65rem;cursor:pointer;accent-color:#3b82f6}.export-option-label{font-size:.85rem;color:#374151;cursor:pointer;flex:1;display:flex;align-items:center;gap:.4rem}.export-option-icon{font-size:1.1rem;color:#6b7280}.export-option-item.selected .export-option-icon{color:#3b82f6}.photo-checkbox-wrapper{display:flex;align-items:center;padding:.65rem;border:1px solid #e5e7eb;border-radius:5px;cursor:pointer;transition:all .2s}.photo-checkbox-wrapper:hover{background-color:#f9fafb;border-color:#3b82f6}.photo-checkbox-wrapper.checked{background-color:#eff6ff;border-color:#3b82f6}.photo-checkbox{width:18px;height:18px;margin-right:.65rem;cursor:pointer;accent-color:#3b82f6}.photo-checkbox-label{font-size:.85rem;color:#374151;cursor:pointer;flex:1;display:flex;align-items:center;gap:.4rem}.photo-checkbox-icon{font-size:1.1rem;color:#6b7280}.photo-checkbox-wrapper.checked .photo-checkbox-icon{color:#a855f7}.layers-checkbox-list{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto;padding-right:.25rem}.layer-checkbox-item{display:flex;align-items:center;padding:.6rem;border:1px solid #e5e7eb;border-radius:5px;cursor:pointer;transition:all .2s}.layer-checkbox-item:hover{background-color:#f9fafb;border-color:#3b82f6}.layer-checkbox-item.checked{background-color:#eff6ff;border-color:#3b82f6}.layer-checkbox{width:18px;height:18px;margin-right:.65rem;cursor:pointer;accent-color:#3b82f6}.layer-checkbox-label{font-size:.85rem;color:#374151;cursor:pointer;flex:1}.layer-checkbox-count{font-size:.75rem;color:#6b7280;background:#f3f4f6;padding:.15rem .4rem;border-radius:3px;margin-left:.5rem}.select-all-layers{display:flex;align-items:center;padding:.5rem .6rem;background:#f9fafb;border:1px dashed #d1d5db;border-radius:5px;cursor:pointer;transition:all .2s;margin-bottom:.5rem}.select-all-layers:hover{background-color:#f3f4f6;border-color:#3b82f6}.select-all-checkbox{width:18px;height:18px;margin-right:.65rem;cursor:pointer;accent-color:#3b82f6}.select-all-label{font-size:.85rem;font-weight:500;color:#374151;cursor:pointer}.layers-empty{text-align:center;padding:1.5rem;color:#9ca3af;font-size:.85rem}.layers-empty i{font-size:2rem;margin-bottom:.5rem;opacity:.5}.layers-checkbox-list::-webkit-scrollbar{width:6px}.layers-checkbox-list::-webkit-scrollbar-track{background:#f3f4f6;border-radius:3px}.layers-checkbox-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.layers-checkbox-list::-webkit-scrollbar-thumb:hover{background:#9ca3af}.export-config-modal-footer{padding:.85rem 1.25rem;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;gap:.65rem;background-color:#f9fafb;border-bottom-left-radius:8px;border-bottom-right-radius:8px;flex-shrink:0}.export-config-info{font-size:.75rem;color:#6b7280;display:flex;align-items:center;gap:.35rem}.export-config-info i{font-size:1rem}.export-config-actions{display:flex;gap:.65rem}.export-config-button{padding:.55rem 1.1rem;border:none;border-radius:5px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem}.export-config-button-back{background-color:#fff;color:#374151;border:1px solid #d1d5db}.export-config-button-back:hover{background-color:#f9fafb;border-color:#9ca3af}.export-config-button-download{background-color:#10b981;color:#fff}.export-config-button-download:hover{background-color:#059669}.export-config-button-copy{background-color:#3b82f6;color:#fff}.export-config-button-copy:hover{background-color:#2563eb}.export-config-button:disabled{background-color:#d1d5db;cursor:not-allowed;opacity:.6}.export-success-message{background-color:#d1fae5;color:#065f46;padding:.6rem;border-radius:5px;font-size:.8rem;margin-top:.75rem;border:1px solid #6ee7b7;display:flex;align-items:center;gap:.4rem;animation:successFadeIn .3s ease-out}.export-success-message i{font-size:1rem}@keyframes successFadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.export-config-modal-overlay{padding:3.5rem .25rem .25rem}.export-config-modal{max-width:100%;max-height:calc(100vh - 4rem);border-radius:0}.export-config-modal-header{padding:.85rem 1rem}.export-config-modal-body{padding:1rem}.export-config-modal-footer{padding:.75rem 1rem;flex-direction:column;align-items:stretch}.export-config-info{justify-content:center;margin-bottom:.5rem}.export-config-actions{width:100%;flex-direction:column}.export-config-button{width:100%;justify-content:center}.layers-checkbox-list{max-height:150px}}.import-modal-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:10000;padding:4rem .5rem .5rem}.import-modal{background:#fff;border-radius:8px;width:100%;max-width:520px;max-height:calc(100vh - 5rem);overflow:hidden;box-shadow:0 10px 40px #0000004d;animation:importModalSlideIn .3s ease-out;display:flex;flex-direction:column}@keyframes importModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.import-modal-header{padding:1rem 1.25rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.import-modal-header h2{font-size:1.1rem;font-weight:600;color:#1f2937;margin:0;display:flex;align-items:center;gap:.5rem}.import-modal-header h2 i{font-size:1.3rem;color:#10b981}.import-modal-close{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;padding:0}.import-modal-close:hover{background-color:#f3f4f6;color:#1f2937}.import-modal-body{padding:1.25rem;overflow-y:auto;flex:1}.import-modal-description{font-size:.875rem;color:#6b7280;margin-bottom:1.25rem;line-height:1.5}.import-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.import-type-card{border:2px solid #e5e7eb;border-radius:8px;padding:1rem;background:#fff;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;position:relative;overflow:hidden}.import-type-card:hover{border-color:#10b981;background-color:#f0fdf4;transform:translateY(-2px);box-shadow:0 4px 12px #10b98126}.import-type-card.selected{border-color:#10b981;background-color:#d1fae5;box-shadow:0 4px 12px #10b98133}.import-type-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:all .2s}.import-type-card:hover .import-type-icon{transform:scale(1.1)}.import-type-card[data-type=kmz] .import-type-icon{background:#fef2f2;color:#ef4444}.import-type-card[data-type=geopackage] .import-type-icon{background:#eff6ff;color:#3b82f6}.import-type-card[data-type=shapefile] .import-type-icon{background:#f0fdf4;color:#10b981}.import-type-card[data-type=csv] .import-type-icon{background:#fef3c7;color:#f59e0b}.import-type-card[data-type=dxf] .import-type-icon{background:#f5f3ff;color:#8b5cf6}.import-type-card[data-type=orthophoto] .import-type-icon{background:#fae8ff;color:#d946ef}.import-type-name{font-weight:600;font-size:.9rem;color:#1f2937}.import-type-description{font-size:.75rem;color:#6b7280;line-height:1.3}.import-type-formats{font-size:.7rem;color:#9ca3af;font-style:italic;margin-top:.25rem}.import-type-checkmark{position:absolute;top:.5rem;right:.5rem;width:20px;height:20px;border-radius:50%;background:#10b981;color:#fff;display:none;align-items:center;justify-content:center;font-size:.75rem}.import-type-card.selected .import-type-checkmark{display:flex;animation:checkmarkPop .3s ease-out}@keyframes checkmarkPop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.file-upload-area{margin-top:1.25rem;padding:1.5rem;border:2px dashed #d1d5db;border-radius:8px;text-align:center;cursor:pointer;transition:all .2s;background:#f9fafb}.file-upload-area:hover{border-color:#10b981;background-color:#f0fdf4}.file-upload-area.dragover{border-color:#10b981;background-color:#d1fae5}.file-upload-icon{font-size:3rem;color:#10b981;margin-bottom:.75rem}.file-upload-text{font-size:.875rem;color:#374151;margin-bottom:.5rem}.file-upload-hint{font-size:.75rem;color:#6b7280}.file-upload-input{display:none}.selected-file-display{margin-top:1rem;padding:.85rem;background:#f0fdf4;border:1px solid #86efac;border-radius:6px;display:flex;align-items:center;gap:.65rem}.selected-file-icon{font-size:1.5rem;color:#10b981}.selected-file-info{flex:1}.selected-file-name{font-size:.85rem;font-weight:500;color:#1f2937;margin-bottom:.25rem}.selected-file-size{font-size:.75rem;color:#6b7280}.selected-file-remove{background:none;border:none;color:#ef4444;cursor:pointer;font-size:1.25rem;padding:.25rem;border-radius:4px;transition:all .2s}.selected-file-remove:hover{background-color:#fee2e2}.import-error-message{background-color:#fef2f2;color:#991b1b;padding:.6rem;border-radius:5px;font-size:.8rem;margin-top:.75rem;border:1px solid #fecaca;display:flex;align-items:center;gap:.4rem}.import-error-message i{font-size:1rem}.import-modal-footer{padding:.85rem 1.25rem;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;gap:.65rem;background-color:#f9fafb;border-bottom-left-radius:8px;border-bottom-right-radius:8px;flex-shrink:0}.import-modal-info{font-size:.75rem;color:#6b7280;display:flex;align-items:center;gap:.35rem}.import-modal-info i{font-size:1rem}.import-modal-actions{display:flex;gap:.65rem}.import-modal-button{padding:.55rem 1.1rem;border:none;border-radius:5px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem}.import-modal-button-cancel{background-color:#fff;color:#374151;border:1px solid #d1d5db}.import-modal-button-cancel:hover{background-color:#f9fafb;border-color:#9ca3af}.import-modal-button-import{background-color:#10b981;color:#fff}.import-modal-button-import:hover{background-color:#059669}.import-modal-button-import:disabled{background-color:#d1d5db;cursor:not-allowed;opacity:.6}.import-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:1rem}.import-loading-spinner{font-size:3rem;color:#10b981;animation:spin 1s linear infinite}.import-loading-text{font-size:.875rem;color:#6b7280}.import-success{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:1rem}.import-success-icon{font-size:4rem;color:#10b981;animation:successPop .5s ease-out}@keyframes successPop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.import-success-text{font-size:1rem;font-weight:600;color:#1f2937;margin-bottom:.25rem}.import-success-details{font-size:.85rem;color:#6b7280}@media(max-width:640px){.import-modal-overlay{padding:3.5rem .25rem .25rem}.import-modal{max-width:100%;max-height:calc(100vh - 4rem);border-radius:0}.import-modal-header{padding:.85rem 1rem}.import-modal-body{padding:1rem}.import-modal-footer{padding:.75rem 1rem;flex-direction:column;align-items:stretch}.import-modal-info{justify-content:center;margin-bottom:.5rem}.import-modal-actions{width:100%}.import-modal-button{flex:1}.import-type-grid{grid-template-columns:1fr;gap:.65rem}.import-type-card{flex-direction:row;justify-content:flex-start;text-align:left;padding:.85rem}.import-type-icon{width:40px;height:40px;font-size:1.25rem;flex-shrink:0}.import-type-content{flex:1}.import-type-checkmark{position:static;margin-left:auto}.file-upload-area{padding:1.25rem}.file-upload-icon{font-size:2.5rem}}.project-selection-overlay{position:fixed;inset:0;background-color:#000c;display:flex;justify-content:center;align-items:center;z-index:10000;padding:1rem;animation:overlayFadeIn .3s ease-out}.project-selection-modal{background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:85vh;overflow:hidden;box-shadow:0 20px 60px #0006;animation:modalSlideUp .4s ease-out;display:flex;flex-direction:column}.project-selection-header{padding:2rem 2rem 1.5rem;text-align:center;border-bottom:1px solid #e5e7eb;background:#fff;color:#1f2937}.project-selection-header h2{font-size:1.75rem;font-weight:700;margin:0 0 .5rem;display:flex;align-items:center;justify-content:center;gap:.75rem;color:#1f2937}.project-selection-header h2 i{font-size:2rem;color:#3b82f6}.project-selection-subtitle{font-size:.95rem;font-weight:400;margin:0;color:#6b7280}.project-selection-body{padding:1.5rem 2rem;overflow-y:auto;flex:1}.create-project-button{width:100%;padding:1.25rem;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:.75rem;box-shadow:0 4px 12px #3b82f633;margin-bottom:1.5rem}.create-project-button:hover{background:#2563eb;transform:translateY(-2px);box-shadow:0 6px 20px #3b82f64d}.create-project-button i{font-size:1.5rem}.project-selection-divider{display:flex;align-items:center;text-align:center;margin:1.5rem 0}.project-selection-divider:before,.project-selection-divider:after{content:"";flex:1;border-bottom:1px solid #e5e7eb}.project-selection-divider span{padding:0 1rem;color:#6b7280;font-size:.85rem;font-weight:500}.projects-list-title{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.projects-list-title i{color:#6b7280}.projects-list{display:flex;flex-direction:column;gap:.75rem}.project-card{padding:1rem 1.25rem;border:2px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:1rem}.project-card:hover{border-color:#3b82f6;background-color:#eff6ff;transform:translate(4px);box-shadow:0 4px 12px #3b82f626}.project-card-icon{width:48px;height:48px;border-radius:8px;background:#eff6ff;color:#3b82f6;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.project-card-info{flex:1;min-width:0}.project-card-name{font-size:1rem;font-weight:600;color:#1f2937;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card-meta{font-size:.8rem;color:#6b7280;display:flex;align-items:center;gap:1rem}.project-card-meta-item{display:flex;align-items:center;gap:.35rem}.project-card-meta-item i{font-size:.9rem}.project-card-arrow{color:#9ca3af;font-size:1.5rem;transition:all .2s}.project-card:hover .project-card-arrow{color:#3b82f6;transform:translate(4px)}.projects-loading{text-align:center;padding:3rem 1rem;color:#6b7280}.projects-loading i{font-size:3rem;margin-bottom:1rem;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.projects-loading-text{font-size:.95rem}.projects-empty{text-align:center;padding:3rem 1rem}.projects-empty i{font-size:4rem;color:#d1d5db;margin-bottom:1rem}.projects-empty-title{font-size:1.1rem;font-weight:600;color:#374151;margin-bottom:.5rem}.projects-empty-text{font-size:.9rem;color:#6b7280}.projects-error{background-color:#fef2f2;color:#991b1b;padding:1rem;border-radius:6px;font-size:.875rem;border:1px solid #fecaca;display:flex;align-items:center;gap:.5rem}.projects-error i{font-size:1.25rem}.project-selection-footer{padding:1rem 2rem;border-top:1px solid #e5e7eb;background-color:#f9fafb;text-align:center}.project-selection-footer-text{font-size:.8rem;color:#6b7280}@media(max-width:640px){.project-selection-modal{max-width:100%;max-height:100vh;border-radius:0;margin:0}.project-selection-header{padding:1.5rem 1.25rem 1rem}.project-selection-header h2{font-size:1.5rem}.project-selection-subtitle{font-size:.875rem}.project-selection-body{padding:1.25rem}.create-project-button{padding:1rem;font-size:.95rem}.project-card{padding:.85rem 1rem}.project-card-icon{width:40px;height:40px;font-size:1.25rem}.project-card-name{font-size:.95rem}.project-card-meta{font-size:.75rem;flex-wrap:wrap}.project-selection-footer{padding:.85rem 1.25rem}}.project-selection-body::-webkit-scrollbar{width:8px}.project-selection-body::-webkit-scrollbar-track{background:#f3f4f6;border-radius:4px}.project-selection-body::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.project-selection-body::-webkit-scrollbar-thumb:hover{background:#9ca3af}.create-project-overlay{position:fixed;inset:0;background-color:#000c;display:flex;justify-content:center;align-items:center;z-index:10001;padding:1rem;animation:overlayFadeIn .3s ease-out}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.create-project-modal{background:#fff;border-radius:12px;width:100%;max-width:900px;height:85vh;max-height:700px;overflow:hidden;box-shadow:0 20px 60px #0006;animation:modalSlideUp .4s ease-out;display:flex;flex-direction:column}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.create-project-header{padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;background:#fff}.create-project-header-left{display:flex;align-items:center;gap:.75rem}.create-project-header h2{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0;display:flex;align-items:center;gap:.5rem}.create-project-header h2 i{font-size:1.5rem;color:#3b82f6}.create-project-close{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;padding:0}.create-project-close:hover{background-color:#f3f4f6;color:#1f2937}.create-project-body{display:flex;flex:1;overflow:hidden}.create-project-form-panel{width:320px;padding:1.5rem;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto;flex-shrink:0}.form-section{display:flex;flex-direction:column}.form-section-title{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.form-input{width:100%;padding:.625rem .875rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;color:#1f2937;transition:all .2s}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-input::-moz-placeholder{color:#9ca3af}.form-input::placeholder{color:#9ca3af}.form-hint{font-size:.75rem;color:#6b7280;margin-top:.35rem}.location-info{background:#f9fafb;padding:.75rem;border-radius:6px;border:1px solid #e5e7eb}.location-info-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.location-info-item:last-child{margin-bottom:0}.location-info-label{font-size:.75rem;color:#6b7280;font-weight:500}.location-info-value{font-size:.8rem;color:#1f2937;font-weight:600;font-family:Courier New,monospace}.location-info-value.loading{color:#9ca3af;font-style:italic;font-family:inherit}.create-project-map-panel{flex:1;position:relative;background:#f3f4f6;overflow:hidden}.create-project-map-container,.create-project-map-container .leaflet-container{width:100%;height:100%}.create-project-map-controls{position:absolute;top:1rem;right:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:1000}.map-control-button{width:40px;height:40px;background:#fff;border:2px solid #e5e7eb;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #0000001a}.map-control-button:hover{background:#f9fafb;border-color:#3b82f6;transform:scale(1.05)}.map-control-button i{font-size:1.25rem;color:#374151}.map-control-button:hover i{color:#3b82f6}.base-layer-selector{position:absolute;bottom:1rem;left:1rem;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden;z-index:1000}.base-layer-title{padding:.75rem 1rem;font-size:.8rem;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb;background:#f9fafb}.base-layer-options{display:flex;flex-direction:column}.base-layer-option{padding:.75rem 1rem;display:flex;align-items:center;gap:.65rem;cursor:pointer;transition:all .2s;border:none;background:#fff;text-align:left}.base-layer-option:hover{background:#f3f4f6}.base-layer-option.active{background:#eff6ff;color:#3b82f6}.base-layer-radio{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6}.base-layer-label{font-size:.85rem;color:#374151;cursor:pointer}.base-layer-option.active .base-layer-label{color:#3b82f6;font-weight:500}.create-project-footer{padding:1rem 1.5rem;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;gap:1rem;background-color:#f9fafb;flex-shrink:0}.create-project-footer-info{font-size:.8rem;color:#6b7280;display:flex;align-items:center;gap:.4rem}.create-project-footer-info i{font-size:1rem}.create-project-footer-actions{display:flex;gap:.75rem}.create-project-button{padding:.625rem 1.5rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem}.create-project-button-cancel{background-color:#fff;color:#374151;border:1px solid #d1d5db}.create-project-button-cancel:hover{background-color:#f9fafb;border-color:#9ca3af}.create-project-button-create{background-color:#10b981;color:#fff}.create-project-button-create:hover{background-color:#059669}.create-project-button-create:disabled{background-color:#d1d5db;cursor:not-allowed;opacity:.6}.form-error{background-color:#fef2f2;color:#991b1b;padding:.65rem;border-radius:5px;font-size:.8rem;border:1px solid #fecaca;display:flex;align-items:center;gap:.4rem}.form-error i{font-size:1rem}@media(max-width:768px){.create-project-modal{max-width:100%;height:100vh;max-height:100vh;border-radius:0;margin:0}.create-project-body{flex-direction:column}.create-project-form-panel{width:100%;border-right:none;border-bottom:1px solid #e5e7eb;max-height:40%;order:2}.create-project-map-panel{order:1;min-height:300px}.create-project-footer{padding:.85rem 1rem;flex-direction:column;align-items:stretch}.create-project-footer-info{justify-content:center;margin-bottom:.5rem}.create-project-footer-actions{width:100%}.create-project-button{flex:1;justify-content:center}.base-layer-selector{bottom:.5rem;left:.5rem;max-width:calc(100% - 1rem)}.create-project-map-controls{top:.5rem;right:.5rem}.map-control-button{width:36px;height:36px}.map-control-button i{font-size:1.1rem}}.create-project-form-panel::-webkit-scrollbar{width:6px}.create-project-form-panel::-webkit-scrollbar-track{background:#f3f4f6;border-radius:3px}.create-project-form-panel::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.create-project-form-panel::-webkit-scrollbar-thumb:hover{background:#9ca3af}.settings-container{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#e8ecf1);padding:2rem}.settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;padding:1rem;background:#fff;border-radius:1rem;box-shadow:0 2px 8px #0000000d}.settings-back-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f3f4f6;border:none;border-radius:.5rem;color:#374151;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.settings-back-button:hover{background:#e5e7eb;transform:translate(-2px)}.settings-back-icon{width:1.25rem;height:1.25rem}.settings-title{font-size:1.75rem;font-weight:700;color:#1f2937;margin:0}.settings-header-spacer{width:100px}.settings-content{display:grid;grid-template-columns:250px 1fr;gap:2rem;max-width:1200px;margin:0 auto}.settings-sidebar{display:flex;flex-direction:column;gap:.5rem;background:#fff;padding:1rem;border-radius:1rem;box-shadow:0 2px 8px #0000000d;height:-moz-fit-content;height:fit-content}.settings-tab{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:transparent;border:none;border-radius:.75rem;color:#6b7280;font-size:.9375rem;font-weight:500;text-align:left;cursor:pointer;transition:all .2s ease}.settings-tab:hover{background:#f3f4f6;color:#374151}.settings-tab.active{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 12px #3b82f64d}.settings-tab-icon{width:1.25rem;height:1.25rem;flex-shrink:0}.settings-main{background:#fff;border-radius:1rem;box-shadow:0 2px 8px #0000000d;padding:2rem;min-height:500px}.settings-panel{max-width:600px}.settings-panel-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0 0 .5rem}.settings-panel-description{font-size:.9375rem;color:#6b7280;margin:0 0 2rem}.settings-form{display:flex;flex-direction:column;gap:1.5rem}.settings-form-group{display:flex;flex-direction:column;gap:.5rem}.settings-label{font-size:.875rem;font-weight:600;color:#374151}.settings-input,.settings-select{width:100%;padding:.75rem 1rem;font-size:.9375rem;color:#1f2937;background:#f9fafb;border:2px solid #e5e7eb;border-radius:.5rem;outline:none;transition:all .2s ease}.settings-input:focus,.settings-select:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.settings-input::-moz-placeholder{color:#9ca3af}.settings-input::placeholder{color:#9ca3af}.settings-profile-photo{display:flex;align-items:center;gap:1.5rem}.settings-profile-avatar{width:5rem;height:5rem;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:3px solid #e5e7eb}.settings-profile-avatar-placeholder{width:5rem;height:5rem;border-radius:50%;background:linear-gradient(135deg,#f3f4f6,#e5e7eb);display:flex;align-items:center;justify-content:center;border:3px solid #e5e7eb}.settings-profile-icon{width:2.5rem;height:2.5rem;color:#9ca3af}.settings-upload-button{padding:.625rem 1.25rem;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:.5rem;color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #3b82f633}.settings-upload-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.settings-save-button{padding:.875rem 1.5rem;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:.5rem;color:#fff;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #3b82f633;width:-moz-fit-content;width:fit-content}.settings-save-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #3b82f64d}.settings-secondary-button{padding:.625rem 1.25rem;background:#fff;border:2px solid #e5e7eb;border-radius:.5rem;color:#374151;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.settings-secondary-button:hover{border-color:#3b82f6;color:#3b82f6;background:#f0f9ff}.settings-section-divider{height:1px;background:#e5e7eb;margin:2rem 0}.settings-2fa-section{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-radius:.75rem;border:2px solid #bae6fd}.settings-2fa-info{flex:1}.settings-2fa-title{font-size:1rem;font-weight:600;color:#1f2937;margin:0 0 .25rem}.settings-2fa-description{font-size:.875rem;color:#6b7280;margin:0}.settings-toggle-group{display:flex;align-items:center;justify-content:space-between;padding:1.25rem;background:#f9fafb;border-radius:.75rem;border:2px solid #e5e7eb;transition:all .2s ease}.settings-toggle-group:hover{border-color:#cbd5e1;background:#f3f4f6}.settings-toggle-info{flex:1}.settings-toggle-label{display:block;font-size:.9375rem;font-weight:600;color:#1f2937;margin-bottom:.25rem;cursor:pointer}.settings-toggle-description{font-size:.875rem;color:#6b7280;margin:0}.settings-switch{position:relative;display:inline-block;width:3rem;height:1.75rem;flex-shrink:0}.settings-switch input{opacity:0;width:0;height:0}.settings-slider{position:absolute;cursor:pointer;inset:0;background-color:#cbd5e1;transition:.3s;border-radius:2rem}.settings-slider:before{position:absolute;content:"";height:1.375rem;width:1.375rem;left:.1875rem;bottom:.1875rem;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 2px 4px #0003}.settings-switch input:checked+.settings-slider{background:linear-gradient(135deg,#3b82f6,#2563eb)}.settings-switch input:checked+.settings-slider:before{transform:translate(1.25rem)}@media(max-width:768px){.settings-container{padding:1rem}.settings-content{grid-template-columns:1fr;gap:1rem}.settings-sidebar{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.settings-main{padding:1.5rem}.settings-panel{max-width:100%}.settings-header{padding:.75rem}.settings-title{font-size:1.5rem}.settings-header-spacer{display:none}.settings-2fa-section{flex-direction:column;align-items:flex-start;gap:1rem}.settings-profile-photo{flex-direction:column;align-items:flex-start}}@media(max-width:480px){.settings-sidebar{grid-template-columns:1fr}.settings-tab{padding:.75rem;font-size:.875rem}.settings-main{padding:1rem}}.credits-container{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#e8ecf1);padding:2rem}.credits-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;padding:1rem;background:#fff;border-radius:1rem;box-shadow:0 2px 8px #0000000d}.credits-back-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f3f4f6;border:none;border-radius:.5rem;color:#374151;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.credits-back-button:hover{background:#e5e7eb;transform:translate(-2px)}.credits-back-icon{width:1.25rem;height:1.25rem}.credits-title{font-size:1.75rem;font-weight:700;color:#1f2937;margin:0}.credits-header-spacer{width:100px}.credits-content{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.credits-card{background:#fff;border-radius:1rem;box-shadow:0 2px 8px #0000000d;transition:all .3s ease}.credits-overview{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.credits-balance-card{padding:2rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.credits-balance-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.credits-balance-title{font-size:1rem;font-weight:600;margin:0 0 .25rem;opacity:.9}.credits-balance-subtitle{font-size:.875rem;margin:0;opacity:.8}.credits-balance-icon-wrapper{width:3rem;height:3rem;background:#fff3;border-radius:.75rem;display:flex;align-items:center;justify-content:center}.credits-balance-icon{width:1.75rem;height:1.75rem;color:#fff}.credits-balance-amount{font-size:3rem;font-weight:700;margin-bottom:1rem;line-height:1}.credits-balance-unit{font-size:1.25rem;font-weight:500;margin-left:.5rem;opacity:.9}.credits-progress-bar{width:100%;height:.5rem;background:#fff3;border-radius:1rem;overflow:hidden;margin-bottom:.75rem}.credits-progress-fill{height:100%;background:#fff;border-radius:1rem;transition:width .5s ease;box-shadow:0 0 10px #ffffff80}.credits-balance-info{display:flex;justify-content:space-between;font-size:.875rem;opacity:.9}.credits-stats-grid{display:flex;flex-direction:column;gap:1.5rem}.credits-stat-card{padding:1.5rem;display:flex;align-items:center;gap:1rem;transition:transform .2s ease,box-shadow .2s ease}.credits-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.credits-stat-icon-wrapper{width:3.5rem;height:3.5rem;border-radius:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.credits-stat-icon-blue{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.credits-stat-icon-green{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.credits-stat-icon-purple{background:linear-gradient(135deg,#e9d5ff,#d8b4fe)}.credits-stat-icon{width:1.75rem;height:1.75rem;color:#1f2937}.credits-stat-content{flex:1}.credits-stat-label{font-size:.875rem;color:#6b7280;margin:0 0 .25rem}.credits-stat-value{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0}.credits-section{margin-top:1rem}.credits-section-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0 0 .5rem}.credits-section-description{font-size:.9375rem;color:#6b7280;margin:0 0 1.5rem}.credits-plans-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.credits-plan-card{position:relative;padding:2rem;background:#fff;border:2px solid #e5e7eb;border-radius:1rem;cursor:pointer;transition:all .3s ease}.credits-plan-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000001a;border-color:#3b82f6}.credits-plan-card.selected{border-color:#3b82f6;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);box-shadow:0 8px 20px #3b82f633}.credits-plan-card.popular{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626}.credits-plan-badge{position:absolute;top:-.75rem;right:1.5rem;padding:.375rem 1rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;font-size:.75rem;font-weight:700;border-radius:1rem;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 4px 8px #3b82f64d}.credits-plan-header{margin-bottom:1rem}.credits-plan-name{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0 0 .5rem}.credits-plan-price{display:flex;align-items:baseline;gap:.25rem}.credits-plan-amount{font-size:2.5rem;font-weight:700;color:#3b82f6;line-height:1}.credits-plan-period{font-size:.875rem;color:#6b7280}.credits-plan-credits{font-size:1.125rem;font-weight:600;color:#374151;margin-bottom:1.5rem;padding:.75rem;background:#f3f4f6;border-radius:.5rem;text-align:center}.credits-plan-features{list-style:none;padding:0;margin:0 0 1.5rem}.credits-plan-feature{display:flex;align-items:center;gap:.75rem;padding:.625rem 0;font-size:.9375rem;color:#374151}.credits-plan-check-icon{width:1.25rem;height:1.25rem;color:#10b981;flex-shrink:0}.credits-plan-button{width:100%;padding:.875rem;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:.5rem;color:#fff;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #3b82f633}.credits-plan-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #3b82f64d}.credits-plan-card.selected .credits-plan-button{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 12px #10b98133}.credits-history-card{padding:0;overflow:hidden}.credits-history-list{display:flex;flex-direction:column}.credits-history-item{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid #f3f4f6;transition:background .2s ease}.credits-history-item:last-child{border-bottom:none}.credits-history-item:hover{background:#f9fafb}.credits-history-icon-wrapper{width:2.5rem;height:2.5rem;border-radius:.75rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.credits-history-icon-green{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.credits-history-icon-red{background:linear-gradient(135deg,#fee2e2,#fecaca)}.credits-history-icon{width:1.25rem;height:1.25rem;color:#1f2937}.credits-history-content{flex:1}.credits-history-description{font-size:.9375rem;font-weight:500;color:#1f2937;margin:0 0 .25rem}.credits-history-date{font-size:.8125rem;color:#9ca3af;margin:0}.credits-history-amount{font-size:1.125rem;font-weight:700;white-space:nowrap}.credits-history-amount-positive{color:#10b981}.credits-history-amount-negative{color:#ef4444}@media(max-width:1024px){.credits-plans-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.credits-container{padding:1rem}.credits-overview,.credits-plans-grid{grid-template-columns:1fr}.credits-header{padding:.75rem}.credits-title{font-size:1.5rem}.credits-header-spacer{display:none}.credits-balance-amount{font-size:2.5rem}.credits-balance-unit{font-size:1rem}.credits-stats-grid{gap:1rem}.credits-stat-card{padding:1rem}.credits-stat-icon-wrapper{width:3rem;height:3rem}.credits-stat-icon{width:1.5rem;height:1.5rem}.credits-stat-value{font-size:1.25rem}.credits-plan-card{padding:1.5rem}.credits-plan-amount{font-size:2rem}.credits-history-item{padding:1rem}}@media(max-width:480px){.credits-balance-card{padding:1.5rem}.credits-balance-amount{font-size:2rem}.credits-plan-name{font-size:1.25rem}.credits-plan-amount{font-size:1.75rem}.credits-history-item{gap:.75rem}.credits-history-icon-wrapper{width:2rem;height:2rem}.credits-history-icon{width:1rem;height:1rem}.credits-history-amount{font-size:1rem}}
