@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-color:#0f1115;--panel-bg:#191c24b3;--border-color:#ffffff1a;--text-primary:#f0f0f0;--text-secondary:#9ca3af;--accent-color:#3b82f6;--accent-hover:#2563eb;--accent-active:#1d4ed8;--danger-color:#ef4444;--success-color:#10b981;--warning-color:#f59e0b;--font-family:"Inter", sans-serif;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px -1px #0000004d, 0 2px 4px -1px #0003;--shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -2px #0003;--safe-area-bottom:max(env(safe-area-inset-bottom,0px), 0px);--mobile-nav-clearance:max(calc(18px + env(safe-area-inset-bottom,0px)), 62px);--mobile-fab-clearance:max(calc(24px + env(safe-area-inset-bottom,0px)), 64px);--mobile-modal-bottom-padding:max(calc(20px + env(safe-area-inset-bottom,0px)), 56px)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-color);color:var(--text-primary);overscroll-behavior:none;touch-action:manipulation;line-height:1.5;overflow:hidden}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;width:100vw;height:100dvh;padding:20px;padding-top:max(calc(20px + env(safe-area-inset-top,0px)), 24px);padding-bottom:var(--mobile-modal-bottom-padding);-webkit-overflow-scrolling:touch;background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-content{width:100%;max-width:520px;max-height:calc(100dvh - max(calc(40px + env(safe-area-inset-bottom,0px) + env(safe-area-inset-top,0px)), 80px));-webkit-overflow-scrolling:touch;-webkit-backdrop-filter:blur(24px);background:#161a25f2;border:1px solid #ffffff1a;border-radius:24px;padding:32px;animation:.4s cubic-bezier(.16,1,.3,1) modal-zoom-in;position:relative;overflow-y:auto;box-shadow:0 25px 50px -12px #00000080,0 0 50px #3b82f626}@keyframes modal-zoom-in{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-content .close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:4px;font-size:28px;line-height:1;transition:all .2s;display:flex;position:absolute;top:20px;right:20px}.modal-content .close-btn:hover{color:#fff;background:#ffffff1a;transform:rotate(90deg)}.credit-modal{max-width:520px}.credit-modal h2{background:linear-gradient(135deg,#fff 0%,#cbd5e1 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 6px;font-size:24px;font-weight:800}.credit-modal .subtitle{color:#94a3b8;margin:0 0 20px;font-size:.95rem}.user-balance-badge{color:#60a5fa;background:#3b82f61a;border:1px solid #3b82f633;border-radius:9999px;align-items:center;gap:8px;margin-bottom:24px;padding:6px 14px;font-size:.85rem;font-weight:600;display:inline-flex}.sales-pitch{color:#cbd5e1;background:#ffffff08;border:1px solid #ffffff0d;border-radius:16px;margin-bottom:24px;padding:16px 20px;font-size:.9rem;line-height:1.5}.sales-pitch p{margin:0 0 8px}.sales-pitch p:last-child{margin:0}.package-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:28px;display:grid}.package-card{cursor:pointer;background:#ffffff05;border:1px solid #ffffff14;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;padding:20px 12px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.package-card:hover{background:#ffffff0d;border-color:#fff3;transform:translateY(-2px)}.package-card.selected{background:#3b82f614;border-color:#3b82f6;box-shadow:0 10px 25px -5px #3b82f633,0 0 0 1px #3b82f6}.package-card.selected:before{content:"";background:linear-gradient(90deg,#3b82f6,#60a5fa);height:3px;position:absolute;top:0;left:0;right:0}.package-card .amount{color:#fff;margin-bottom:4px;font-size:1.75rem;font-weight:800}.package-card .amount-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px;font-size:.75rem}.package-card .price{color:#f8fafc;font-size:1.15rem;font-weight:700}.package-card .price:after{content:" kr";color:#94a3b8;font-size:.8rem;font-weight:500}.package-card .discount-badge{color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border-radius:6px;padding:2px 6px;font-size:.65rem;font-weight:800;position:absolute;top:8px;right:8px;box-shadow:0 2px 4px #0003}.payment-area{background:#0003;border:1px solid #ffffff0d;border-radius:16px;flex-direction:column;justify-content:center;min-height:150px;padding:20px;display:flex;position:relative}.payment-area-title{color:#64748b;text-transform:uppercase;letter-spacing:.05em;text-align:center;margin-bottom:16px;font-size:.8rem;font-weight:600}.modal-loading-overlay{z-index:10;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#161a25cc;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:absolute;inset:0}.spinner{border:3px solid #3b82f61a;border-top-color:#3b82f6;border-radius:50%;width:40px;height:40px;animation:1s ease-in-out infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-container{-webkit-user-select:none;user-select:none;overscroll-behavior:none;flex-direction:row;width:100vw;height:100dvh;display:flex;position:relative;overflow:hidden}.map-container{z-index:1;flex:1;height:100%;position:relative}.leaflet-container{background:var(--bg-color)!important;font-family:var(--font-family)!important;touch-action:none!important}.leaflet-control-zoom a,.leaflet-draw-toolbar a{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:var(--panel-bg)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important}.leaflet-control-zoom a:hover,.leaflet-draw-toolbar a:hover{background-color:#ffffff1a!important}.sidebar{background-color:var(--panel-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid var(--border-color);z-index:1000;touch-action:none;flex-direction:column;flex-shrink:0;width:400px;padding:24px;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;overflow-y:hidden;box-shadow:-10px 0 30px #0000004d}.sidebar-backdrop{z-index:999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;touch-action:none;background:#0006;width:100vw;height:100vh;transition:opacity .3s;display:block;position:fixed;top:0;left:0}.sidebar-backdrop.open{opacity:1;pointer-events:auto}.sidebar-content{flex:1;margin-right:-12px;padding-right:12px;overflow-y:auto}.sidebar-content::-webkit-scrollbar{width:4px}.sidebar-content::-webkit-scrollbar-track{background:0 0}.sidebar-content::-webkit-scrollbar-thumb{background:#3b82f64d;border-radius:10px;transition:background .3s}.sidebar-content::-webkit-scrollbar-thumb:hover{background:#3b82f699}.sidebar-header{margin-bottom:24px}.sidebar-footer{flex-shrink:0;margin-top:16px}.sidebar-title{background:linear-gradient(135deg,#60a5fa,#3b82f6);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:1.5rem;font-weight:700}.sidebar-subtitle{color:var(--text-secondary);font-size:.875rem}.card{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#ffffff08;margin-bottom:16px;padding:16px}.card-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px;font-size:.875rem;font-weight:600}.flex-row{align-items:center;display:flex}.flex-col{flex-direction:column;display:flex}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-4{gap:16px}.mt-4{margin-top:16px}.slider-container{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.slider-header{justify-content:space-between;font-size:.875rem;display:flex}.slider-value{color:var(--accent-color);font-weight:600}.num-input-unit-wrap{align-items:center;gap:2px;display:flex}.num-unit{color:var(--accent-color);min-width:14px;font-size:.875rem;font-weight:600}.num-input{border:1px solid var(--border-color);width:64px;color:var(--accent-color);font-family:var(--font-family);text-align:right;appearance:textfield;background:#ffffff0f;border-radius:6px;outline:none;padding:2px 6px;font-size:.875rem;font-weight:600;transition:border-color .15s,background .15s}.num-input::-webkit-inner-spin-button{opacity:.4;cursor:pointer}.num-input::-webkit-outer-spin-button{opacity:.4;cursor:pointer}.num-input:hover{border-color:#ffffff40}.num-input:focus{border-color:var(--accent-color);background:#3b82f614}.quality-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px;display:grid}.quality-btn{border:1px solid var(--border-color);color:var(--text-secondary);font-family:var(--font-family);cursor:pointer;background:#ffffff0d;border-radius:8px;justify-content:center;align-items:center;padding:8px 4px;font-size:.75rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.quality-btn:hover{color:var(--text-primary);background:#ffffff1a;border-color:#ffffff40;transform:translateY(-1px)}.quality-btn.active{background:var(--accent-color);color:#fff;border-color:var(--accent-color);box-shadow:0 4px 12px #3b82f666}.quality-btn.full-width{grid-column:span 4;padding:10px;font-size:.8rem}.quality-btn:disabled{opacity:.38;cursor:not-allowed;pointer-events:none;color:#475569;box-shadow:none;background:#ffffff05;border-color:#ffffff0d;transform:none}input[type=range]{appearance:none;background:0 0;width:100%}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent-color);cursor:pointer;width:16px;height:16px;box-shadow:var(--shadow-sm);border-radius:50%;margin-top:-6px}input[type=range]::-webkit-slider-runnable-track{cursor:pointer;background:#ffffff1a;border-radius:2px;width:100%;height:4px}.btn{background:var(--accent-color);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px 16px;font-size:1rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 14px #3b82f64d}.btn:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 20px #3b82f666}.btn:active{background:var(--accent-active);transform:translateY(1px)}.btn:disabled{color:var(--text-secondary);cursor:not-allowed;box-shadow:none;background:#ffffff1a;transform:none}.generate-btn{color:#fff;border-radius:var(--radius-md);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;justify-content:center;align-items:center;gap:10px;width:100%;margin-top:8px;padding:14px 20px;font-size:1rem;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 12px #3b82f666}.generate-btn:hover:not(:disabled){background:linear-gradient(135deg,#60a5fa,#3b82f6);transform:translateY(-2px);box-shadow:0 8px 25px #3b82f680}.generate-btn:active:not(:disabled){transform:translateY(0)}.generate-btn:disabled{color:#fff3;cursor:not-allowed;box-shadow:none;background:#ffffff0d}.download-btn{color:#fff;border-radius:var(--radius-md);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;background:linear-gradient(135deg,#10b981,#059669);border:none;justify-content:center;align-items:center;gap:10px;width:100%;padding:14px 20px;font-size:1rem;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 12px #10b98166}.download-btn:hover{background:linear-gradient(135deg,#34d399,#10b981);transform:translateY(-2px);box-shadow:0 8px 25px #10b98180}.download-btn:active{transform:translateY(0)}.stat-box{background:#0003;border:1px solid #ffffff0d;border-radius:8px;flex-direction:column;align-items:flex-start;padding:12px;display:flex}.stat-label{color:var(--text-secondary);margin-bottom:4px;font-size:.75rem}.stat-value{color:var(--text-primary);font-size:1.125rem;font-weight:600}.stat-value.danger{color:var(--danger-color)}.stat-value.warning{color:var(--warning-color)}.checkbox-container{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.checkbox-container input{cursor:pointer;width:16px;height:16px;accent-color:var(--accent-color)}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.loading-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9000;touch-action:none;overscroll-behavior:none;background:#0a0c12d1;justify-content:center;align-items:center;animation:.25s overlay-in;display:flex;position:fixed;inset:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.loading-card{text-align:center;background:#161a25d9;border:1px solid #6366f140;border-radius:20px;flex-direction:column;align-items:center;gap:16px;min-width:300px;max-width:420px;padding:36px 40px;display:flex;box-shadow:0 0 0 1px #6366f11a,0 8px 40px #00000080,0 0 80px #6366f114}.terrain-anim-wrap{width:224px;height:100px;position:relative;overflow:hidden}.terrain-bars{justify-content:center;align-items:flex-end;gap:6px;height:100%;padding-bottom:2px;display:flex}.terrain-bar{width:10px;height:var(--bar-h,40px);transform-origin:bottom;background:linear-gradient(#bc63e9,#5547eb);border-radius:4px 4px 2px 2px;flex-shrink:0;animation:2.4s ease-in-out infinite alternate bar-breathe;box-shadow:0 0 8px #8b5cf666}@keyframes bar-breathe{0%{opacity:.6;transform:scaleY(.55)}50%{opacity:1;transform:scaleY(1.08)}to{opacity:.75;transform:scaleY(.75)}}.terrain-scanner{filter:blur(1px);background:linear-gradient(#0000,#81c8ffe6,#0000);width:2px;animation:2s cubic-bezier(.4,0,.6,1) infinite scanner-sweep;position:absolute;top:0;bottom:0;left:0}@keyframes scanner-sweep{0%{opacity:0;left:0%}5%{opacity:1}95%{opacity:1}to{opacity:0;left:100%}}.terrain-floor{background:linear-gradient(90deg,#0000,#6366f180,#0000);height:1px;position:absolute;bottom:2px;left:0;right:0}.loading-title{color:var(--text-primary);letter-spacing:.01em;margin:0;font-size:1rem;font-weight:600}.loading-hint{color:var(--text-secondary);margin:0;font-size:.8rem}.loading-bar-track{background:#ffffff12;border-radius:999px;width:100%;height:4px;overflow:hidden}.loading-bar-fill{background:linear-gradient(90deg,#5547eb,#bc63e9,#55c1f6,#5547eb) 0 0/300% 100%;border-radius:999px;width:45%;height:100%;animation:1.8s linear infinite shimmer}@keyframes shimmer{0%{background-position:100% 0;transform:translate(-100%)}to{background-position:0 0;transform:translate(300%)}}.spinner{border:3px solid #ffffff1a;border-top:3px solid var(--accent-color);border-radius:50%;width:32px;height:32px;margin-bottom:16px;animation:1s linear infinite spin}.mesh-preview-panel{z-index:2100;background:#f1f5f9;flex-direction:column;width:100vw;height:100vh;animation:.4s cubic-bezier(.16,1,.3,1) panel-fade-in;display:flex;position:fixed;top:0;left:0;overflow:hidden}@keyframes panel-fade-in{0%{opacity:0;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.mesh-viewer-sidebar-panels::-webkit-scrollbar{width:6px}.mesh-viewer-sidebar-panels::-webkit-scrollbar-track{background:#0000001a;border-radius:10px}.mesh-viewer-sidebar-panels::-webkit-scrollbar-thumb{background:#3b82f666;border-radius:10px}.mesh-viewer-sidebar-panels::-webkit-scrollbar-thumb:hover{background:#3b82f6b3}.preview-header{border-bottom:1px solid var(--border-color);background:#191c24e6;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.preview-body{background:#f1f5f9;flex:1;position:relative;overflow:hidden}.preview-footer{border-top:1px solid var(--border-color);background:#191c24e6;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;background:#000000bf;position:fixed;inset:0}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;background:#ffffff0d;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.btn-secondary:hover{background:#ffffff1a}.btn-outline{border:1px solid var(--accent-color);color:var(--accent-color);background:0 0}.btn-outline:hover{background:#3b82f61a}.edit-handle-dot{box-sizing:border-box;flex-shrink:0}.leaflet-marker-icon.edit-handle-marker{background:0 0!important;border:none!important;justify-content:center!important;align-items:center!important;display:flex!important}.leaflet-marker-icon{touch-action:none}.shape-toolbar-control{touch-action:none;background:#fffffff7!important;border:1px solid #0000001a!important;border-radius:8px!important;flex-direction:column!important;gap:2px!important;margin-top:20px!important;margin-left:20px!important;padding:4px!important;display:flex!important;box-shadow:0 4px 15px #00000026!important}.shape-tool-btn{touch-action:none;cursor:pointer!important;color:#334155!important;background:0 0!important;border:none!important;border-radius:8px!important;justify-content:center!important;align-items:center!important;width:44px!important;height:44px!important;font-size:24px!important;line-height:1!important;text-decoration:none!important;transition:background .15s,color .15s,transform .1s!important;display:flex!important}.shape-tool-btn:hover{background:#00000012!important;transform:scale(1.05)!important}.shape-tool-btn[data-tool=rectangle]:hover{color:#3b82f6!important}.shape-tool-btn[data-tool=center-rectangle]:hover{color:#f97316!important}.shape-tool-btn[data-tool=circle]:hover{color:#a855f7!important}.shape-tool-btn[data-tool=polygon]:hover{color:#22c55e!important}.shape-clear-btn{color:#ef4444!important}.shape-clear-btn:hover{color:#ef4444!important;background:#ef44441a!important}.leaflet-pm-toolbar{z-index:1000!important;-webkit-backdrop-filter:blur(14px)saturate(120%)!important;border-collapse:separate!important;background:#141720d1!important;border:1px solid #ffffff1a!important;border-radius:12px!important;flex-direction:column!important;gap:6px!important;margin:0!important;padding:6px!important;display:flex!important;position:absolute!important;left:20px!important;overflow:visible!important;box-shadow:0 8px 32px #00000080,inset 0 1px #ffffff0d!important}.leaflet-pm-toolbar.leaflet-pm-draw{top:90px!important}.leaflet-pm-toolbar.leaflet-pm-edit{top:246px!important}.leaflet-pm-toolbar.leaflet-bar{border:none!important;box-shadow:0 8px 32px #00000080!important}.leaflet-pm-toolbar .leaflet-buttons-control-button{width:40px!important;height:40px!important;color:var(--text-primary)!important;cursor:pointer!important;background-color:#ffffff0a!important;border:1px solid #ffffff14!important;border-radius:8px!important;justify-content:center!important;align-items:center!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;display:flex!important}.leaflet-pm-toolbar .leaflet-buttons-control-button:hover{transform:translateY(-1px)scale(1.05);background-color:#ffffff1f!important;border-color:#3b82f680!important;box-shadow:0 4px 12px #0003!important}.leaflet-pm-toolbar .button-container.active .leaflet-buttons-control-button,.leaflet-pm-toolbar .leaflet-buttons-control-button.active{background-color:var(--accent-color)!important;border-color:var(--accent-color)!important;color:#fff!important;box-shadow:0 0 14px #3b82f6b3,0 0 24px #3b82f666!important}.leaflet-pm-toolbar .leaflet-buttons-control-button .control-icon{background-position:50%!important;background-repeat:no-repeat!important;background-size:contain!important;width:24px!important;height:24px!important;display:block!important}.leaflet-pm-toolbar .leaflet-buttons-control-button [class*=leaflet-pm-icon],.leaflet-pm-toolbar .leaflet-buttons-control-button .control-icon,.leaflet-pm-toolbar .leaflet-buttons-control-button i,.leaflet-pm-toolbar .leaflet-buttons-control-button svg{filter:invert(.9)brightness(1.3)!important;transition:filter .2s!important}.leaflet-pm-toolbar .button-container.active .leaflet-buttons-control-button [class*=leaflet-pm-icon],.leaflet-pm-toolbar .button-container.active .leaflet-buttons-control-button .control-icon,.leaflet-pm-toolbar .button-container.active .leaflet-buttons-control-button i,.leaflet-pm-toolbar .button-container.active .leaflet-buttons-control-button svg,.leaflet-pm-toolbar .leaflet-buttons-control-button.active [class*=leaflet-pm-icon],.leaflet-pm-toolbar .leaflet-buttons-control-button.active .control-icon,.leaflet-pm-toolbar .leaflet-buttons-control-button.active i,.leaflet-pm-toolbar .leaflet-buttons-control-button.active svg{filter:none!important}.leaflet-pm-actions-container{-webkit-backdrop-filter:blur(14px)saturate(120%)!important;z-index:1000!important;background:#141720e6!important;border:1px solid #ffffff1f!important;border-radius:8px!important;gap:4px!important;margin-left:10px!important;padding:4px!important;top:50%!important;transform:translateY(-50%)!important;box-shadow:0 6px 20px #0006!important}.button-container.active .leaflet-pm-actions-container{display:flex!important}.leaflet-pm-actions-container .leaflet-pm-action{color:var(--text-primary)!important;text-transform:uppercase!important;letter-spacing:.03em!important;cursor:pointer!important;background:#ffffff0d!important;border:1px solid #ffffff14!important;border-radius:6px!important;height:auto!important;padding:6px 12px!important;font-size:11px!important;font-weight:600!important;line-height:normal!important;transition:all .15s!important}.leaflet-pm-actions-container .leaflet-pm-action:hover{color:#fff!important;background:#ffffff1f!important;border-color:#fff3!important}.leaflet-pm-actions-container .leaflet-pm-action[data-action=cancel]{color:#f87171!important;border-color:#ef444433!important}.leaflet-pm-actions-container .leaflet-pm-action[data-action=cancel]:hover{background:#ef444426!important;border-color:#ef444466!important}.leaflet-pm-actions-container .leaflet-pm-action[data-action=finish]{color:#34d399!important;border-color:#10b98133!important}.leaflet-pm-actions-container .leaflet-pm-action[data-action=finish]:hover{background:#10b98126!important;border-color:#10b98166!important}.leaflet-control-scale{margin-bottom:12px!important;margin-left:12px!important}.leaflet-control-scale-line{-webkit-backdrop-filter:blur(4px);color:#fff!important;text-shadow:0 1px 2px #000c!important;background:#0f111599!important;border:2px solid #fff9!important;border-top:none!important;height:auto!important;padding:2px 5px!important;font-size:11px!important;font-weight:600!important;line-height:1.2!important}.dimension-label-wrap{pointer-events:none!important;background:0 0!important;border:none!important;justify-content:center!important;align-items:center!important;display:flex!important}.dimension-label{color:#fff;text-align:center;white-space:nowrap;-webkit-backdrop-filter:blur(6px);z-index:2000;background:#0f1115d9;border:1px solid #fff3;border-radius:6px;justify-content:center;align-items:center;padding:4px 10px;font-size:12px;font-weight:700;display:flex;box-shadow:0 2px 8px #00000080}.mobile-menu-btn{bottom:var(--mobile-fab-clearance);right:calc(20px + env(safe-area-inset-right,0px));background:var(--accent-color);color:#fff;z-index:2200;cursor:pointer;touch-action:manipulation;border:none;border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;transition:transform .2s,background .2s;display:none;position:fixed;box-shadow:0 4px 16px #00000080,0 0 0 2px #ffffff1f}.mobile-menu-btn:hover{background:var(--accent-hover);transform:scale(1.05)}.sidebar-mobile-close-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px 10px;transition:background .2s;display:none}.sidebar-mobile-close-btn:hover{background:#fff3}@media (width<=768px){.sidebar{z-index:2300;width:88vw;max-width:380px;height:100dvh;padding-top:calc(20px + env(safe-area-inset-top,0px));padding-bottom:max(calc(32px + env(safe-area-inset-bottom,0px)), 72px);transition:left .3s cubic-bezier(.16,1,.3,1);position:fixed;top:0;left:-100%}.sidebar.open{left:0}.sidebar-footer{padding-bottom:max(calc(8px + env(safe-area-inset-bottom,0px)), 16px)}.sidebar-backdrop{z-index:2250;height:100dvh}.sidebar-mobile-close-btn,.mobile-menu-btn{display:flex}.preview-modal{width:95vw;height:90dvh}.modal-content{max-height:calc(100dvh - max(calc(28px + env(safe-area-inset-bottom,0px) + env(safe-area-inset-top,0px)), 76px))!important;border-radius:20px!important;padding:24px 18px!important}.premium-search.leaflet-geosearch-bar{left:12px!important;right:12px!important;top:calc(12px + env(safe-area-inset-top,0px))!important;z-index:1050!important;width:auto!important;max-width:calc(100vw - 24px)!important}.leaflet-top.leaflet-left,.leaflet-top.leaflet-right{top:calc(66px + env(safe-area-inset-top,0px))!important;z-index:1000!important}.leaflet-pm-actions-container{z-index:1060!important}.leaflet-bottom.leaflet-right{bottom:max(calc(96px + env(safe-area-inset-bottom,0px)), 136px)!important}.leaflet-bottom.leaflet-left{bottom:max(calc(16px + env(safe-area-inset-bottom,0px)), 56px)!important}}.fusion-palette .sidebar{width:100%!important;max-width:100%!important}.fusion-palette .leaflet-geosearch-bar,.fusion-palette .leaflet-control-geosearch.bar{width:calc(100vw - 80px)!important;max-width:320px!important}.leaflet-control-geosearch{font-family:var(--font-family)!important}.leaflet-control-geosearch.bar{border:none!important;border-radius:10px!important;width:320px!important;max-width:calc(100vw - 100px)!important;overflow:visible!important;box-shadow:0 4px 20px #00000080!important}.leaflet-control-geosearch form{-webkit-backdrop-filter:blur(14px)!important;background:#141720eb!important;border:1px solid #ffffff1f!important;border-radius:10px!important;transition:border-color .2s,box-shadow .2s!important;box-shadow:0 4px 20px #00000073,inset 0 1px #ffffff0f!important}.leaflet-control-geosearch form:focus-within{border-color:#3b82f699!important;box-shadow:0 4px 24px #00000080,0 0 0 3px #3b82f626!important}.leaflet-control-geosearch form input{color:var(--text-primary)!important;font-family:var(--font-family)!important;background:0 0!important;border:none!important;outline:none!important;width:100%!important;min-width:0!important;padding:10px 14px!important;font-size:.875rem!important;font-weight:500!important}.leaflet-control-geosearch form input::placeholder{color:var(--text-secondary)!important;font-weight:400!important}.leaflet-control-geosearch form .glass-pane,.leaflet-control-geosearch .reset{color:var(--text-secondary)!important;cursor:pointer!important;background:0 0!important;border:none!important;padding:0 12px!important;font-size:1rem!important;transition:color .15s!important}.leaflet-control-geosearch .reset:hover{color:var(--text-primary)!important}.leaflet-control-geosearch .results{-webkit-backdrop-filter:blur(20px)!important;background:#141720f7!important;border:1px solid #ffffff1a!important;border-top:none!important;border-radius:0 0 10px 10px!important;margin-top:2px!important;padding:4px!important;overflow:hidden!important;box-shadow:0 8px 30px #0009!important}.leaflet-control-geosearch .results>*{color:var(--text-primary)!important;font-family:var(--font-family)!important;cursor:pointer!important;background:0 0!important;border-bottom:1px solid #ffffff0d!important;border-radius:6px!important;align-items:center!important;gap:8px!important;padding:9px 12px!important;font-size:.82rem!important;font-weight:400!important;line-height:1.35!important;transition:background .12s,color .12s!important;display:flex!important}.leaflet-control-geosearch .results>:last-child{border-bottom:none!important}.leaflet-control-geosearch .results>:hover,.leaflet-control-geosearch .results>.active{color:#93c5fd!important;background:#3b82f626!important}.leaflet-control-geosearch .results.empty{color:var(--text-secondary)!important;text-align:center!important;padding:12px!important;font-size:.82rem!important;display:block!important}.leaflet-control-geosearch .results>.active{color:var(--accent-color)!important}.leaflet-popup-content-wrapper{color:var(--text-primary)!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;background:#141720f2!important;border:1px solid #ffffff1a!important;border-radius:10px!important;box-shadow:0 8px 30px #00000080!important}.leaflet-popup-tip{background:#141720f2!important}.leaflet-popup-content{color:var(--text-primary)!important;font-family:var(--font-family)!important;margin:10px 14px!important;font-size:.85rem!important}.leaflet-popup-close-button{color:var(--text-secondary)!important}.leaflet-popup-close-button:hover{color:var(--text-primary)!important}@media (width<=768px){.leaflet-control-geosearch.bar{width:220px!important}}.history-item{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;margin-bottom:8px;padding:12px;transition:all .2s}.history-item:hover{background:#ffffff14;border-color:#fff3}.history-item-header{color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:8px;font-size:.75rem;display:flex}.history-item-details{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.detail-row{flex-direction:column;display:flex}.detail-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.02em;font-size:.65rem}.detail-value{color:var(--text-primary);font-size:.8rem;font-weight:600}.history-item-actions{gap:8px;display:flex}.history-action-btn:hover{background:#ffffff1a}.history-action-btn.primary:hover{background:#3b82f640}.history-empty{color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.history-loading{justify-content:center;padding:60px;display:flex}.spinner-small{border:3px solid #ffffff1a;border-top-color:#3b82f6;border-radius:50%;width:24px;height:24px;animation:1s linear infinite spin}.sidebar-tabs{background:#ffffff0d;border-radius:10px;gap:4px;margin-bottom:20px;padding:4px;display:flex}.tab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:7px;flex:1;padding:10px;font-size:.85rem;font-weight:600;transition:all .2s}.tab-btn.active{color:var(--text-primary);background:#ffffff1a;box-shadow:0 2px 8px #0003}.history-list{flex-direction:column;gap:12px;padding:4px;display:flex}.history-item{cursor:pointer;background:#ffffff0d;border:1px solid #ffffff0d;border-radius:12px;flex-direction:column;gap:10px;padding:12px;transition:all .2s;display:flex}.history-item:hover{border-color:var(--accent-color);background:#ffffff14;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.history-item-header{color:var(--text-secondary);opacity:.8;align-items:center;gap:6px;font-size:.75rem;display:flex}.history-item-details{flex-direction:column;gap:4px;display:flex}.detail-row{justify-content:space-between;font-size:.8rem;display:flex}.detail-label{color:var(--text-secondary)}.detail-value{color:var(--text-primary);font-weight:500}.history-item-actions{gap:8px;margin-top:4px;display:flex}.history-action-btn{color:var(--text-primary);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:.75rem;font-weight:600;transition:all .2s;display:flex}.history-action-btn:hover{background:#ffffff1a;border-color:#fff3}.history-action-btn.primary{color:#93c5fd;background:#60a5fa1a;border-color:#60a5fa33}.history-action-btn.primary:hover{background:#60a5fa33;border-color:#60a5fa4d}.history-action-btn.danger{color:#f87171;background:#ef44441a;border-color:#ef444440;flex-shrink:0;margin-left:auto;padding:5px 8px}.history-action-btn.danger:hover:not(:disabled){background:#ef444438;border-color:#ef444473}.history-action-btn.danger:disabled{opacity:.4;cursor:not-allowed}.history-empty{text-align:center;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 20px;display:flex}.locate-control{overflow:hidden;background:var(--panel-bg)!important;-webkit-backdrop-filter:blur(12px)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-md)!important;border:1px solid var(--border-color)!important;margin-top:20px!important;margin-right:20px!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important}.locate-btn{cursor:pointer;color:#fff9!important;background:0 0!important;justify-content:center!important;align-items:center!important;width:44px!important;height:44px!important;transition:all .2s,color .2s,box-shadow .2s!important;display:flex!important}.locate-btn svg{width:20px!important;height:20px!important;transition:filter .2s!important;display:block!important}.locate-btn:hover{transform:scale(1.05);color:var(--text-primary)!important;background:#ffffff14!important;box-shadow:0 0 15px #ffffff1a!important}.locate-btn:hover svg{filter:drop-shadow(0 0 4px #fff9)}.locate-btn:active{transform:scale(.95);background:#ffffff1f!important}.locate-btn.loading{color:var(--accent-color)!important}.locate-btn.loading svg{filter:drop-shadow(0 0 6px #3b82f6cc);animation:1.5s linear infinite spin}.leaflet-geosearch-bar{z-index:1001!important;width:360px!important;margin:0!important;position:absolute!important;top:20px!important;left:20px!important}@media (width<=768px){.leaflet-geosearch-bar{width:calc(100vw - 40px)!important;max-width:360px!important;margin:0!important;position:absolute!important;top:20px!important;left:20px!important}}.leaflet-geosearch-bar form{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2!important;border:1px solid #0000001a!important;border-radius:12px!important;align-items:center!important;padding:4px 8px!important;display:flex!important;box-shadow:0 4px 15px #0000001a!important}.leaflet-geosearch-bar input{font-family:var(--font-family)!important;color:#1e293b!important;background:0 0!important;border:none!important;width:100%!important;padding:8px!important;font-size:.9rem!important}.leaflet-geosearch-bar input:focus{outline:none!important}.leaflet-geosearch-results{background:#fffffffa!important;border:1px solid #0000001a!important;border-radius:12px!important;margin-top:8px!important;overflow:hidden!important;box-shadow:0 8px 25px #0003!important}.leaflet-geosearch-results>*{color:#334155!important;border-bottom:1px solid #0000000d!important;padding:10px 15px!important;font-size:.85rem!important;transition:background .2s!important}.leaflet-geosearch-results>:hover{color:var(--accent-color)!important;background:#3b82f614!important}.user-profile-card{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#ffffff08;margin-bottom:16px;padding:14px 16px;transition:all .3s}.user-profile-card:hover{background:#ffffff0f;border-color:#ffffff29}.user-profile-card.login-promo{background:linear-gradient(135deg,#3b82f614,#1d4ed80a);border:1px solid #3b82f640;box-shadow:0 4px 15px #3b82f60d}.user-profile-card.login-promo:hover{background:linear-gradient(135deg,#3b82f61f,#1d4ed80f);border-color:#3b82f659;box-shadow:0 6px 20px #3b82f614}.user-avatar{object-fit:cover;border:2px solid #ffffff26;border-radius:50%;width:38px;height:38px;box-shadow:0 2px 8px #0003}.user-avatar-fallback{width:38px;height:38px;color:var(--text-secondary);background:#ffffff0f;border:1px dashed #fff3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-avatar-fallback.promo{color:#60a5fa;background:#3b82f61f;border:1px solid #3b82f640}.user-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-size:.875rem;font-weight:600;overflow:hidden}.user-status-badge{align-items:center;margin-top:3px;display:flex}.badge{letter-spacing:.01em;border-radius:9999px;align-items:center;padding:1.5px 7px;font-size:.68rem;font-weight:700;display:inline-flex}.badge.admin{color:#fbbf24;background:#f59e0b1f;border:1px solid #f59e0b40}.badge.premium{color:#34d399;background:#10b9811f;border:1px solid #10b98140}.badge.free{color:#9ca3af;background:#9ca3af1a;border:1px solid #9ca3af2e}.promo-title{color:#93c5fd;margin-bottom:2px;font-size:.8rem;font-weight:700}.promo-desc{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;max-width:120px;font-size:.68rem;overflow:hidden}.logout-btn-icon{color:#94a3b8;cursor:pointer;border-radius:var(--radius-md);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex}.logout-btn-icon:hover{color:#f87171;background:#ef44441f}.login-btn-icon-btn{background:var(--accent-color);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:6px 10px;font-size:.75rem;font-weight:700;transition:all .2s;display:flex;box-shadow:0 4px 10px #3b82f633}.login-btn-icon-btn:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 14px #3b82f64d}.login-btn-icon-btn:active{transform:translateY(0)}.premium-search.leaflet-geosearch-bar{z-index:1000;margin:0!important;position:absolute!important;top:20px!important;left:80px!important}.premium-search form{align-items:center;position:relative;background:var(--panel-bg)!important;-webkit-backdrop-filter:blur(10px)!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-md)!important;padding:4px!important;display:flex!important}.premium-search form input{width:100%;color:var(--text-primary)!important;font-family:var(--font-family)!important;background:0 0!important;border:none!important;height:36px!important;padding:0 12px!important;font-size:.9rem!important}.premium-search form input::placeholder{color:var(--text-secondary)!important}.premium-search button.reset{transition:color .2s;color:var(--text-secondary)!important;background:0 0!important;padding:0 12px!important}.premium-search button.reset:hover{border-radius:4px;color:var(--text-primary)!important;background:#ffffff1a!important}.premium-search .results{background:var(--panel-bg)!important;-webkit-backdrop-filter:blur(10px)!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-md)!important;width:100%!important;box-shadow:var(--shadow-lg)!important;color:var(--text-primary)!important;z-index:1001!important;margin-top:8px!important;padding:4px!important;position:absolute!important;top:100%!important;left:0!important}.premium-search .results:empty,.premium-search .results:not(.active){display:none!important}.premium-search .results>*{transition:all .2s;font-family:var(--font-family)!important;color:var(--text-primary)!important;border:none!important;border-radius:4px!important;padding:8px 12px!important;font-size:.85rem!important}.premium-search .results>.active,.premium-search .results>:hover{color:#fff!important;background-color:#3b82f633!important}.premium-search .results.active:after{display:none!important}.welcome-overlay{-webkit-backdrop-filter:blur(12px)!important;background:#080a0fd9!important}.welcome-modal{flex-direction:column;align-items:center;display:flex;overflow:hidden;background:#121620cc!important;border:1px solid #3b82f640!important;max-width:580px!important;padding:36px 24px 24px!important;box-shadow:0 25px 50px -12px #0009,0 0 50px #6366f126!important}.welcome-carousel-container{width:100%;margin-bottom:24px;position:relative;overflow:hidden}.welcome-slide-track{width:100%;transition:transform .5s cubic-bezier(.25,1,.5,1);display:flex}.welcome-slide-wrapper{flex:0 0 100%;justify-content:center;width:100%;display:flex}.welcome-slide-card{text-align:center;flex-direction:column;align-items:center;width:100%;padding:0 12px;display:flex}.welcome-icon-container{margin-bottom:24px;position:relative}.welcome-icon-wrap{background:#ffffff08;border:1px solid #ffffff14;border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;transition:all .3s;display:flex;position:relative;box-shadow:inset 0 0 20px #ffffff05}.welcome-slide-card:hover .welcome-icon-wrap{border-color:#6366f166;transform:scale(1.05);box-shadow:0 0 30px #6366f133,inset 0 0 20px #ffffff05}.welcome-icon{filter:drop-shadow(0 0 10px #ffffff1a);transition:transform .3s}.icon-glow-gold{color:#fbbf24;filter:drop-shadow(0 0 12px #fbbf2466)!important}.icon-glow-blue{color:#60a5fa;filter:drop-shadow(0 0 12px #60a5fa66)!important}.icon-glow-purple{color:#c084fc;filter:drop-shadow(0 0 12px #c084fc66)!important}.icon-glow-green{color:#34d399;filter:drop-shadow(0 0 12px #34d39966)!important}.welcome-slide-title{background:linear-gradient(135deg,#fff 0%,#cbd5e1 100%);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;margin-bottom:12px;font-size:1.6rem;font-weight:800}.welcome-slide-description{color:var(--text-secondary);max-width:440px;min-height:100px;font-size:.95rem;line-height:1.6}.welcome-pagination{gap:8px;margin-bottom:28px;display:flex}.welcome-dot{cursor:pointer;background:#fff3;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:all .3s cubic-bezier(.4,0,.2,1)}.welcome-dot:hover{background:#fff6}.welcome-dot.active{background:#3b82f6;border-radius:9999px;width:24px;box-shadow:0 0 12px #3b82f680}.welcome-footer{border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;width:100%;margin-top:10px;padding-top:20px;display:flex}.welcome-dismiss-checkbox{cursor:pointer;align-items:center;gap:8px;display:flex}.welcome-dismiss-label{color:#94a3b8;font-size:.85rem;transition:color .2s}.welcome-dismiss-checkbox:hover .welcome-dismiss-label{color:#cbd5e1}.welcome-nav-buttons{align-items:center;gap:12px;display:flex}.welcome-btn{cursor:pointer;font-size:.9rem;font-weight:600;font-family:var(--font-family);border:none;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.welcome-btn-primary{color:#fff;background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);box-shadow:0 4px 12px #3b82f64d}.welcome-btn-primary:hover{background:linear-gradient(135deg,#60a5fa 0%,#3b82f6 100%);transform:translateY(-1px);box-shadow:0 6px 16px #3b82f666}.welcome-btn-primary:active{transform:translateY(1px)}.welcome-btn-secondary{color:#cbd5e1;background:#ffffff0d;border:1px solid #ffffff14}.welcome-btn-secondary:hover{color:#fff;background:#ffffff1a;border-color:#fff3}.welcome-btn-success{background:linear-gradient(135deg,#10b981 0%,#059669 100%)!important;box-shadow:0 4px 12px #10b9814d!important}.welcome-btn-success:hover{background:linear-gradient(135deg,#34d399 0%,#10b981 100%)!important;box-shadow:0 6px 16px #10b98166!important}.welcome-btn-spacer{width:82px}.welcome-modal .close-btn{color:#fff6!important}.welcome-modal .close-btn:hover{color:#fff!important;background:#ffffff14!important}.manual-welcome-trigger{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:#ffffff08;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.manual-welcome-trigger:hover{color:#fff;background:#ffffff14;border-color:#fff3;transform:rotate(15deg)}.history-rename-input{color:var(--text-primary);width:100%;font-size:.95rem;font-weight:600;font-family:var(--font-family);box-sizing:border-box;background:#ffffff14;border:1px solid #fff3;border-radius:6px;outline:none;padding:4px 8px;transition:all .2s}.history-rename-input:focus{border-color:var(--accent-color);background:#ffffff1f;box-shadow:0 0 0 2px #3b82f640}.history-rename-actions{align-items:center;gap:4px;margin-top:6px;display:flex}.history-rename-btn{color:var(--text-secondary);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex}.history-rename-btn:hover{color:var(--text-primary);background:#ffffff1a}.history-rename-btn.save{color:#34d399;background:#10b98126;border-color:#10b9814d}.history-rename-btn.save:hover{color:#55efc4;background:#10b98140;border-color:#10b98166}.history-rename-btn.cancel{color:#f87171;background:#ef444426;border-color:#ef44444d}.history-rename-btn.cancel:hover{color:#ffa4a4;background:#ef444440;border-color:#ef444466}.history-title-container{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.history-title-text{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.95rem;font-weight:600;overflow:hidden}.history-title-edit-trigger{color:var(--text-secondary);opacity:0;cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:opacity .2s,color .2s;display:flex}.history-item:hover .history-title-edit-trigger{opacity:.6}.history-item .history-title-edit-trigger:hover{opacity:1;color:var(--accent-color);background:#ffffff14}.cookie-banner-container{bottom:max(calc(16px + env(safe-area-inset-bottom,0px)), 56px);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:9998;background:#121621f0;border:1px solid #ffffff29;border-radius:18px;width:calc(100% - 32px);max-width:880px;padding:18px 24px;animation:.35s cubic-bezier(.16,1,.3,1) slideUpBanner;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #0009,0 0 0 1px #ffffff0d}@media (width<=768px){.cookie-banner-container{bottom:var(--mobile-nav-clearance);width:calc(100% - 20px);padding:16px}}@keyframes slideUpBanner{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}.cookie-banner-content{flex-direction:column;gap:16px;display:flex}@media (width>=768px){.cookie-banner-content{flex-direction:row;justify-content:space-between;align-items:center;gap:24px}}.cookie-banner-header{flex:1;align-items:flex-start;gap:14px;display:flex}.cookie-banner-icon-wrap{color:#60a5fa;background:#3b82f626;border:1px solid #3b82f64d;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.cookie-banner-title{color:var(--text-primary);margin-bottom:4px;font-size:1rem;font-weight:700}.cookie-banner-text{color:var(--text-secondary);font-size:.82rem;line-height:1.45}.cookie-banner-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cookie-btn{font-size:.82rem;font-weight:600;font-family:var(--font-family);cursor:pointer;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:8px 16px;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.cookie-btn-primary{color:#fff;background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);border:1px solid #ffffff26;box-shadow:0 4px 12px #3b82f659}.cookie-btn-primary:hover{background:linear-gradient(135deg,#60a5fa 0%,#3b82f6 100%);transform:translateY(-1px)}.cookie-btn-secondary{color:var(--text-primary);background:#ffffff14;border:1px solid #ffffff24}.cookie-btn-secondary:hover{background:#ffffff24;transform:translateY(-1px)}.cookie-btn-outline{color:var(--text-secondary);background:0 0;border:1px solid #ffffff26}.cookie-btn-outline:hover{color:var(--text-primary);background:#ffffff0f}.privacy-modal-overlay{z-index:10001}.privacy-modal-content{max-width:560px!important;padding:28px!important}.privacy-modal-header{align-items:flex-start;gap:14px;margin-bottom:20px;display:flex}.privacy-modal-icon-wrap{color:#60a5fa;background:#3b82f61f;border:1px solid #3b82f64d;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:flex}.privacy-modal-title{color:var(--text-primary);margin-bottom:4px;font-size:1.3rem;font-weight:700}.privacy-modal-subtitle{color:var(--text-secondary);font-size:.82rem;line-height:1.45}.privacy-categories-list{flex-direction:column;gap:12px;max-height:380px;margin-bottom:24px;padding-right:4px;display:flex;overflow-y:auto}.privacy-category-card{background:#ffffff08;border:1px solid #ffffff14;border-radius:14px;flex-direction:column;gap:6px;padding:14px 16px;transition:border-color .2s;display:flex}.privacy-category-card:hover{border-color:#ffffff26}.privacy-category-header{justify-content:space-between;align-items:center;display:flex}.privacy-category-title-group{align-items:center;gap:10px;display:flex}.privacy-category-name{color:var(--text-primary);font-size:.95rem;font-weight:600}.privacy-badge.always-active{color:#34d399;background:#10b98126;border:1px solid #10b9814d;border-radius:9999px;align-items:center;padding:2px 8px;font-size:.68rem;font-weight:600;display:inline-flex}.privacy-category-desc{color:var(--text-secondary);font-size:.78rem;line-height:1.45}.privacy-modal-footer{border-top:1px solid #ffffff14;justify-content:flex-end;align-items:center;gap:10px;padding-top:16px;display:flex}.switch-container{cursor:pointer;width:44px;height:24px;display:inline-block;position:relative}.switch-container input{opacity:0;width:0;height:0}.switch-slider{background-color:#ffffff26;border-radius:24px;transition:background-color .25s cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.switch-slider:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:transform .25s cubic-bezier(.4,0,.2,1);position:absolute;bottom:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch-container input:checked+.switch-slider{background-color:var(--accent-color)}.switch-container input:checked+.switch-slider:before{transform:translate(20px)}.mesh-preview-panel{width:100vw;height:100dvh;max-height:100dvh;position:fixed;inset:0}.mesh-viewer-desktop-left{pointer-events:none;flex-direction:column;gap:16px;width:300px;display:flex;position:absolute;top:20px;bottom:120px;left:20px}.mesh-viewer-desktop-right{pointer-events:auto;flex-direction:column;gap:16px;width:300px;padding-bottom:20px;padding-right:8px;display:flex;position:absolute;top:20px;bottom:20px;right:20px;overflow-y:auto}.mesh-viewer-desktop-compass{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:auto;background:#0f172a99;border:2px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:90px;height:90px;display:flex;position:absolute;bottom:20px;left:20px}.mesh-viewer-mobile-top-bar,.mesh-viewer-mobile-bottom-dock,.mesh-mobile-drawer-backdrop,.mesh-mobile-drawer{display:none}@media (width<=768px){.mesh-viewer-desktop-left,.mesh-viewer-desktop-right,.mesh-viewer-desktop-compass{display:none!important}.mesh-viewer-mobile-top-bar{top:calc(12px + env(safe-area-inset-top,0px));z-index:20;pointer-events:none;justify-content:space-between;align-items:center;gap:8px;display:flex;position:absolute;left:12px;right:12px}.mesh-mobile-top-btn{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#f8fafc;cursor:pointer;pointer-events:auto;background:#0f172abf;border:1px solid #ffffff26;border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;display:flex;box-shadow:0 4px 12px #0000004d}.mesh-mobile-badge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#cbd5e1;letter-spacing:.02em;pointer-events:auto;white-space:nowrap;background:#0f172ad9;border:1px solid #ffffff26;border-radius:20px;padding:6px 14px;font-size:.78rem;font-weight:600;box-shadow:0 4px 12px #00000040}.mesh-mobile-compass-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;background:#0f172abf;border:1px solid #ffffff26;border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;display:flex;box-shadow:0 4px 12px #0000004d}.mesh-viewer-mobile-bottom-dock{bottom:var(--mobile-nav-clearance);z-index:20;pointer-events:none;align-items:center;gap:10px;display:flex;position:absolute;left:14px;right:14px}.mesh-dock-btn{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#f8fafc;cursor:pointer;pointer-events:auto;background:#0f172ad9;border:1px solid #ffffff26;border-radius:12px;justify-content:center;align-items:center;gap:6px;height:48px;font-family:inherit;font-size:.82rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 8px 24px #0006}.mesh-dock-btn.icon-only{flex-shrink:0;width:48px}.mesh-dock-btn.primary-dock{background:linear-gradient(135deg,#3b82f6 0%,#1d4ed8 100%);border:1px solid #fff3;flex:1;font-size:.9rem;font-weight:700;box-shadow:0 8px 24px #2563eb66}.mesh-dock-btn.active{color:#93c5fd;background:#3b82f640;border-color:#3b82f6}.mesh-mobile-drawer-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:25;pointer-events:auto;background:#0009;animation:.2s ease-out fadeInDrawer;display:block;position:absolute;inset:0}.mesh-mobile-drawer{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:30;pointer-events:auto;max-height:80dvh;padding-bottom:var(--mobile-nav-clearance);touch-action:pan-y;background:#0f172af2;border-top:1px solid #ffffff26;border-radius:20px 20px 0 0;flex-direction:column;animation:.25s cubic-bezier(.16,1,.3,1) slideUpDrawer;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -12px 36px #00000080}.mesh-drawer-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.mesh-drawer-title{color:#f8fafc;align-items:center;gap:8px;font-size:1rem;font-weight:700;display:flex}.mesh-drawer-close-btn{color:#94a3b8;cursor:pointer;background:#ffffff14;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.mesh-drawer-content{padding:16px 20px;padding-bottom:max(calc(24px + env(safe-area-inset-bottom,0px)), 48px);-webkit-overflow-scrolling:touch;flex-direction:column;gap:16px;display:flex;overflow-y:auto}}@keyframes slideUpDrawer{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeInDrawer{0%{opacity:0}to{opacity:1}}
