:root{--color-primary: #0284c7;--color-primary-hover: #0369a1;--color-secondary: #10b981;--color-secondary-hover: #059669;--color-bg-dark: #0b1120;--color-surface-card: #1e293b;--color-text-primary: #f8fafc;--color-text-muted: #94a3b8;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}input,textarea,select{-webkit-user-select:text;user-select:text}body{font-family:var(--font-family);background-color:var(--color-bg-dark);color:var(--color-text-primary);overflow:hidden;height:100vh;width:100vw;touch-action:pan-x pan-y}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0f172a99}::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.touch-target{min-height:44px;min-width:44px;touch-action:manipulation}button{touch-action:manipulation}.bg-brand-primary{background-color:var(--color-primary)}.hover-bg-brand-primary:hover{background-color:var(--color-primary-hover)}.text-brand-primary{color:var(--color-primary)}.border-brand-primary{border-color:var(--color-primary)}.bg-brand-secondary{background-color:var(--color-secondary)}.text-brand-secondary{color:var(--color-secondary)}.border-brand-secondary{border-color:var(--color-secondary)}@keyframes nde-pulse-emerald{0%{box-shadow:0 0 #10b981b3}70%{box-shadow:0 0 0 10px #10b98100}to{box-shadow:0 0 #10b98100}}@keyframes nde-pulse-crimson{0%{box-shadow:0 0 #dc2626b3}70%{box-shadow:0 0 0 12px #dc262600}to{box-shadow:0 0 #dc262600}}.nde-marker-node{display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:auto;cursor:pointer;transform:translateZ(0);transition:transform .15s ease-out;-webkit-user-select:none;user-select:none}.nde-marker-node:hover{transform:scale(1.22);z-index:99!important}.nde-icon-badge{display:flex;align-items:center;justify-content:center;border:2px solid #ffffff;box-shadow:0 4px 10px #00000080}.nde-ont-online{background:linear-gradient(135deg,#10b981,#059669);border-radius:50%!important;animation:nde-pulse-emerald 2s infinite}.nde-ont-offline{background:linear-gradient(135deg,#ef4444,#b91c1c);border-radius:50%!important}.nde-closure-badge{background:linear-gradient(135deg,#ea580c,#c2410c);border-radius:6px!important}.nde-splitter-badge{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:6px!important}.nde-olt-badge{background:linear-gradient(135deg,#dc2626,#991b1b);border-radius:8px!important;animation:nde-pulse-crimson 2.5s infinite}.nde-structure-badge{background:linear-gradient(135deg,#475569,#334155);border-radius:50%!important}@keyframes nde-pulse-radar{0%{box-shadow:0 0 #0070ffbf}70%{box-shadow:0 0 0 15px #0070ff00}to{box-shadow:0 0 #0070ff00}}.nde-pulse-radar{animation:nde-pulse-radar 1.8s infinite!important}.nde-marker-label{margin-top:3px;background:#0f172af0;border:1px solid rgba(255,255,255,.22);color:#f8fafc;font-size:10px;font-weight:600;padding:1px 6px;border-radius:4px;white-space:nowrap;box-shadow:0 2px 6px #0009;pointer-events:none;display:flex;align-items:center;gap:4px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.nde-rx-tag{color:#34d399;font-weight:700;font-family:monospace}.nde-ratio-tag{color:#c084fc;font-weight:700;font-family:monospace}.glass-panel{background:#0f172ae0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 25px -5px #00000080,0 8px 10px -6px #00000080}.glass-dock-btn{background:#0f172ad9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);color:#e2e8f0;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 10px #0000004d}.glass-dock-btn:hover{background:#1e293bf2;border-color:#38bdf880;color:#38bdf8;transform:translateY(-2px);box-shadow:0 8px 18px -2px #0009}.glass-dock-btn:active{transform:translateY(0)}.glass-dock-btn.active{background:var(--color-primary);border-color:#38bdf8;color:#fff;box-shadow:0 0 15px #0284c799}.nde-live-gps-puck{position:relative;width:52px;height:52px;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:9999!important}.nde-live-gps-pulse{position:absolute;width:48px;height:48px;border-radius:50%;background:radial-gradient(circle,#0070ff73,#0070ff00 70%);animation:nde-gps-pulse-wave 2.2s cubic-bezier(.1,.7,.1,1) infinite;pointer-events:none}@keyframes nde-gps-pulse-wave{0%{transform:scale(.35);opacity:.95}65%{transform:scale(1.7);opacity:.25}to{transform:scale(2.2);opacity:0}}.nde-live-gps-heading{position:absolute;top:-12px;width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:24px solid rgba(0,112,255,.4);filter:drop-shadow(0 0 6px rgba(0,112,255,.6));transform-origin:center 26px;display:none;pointer-events:none;transition:transform .3s ease-out}.nde-live-gps-core{position:relative;width:26px;height:26px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 0 14px #0070ffe6,0 3px 8px #00000080;border:1.5px solid #0070FF;z-index:2;transition:transform .2s ease-out}.nde-live-gps-dot{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.user-gps-marker{width:20px;height:20px;border-radius:50%;background-color:#0070ff;border:3px solid #ffffff;box-shadow:0 0 14px #0070ffe6;animation:gps-beacon-pulse 2s infinite}.nde-field-personnel-marker{position:relative;display:flex;flex-direction:column;align-items:center;cursor:pointer;z-index:9998;transform:translate(-50%,-100%);-webkit-user-select:none;user-select:none}.nde-field-user-tag{background:#0f172af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(56,189,248,.45);color:#f8fafc;padding:3px 9px;border-radius:12px;font-size:.72rem;font-weight:700;white-space:nowrap;box-shadow:0 4px 15px #0009;display:flex;align-items:center;gap:5px;margin-bottom:5px;pointer-events:none;transition:transform .2s,box-shadow .2s}.nde-field-personnel-marker:hover .nde-field-user-tag{transform:scale(1.08);border-color:#38bdf8;box-shadow:0 6px 18px #38bdf880}.nde-field-user-live-dot{width:7px;height:7px;border-radius:50%;background-color:#10b981;box-shadow:0 0 8px #10b981;animation:nde-gps-pulse-wave 1.8s infinite}.nde-field-user-pin{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;transition:transform .2s cubic-bezier(.175,.885,.32,1.275);cursor:pointer}.nde-field-personnel-marker:hover .nde-field-user-pin,.nde-field-personnel-marker:active .nde-field-user-pin{transform:scale(1.15) translateY(-2px)}.nde-worker-ground-pulse{position:absolute;bottom:-3px;left:50%;transform:translate(-50%);width:22px;height:7px;border-radius:50%;background:radial-gradient(ellipse,#10b98199,#10b98100 70%);animation:nde-worker-pulse-wave 2s infinite ease-out;pointer-events:none}.nde-field-user-pin.role-read-only .nde-worker-ground-pulse{background:radial-gradient(ellipse,#0284c799,#0284c700 70%)}.nde-field-user-pin.role-full-access .nde-worker-ground-pulse{background:radial-gradient(ellipse,#ef444499,#ef444400 70%)}@keyframes nde-worker-pulse-wave{0%{transform:translate(-50%) scale(.6);opacity:.9}to{transform:translate(-50%) scale(1.9);opacity:0}}.glass-dock-btn.tracking-active{background:#0070ff4d!important;border-color:#0070ff!important;color:#38bdf8!important;box-shadow:0 0 16px #0070ff99!important}.measure-vertex-pin{width:12px;height:12px;border-radius:50%;background-color:#f59e0b;border:2px solid #ffffff;box-shadow:0 0 10px #f59e0be6;cursor:crosshair}.measure-tooltip{background:#0f172af2;color:#fbbf24;border:1px solid rgba(245,158,11,.6);padding:4px 8px;border-radius:6px;font-size:11px;font-weight:700;white-space:nowrap;box-shadow:0 4px 12px #0009}.maplibregl-ctrl-attrib,.maplibregl-ctrl-attrib-inner,.maplibregl-compact,.maplibregl-ctrl-logo{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}header,header.nde-app-header{padding-top:max(8px,env(safe-area-inset-top))!important;padding-bottom:8px!important;padding-left:max(12px,env(safe-area-inset-left))!important;padding-right:max(12px,env(safe-area-inset-right))!important;min-height:calc(56px + env(safe-area-inset-top))!important;height:auto!important;box-sizing:border-box!important}.mobile-map-dock{max-width:calc(100vw - 24px)!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important}.mobile-map-dock::-webkit-scrollbar{display:none!important}@media(max-width:640px){.header-tagline,.header-badge-gis{display:none!important}.nde-app-title{font-size:.88rem!important;max-width:140px!important}.mobile-map-dock{top:10px!important;left:10px!important}}
