:root{--color-bg: #f5f5f7;--color-surface: #ffffff;--color-text-primary: #1d1d1f;--color-text-secondary: #86868b;--color-text-tertiary: #aeaeb2;--color-border: #d2d2d7;--color-border-light: #e5e5ea;--color-accent: #007aff;--color-accent-hover: #0056b3;--gv-blue: #005DA6;--gv-dark-blue: #113154;--gv-orange: #F47327;--gv-green: #61A60E;--gv-grey: #51545D;--color-temp-cool: #007aff;--color-temp-normal: #00c7be;--color-temp-elevated: #34c759;--color-temp-warning: #ffcc00;--color-temp-alert: #ff9500;--color-temp-critical: #ff3b30;--color-success: #34c759;--color-warning: #ffcc00;--color-error: #ff3b30;--color-offline: #8e8e93;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-xxl: 48px;--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, sans-serif;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-md: 15px;--font-size-lg: 17px;--font-size-xl: 22px;--font-size-xxl: 28px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--border-radius-sm: 8px;--border-radius-md: 12px;--border-radius-lg: 16px;--border-radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .16);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--header-height: 64px;--layer-switcher-height: 52px;--stats-bar-height: 56px;--panel-width: 360px;font-family:var(--font-family);line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{font-family:var(--font-family),serif;font-size:var(--font-size-md);color:var(--color-text-primary);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;min-width:320px;min-height:100vh}.app-container{display:flex;flex-direction:column;height:100vh;width:100%;overflow:hidden;position:relative}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-border-light);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:root{--gv-blue: #005DA6;--gv-dark-blue: #113154;--gv-orange: #F47327;--gv-green: #61A60E;--gv-grey: #51545D;--header-height: 64px;--header-bg: rgba(255, 255, 255, .85);--header-border: rgba(0, 93, 166, .1)}.gridvista-header{height:var(--header-height);background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid rgba(0,0,0,.08);box-shadow:none;position:sticky;top:0;z-index:1000;transition:all .3s ease}.gridvista-header:hover{background:transparent;box-shadow:none}.header-content{height:100%;max-width:100%;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:32px}.header-left{display:flex;align-items:center;gap:24px;justify-content:flex-start}.header-logo{display:flex;align-items:center;gap:10px;cursor:pointer;transition:transform .3s ease}.header-logo:hover{transform:scale(1.05)}.logo-icon{width:115px;height:36px}.logo-text{font-size:20px;font-weight:600;color:var(--gv-blue);letter-spacing:-.02em}.logo-center{animation:logoPulse 3s ease-in-out infinite}@keyframes logoPulse{0%,to{r:8px;opacity:1}50%{r:9px;opacity:.8}}.logo-node{animation:nodeFloat 3s ease-in-out infinite}@keyframes nodeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.logo-line{stroke-dasharray:60;stroke-dashoffset:60;animation:lineDraw 2s ease-in-out forwards}@keyframes lineDraw{to{stroke-dashoffset:0}}.header-divider{display:none}.header-nav{display:flex;align-items:center;gap:8px;justify-content:center;grid-column:2}.nav-item{position:relative;display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:15px;font-weight:500;color:var(--gv-grey);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;outline:none}.nav-item:hover{color:var(--gv-blue);background:#005da60d}.nav-item.active{color:var(--gv-blue);background:#005da614;box-shadow:none;font-weight:600}.nav-item:focus-visible{outline:2px solid var(--gv-blue);outline-offset:2px}.nav-icon{width:20px;height:20px;flex-shrink:0}.grid-node{animation:gridNodePulse 3s ease-in-out infinite}.grid-node.node-1{animation-delay:0s}.grid-node.node-2{animation-delay:.2s}.grid-node.node-3{animation-delay:.4s}.grid-node.node-4{animation-delay:.6s}.grid-node.node-5{animation-delay:.8s}.grid-node.node-6{animation-delay:1s}.grid-node.node-7{animation-delay:1.2s}.grid-node.node-8{animation-delay:1.4s}@keyframes gridNodePulse{0%,to{opacity:.7;r:4px}50%{opacity:1;r:5px}}.grid-node-center{animation:centerNodePulse 2s ease-in-out infinite}@keyframes centerNodePulse{0%,to{opacity:1;r:6px}50%{opacity:.7;r:7px}}.grid-connection{stroke-dasharray:4 2;animation:connectionFlow 3s linear infinite}@keyframes connectionFlow{to{stroke-dashoffset:20}}.timeline-icon{position:relative}.timeline-spine{animation:spineGlow 3s ease-in-out infinite}@keyframes spineGlow{0%,to{stroke-width:3;opacity:1}50%{stroke-width:3.5;opacity:.8}}.timeline-node{animation:nodeFloat 2s ease-in-out infinite;transform-origin:center}.node-1{animation-delay:0s}.node-2{animation-delay:.3s}.node-3{animation-delay:.6s}.node-current{animation-delay:.9s}@keyframes nodeFloat{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.timeline-ripple{animation:rippleExpand 2s ease-out infinite}.ripple-1{animation-delay:0s}.ripple-2{animation-delay:.5s}.ripple-3{animation-delay:1s}@keyframes rippleExpand{0%{r:5px;opacity:.5}to{r:12px;opacity:0}}.timeline-branch{stroke-dasharray:20;stroke-dashoffset:20;animation:branchDraw 2s ease-in-out infinite}.branch-1{animation-delay:.2s}.branch-2{animation-delay:.6s}.branch-3{animation-delay:1s}@keyframes branchDraw{0%,to{stroke-dashoffset:20;opacity:.3}50%{stroke-dashoffset:0;opacity:1}}.timeline-pulse-current{animation:currentPulse 1.5s ease-out infinite}@keyframes currentPulse{0%{r:7px;opacity:.8;stroke-width:2}to{r:15px;opacity:0;stroke-width:.5}}.time-arrow{animation:arrowFloat 3s ease-in-out infinite}@keyframes arrowFloat{0%,to{transform:translateY(0);opacity:.6}50%{transform:translateY(-3px);opacity:1}}.arrow-head{animation:arrowBlink 2s ease-in-out infinite}@keyframes arrowBlink{0%,to{opacity:1}50%{opacity:.3}}.playback-indicator{animation:playbackTravel 4s ease-in-out infinite}@keyframes playbackTravel{0%{cy:80px;opacity:1}50%{cy:20px;opacity:.8}to{cy:80px;opacity:1}}.nav-item:hover .timeline-icon .timeline-spine{stroke-width:4;animation:spineGlowFast 1s ease-in-out infinite}@keyframes spineGlowFast{0%,to{opacity:1}50%{opacity:.6}}.nav-item:hover .timeline-icon .playback-indicator{animation:playbackTravelFast 2s ease-in-out infinite}@keyframes playbackTravelFast{0%{cy:80px;r:3px}50%{cy:20px;r:4px}to{cy:80px;r:3px}}.nav-item:hover .timeline-icon .timeline-node{animation:nodeFloatFast 1s ease-in-out infinite}@keyframes nodeFloatFast{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}.chart-line{stroke-dasharray:200;stroke-dashoffset:200;animation:chartDraw 2s ease-in-out infinite}@keyframes chartDraw{0%{stroke-dashoffset:200}to{stroke-dashoffset:0}}.data-point{animation:pointPulse 2s ease-in-out infinite}.point-1{animation-delay:0s}.point-2{animation-delay:.2s}.point-3{animation-delay:.4s}.point-4{animation-delay:.6s}.point-5{animation-delay:.8s}.point-6{animation-delay:1s}@keyframes pointPulse{0%,to{r:4px;opacity:1}50%{r:6px;opacity:.7}}.person{animation:personBounce 3s ease-in-out infinite}.person-1{animation-delay:0s}.person-2{animation-delay:.3s}.person-3{animation-delay:.6s}@keyframes personBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.team-connection{stroke-dasharray:4 2;animation:connectionPulse 2s ease-in-out infinite}@keyframes connectionPulse{0%,to{opacity:.3;stroke-width:2}50%{opacity:.6;stroke-width:3}}.maintenance-icon{position:relative}.gear-group{animation:gearRotate 8s linear infinite;transform-origin:60px 60px}@keyframes gearRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.gear-outer{animation:gearPulse 3s ease-in-out infinite}@keyframes gearPulse{0%,to{stroke-width:3;opacity:1}50%{stroke-width:3.5;opacity:.8}}.gear-center{animation:centerPulse 2s ease-in-out infinite}@keyframes centerPulse{0%,to{r:8px}50%{r:9px}}.wrench-group{animation:wrenchTilt 3s ease-in-out infinite;transform-origin:24px 52px}@keyframes wrenchTilt{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.wrench-handle{animation:handleShine 3s ease-in-out infinite}@keyframes handleShine{0%,to{opacity:1}50%{opacity:.7}}.maintenance-sparkles .sparkle{animation:sparkleFloat 2s ease-in-out infinite;transform-origin:center}.sparkle-2{animation-delay:.7s}.sparkle-3{animation-delay:1.4s}.nav-item:hover .maintenance-icon .gear-group{animation:gearRotateFast 2s linear infinite}@keyframes gearRotateFast{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.nav-item:hover .maintenance-icon .wrench-group{animation:wrenchShake .5s ease-in-out infinite}@keyframes wrenchShake{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}.nav-item:hover .maintenance-icon .sparkle{animation:sparkleExplode 1s ease-out infinite}@keyframes sparkleExplode{0%{opacity:1;transform:scale(1) rotate(0)}to{opacity:0;transform:scale(2) rotate(360deg)}}.monitor-screen{animation:screenGlow 3s ease-in-out infinite}@keyframes screenGlow{0%,to{stroke-width:3;opacity:1}50%{stroke-width:3.5;opacity:.8}}.live-signal{stroke-dasharray:200;stroke-dashoffset:200;animation:signalFlow 2s ease-in-out infinite}@keyframes signalFlow{0%{stroke-dashoffset:200;opacity:.3}50%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-200;opacity:.3}}.live-pulse{animation:livePulse 1.5s ease-in-out infinite}@keyframes livePulse{0%,to{r:4px;opacity:1}50%{r:6px;opacity:.5}}.document{animation:documentFloat 3s ease-in-out infinite}@keyframes documentFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.document-fold{animation:foldShine 3s ease-in-out infinite}@keyframes foldShine{0%,to{opacity:.6}50%{opacity:1}}.bar{animation:barGrow 2s ease-in-out infinite;transform-origin:bottom}@keyframes barGrow{0%,to{transform:scaleY(1);opacity:1}50%{transform:scaleY(.7);opacity:.7}}.text-line{animation:textFade 2s ease-in-out infinite}.line-2{animation-delay:.5s}@keyframes textFade{0%,to{opacity:.4}50%{opacity:.7}}.lightning-bolt{animation:boltCharge 2s ease-in-out infinite;transform-origin:center}@keyframes boltCharge{0%,to{opacity:1;transform:scale(1)}10%{opacity:.7;transform:scale(.95)}20%{opacity:1;transform:scale(1)}30%{opacity:.8;transform:scale(.98)}40%,60%{opacity:1;transform:scale(1)}}.ai-sparkles .sparkle{animation:sparkleFloat 3s ease-in-out infinite;transform-origin:center}.sparkle-1{animation-delay:0s}.sparkle-2{animation-delay:.5s}.sparkle-3{animation-delay:1s}.sparkle-4{animation-delay:1.5s}.sparkle-5{animation-delay:2s}.sparkle-6{animation-delay:2.5s}@keyframes sparkleFloat{0%,to{opacity:.3;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.2) rotate(180deg)}}.energy-wave{animation:waveFlow 2s ease-in-out infinite}.wave-1{animation-delay:0s}.wave-2{animation-delay:1s}@keyframes waveFlow{0%,to{opacity:0;stroke-width:2}50%{opacity:.8;stroke-width:3}}.nav-item:hover .predictions-icon .lightning-bolt{animation:boltStrike .6s ease-out;filter:drop-shadow(0 0 8px rgba(97,166,14,.8))}@keyframes boltStrike{0%,to{opacity:1}20%,40%,60%{opacity:.3}10%,30%,50%,70%{opacity:1}}.nav-item:hover .predictions-icon .sparkle{animation:sparkleExplode .8s ease-out infinite}@keyframes sparkleExplode{0%{opacity:1;transform:scale(1) rotate(0)}to{opacity:0;transform:scale(2.5) rotate(360deg)}}.nav-item:hover .predictions-icon .brain-outline{stroke-width:3.5;filter:drop-shadow(0 0 6px rgba(97,166,14,.6))}.nav-item:hover .predictions-icon .neural-node{r:4px}.nav-item:hover .predictions-icon .ai-sparkle{animation:sparkleExplode 1s ease-out infinite}@keyframes sparkleExplode{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(3) rotate(360deg)}}.map-boundary{animation:mapPulse 3s ease-in-out infinite}@keyframes mapPulse{0%,to{stroke-width:2.5;opacity:1}50%{stroke-width:3;opacity:.8}}.grid-line{animation:gridFade 4s ease-in-out infinite}@keyframes gridFade{0%,to{opacity:.2}50%{opacity:.5}}.danger-zone{animation:zoneExpand 2s ease-in-out infinite}.zone-1{animation-delay:0s}.zone-2{animation-delay:.7s}.zone-3{animation-delay:1.4s}@keyframes zoneExpand{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.8;transform:scale(1.3)}}.danger-core{animation:corePulse 2s ease-in-out infinite}@keyframes corePulse{0%,to{opacity:1;r:4px}50%{opacity:.7;r:5px}}.warning-badge{animation:badgeBounce 2s ease-in-out infinite}@keyframes badgeBounce{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.1)}}.risk-pulse{animation:riskRadiate 2s ease-out infinite}.pulse-2{animation-delay:.7s}.pulse-3{animation-delay:1.4s}@keyframes riskRadiate{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(2)}}.nav-item:hover .risk-zones-icon .danger-core{fill:#ff3b30;r:6px}.nav-item:hover .risk-zones-icon .warning-badge{animation:badgeShake .5s ease-in-out infinite}@keyframes badgeShake{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}.help-circle,.info-circle{animation:circleGlow 3s ease-in-out infinite;transform-origin:center}@keyframes circleGlow{0%,to{stroke-width:2;opacity:1}50%{stroke-width:2.5;opacity:.8}}.question-mark,.info-stem{animation:symbolPulse 3s ease-in-out infinite}@keyframes symbolPulse{0%,to{opacity:1}50%{opacity:.6}}.question-dot,.info-dot{animation:dotBounce 2s ease-in-out infinite}@keyframes dotBounce{0%,to{transform:translateY(0);opacity:1}50%{transform:translateY(-1px);opacity:.7}}.header-icon-button:hover .help-support-icon .help-circle,.header-icon-button:hover .help-support-icon .info-circle{stroke-width:2.5;animation:circleExpand .6s ease-out}@keyframes circleExpand{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.header-icon-button:hover .help-support-icon .question-mark,.header-icon-button:hover .help-support-icon .info-stem{stroke-width:2.5}.header-icon-button:hover .help-support-icon .question-dot,.header-icon-button:hover .help-support-icon .info-dot{animation:dotJump .6s ease-out infinite}@keyframes dotJump{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.voice-assistant-button{position:relative}.mic-body{transition:all .3s ease;transform-origin:center}.voice-assistant-icon:not(.active).mic-body{animation:micFloat 3s ease-in-out infinite}@keyframes micFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.mic-stand{transition:all .3s ease}.mic-arc{stroke-dasharray:20;stroke-dashoffset:20;animation:arcDraw 2s ease-in-out infinite}@keyframes arcDraw{0%,to{stroke-dashoffset:20;opacity:.5}50%{stroke-dashoffset:0;opacity:1}}.voice-assistant-icon.active.mic-body{animation:micPulse 1s ease-in-out infinite}@keyframes micPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.9}}.listening-pulse{animation:pulseExpand 1.5s ease-out infinite}@keyframes pulseExpand{0%{r:8px;opacity:.6}to{r:16px;opacity:0}}.sound-waves.wave{animation:waveOscillate 1s ease-in-out infinite}.wave-1,.wave-2{animation-delay:0s}.wave-3,.wave-4{animation-delay:.2s}@keyframes waveOscillate{0%,to{opacity:.3;transform:scaleX(.8)}50%{opacity:1;transform:scaleX(1.2)}}.voice-assistant-button.listening{background:#61a60e1a;animation:buttonGlow 2s ease-in-out infinite}@keyframes buttonGlow{0%,to{box-shadow:0 0 #61a60e00}50%{box-shadow:0 0 12px #61a60e66}}.header-icon-button:hover.voice-assistant-icon:not(.active).mic-body{fill:var(--gv-green)}.header-icon-button:hover.voice-assistant-icon:not(.active).mic-stand,.header-icon-button:hover.voice-assistant-icon:not(.active).mic-arc{stroke:var(--gv-green)}.header-icon-button:hover.voice-assistant-icon.active.sound-waves.wave{animation:waveExpand .8s ease-in-out infinite}@keyframes waveExpand{0%,to{opacity:.5;transform:scaleX(1)}50%{opacity:1;transform:scaleX(1.5)}}.header-right{display:flex;align-items:center;gap:12px;position:relative;justify-content:flex-end}.header-icon-button{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;border-radius:8px;color:var(--gv-grey);cursor:pointer;transition:all .3s ease;outline:none}.header-icon-button:hover{background:#005da60d;color:var(--gv-blue)}.header-icon-button:focus-visible{outline:2px solid var(--gv-blue);outline-offset:2px}.utility-icon{width:20px;height:20px}.help-support-icon{color:var(--gv-grey)}.header-icon-button:hover.help-support-icon{color:var(--gv-blue)}.help-support-icon.question-mark,.help-support-icon.question-text{opacity:1}.icon-badge{position:absolute;top:6px;right:6px;min-width:16px;height:16px;padding:0 4px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:#fff;background:var(--gv-orange);border-radius:8px;box-shadow:0 2px 6px #f4732766}.bell-icon{animation:bellRing 3s ease-in-out infinite}@keyframes bellRing{0%,90%,to{transform:rotate(0)}92%,96%{transform:rotate(-15deg)}94%,98%{transform:rotate(15deg)}}.header-user-button{display:flex;align-items:center;gap:8px;padding:4px 4px 4px 12px;background:transparent;border:1px solid rgba(0,0,0,.08);border-radius:20px;cursor:pointer;transition:all .3s ease;outline:none}.header-user-button:hover{background:#005da60d;border-color:var(--gv-blue)}.user-avatar{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--gv-blue),var(--gv-dark-blue));border-radius:50%;box-shadow:0 2px 8px #005da64d}.chevron-icon{width:16px;height:16px;color:var(--gv-grey);transition:transform .3s ease}.header-user-button[aria-expanded=true] .chevron-icon{transform:rotate(180deg)}.dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:280px;background:#fff;border:1px solid var(--header-border);border-radius:12px;box-shadow:0 12px 32px #0000001f;padding:8px;animation:dropdownFadeIn .2s ease-out;z-index:1001}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{padding:12px 16px;border-bottom:1px solid var(--header-border);margin-bottom:8px}.dropdown-header h3{font-size:16px;font-weight:600;color:var(--gv-dark-blue);margin:0}.user-info{display:flex;flex-direction:column;gap:4px}.user-name{font-size:15px;font-weight:600;color:var(--gv-dark-blue)}.user-email{font-size:13px;color:var(--gv-grey)}.dropdown-divider{height:1px;background:var(--header-border);margin:8px 0}.dropdown-item{width:100%;display:flex;align-items:center;gap:12px;padding:10px 16px;font-size:14px;font-weight:500;color:var(--gv-dark-blue);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;text-align:left}.dropdown-item:hover{background:#005da614;color:var(--gv-blue)}.dropdown-item.danger{color:#ff3b30}.dropdown-item.danger:hover{background:#ff3b3014}.dropdown-footer{padding:8px;border-top:1px solid var(--header-border);margin-top:8px}.dropdown-footer-link{width:100%;padding:10px 16px;font-size:14px;font-weight:500;color:var(--gv-blue);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.dropdown-footer-link:hover{background:#005da614}.notifications-menu{min-width:360px}.notification-list{max-height:400px;overflow-y:auto}.notification-item{display:flex;gap:12px;padding:12px;border-radius:8px;cursor:pointer;transition:background .2s ease}.notification-item:hover{background:#005da60d}.notification-item.unread{background:#005da614}.notification-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:18px;border-radius:8px;flex-shrink:0}.notification-icon.critical{background:#f473271a}.notification-icon.success{background:#61a60e1a}.notification-content{flex:1;min-width:0}.notification-title{font-size:14px;font-weight:600;color:var(--gv-dark-blue);margin-bottom:2px}.notification-body{font-size:13px;color:var(--gv-grey);margin-bottom:4px}.notification-time{font-size:12px;color:var(--gv-grey)}.search-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding-top:120px;z-index:2000;animation:overlayFadeIn .2s ease-out}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.search-modal{width:100%;max-width:600px;background:#fff;border-radius:16px;box-shadow:0 24px 64px #0003;padding:24px;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:translateY(0)}}.search-input{width:100%;padding:16px;font-size:18px;font-family:inherit;color:var(--gv-dark-blue);background:#005da60d;border:2px solid transparent;border-radius:12px;outline:none;transition:all .3s ease}.search-input:focus{border-color:var(--gv-blue);background:#fff}.search-input::placeholder{color:var(--gv-grey)}.search-shortcuts{margin-top:16px;display:flex;gap:8px;align-items:center;font-size:13px;color:var(--gv-grey)}.search-shortcuts kbd{padding:4px 8px;font-size:11px;font-family:inherit;font-weight:600;color:var(--gv-grey);background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:4px}@media(max-width:1024px){.header-nav{gap:4px}.nav-item span{display:none}.nav-item{padding:10px}}@media(max-width:768px){.header-content{padding:0 16px;gap:16px}.logo-text,.header-divider{display:none}.search-modal{margin:0 16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.gridvista-subheader{height:56px;background:#fff;border-bottom:1px solid rgba(0,0,0,.08);position:sticky;top:64px;z-index:999;box-shadow:0 2px 8px #0000000a}.subheader-content{height:100%;max-width:100%;padding:0 24px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:32px}.subheader-left{position:relative}.weather-widget{display:flex;align-items:center;gap:12px;padding:8px 16px;background:#ff980014;border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;outline:none}.weather-widget:hover{background:#ff98001f;border-color:#ff98004d;transform:translateY(-1px)}.weather-widget.active{background:#ff980026;border-color:#ff9800}.weather-widget.disabled{cursor:not-allowed;opacity:.6;background:#0000000a}.weather-widget.disabled:hover{transform:none;background:#0000000a}.weather-info.placeholder .weather-temp,.weather-info.placeholder .weather-condition{color:#aeaeb2}.weather-info.loading .weather-temp{color:#007aff}.weather-icon{width:24px;height:24px;flex-shrink:0}.weather-icon.large{width:48px;height:48px}.sun-core{animation:sunPulse 3s ease-in-out infinite}@keyframes sunPulse{0%,to{r:5px;opacity:1}50%{r:6px;opacity:.9}}.sun-rays .ray{animation:rayRotate 8s linear infinite;transform-origin:12px 12px}@keyframes rayRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.weather-info{display:flex;flex-direction:column;gap:2px}.weather-temp{font-size:16px;font-weight:600;color:#ff9800}.weather-condition{font-size:12px;color:#51545d}.chevron-down-icon{width:16px;height:16px;color:#51545d;transition:transform .3s ease}.chevron-down-icon.expanded{transform:rotate(180deg)}.weather-panel{position:absolute;top:calc(100% + 8px);left:0;width:400px;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:16px;box-shadow:0 12px 32px #00000026;padding:20px;animation:weatherPanelFadeIn .3s ease-out;z-index:1000}@keyframes weatherPanelFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.weather-current{display:flex;gap:16px;padding-bottom:20px;border-bottom:1px solid rgba(0,0,0,.08);margin-bottom:20px}.weather-current-temp{font-size:36px;font-weight:600;color:#ff9800}.weather-current-condition{font-size:16px;font-weight:500;color:#1d1d1f;margin-bottom:4px}.weather-current-meta{font-size:13px;color:#51545d}.forecast-title{font-size:14px;font-weight:600;color:#1d1d1f;margin-bottom:12px}.forecast-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:16px}.forecast-day{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:8px;background:#00000005;transition:background .2s ease}.forecast-day:hover{background:#0000000d}.forecast-day-name{font-size:11px;font-weight:500;color:#51545d}.forecast-day-icon{font-size:20px}.forecast-day-temp{font-size:14px;font-weight:600;color:#1d1d1f}.weather-overlay-toggle{width:100%;padding:12px;font-size:14px;font-weight:500;color:#005da6;background:#005da614;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.weather-overlay-toggle:hover{background:#005da61f}.subheader-center{display:flex;justify-content:center}.layer-filters{display:flex;align-items:center;gap:8px}.layer-filter{position:relative;display:flex;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:500;color:#51545d;background:transparent;border:1px solid rgba(0,0,0,.1);border-radius:20px;cursor:pointer;transition:all .3s ease;outline:none}.layer-filter:hover:not(.disabled){color:#005da6;border-color:#005da64d;background:#005da60d;transform:translateY(-1px)}.layer-filter.active{color:#fff;background:linear-gradient(135deg,#005da6,#113154);border-color:#005da6;box-shadow:0 4px 12px #005da64d}.layer-filter.disabled{color:#aeaeb2;border-color:#0000000d;cursor:not-allowed;opacity:.5}.layer-icon{font-size:16px;line-height:1}.layer-label{white-space:nowrap}.subheader-right{display:flex;justify-content:flex-end}.view-controls{display:flex;align-items:center;gap:12px}.view-mode-toggle{display:flex;gap:4px;background:#0000000a;padding:4px;border-radius:12px}.view-mode-button{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;color:#51545d;background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;outline:none}.view-mode-button:hover:not(.active){background:#0000000d;color:#005da6}.view-mode-button.active{background:#fff;color:#005da6;box-shadow:0 2px 8px #0000001a;font-weight:600}.view-icon{width:18px;height:18px}.weather-overlay-container{position:relative}.weather-overlay-control{display:flex;align-items:center;justify-content:center;padding:10px;min-width:44px;height:44px;background:#0000000a;border:none;border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);outline:none;position:relative}.weather-overlay-control:hover{background:#00000014;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.weather-overlay-control.active{background:linear-gradient(135deg,#61a60e26,#7acc001a);box-shadow:0 0 0 2px #61a60e4d,0 4px 12px #61a60e33}.weather-overlay-control.active:hover{background:linear-gradient(135deg,#61a60e33,#7acc0026);box-shadow:0 0 0 2px #61a60e66,0 6px 16px #61a60e4d}.weather-overlay-icon{width:20px;height:20px;flex-shrink:0;color:#51545d;transition:all .3s ease}.weather-overlay-control.active .weather-overlay-icon{color:#61a60e}.layer-stack{transition:all .4s cubic-bezier(.4,0,.2,1);transform-origin:center}.layer-top{animation:layerFloatTop 3s ease-in-out infinite}.layer-middle{animation:layerFloatMiddle 3s ease-in-out .2s infinite}.layer-bottom{animation:layerFloatBottom 3s ease-in-out .4s infinite}@keyframes layerFloatTop{0%,to{transform:translateY(0);opacity:.7}50%{transform:translateY(-1px);opacity:1}}@keyframes layerFloatMiddle{0%,to{transform:translateY(0);opacity:.85}50%{transform:translateY(-.5px);opacity:1}}@keyframes layerFloatBottom{0%,to{transform:translateY(0);opacity:1}50%{transform:translateY(-.3px);opacity:.95}}.weather-overlay-control:hover .layer-top{transform:translateY(-2px);stroke-width:2.5;opacity:.9}.weather-overlay-control:hover .layer-middle{transform:translateY(-.5px);stroke-width:2.5;opacity:.95}.weather-overlay-control:hover .layer-bottom{transform:translateY(1px);stroke-width:2.5}.weather-overlay-control.active .layer-stack{stroke-width:2.5}.weather-overlay-control.active .layer-top{opacity:.85}.weather-overlay-control.active .layer-middle{opacity:.95}.weather-overlay-control.active .layer-bottom{opacity:1}.weather-overlay-control.active .layer-stack{animation:layerPulseActive 2s ease-in-out infinite}@keyframes layerPulseActive{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-1px) scale(1.02)}}.overlay-active-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;background:linear-gradient(135deg,#7acc00,#61a60e);border:2px solid white;border-radius:50%;box-shadow:0 0 0 1px #61a60e4d,0 2px 6px #61a60e66;animation:dotPulseGlow 2s ease-in-out infinite}@keyframes dotPulseGlow{0%,to{transform:scale(1);opacity:1;box-shadow:0 0 0 1px #61a60e4d,0 2px 6px #61a60e66}50%{transform:scale(1.15);opacity:.9;box-shadow:0 0 0 2px #61a60e80,0 2px 8px #61a60e99}}.weather-overlay-menu{position:absolute;top:calc(100% + 8px);right:0;width:240px;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:12px;box-shadow:0 12px 32px #00000026;padding:12px;animation:overlayMenuSlide .25s cubic-bezier(.4,0,.2,1);z-index:1000}@keyframes overlayMenuSlide{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.overlay-menu-header{font-size:13px;font-weight:600;color:#1d1d1f;padding:8px 12px;border-bottom:1px solid rgba(0,0,0,.08);margin-bottom:8px}.overlay-menu-options{display:flex;flex-direction:column;gap:4px}.overlay-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .2s ease}.overlay-option:hover{background:#0000000a}.overlay-option input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#61A60E}.overlay-option-icon{font-size:16px;line-height:1}.overlay-option-label{font-size:14px;font-weight:500;color:#1d1d1f;flex:1}@media(max-width:1280px){.subheader-content{grid-template-columns:240px 1fr 180px}.view-controls{gap:8px}.layer-label{display:none}.layer-filter{padding:10px}}@media(max-width:768px){.subheader-content{grid-template-columns:1fr;padding:8px 16px;gap:12px}.subheader-left,.subheader-right{display:none}.layer-filters{overflow-x:auto;justify-content:flex-start;-webkit-overflow-scrolling:touch}.layer-filter{flex-shrink:0}.view-controls{display:none}}.scans-icon{width:20px;height:20px;display:inline-block}.scans-icon .towers{animation:towerSway 3s ease-in-out infinite;transform-origin:center bottom}@keyframes towerSway{0%,to{transform:rotate(0)}50%{transform:rotate(1deg)}}.scans-icon .power-line{animation:lineSag 2s ease-in-out infinite}@keyframes lineSag{0%,to{d:path("M 6 10 Q 12 13 18 10")}50%{d:path("M 6 10 Q 12 13.5 18 10")}}.scans-icon.active .energy-flow{stroke-dasharray:20;stroke-dashoffset:40;animation:energyFlow 2s linear infinite}@keyframes energyFlow{0%{stroke-dashoffset:40}to{stroke-dashoffset:0}}.scans-icon.active .flow-stop-1{animation:flowStop1 2s linear infinite}.scans-icon.active .flow-stop-2{animation:flowStop2 2s linear infinite}.scans-icon.active .flow-stop-3{animation:flowStop3 2s linear infinite}@keyframes flowStop1{0%{offset:0}to{offset:100%}}@keyframes flowStop2{0%{offset:50%}to{offset:150%}}@keyframes flowStop3{0%{offset:100%}to{offset:200%}}.scans-icon.active .particle{animation:particleTravel 3s ease-in-out infinite}.particle-1{animation-delay:0s}.particle-2{animation-delay:.5s}.particle-3{animation-delay:1s}@keyframes particleTravel{0%{cx:6px;cy:10px;r:1px;opacity:0}10%{opacity:1;r:2px}50%{cx:12px;cy:13px;r:2px}90%{opacity:1}to{cx:18px;cy:10px;r:1px;opacity:0}}.scans-icon.active .spark{animation:sparkFlash 1.5s ease-in-out infinite}.spark-1{animation-delay:.3s}.spark-2{animation-delay:.8s}@keyframes sparkFlash{0%,90%,to{opacity:0}5%,15%{opacity:1}10%{opacity:.5}}.scans-icon.active .charge-bar{animation:chargeUp 3s ease-in-out infinite}.bar-1{animation-delay:0s}.bar-2{animation-delay:.3s}.bar-3{animation-delay:.6s}.bar-4{animation-delay:.9s}@keyframes chargeUp{0%,25%{opacity:.3;transform:scaleY(.8)}50%{opacity:1;transform:scaleY(1.1)}75%,to{opacity:1;transform:scaleY(1)}}.layer-filter:hover .scans-icon.active .energy-flow{animation:energyFlowFast 1s linear infinite}@keyframes energyFlowFast{0%{stroke-dashoffset:40}to{stroke-dashoffset:0}}.layer-filter:hover .scans-icon.active .particle{animation:particleTravelFast 1.5s ease-in-out infinite}@keyframes particleTravelFast{0%{cx:6px;cy:11px;opacity:0}50%{cx:12px;cy:13px;opacity:1}to{cx:18px;cy:11px;opacity:0}}.layer-filter.active .scans-icon{filter:drop-shadow(0 0 4px rgba(122,204,0,.6));animation:iconGlow 2s ease-in-out infinite}@keyframes iconGlow{0%,to{filter:drop-shadow(0 0 4px rgba(122,204,0,.6))}50%{filter:drop-shadow(0 0 8px rgba(122,204,0,.9))}}.temperature-icon,.sag-icon,.strain-icon,.health-icon,.events-icon,.summary-icon{width:20px;height:20px;display:inline-block;color:#51545d;transition:all .3s ease}.layer-filter.active .temperature-icon,.layer-filter.active .sag-icon,.layer-filter.active .strain-icon,.layer-filter.active .health-icon,.layer-filter.active .events-icon,.layer-filter.active .summary-icon{color:#fff}.temperature-icon .mercury-column{transform-origin:bottom;animation:mercuryRise 3s ease-in-out infinite}@keyframes mercuryRise{0%,to{cy:10px;opacity:.7}50%{cy:6px;opacity:1}}.temperature-icon .mercury-bulb{animation:bulbPulse 2s ease-in-out infinite}@keyframes bulbPulse{0%,to{r:2px}50%{r:3px}}.temperature-icon.active .heat-waves .wave{animation:waveFloat 1.5s ease-in-out infinite;opacity:0}.temperature-icon.active .wave-1{animation-delay:0s}.temperature-icon.active .wave-2{animation-delay:.3s}@keyframes waveFloat{0%{opacity:0;transform:translateY(0) translate(0)}50%{opacity:1}to{opacity:0;transform:translateY(-4px) translate(2px)}}.temperature-icon .temp-markers .marker{animation:markerFade 2s ease-in-out infinite}.marker-1{animation-delay:0s}.marker-2{animation-delay:.2s}.marker-3{animation-delay:.4s}.marker-4{animation-delay:.6s}@keyframes markerFade{0%,to{opacity:.4}50%{opacity:1}}.layer-filter.active .temperature-icon{filter:drop-shadow(0 0 4px rgba(255,255,255,.6))}.sag-icon .sag-cable{animation:cableSag 3s ease-in-out infinite}@keyframes cableSag{0%,to{d:path("M 4 6 Q 12 14 20 6")}50%{d:path("M 4 6 Q 12 16 20 6")}}.sag-icon .sag-measure{animation:measurePulse 2s ease-in-out infinite}@keyframes measurePulse{0%,to{cy:11px;opacity:.5}50%{cy:13px;opacity:1}}.sag-icon .arrow-top,.sag-icon .arrow-bottom{animation:arrowBounce 2s ease-in-out infinite}.sag-icon .arrow-bottom{animation-delay:.5s}@keyframes arrowBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.layer-filter.active .sag-icon{filter:drop-shadow(0 0 4px rgba(255,255,255,.6))}.strain-icon .strain-coil{animation:coilStretch 2s ease-in-out infinite}@keyframes coilStretch{0%,to{d:path("M 3 12 L 5 12 L 6 8 L 8 16 L 10 8 L 12 16 L 14 8 L 16 16 L 18 8 L 19 12 L 21 12")}50%{d:path("M 3 12 L 5 12 L 6.5 9 L 8.5 15 L 10.5 9 L 12.5 15 L 14.5 9 L 16.5 15 L 18 9 L 19 12 L 21 12")}}.strain-icon .force-arrows .force-left,.strain-icon .force-arrows .force-right{animation:forcePull 1.5s ease-in-out infinite}.strain-icon .force-right{animation-direction:reverse}@keyframes forcePull{0%,to{transform:translate(0);opacity:.7}50%{transform:translate(-2px);opacity:1}}.strain-icon.active .stress-indicators .stress{animation:stressFlash 1s ease-in-out infinite}.stress-1{animation-delay:0s}.stress-2{animation-delay:.2s}.stress-3{animation-delay:.4s}@keyframes stressFlash{0%,to{opacity:0;transform:scaleY(.5)}50%{opacity:1;transform:scaleY(1)}}.layer-filter.active .strain-icon{filter:drop-shadow(0 0 4px rgba(255,255,255,.6))}.health-icon .heart-outline{animation:heartBeat 1.5s ease-in-out infinite;transform-origin:center}@keyframes heartBeat{0%,to{transform:scale(1)}14%{transform:scale(1.1)}28%{transform:scale(1)}42%{transform:scale(1.1)}70%{transform:scale(1)}}.health-icon .heartbeat-line{stroke-dasharray:50;stroke-dashoffset:50;animation:heartbeatDraw 2s linear infinite}@keyframes heartbeatDraw{0%{stroke-dashoffset:50}to{stroke-dashoffset:0}}.health-icon.active .pulse-rings .pulse{animation:pulseExpand 2s ease-out infinite;opacity:0}.pulse-1{animation-delay:0s}.pulse-2{animation-delay:.5s}@keyframes pulseExpand{0%{r:1px;opacity:.8}to{r:8px;opacity:0}}.layer-filter.active .health-icon{filter:drop-shadow(0 0 4px rgba(255,255,255,.6))}.events-icon .warning-triangle{animation:triangleShake 3s ease-in-out infinite;transform-origin:center bottom}@keyframes triangleShake{0%,90%,to{transform:rotate(0)}92%,96%{transform:rotate(-2deg)}94%,98%{transform:rotate(2deg)}}.events-icon .exclamation-line{animation:exclamationPulse 1.5s ease-in-out infinite}@keyframes exclamationPulse{0%,to{opacity:1}50%{opacity:.5}}.events-icon .exclamation-dot{animation:dotBlink 1s ease-in-out infinite}@keyframes dotBlink{0%,to{r:1px;opacity:1}50%{r:1px;opacity:.7}}.events-icon.active .alert-rays .ray{animation:rayBurst 1s ease-out infinite;opacity:0}.ray-1{animation-delay:0s}.ray-2{animation-delay:.15s}.ray-3{animation-delay:.3s}@keyframes rayBurst{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}.layer-filter.active .events-icon{filter:drop-shadow(0 0 4px rgba(255,255,255,.6))}.summary-icon .list-lines .line{stroke-dasharray:10;stroke-dashoffset:10;animation:lineWrite 2s ease-out infinite}.line-1{animation-delay:0s}.line-2{animation-delay:.3s}.line-3{animation-delay:.6s}@keyframes lineWrite{0%{stroke-dashoffset:10}50%,to{stroke-dashoffset:0}}.summary-icon .clipboard-clip{animation:clipBounce 3s ease-in-out infinite;transform-origin:center top}@keyframes clipBounce{0%,to{transform:scaleY(1)}10%{transform:scaleY(.95)}20%{transform:scaleY(1)}}.summary-icon.active .checkmarks .check{animation:checkAppear 2s ease-out infinite;opacity:0}.check-1{animation-delay:.5s}.check-2{animation-delay:1s}@keyframes checkAppear{0%{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.layer-filter.active .summary-icon{filter:drop-shadow(0 0 4px rgba(255,255,255,.6))}.layer-filter:hover:not(.disabled) .temperature-icon,.layer-filter:hover:not(.disabled) .sag-icon,.layer-filter:hover:not(.disabled) .strain-icon,.layer-filter:hover:not(.disabled) .health-icon,.layer-filter:hover:not(.disabled) .events-icon,.layer-filter:hover:not(.disabled) .summary-icon,.layer-filter:hover:not(.disabled) .scans-icon{transform:scale(1.1)}.layer-filter:hover:not(.disabled) .mercury-column{animation-duration:1.5s}.layer-filter:hover:not(.disabled) .sag-cable{animation-duration:1.5s}.layer-filter:hover:not(.disabled) .strain-coil{animation-duration:1s}.layer-filter:hover:not(.disabled) .heart-outline{animation-duration:.8s}.layer-filter:hover:not(.disabled) .warning-triangle{animation-duration:1.5s}.layer-filter:hover:not(.disabled) .list-lines .line{animation-duration:1s}.network-health-dashboard{background:var(--color-surface, #ffffff);border-radius:var(--border-radius-lg, 16px);box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08));overflow:hidden;flex-shrink:0}.nhd-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--color-border-light, #e5e5ea)}.nhd-title-group{display:flex;flex-direction:column;gap:2px}.nhd-title{font-size:17px;font-weight:600;color:var(--color-text-primary, #1d1d1f);letter-spacing:-.02em;margin:0}.nhd-subtitle{font-size:11px;color:var(--color-text-tertiary, #aeaeb2)}.nhd-controls{display:flex;align-items:center;gap:12px}.nhd-last-updated{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.nhd-update-label{font-size:10px;color:var(--color-text-tertiary, #aeaeb2);text-transform:uppercase;letter-spacing:.03em}.nhd-update-time{font-size:13px;font-weight:500;color:var(--color-text-secondary, #86868b);font-variant-numeric:tabular-nums}.nhd-refresh-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-bg, #f5f5f7);border:none;border-radius:var(--border-radius-sm, 8px);cursor:pointer;color:var(--gv-blue, #005DA6);transition:all .2s ease}.nhd-refresh-btn:hover:not(:disabled){background:#005da614;transform:scale(1.05)}.nhd-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.nhd-refresh-btn.refreshing svg{animation:refreshSpin .6s ease-in-out}@keyframes refreshSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.nhd-auto-refresh{display:flex;align-items:center}.nhd-auto-refresh-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;color:var(--color-text-secondary, #86868b)}.nhd-auto-refresh-toggle input[type=checkbox]{width:14px;height:14px;accent-color:var(--gv-blue, #005DA6);cursor:pointer}.nhd-toggle-label{font-size:11px;font-weight:500;color:var(--color-text-secondary, #86868b)}.nhd-cards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--color-border-light, #e5e5ea)}.nhd-card{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--color-surface, #ffffff);transition:background .15s ease}.nhd-card:hover{background:var(--color-bg, #f5f5f7)}.nhd-card-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;flex-shrink:0}.nhd-card-icon-total{background:#005da614;color:var(--gv-blue, #005DA6)}.nhd-card-icon-normal{background:#34c7591a;color:var(--color-success, #34c759)}.nhd-card-icon-warning{background:#ffcc001f;color:#b38600}.nhd-card-icon-critical{background:#ff3b301a;color:var(--color-error, #ff3b30)}.nhd-card-icon-temp{background:#ff95001a;color:#ff9500}.nhd-card-icon-max-temp{background:#ff3b301a;color:var(--color-error, #ff3b30)}.nhd-card-icon-sag{background:#007aff14;color:var(--color-accent, #007aff)}.nhd-card-icon-tension{background:#61a60e1a;color:var(--gv-green, #61A60E)}.nhd-card-content{display:flex;flex-direction:column;gap:2px;min-width:0}.nhd-card-value{font-size:20px;font-weight:600;color:var(--color-text-primary, #1d1d1f);font-variant-numeric:tabular-nums;line-height:1.2;display:flex;align-items:baseline;gap:6px}.nhd-value-normal{color:var(--color-success, #34c759)}.nhd-value-warning{color:#e6a800}.nhd-value-critical{color:var(--color-error, #ff3b30)}.nhd-card-label{font-size:11px;color:var(--color-text-tertiary, #aeaeb2);text-transform:uppercase;letter-spacing:.03em}.nhd-trend{font-size:13px;font-weight:600}.trend-up{color:var(--color-error, #ff3b30)}.trend-down{color:var(--color-success, #34c759)}.trend-stable{color:var(--color-text-tertiary, #aeaeb2)}.nhd-card-normal{border-left:3px solid var(--color-success, #34c759)}.nhd-card-warning{border-left:3px solid var(--color-warning, #ffcc00)}.nhd-card-critical{border-left:3px solid var(--color-error, #ff3b30);animation:criticalPulse 2s ease-in-out infinite}@keyframes criticalPulse{0%,to{background:var(--color-surface, #ffffff)}50%{background:#ff3b3008}}@media(max-width:1200px){.nhd-cards-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:900px){.nhd-cards-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.nhd-cards-grid{grid-template-columns:1fr}.nhd-header{flex-direction:column;gap:12px;align-items:flex-start}.nhd-controls{width:100%;justify-content:space-between}}.span-table-container{background:var(--color-surface, #ffffff);border-radius:var(--border-radius-lg, 16px);box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08));overflow:hidden;flex-shrink:0}.st-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--color-border-light, #e5e5ea);gap:16px;flex-wrap:wrap}.st-toolbar-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap;flex:1}.st-toolbar-right{display:flex;align-items:center;gap:12px}.st-search{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--color-bg, #f5f5f7);border-radius:var(--border-radius-sm, 8px);border:1px solid transparent;transition:all .2s ease;min-width:240px}.st-search:focus-within{border-color:var(--gv-blue, #005DA6);background:#fff;box-shadow:0 0 0 3px #005da61a}.st-search-icon{color:var(--color-text-tertiary, #aeaeb2);flex-shrink:0}.st-search-input{border:none;background:transparent;font-size:13px;color:var(--color-text-primary, #1d1d1f);outline:none;width:100%;font-family:inherit}.st-search-input::placeholder{color:var(--color-text-tertiary, #aeaeb2)}.st-filter-group{display:flex;align-items:center;gap:4px}.st-filter-label{font-size:11px;color:var(--color-text-tertiary, #aeaeb2);font-weight:500;margin-right:2px}.st-filter-btn{padding:4px 10px;font-size:11px;font-weight:500;border-radius:var(--border-radius-full, 9999px);border:1px solid var(--color-border-light, #e5e5ea);background:transparent;color:var(--color-text-secondary, #86868b);cursor:pointer;transition:all .2s ease;text-transform:capitalize}.st-filter-btn:hover{border-color:var(--color-border, #d2d2d7);color:var(--color-text-primary, #1d1d1f)}.st-filter-btn.active{border-color:transparent}.st-filter-critical.active{background:#ff3b301f;color:#ff3b30;border-color:#ff3b304d}.st-filter-warning.active{background:#ffcc0026;color:#b38600;border-color:#fc06}.st-filter-normal.active{background:#34c7591f;color:#28a745;border-color:#34c7594d}.st-filter-port.active{background:#005da61a;color:var(--gv-blue, #005DA6);border-color:#005da64d}.st-result-count{font-size:12px;color:var(--color-text-tertiary, #aeaeb2);white-space:nowrap}.st-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.st-table{width:100%;border-collapse:collapse;font-size:13px}.st-th{padding:10px 16px;text-align:left;font-size:11px;font-weight:600;color:var(--color-text-tertiary, #aeaeb2);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border-light, #e5e5ea);background:var(--color-bg, #f5f5f7);cursor:pointer;white-space:nowrap;user-select:none;transition:color .2s ease}.st-th:hover{color:var(--gv-blue, #005DA6)}.st-th-status{width:90px}.st-th-num{text-align:right}.sort-icon{margin-left:4px;font-size:11px}.sort-inactive{opacity:.3}.sort-active{color:var(--gv-blue, #005DA6);opacity:1}.st-row{cursor:pointer;transition:background .15s ease}.st-row:hover{background:var(--color-bg, #f5f5f7)}.st-row:focus-visible{outline:2px solid var(--gv-blue, #005DA6);outline-offset:-2px}.st-row-critical{border-left:3px solid var(--color-error, #ff3b30)}.st-row-critical:hover{background:#ff3b300a}.st-row-warning{border-left:3px solid var(--color-warning, #ffcc00)}.st-row-warning:hover{background:#ffcc000a}.st-row-normal{border-left:3px solid transparent}.st-td{padding:10px 16px;border-bottom:1px solid var(--color-border-light, #e5e5ea);color:var(--color-text-primary, #1d1d1f);font-variant-numeric:tabular-nums}.st-td-status{width:90px}.st-td-name{font-weight:500;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-td-num{text-align:right;font-weight:500}.st-td-time{font-size:12px;color:var(--color-text-secondary, #86868b);white-space:nowrap}.st-temp-critical{color:var(--color-error, #ff3b30);font-weight:600}.st-temp-warning{color:#e6a800;font-weight:600}.st-temp-normal{color:var(--color-success, #34c759)}.span-status-badge{display:inline-block;padding:2px 8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;border-radius:var(--border-radius-full, 9999px)}.status-critical{background:#ff3b301f;color:#ff3b30}.status-warning{background:#ffcc002e;color:#b38600}.status-normal{background:#34c7591f;color:#28a745}.st-empty{text-align:center;padding:40px 20px;color:var(--color-text-tertiary, #aeaeb2);font-size:14px}.st-pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--color-border-light, #e5e5ea);background:var(--color-bg, #f5f5f7)}.st-page-size{display:flex;align-items:center;gap:4px}.st-page-label{font-size:12px;color:var(--color-text-tertiary, #aeaeb2);margin-right:4px}.st-page-size-btn{padding:4px 10px;font-size:12px;font-weight:500;border:1px solid var(--color-border-light, #e5e5ea);border-radius:6px;background:#fff;color:var(--color-text-secondary, #86868b);cursor:pointer;transition:all .15s ease}.st-page-size-btn:hover{border-color:var(--gv-blue, #005DA6);color:var(--gv-blue, #005DA6)}.st-page-size-btn.active{background:var(--gv-blue, #005DA6);color:#fff;border-color:var(--gv-blue, #005DA6)}.st-page-nav{display:flex;align-items:center;gap:12px}.st-page-btn{padding:6px 14px;font-size:12px;font-weight:500;border:1px solid var(--color-border-light, #e5e5ea);border-radius:6px;background:#fff;color:var(--gv-blue, #005DA6);cursor:pointer;transition:all .15s ease}.st-page-btn:hover:not(:disabled){background:#005da60d;border-color:var(--gv-blue, #005DA6)}.st-page-btn:disabled{opacity:.4;cursor:not-allowed;color:var(--color-text-tertiary, #aeaeb2)}.st-page-info{font-size:12px;color:var(--color-text-secondary, #86868b);font-variant-numeric:tabular-nums}@media(max-width:900px){.st-toolbar-left{flex-direction:column;align-items:flex-start}.st-search{min-width:100%}}@media(max-width:600px){.st-toolbar{flex-direction:column;align-items:flex-start}.st-pagination{flex-direction:column;gap:12px;align-items:flex-start}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif),serif;background-color:var(--color-bg, #f5f5f7);color:var(--color-text-primary, #1d1d1f);min-height:100vh;width:100%}#root{min-height:100vh;width:100%}.login-page{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--gv-blue, #005DA6) 0%,var(--gv-dark-blue, #113154) 100%);padding:20px}.login-card{background:#fff;border-radius:16px;padding:48px 40px;width:100%;max-width:440px;box-shadow:0 20px 60px #0003;text-align:center}.login-logo{margin-bottom:32px}.login-logo-img{width:200px;height:auto;margin-bottom:12px}.login-logo h1{font-size:32px;color:var(--gv-blue, #005DA6);margin-bottom:4px;font-weight:700}.login-logo p{font-size:14px;color:var(--color-text-secondary, #86868b);margin-bottom:0}.login-buttons{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.login-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:14px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-btn-google{background:#fff;color:#3c4043;border:1px solid #dadce0}.login-btn-google:hover:not(:disabled){background:#f7f8f8;box-shadow:0 1px 3px #0000001a}.login-btn-microsoft{background:#fff;color:#5e5e5e;border:1px solid #8c8c8c}.login-btn-microsoft:hover:not(:disabled){background:#f5f5f5;box-shadow:0 1px 3px #0000001a}.login-error{background:#fff5f5;color:#c53030;border:1px solid #feb2b2;border-radius:8px;padding:12px 16px;font-size:14px;margin-bottom:16px;text-align:left}.login-footer{margin-top:8px}.login-footer p{font-size:13px;color:var(--color-text-tertiary, #aeaeb2);margin-bottom:4px}.login-compliance{font-size:11px!important;color:var(--color-text-tertiary, #aeaeb2)!important;font-style:italic}.app-shell{height:100vh;width:100%;display:flex;flex-direction:column;overflow:hidden;position:relative;background:var(--color-bg, #f5f5f7)}.main-content{flex:1;display:flex;position:relative;overflow:hidden;background:var(--color-bg, #f5f5f7)}.app-main{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:24px 32px}.monitoring-view{flex:1;display:flex;flex-direction:column;width:100%;overflow:hidden}.monitoring-content{flex:1;min-height:0;overflow-y:auto;padding:24px 32px;display:flex;flex-direction:column;gap:24px;max-width:1600px;margin:0 auto;width:100%}@media(max-width:1024px){.monitoring-content{padding:16px;gap:16px}}.dashboard-placeholder{flex:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.placeholder-content{text-align:center;padding:48px;background:var(--color-surface, #ffffff);border-radius:var(--border-radius-lg, 16px);box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .1));max-width:480px}.placeholder-content h2{font-size:var(--font-size-xxl, 28px);font-weight:var(--font-weight-semibold, 600);color:var(--gv-blue, #005DA6);margin-bottom:12px}.placeholder-content p{font-size:var(--font-size-md, 15px);color:var(--color-text-secondary, #86868b);margin-bottom:8px}.placeholder-hint{font-size:var(--font-size-sm, 13px)!important;color:var(--color-text-tertiary, #aeaeb2)!important;font-style:italic}.admin-panel-header{margin-bottom:24px;display:flex;flex-direction:column;gap:12px}.back-to-dashboard-btn{align-self:flex-start;display:flex;align-items:center;gap:8px;padding:8px 16px;background:transparent;border:1px solid var(--color-border-light, #e5e5ea);border-radius:var(--border-radius-sm, 8px);color:var(--gv-blue, #005DA6);cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.back-to-dashboard-btn:hover{background:#005da60d;border-color:var(--gv-blue, #005DA6)}.admin-panel-title{font-size:20px;font-weight:700;color:var(--gv-blue, #005DA6)}.admin-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.user-email-badge{font-size:13px;color:var(--color-text-secondary, #86868b)}.error-page{flex:1;display:flex;align-items:center;justify-content:center;padding:40px}.loading{display:flex;align-items:center;justify-content:center;padding:60px 20px;font-size:16px;color:var(--color-text-secondary, #86868b);width:100%}.error-container{background:#fff5f5;border:1px solid #feb2b2;color:#c53030;padding:32px;border-radius:12px;text-align:center;max-width:600px;margin:40px auto}.error-container h2{margin-bottom:12px}.error-container p{margin-bottom:8px}.compliance-note{font-size:12px;color:var(--color-text-tertiary, #aeaeb2)!important;font-style:italic;margin-top:16px}.tenant-badge{display:inline-block;background:#005da614;padding:4px 12px;border-radius:20px;font-size:12px;color:var(--gv-blue, #005DA6);font-weight:500}.role-header-badge{display:inline-block;padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600}.role-header-admin{background:#fefcbf;color:#975a16}.role-header-super_admin{background:#e9d8fd;color:#6b46c1}.sign-out-button{padding:8px 20px;background:transparent;border:1px solid var(--color-border, #d2d2d7);border-radius:var(--border-radius-sm, 8px);color:var(--color-text-secondary, #86868b);cursor:pointer;font-size:13px;font-weight:500;transition:all .2s;margin-top:16px}.sign-out-button:hover{background:#00000008;border-color:var(--color-border, #d2d2d7);color:var(--color-text-primary, #1d1d1f)}.user-tenant{font-size:12px;color:var(--gv-blue, #005DA6);background:#005da614;padding:2px 8px;border-radius:4px;display:inline-block;margin-top:4px}.tab-bar{display:flex;gap:4px;border-bottom:2px solid var(--color-border-light, #e5e5ea);margin-bottom:24px}.tab-button{padding:12px 28px;font-size:15px;font-weight:400;color:var(--color-text-secondary, #86868b);background-color:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:all .2s ease;margin-bottom:-2px}.tab-button:hover{color:var(--gv-blue, #005DA6);background-color:#005da608}.tab-button.active{font-weight:700;color:var(--gv-blue, #005DA6);border-bottom:3px solid var(--gv-blue, #005DA6);background-color:#fff}.table-container,.summary-container{background:#fff;border-radius:12px;padding:24px;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08));width:100%}.summary-cards{display:flex;gap:20px;margin-bottom:20px}.summary-card{flex:1;background:linear-gradient(135deg,var(--gv-blue, #005DA6) 0%,var(--gv-dark-blue, #113154) 100%);color:#fff;padding:20px;border-radius:12px;text-align:center}.summary-card h3{margin:0 0 10px;font-size:14px;opacity:.9}.summary-card .big-number{margin:0;font-size:32px;font-weight:700}table{width:100%;border-collapse:collapse;margin-top:15px}th,td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--color-border-light, #e5e5ea);color:var(--color-text-primary, #1d1d1f)}th{background-color:var(--gv-blue, #005DA6);color:#fff;font-weight:600;font-size:14px}th:first-child{border-radius:8px 0 0}th:last-child{border-radius:0 8px 0 0}tr:hover{background-color:#005da608}.explore-section{width:100%}.explore-description{color:var(--color-text-secondary, #86868b);font-size:14px;margin-bottom:16px}.embed-container,.looker-embed-container{width:100%;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08))}.embed-loading,.embed-error{padding:40px;text-align:center;background:var(--color-bg, #f5f5f7);border-radius:12px}.embed-error{background:#fff5f5;color:#c53030}.admin-input{width:100%;padding:10px 12px;border:1px solid var(--color-border-light, #e5e5ea);border-radius:6px;font-size:14px;color:var(--color-text-primary, #1d1d1f);transition:border-color .2s}.admin-input:focus{outline:none;border-color:var(--gv-blue, #005DA6);box-shadow:0 0 0 3px #005da61a}.admin-btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.admin-btn-primary{background:var(--gv-blue, #005DA6);color:#fff}.admin-btn-primary:hover:not(:disabled){background:var(--gv-dark-blue, #113154)}.admin-btn-primary:disabled{opacity:.6;cursor:not-allowed}.admin-compliance-note{font-size:12px;color:var(--color-text-tertiary, #aeaeb2);font-style:italic;margin-bottom:16px;line-height:1.5}.invite-form-container h3{margin-bottom:8px;color:var(--color-text-primary, #1d1d1f)}.invite-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;font-weight:600;color:var(--color-text-secondary, #86868b)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-error{background:#fff5f5;color:#c53030;border:1px solid #feb2b2;border-radius:8px;padding:12px 16px;font-size:14px}.form-success{background:#f0fff4;color:#276749;border:1px solid #9ae6b4;border-radius:8px;padding:12px 16px;font-size:14px}.status{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.status-complete,.status-shipped{background:#c6f6d5;color:#22543d}.status-processing{background:#fefcbf;color:#975a16}.status-cancelled,.status-returned{background:#fed7d7;color:#9b2c2c}@media(max-width:1024px){.app-main{padding:20px}}@media(max-width:768px){.form-row{grid-template-columns:1fr}.summary-cards{flex-direction:column}.login-card{padding:32px 24px}.admin-meta{flex-direction:column;align-items:flex-start}}
