*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.ml-auto{margin-left:auto}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-10{height:2.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-8{height:2rem}.w-10{width:2.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-full{width:100%}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.whitespace-nowrap{white-space:nowrap}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-border{border-color:hsl(var(--border))}.border-input{border-color:hsl(var(--input))}.bg-background{background-color:hsl(var(--background))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted{background-color:hsl(var(--muted))}.bg-primary{background-color:hsl(var(--primary))}.bg-transparent{background-color:#0000}.p-5{padding:1.25rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pt-0{padding-top:0}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-none{line-height:1}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-300{--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1))}.text-foreground{color:hsl(var(--foreground))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.text-sky-300{--tw-text-opacity:1;color:rgb(125 211 252/var(--tw-text-opacity,1))}.text-yellow-300{--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity,1))}.shadow-control{--tw-shadow:0 18px 50px #00000047;--tw-shadow-colored:0 18px 50px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--background:220 49% 8%;--foreground:210 40% 98%;--card:217 33% 17%;--card-foreground:210 40% 98%;--muted:215 28% 17%;--muted-foreground:215 20% 65%;--primary:142 71% 45%;--primary-foreground:220 40% 6%;--destructive:0 84% 60%;--destructive-foreground:0 0% 100%;--border:142 71% 45%;--input:215 28% 17%;--ring:217 91% 60%}*{box-sizing:border-box}body{min-width:1280px;min-height:100vh;color:hsl(var(--foreground));background:#0b1220;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{font:inherit}.loginScreen{background:radial-gradient(circle at 18% 18%,#22c55e33,#0000 28%),radial-gradient(circle at 82% 22%,#3b82f62e,#0000 32%),linear-gradient(135deg,#050a12 0%,#0b1220 48%,#07111f 100%);place-items:center;min-height:100vh;display:grid;position:relative;overflow:hidden}.loginScreen:before,.loginScreen:after{content:"";pointer-events:none;position:absolute;inset:0}.loginScreen:before{background-color:#0000;background-image:linear-gradient(90deg,#3b82f614 1px,#0000 1px),linear-gradient(0deg,#3b82f60f 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:72px 72px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;-webkit-mask-image:radial-gradient(circle at 50% 42%,#000 0%,#0000 72%);mask-image:radial-gradient(circle at 50% 42%,#000 0%,#0000 72%)}.loginScreen:after{opacity:.78;background:linear-gradient(115deg,#0000 0 21%,#22c55e6b 21.2%,#0000 21.8%),linear-gradient(142deg,#0000 0 50%,#3b82f63d 50.2%,#0000 50.7%),radial-gradient(circle at 38% 46%,#22c55e80 0 3px,#0000 4px),radial-gradient(circle at 55% 36%,#f59e0b8c 0 3px,#0000 4px),radial-gradient(circle at 64% 58%,#ef44448c 0 3px,#0000 4px),radial-gradient(circle at 47% 67%,#3b82f68c 0 3px,#0000 4px)}.loginBox{z-index:1;background:linear-gradient(#111827f0,#0b1220f7),radial-gradient(circle at 100% 0,#22c55e33,#0000 38%);border:1px solid #22c55ead;border-radius:12px;width:420px;padding:28px;position:relative;box-shadow:0 26px 78px #00000075,0 0 0 1px #22c55e1f,inset 0 1px #ffffff0b}.loginBox h1{letter-spacing:.02em;margin:12px 0 2px;font-size:24px}.loginBox p,.loginBox label{color:#9aa9bb;font-size:14px}.loginBox label{gap:8px;margin-top:18px;display:grid}.loginError{color:#fecaca;background:#ff4d4d1f;border:1px solid #ff4d4d80;border-radius:8px;margin:16px 0;padding:10px 12px;font-size:14px}.loginLogo{-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 18px 28px #0000005c);width:132px;height:auto;display:block}.loginSubmit{border:1px solid #86efacc7;height:42px;margin-top:18px;font-weight:850;box-shadow:0 14px 30px #16a34a3d;color:#fff!important;background:linear-gradient(90deg,#22c55e,#16a34a)!important}.loginSubmit:hover{background:linear-gradient(90deg,#4ade80,#22c55e)!important}.controlRoom{background:radial-gradient(circle at 72% 0,#3b82f61f,#0000 30%),linear-gradient(135deg,#0b1220 0%,#0f172a 54%,#08111f 100%);grid-template-columns:220px 1fr;min-height:calc(100vh - 1cm);transition:grid-template-columns .2s;display:grid}.controlRoom.sidebarCollapsed{grid-template-columns:72px 1fr}.sideBar{background:linear-gradient(#111827fa,#0b1220fa);border-right:1px solid #1f2937b8;flex-direction:column;align-self:start;height:calc(100vh - 1cm);min-height:calc(100vh - 1cm);max-height:calc(100vh - 1cm);padding:18px 10px;display:flex;position:sticky;top:0;overflow:hidden;box-shadow:10px 0 34px #00000038}.mineLogo{color:#fff;align-items:center;gap:10px;height:62px;display:flex}.mineLogo img{-o-object-fit:contain;object-fit:contain;width:54px;height:54px}.mineLogo strong{letter-spacing:0;white-space:nowrap;font-size:16px;font-weight:800;display:block}.mineLogo span{color:#9aa9bb;font-size:12px;display:block}.sidebarToggle{color:#d1d5db;background:#0b1220c7;border:1px solid #22c55e57;border-radius:7px;place-items:center;width:30px;height:30px;margin-left:auto;display:grid}.sidebarToggle svg{transition:transform .2s}.sideBar nav{gap:7px;margin-top:24px;display:grid}.sideBar nav button{color:#d1d5db;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:11px;min-height:44px;padding:8px 10px;font-size:13px;font-weight:750;line-height:1.15;transition:background .18s,border-color .18s,color .18s,transform .18s;display:flex}.sideBar nav button>svg{flex:none}.sideBar nav button:hover{color:#f9fafb;background:#3b82f614;border-color:#3b82f659}.sideBar nav button.active{color:#4ade80;background:linear-gradient(90deg,#22c55e59,#22c55e24);border-color:#22c55e94;transform:translate(2px)}.sideBar nav b{color:#fff;background:#ef4444;border-radius:999px;place-items:center;min-width:20px;height:20px;margin-left:auto;font-size:12px;display:grid}.helmetShowcase{text-align:center;color:#c8d2e2;margin-top:auto;padding:24px 10px 48px}.deviceUpdatePanel{text-align:left;background:#0f172ab8;border:1px solid #22c55e3d;border-radius:8px;margin:0 0 16px;padding:10px}.deviceUpdatePanel header{color:#e5e7eb;text-transform:uppercase;align-items:center;gap:6px;margin-bottom:8px;font-size:10px;font-weight:850;display:flex}.deviceUpdatePanel header svg{color:#f59e0b;width:13px;height:13px}.deviceUpdatePanel article{border-top:1px solid #22c55e3d;grid-template-columns:34px 28px 1fr;align-items:center;gap:5px;padding:7px 0;display:grid}.deviceUpdatePanel article:first-of-type{border-top:0;padding-top:0}.deviceUpdatePanel article strong{color:#f9fafb;white-space:nowrap;font-size:8px;line-height:1}.deviceUpdatePanel article b{color:#7dd3fc;font-size:10px;font-weight:850;line-height:1.1}.deviceUpdatePanel article span{color:#cbd5e1;white-space:nowrap;font-size:10px;line-height:1.1}.deviceUpdateNext{grid-column:2}.deviceUpdatePanel article em{color:#86efac;text-align:center;background:#22c55e24;border-radius:6px;grid-column:2/4;min-width:48px;padding:3px 4px;font-size:10px;font-style:normal;font-weight:900}.deviceUpdatePanel article.overdue em{color:#fcd34d;background:#f59e0b29}.helmetIcon{-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 22px 24px #0000008c);width:138px;height:auto;max-height:138px;margin:0 auto -6px;display:block}.helmetShowcase strong{font-size:24px;display:block}.helmetShowcase span{color:#9aa9bb;margin-top:0;font-size:11px;display:block}.helmetShowcase div{grid-template-columns:repeat(4,1fr);gap:7px;margin-top:2px;font-size:9px;display:grid}.helmetShowcase div svg{width:16px;height:16px;margin:0 auto 4px;display:block}.sideBar.collapsed{padding:18px 8px}.sideBar.collapsed .mineLogo{justify-content:center}.sideBar.collapsed .mineLogo>div,.sideBar.collapsed .mineLogo strong,.sideBar.collapsed .helmetShowcase,.sideBar.collapsed nav button span{display:none}.sideBar.collapsed .mineLogo img{width:42px;height:42px}.sideBar.collapsed .sidebarToggle{margin-left:0;position:absolute;top:66px;left:50%;transform:translate(-50%)}.sideBar.collapsed .sidebarToggle svg{transform:rotate(180deg)}.sideBar.collapsed nav{margin-top:54px}.sideBar.collapsed nav button{justify-content:center;padding:8px 0}.sideBar.collapsed nav button.active{transform:none}.mainDeck{min-width:0;padding:18px 22px}.mainDeck.mapDeck{padding:12px 18px 8px}.topBar{background:#111827c7;border:1px solid #1f2937b8;border-radius:8px;align-items:center;gap:18px;min-height:64px;padding:10px 14px;display:flex;box-shadow:0 16px 42px #0003}.topTitle{gap:2px;display:grid}.topTitle h1,.topBar h1{letter-spacing:.01em;margin:0;font-size:18px;font-weight:800}.topTitle span{color:#9ca3af;font-size:12px;font-weight:700}.livePill{border-radius:8px;padding:6px 12px;font-size:12px;font-weight:800}.livePill.ok{color:#22c55e;background:#22c55e24}.livePill.bad{color:#ef4444;background:#ef444424}.audioArm{color:#fecaca;background:#ff4d4d24;border:1px solid #ff4d4d85;border-radius:8px;height:32px;padding:0 12px;font-size:12px;font-weight:900}.audioArm.armed{color:#a7f3d0;background:#35d26f1f;border-color:#35d26f7a}.topMeta{color:#d1d5db;align-items:center;gap:14px;min-width:0;margin-left:auto;font-size:13px;font-weight:700;display:flex}.topMeta>span{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.shiftPill{color:#fde68a;background:#f59e0b1f;border:1px solid #f59e0b5c;border-radius:8px;padding:6px 10px}.bell{position:relative}.bell b{color:#fff;background:#ef4444;border-radius:999px;place-items:center;width:19px;height:19px;font-size:11px;display:grid;position:absolute;top:-9px;right:-10px}.userPill{color:#fff;background:0 0;border:0;border-left:1px solid #1f2937b8;flex:none;align-items:center;gap:10px;max-width:min(360px,34vw);height:44px;padding-left:24px;display:flex}.userPill>span{background:#3b82f6;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.userPill>div{text-align:left;justify-items:start;min-width:0;display:grid}.userPill strong{color:#fff;white-space:normal;overflow-wrap:anywhere;max-width:100%;font-size:13px;line-height:1.2}.userPill small{color:#9aa9bb;white-space:nowrap;max-width:100%;display:block}.kpiGrid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.kpiCard,.mapPanel,.alertPanel,.opsPanel,.minerStrip,.newsBar{background:linear-gradient(#111827eb,#0b1220e6);border:1px solid #22c55e47;border-radius:8px;box-shadow:inset 0 1px #ffffff08,0 18px 40px #0000002e}.kpiCard{height:122px;padding:14px 16px;overflow:hidden}.kpiCard h2,.panelTitle,.stripTitle{color:#c8d2e2;letter-spacing:.02em;margin:0;font-size:13px;font-weight:800}.kpiValue{align-items:baseline;gap:8px;margin-top:12px;display:flex}.kpiValue strong{white-space:nowrap;flex:none;font-size:36px;line-height:1}.kpiValue span{color:#c8d2e2;font-size:13px;line-height:1.2}.kpiValue i{color:#38bdf8;background:#3799ff29;border-radius:10px;place-items:center;width:48px;height:48px;margin-left:auto;display:grid}.kpiCard.green .kpiValue strong{color:#22c55e}.kpiCard.red .kpiValue strong{color:#ef4444}.kpiCard.blue .kpiValue strong{color:#3b82f6}.kpiCard.yellow .kpiValue strong{color:#f59e0b}.alertSplit{color:#c8d2e2;gap:5px;margin-top:8px;font-size:12px;display:grid}.alertSplit em,.progress{background:#7d889a3d;border-radius:999px;width:100%;height:5px;display:block;overflow:hidden}.alertSplit em:before{content:"";background:linear-gradient(90deg,#ef4444,#f59e0b);width:58%;height:100%;display:block}.batteryIcon{float:right;border:1px solid #22c55e57;border-radius:3px;width:38px;height:17px;padding:2px}.batteryIcon span,.progress span{background:#f59e0b;border-radius:2px;height:100%;display:block}.progress{margin-top:18px}.signalBars{justify-content:end;align-items:end;gap:6px;height:38px;margin-top:16px;display:flex}.signalBars span{background:#22c55e;border-radius:2px;width:7px}.signalBars span:first-child{opacity:.45;height:11px}.signalBars span:nth-child(2){opacity:.6;height:18px}.signalBars span:nth-child(3){opacity:.8;height:28px}.signalBars span:nth-child(4){height:38px}.centerGrid{grid-template-columns:minmax(560px,1fr) 280px 320px;gap:12px;margin-top:16px;display:grid}.summaryGrid{grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);align-items:stretch;gap:14px;margin-top:16px;display:grid}.mapPanel,.alertPanel,.opsPanel{height:390px;padding:14px}.summaryGrid .alertPanel,.summaryGrid .opsPanel{height:360px}.summaryAnalytics,.controlAnalytics{grid-template-columns:minmax(0,1fr) minmax(280px,.8fr) minmax(320px,.9fr);gap:14px;margin-top:14px;display:grid}.mapSearch{color:#9aa9bb;background:#040c166b;border:1px solid #22c55e42;border-radius:8px;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:9px;min-height:38px;margin-top:14px;padding:0 10px;display:grid}.mapSearch input{color:#fff;background:0 0;border:0;outline:0;min-width:0;font-size:13px}.mapSearch button{color:#dbeafe;background:#2563eb38;border:1px solid #60a5fa52;border-radius:7px;grid-column:1/-1;height:28px;font-size:12px;font-weight:800}.mapSearch button:disabled{opacity:.45}.mapStatusCounters{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:0;display:grid}.mapStatusCounters .kpiCard,.mapSearchCard{height:122px}.mapStatusCounters .kpiCard h2{font-size:16px}.mapStatusCounters .kpiValue strong{font-size:52px}.mapStatusCounters .kpiValue span{font-size:15px}.zoneMenu{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.zoneMenu button{color:#fff;text-align:center;background:linear-gradient(90deg,#1f75cd4d,#1f75cd14);border:1px solid #22c55e8c;border-radius:8px;min-width:0;height:58px;padding:0 10px;font-size:14px;font-weight:900;line-height:1.12;box-shadow:inset 0 1px #ffffff0a}.zoneMenu button span{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.zoneMenu button.active{color:#fff;background:linear-gradient(90deg,#ef44446b,#f8717129);border-color:#fffffff2;box-shadow:0 0 0 1px #ffffff52,0 12px 24px #0000003d}.zoneMenu button.warning,.zoneMenu button.critical,.zoneMenu button.offline{border-color:#22c55e8c}.zoneMenu button.active.warning,.zoneMenu button.active.critical,.zoneMenu button.active.offline{background:linear-gradient(90deg,#ef44446b,#f8717129);border-color:#fffffff2}.subZoneMenu{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px;display:grid}.subZoneMenu button{color:#fff;text-align:left;background:linear-gradient(90deg,#1f75cd4d,#1f75cd14);border:1px solid #22c55e8c;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;height:54px;padding:0 11px;display:grid;box-shadow:inset 0 1px #ffffff0a}.subZoneMenu button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:15px;font-weight:900;overflow:hidden}.subZoneMenu button strong{color:#fff;background:#ffffff1a;border-radius:999px;place-items:center;min-width:34px;height:24px;font-size:13px;font-weight:950;display:grid}.subZoneMenu button.warning,.subZoneMenu button.critical,.subZoneMenu button.offline{border-color:#22c55e8c}.subZoneMenu button.restricted{border-style:dashed}.mineMap{background-color:#f5f7f8;background-image:linear-gradient(90deg,#07111f09 1px,#0000 1px),linear-gradient(#07111f09 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:44px 44px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border-radius:6px;height:342px;margin-top:10px;position:relative;overflow:hidden}.mapOnlyView{margin-top:6px}.mapOnlyView .mapPanel{height:calc(100vh - 90px);min-height:790px;padding:10px}.mapOnlyView .hierarchyMap{height:calc(100% - 198px);min-height:640px}.mapOnlyView .mapPanel.hasSubmenu .hierarchyMap{height:calc(100% - 260px);min-height:580px}.controlScreen{grid-template-rows:minmax(0,1fr);gap:10px;height:calc(100vh - 68px);min-height:0;margin-top:10px;display:grid;overflow:hidden}.controlKpiRow{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;display:grid}.controlKpi{background:radial-gradient(circle at 90% 15%,#3b82f61f,#0000 34%),linear-gradient(#111827f2,#0b1220f0);border:1px solid #22c55e57;border-radius:8px;justify-content:space-between;align-items:center;min-height:44px;padding:6px 9px;display:flex;box-shadow:0 18px 44px #00000038,inset 0 1px #ffffff09}.controlKpi span{color:#f9fafb;letter-spacing:.01em;font-size:9px;font-weight:850;display:block}.controlKpi strong{margin-top:2px;font-size:18px;font-weight:850;line-height:1;display:block}.controlKpi small{color:#d1d5db;margin-top:1px;font-size:8.5px;display:block}.controlKpi>svg{opacity:.92;stroke-width:1.8px;width:19px;height:19px}.controlKpi.connected strong,.controlKpi.connected>svg{color:#22c55e}.controlKpi.critical strong,.controlKpi.critical>svg{color:#ef4444}.controlKpi.warning strong,.controlKpi.warning>svg{color:#f59e0b}.controlKpi.offline strong,.controlKpi.offline>svg{color:#3b82f6}.controlMainGrid{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 250px;align-items:stretch;gap:10px;height:100%;min-height:0;display:grid}.controlControlHeader{background:linear-gradient(#111827eb,#0b1220f0);border:1px solid #22c55e57;border-radius:8px;grid-column:1/-1;grid-template-rows:auto auto;min-width:0;display:grid;overflow:hidden;box-shadow:0 18px 44px #00000038,inset 0 1px #ffffff09}.controlMapColumn{grid-template-rows:minmax(0,1fr);min-width:0;min-height:0;display:grid}.controlMapPanel,.controlSidePanel{background:linear-gradient(#111827eb,#0b1220f0);border:1px solid #22c55e57;border-radius:8px;box-shadow:0 18px 44px #00000038,inset 0 1px #ffffff09}.controlMapPanel{grid-template-rows:minmax(0,1fr);min-height:0;display:grid;position:relative;overflow:hidden}.controlLocationSelectors{border-bottom:1px solid #22c55e57;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0;padding:9px 10px;display:grid}.controlLocationSelectors label{color:#9ca3af;letter-spacing:.04em;text-transform:uppercase;gap:4px;min-width:0;font-size:10px;font-weight:900;display:grid}.controlLocationSelectors select{color:#f9fafb;background:#0b1220eb;border:1px solid #22c55e57;border-radius:7px;outline:none;width:100%;min-width:0;height:34px;padding:0 10px;font-size:12px;font-weight:800}.controlLocationSelectors select:disabled{color:#64748b;background:#0f172ab8}.controlZoneTabs{border-bottom:1px solid #22c55e57;grid-template-columns:repeat(6,minmax(0,1fr));align-content:center;gap:7px;min-width:0;padding:8px 10px;display:grid;overflow:hidden}.controlZoneTabs button{color:#d1d5db;white-space:nowrap;text-overflow:ellipsis;background:#0b1220b8;border:1px solid #22c55e57;border-radius:6px;min-width:0;height:27px;padding:0 8px;font-size:11px;font-weight:850;overflow:hidden}.controlZoneTabs button.active{color:#4ade80;background:#22c55e29;border-color:#22c55eb8}.controlMapViewport{min-height:0;position:relative;overflow:hidden}.controlMapKpiStrip{min-width:0;padding:6px 10px}.controlPlanMap{background:radial-gradient(circle at 24% 18%,#14b8a61f,#0000 30%),linear-gradient(#07111f,#030712);grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100%;display:grid;position:relative;overflow:hidden}.controlPlanMap>header,.controlPlanMap>footer{z-index:2;background:#0b1220d6;border-bottom:1px solid #22c55e57;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;display:flex;position:relative}.controlPlanMap>footer{border-top:1px solid #22c55e57;border-bottom:0}.controlPlanMap b{color:#f9fafb;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:950;overflow:hidden}.controlPlanMap span,.controlPlanEmpty span{color:#cbd5e1;font-size:11px;font-weight:750}.controlPlanCanvasWrap{touch-action:none;-webkit-user-select:none;user-select:none;place-items:center;min-height:0;padding:12px;display:grid;position:relative;overflow:hidden}.controlPlanCanvasWrap.pannable{cursor:grab}.controlPlanCanvasWrap.pannable:active{cursor:grabbing}.controlPlanCanvas{transform-origin:50%;will-change:transform;background:#0f172ab8;border:1px solid #22c55e57;border-radius:0;transition:transform .16s;display:block;box-shadow:0 18px 48px #00000047}.controlPlanWorkerLayer{z-index:4;pointer-events:none;transform-origin:50%;will-change:transform;margin:auto;transition:transform .16s;position:absolute;inset:0}.controlPlanZoom{z-index:6;background:#0b1220db;border:1px solid #22c55e57;border-radius:7px;display:grid;position:absolute;top:52px;right:14px;overflow:hidden;box-shadow:0 12px 26px #0000004d}.controlPlanZoom button{color:#f9fafb;background:0 0;border:0;border-bottom:1px solid #22c55e57;place-items:center;width:40px;height:34px;font-size:11px;font-weight:950;display:grid}.controlPlanZoom button:last-child{border-bottom:0}.controlPlanZoom svg{width:18px;height:18px}.controlPlanObject text{paint-order:stroke;stroke:#030712d1;stroke-width:3px;stroke-linejoin:round}.controlPlanWorkerMarker{pointer-events:auto;z-index:5}.controlAlertResolveBar{z-index:8;background:#180a0ce6;border:1px solid #dc26268f;border-radius:8px;align-items:center;gap:8px;padding:8px;display:inline-flex;position:absolute;bottom:14px;right:14px;box-shadow:0 16px 34px #00000057}.controlAlertResolveBar span{color:#fecaca;font-size:11px;font-weight:900}.controlAlertResolveBar button{color:#fff;background:#dc2626;border:0;border-radius:6px;height:30px;padding:0 10px;font-size:11.5px;font-weight:950}.controlPlanEmpty{color:#cbd5e1;background:linear-gradient(#07111f,#030712);place-content:center;justify-items:center;gap:8px;width:100%;height:100%;display:grid}.controlPlanEmpty svg{color:#4ade80;width:38px;height:38px}.controlPlanEmpty strong{color:#f9fafb;font-size:15px;font-weight:950}.controlMineMap{background:linear-gradient(#040a1247,#040a128f),url(/dash-xignal/assets/mapa.png) 50%/100% 100% no-repeat;width:100%;height:100%;position:relative;inset:0}.controlMineMap:after{content:"";mix-blend-mode:screen;opacity:.62;pointer-events:none;background:radial-gradient(circle at 48% 44%,#f59e0b3d,#0000 2px),radial-gradient(circle at 58% 53%,#f59e0b3d,#0000 2px),linear-gradient(90deg,#0000,#22c55e3d,#0000);position:absolute;inset:0}.controlZoneMap{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 30% 30%,#3b82f624,#0000 34%),linear-gradient(#09111f,#030712);width:100%;height:100%;position:relative;overflow:hidden}.controlZoneMap:active{cursor:grabbing}.controlZoneMap.superficie{background:linear-gradient(#0b12201f,#0b12205c),linear-gradient(135deg,#263626,#334155)}.controlZoneMap>header,.controlZoneMap>footer,.controlZoneZoom,.controlStateFilters,.controlMapActions{z-index:5;position:absolute}.controlZoneMap>header{background:#0b1220d1;border:1px solid #22c55e57;border-radius:7px;gap:2px;padding:8px 10px;display:grid;top:12px;left:14px}.controlZoneMap>header b{color:#f9fafb;font-size:13px}.controlZoneMap>header span,.controlZoneMap>footer{color:#d1d5db;font-size:11px}.controlZoneMap>footer{background:#0b1220d1;border:1px solid #22c55e57;border-radius:999px;gap:10px;padding:6px 10px;display:flex;bottom:12px;right:14px}.controlZoneZoom{background:#0b1220d1;border:1px solid #22c55e57;border-radius:7px;display:grid;top:12px;right:14px;overflow:hidden}.controlZoneZoom button{color:#f9fafb;background:0 0;border:0;border-bottom:1px solid #22c55e57;place-items:center;width:40px;height:34px;font-size:11px;font-weight:900;display:grid}.controlZoneZoom button:last-child{border-bottom:0}.controlZoneZoom svg{width:18px;height:18px}.controlStateFilters{gap:7px;width:176px;display:grid}.controlFilterPanel .controlStateFilters{z-index:auto;width:100%;position:static}.controlMapActions{gap:7px;width:184px;display:grid}.controlFilterPanel .controlMapActions{z-index:auto;width:100%;position:static}.controlStateFilters button{color:#22c55e;background:#0b1220d1;border:1px solid #22c55e57;border-left:3px solid;border-radius:7px;grid-template-columns:minmax(0,1fr) 40px;align-items:center;gap:8px;height:48px;padding:0 9px;display:grid;box-shadow:0 10px 22px #00000047}.controlStateFilters button.warning{color:#f59e0b}.controlStateFilters button.critical{color:#ef4444}.controlStateFilters button.offline{color:#60a5fa}.controlStateFilters button.all{color:#4ade80}.controlStateFilters button.active{background:color-mix(in srgb, currentColor 18%, #0b1220e0);border-color:currentColor}.controlStateFilters span{color:#f9fafb;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:850;overflow:hidden}.controlStateFilters b,.controlStateFilters strong{color:currentColor;background:#ffffff1f;border-radius:999px;place-items:center;min-width:36px;height:25px;font-size:15px;font-weight:900;display:grid}.controlBulkBuzzer{background:#180a0ce6;border:1px solid #f871719e;border-radius:7px;gap:5px;margin-top:3px;padding:8px;display:grid;box-shadow:0 12px 26px #00000052}.controlBulkBuzzer button{color:#fff;width:100%;height:34px;box-shadow:none;background:#dc2626;border:0;border-radius:6px;justify-content:center;align-items:center;gap:7px;padding:0 8px;font-size:11.5px;font-weight:900;display:flex}.controlBulkBuzzer button.confirm{color:#fff;background:#dc2626}.controlBulkBuzzer button.resolve{color:#fff;background:#991b1b}.controlBulkBuzzer button:disabled{cursor:not-allowed;opacity:.48}.controlBulkBuzzer svg{flex:none;width:15px;height:15px}.controlBulkBuzzer span{color:inherit;font-size:11.5px}.controlBulkBuzzer small,.controlBulkBuzzer strong{color:#d1d5db;font-size:10.5px;font-weight:800;line-height:1.25;display:block}.controlBulkBuzzer strong.ok{color:#86efac}.controlBulkBuzzer strong.error{color:#fca5a5}.controlZoneMapInner{transform-origin:50%;will-change:transform;width:116%;height:116%;transition:transform .18s;position:absolute;top:-8%;left:-8%}.googleSurfaceMap,.googleSurfaceCanvas{position:absolute;inset:0}.googleSurfaceMap{z-index:1;background:#0b1220}.googleEmergencyLayer{z-index:4;pointer-events:none;position:absolute;inset:0}.googleEmergencyMarker{z-index:5;pointer-events:auto}.googleSurfaceCanvas{filter:saturate(.98)contrast(1.06)brightness(.82)}.surfaceFallbackCanvas{background:linear-gradient(32deg,#f59e0b38,#0000 28%),linear-gradient(148deg,#3b82f63d,#0000 34%),radial-gradient(circle at 54% 48%,#22c55e2e,#0000 30%),#0b1220;position:absolute;inset:0;overflow:hidden}.surfaceFallbackCanvas:before{content:"";opacity:.72;background-image:linear-gradient(90deg,#22c55e3d 1px,#0000 1px),linear-gradient(0deg,#22c55e3d 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:0}.surfaceRoad{background:#0f172ab8;border:1px solid #fbbf2442;border-radius:999px;width:84%;height:18px;position:absolute;left:8%;box-shadow:0 0 0 5px #0f172a2e}.surfaceRoad.main{top:50%;transform:rotate(-8deg)}.surfaceRoad.upper{width:46%;top:29%;transform:rotate(18deg)}.surfaceRoad.lower{width:52%;top:70%;left:36%;transform:rotate(15deg)}.surfaceFeature{z-index:2;color:#e5e7eb;white-space:nowrap;background:#0f172ab8;border:1px solid #e2e8f02e;border-radius:6px;padding:5px 8px;font-size:11px;font-weight:850;position:absolute;transform:translate(-50%,-50%)}.surfaceFeature.green{color:#86efac}.surfaceFeature.blue{color:#93c5fd}.surfaceFeature.yellow{color:#fde68a}.surfaceFeature.red{color:#fca5a5}.surfaceFeature.gray{color:#cbd5e1}.surfaceMarkerLayer{z-index:3;pointer-events:none;position:absolute;inset:0}.surfaceWorkerMarker{pointer-events:auto}.googleSurfaceMap:after{content:"";pointer-events:none;background:radial-gradient(circle at 52%,#0000 0 38%,#0b122033 72%),linear-gradient(#0b12200d,#0b122047);position:absolute;inset:0}.googleMapError{color:#f59e0b;text-align:center;background:#0b1220eb;place-items:center;padding:18px;font-size:13px;font-weight:850;display:grid;position:absolute;inset:0}.controlRoadSvg{filter:drop-shadow(0 0 18px #3b82f62e);width:90%;height:84%;position:absolute;inset:7% 5%}.controlRoadSvg path{fill:none;stroke:#22c55e3d;stroke-width:22px;stroke-linecap:round;stroke-linejoin:round}.controlRoadSvg path:nth-child(2n){stroke:#22c55e47;stroke-width:14px}.surfaceTileGrid{z-index:0;filter:saturate(.95)contrast(1.08)brightness(.82);grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);display:grid;position:absolute;inset:-8%}.surfaceTileGrid:after{content:"";background:radial-gradient(circle at 52%,#0000 0 36%,#0b12202e 68%),linear-gradient(#0b122014,#0b122057);position:absolute;inset:0}.surfaceTileGrid img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.zoneMapLabels span{z-index:2;color:#d1d5db;white-space:nowrap;background:#0b1220c7;border:1px solid #22c55e57;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;position:absolute;transform:translate(-50%,-50%)}.controlMarker.zoneWorker{z-index:4}.mapModeToggle,.mapToolStack,.mapCompass,.controlMarker{z-index:3;position:absolute}.mapModeToggle{background:#0b1220cc;border:1px solid #22c55e57;border-radius:7px;display:inline-flex;top:18px;left:18px;overflow:hidden}.mapModeToggle button{color:#d1d5db;background:0 0;border:0;width:44px;height:36px;font-weight:800}.mapModeToggle button.active{color:#f59e0b;background:#f59e0b1f;border:1px solid #f59e0b8c}.mapToolStack{background:#0b1220c7;border:1px solid #22c55e57;border-radius:7px;display:grid;left:18px;overflow:hidden}.mapToolStack.top{top:124px}.mapToolStack.zoom{top:220px}.mapToolStack button{color:#f9fafb;background:0 0;border:0;border-bottom:1px solid #22c55e57;place-items:center;width:42px;height:42px;display:grid}.mapToolStack button:last-child{border-bottom:0}.mapToolStack svg{width:20px;height:20px}.controlMarker{width:34px;height:34px;box-shadow:0 0 0 4px color-mix(in srgb, currentColor 18%, transparent), 0 8px 22px #00000059;color:#22c55e;cursor:pointer;background:#0b1220c7;border:2px solid;border-radius:50%;place-items:center;display:grid;transform:translate(-50%,-50%)}.controlMarker svg{fill:currentColor;stroke-width:1.5px;width:18px;height:18px}.controlMarker.normal{color:#22c55e}.controlMarker.warning{color:#f59e0b}.controlMarker.critical{color:#ef4444;animation:1.25s infinite pulseEmergency}.controlMarker.sosBlink{color:#fff;background:#ef4444;border-color:#fff;animation:.72s infinite sosBlink}.controlMarker.soundAlertBlink{color:#fff;background:#dc2626;border-color:#fff;animation:.58s infinite soundAlertBlink;box-shadow:0 0 0 7px #dc262652,0 0 0 18px #dc262629,0 12px 28px #00000073}.controlMarker.mapFocusBlink:not(.sosBlink):not(.soundAlertBlink){box-shadow:0 0 0 7px color-mix(in srgb, currentColor 22%, transparent), 0 0 0 18px #ffffff1f, 0 12px 28px #00000073;border-color:#fff;animation:.95s infinite mapFocusPulse}.controlMarker.offline{color:#6b7280}.controlMarker:hover,.controlMarker:focus-visible{outline-offset:2px;outline:2px solid #22c55e}.compactWorkerOverlay{z-index:78;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0206177a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.controlWorkerCompact{background:linear-gradient(145deg,#111827fa,#0b1220fa),#111827;border:1px solid #22c55e57;border-left:3px solid #22c55e;border-radius:8px;width:min(430px,100vw - 32px);padding:15px;box-shadow:0 28px 70px #00000075}.controlWorkerCompact>header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.controlWorkerCompact>header div{gap:3px;display:grid}.controlWorkerCompact>header span{color:#4ade80;text-transform:uppercase;font-size:11px;font-weight:900}.controlWorkerCompact>header b{color:#f9fafb;font-size:18px;line-height:1.1}.controlWorkerCompact>header button{color:#f9fafb;background:#0b1220d1;border:1px solid #22c55e57;border-radius:6px;width:30px;height:30px;font-size:18px;line-height:1}.compactWorkerProfile{grid-template-columns:66px minmax(0,1fr) 112px;align-items:center;gap:12px;display:grid}.compactWorkerProfile img{-o-object-fit:cover;object-fit:cover;background:#0b1220;border:1px solid #22c55eb8;border-radius:50%;width:66px;height:66px}.compactWorkerProfile div{gap:4px;min-width:0;display:grid}.compactWorkerProfile .compactProfileActions{justify-self:end;gap:8px;width:112px;display:grid}.compactWorkerProfile strong{color:#f9fafb;font-size:16px}.compactWorkerProfile p{color:#d1d5db;align-items:center;gap:6px;margin:0;font-size:12px;line-height:1.25;display:inline-flex}.compactWorkerProfile svg{color:#60a5fa;width:14px;height:14px}.compactStatus{border:1px solid;border-radius:999px;width:fit-content;padding:3px 8px;font-size:11px;font-weight:900}.compactStatus.normal{color:#22c55e;background:#22c55e1f}.compactStatus.warning{color:#f59e0b;background:#f59e0b24}.compactStatus.critical{color:#ef4444;background:#ef444429}.compactStatus.offline{color:#60a5fa;background:#3b82f624}.compactVitals{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.compactVitals span{background:#0b1220a3;border:1px solid #22c55e57;border-radius:7px;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:2px 8px;min-width:0;padding:8px;display:grid}.compactVitals svg{color:#4ade80;grid-row:1/3;width:18px;height:18px}.compactVitals b{color:#9ca3af;text-transform:uppercase;font-size:10px;line-height:1}.compactVitals strong{color:#f9fafb;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:14px;line-height:1.15;overflow:hidden}.controlWorkerCompact>footer{grid-template-columns:.82fr 1.18fr;gap:8px;margin-top:14px;display:grid}.controlWorkerCompact>footer button{border-radius:6px;height:36px;font-size:12px;font-weight:900}.controlWorkerCompact>footer .ghost{color:#d1d5db;background:#0b1220d1;border:1px solid #22c55e57}.controlWorkerCompact>footer .primary{color:#111827;background:#22c55e;border:1px solid #22c55ec2}.compactBuzzerButton{color:#fee2e2;background:#dc262638;border:1px solid #f87171c2;border-radius:6px;justify-content:center;align-items:center;gap:6px;min-height:38px;padding:0 10px;font-size:12px;font-weight:900;line-height:1.1;display:inline-flex}.compactBuzzerButton:disabled{opacity:.68}.resolveSos{color:#fef2f2;background:#dc2626;border:1px solid #f87171d1;border-radius:6px;font-size:12px;font-weight:900}.profileResolveSos{justify-self:end;width:100%;min-height:38px;padding:0 10px;line-height:1.1}.resolveSos:disabled{opacity:.68}.compactResolveError{color:#fca5a5;margin:8px 0 0;font-size:12px;font-weight:800}.compactActionOk{color:#86efac;margin:8px 0 0;font-size:12px;font-weight:800}@keyframes pulseEmergency{0%,to{box-shadow:0 0 0 4px #ef44442e,0 8px 22px #00000059}50%{box-shadow:0 0 0 9px #ef444414,0 8px 26px #ef444447}}@keyframes mapFocusPulse{0%,to{opacity:1;transform:translate(-50%,-50%)scale(1)}50%{opacity:.72;transform:translate(-50%,-50%)scale(1.2)}}@keyframes soundAlertBlink{0%,to{opacity:1;transform:translate(-50%,-50%)scale(1)}50%{opacity:.32;transform:translate(-50%,-50%)scale(1.24)}}.mapCompass{color:#f9fafb;background:#0b12206b;border:1px solid #22c55e3d;border-radius:50%;place-items:center;width:64px;height:64px;display:grid;bottom:24px;right:36px}.mapCompass b{font-size:14px;position:absolute;top:-20px}.mapCompass span{border-bottom:34px solid #22c55e;border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;transform:rotate(4deg)}.controlRightRail{grid-template-rows:auto minmax(0,1fr);gap:8px;min-width:0;min-height:0;display:grid}.controlFilterPanel{background:linear-gradient(#111827eb,#0b1220f0);border:1px solid #22c55e57;border-radius:8px;gap:7px;min-height:0;padding:7px;display:grid;box-shadow:0 18px 44px #00000038,inset 0 1px #ffffff09}.controlSidePanel{min-height:0;padding:7px 8px;overflow:hidden}.controlSidePanel.activeAlerts{grid-template-rows:auto minmax(0,1fr);display:grid}.controlSidePanel header{border-bottom:1px solid #22c55e57;justify-content:space-between;align-items:center;padding-bottom:5px;display:flex}.controlSidePanel h2,.zoneSummaryPanel h2{color:#f9fafb;margin:0;font-size:12px;font-weight:900}.controlSidePanel header button{color:#60a5fa;background:0 0;border:0;font-size:11px;font-weight:800}.controlAlertList{grid-template-rows:repeat(4,minmax(0,1fr));min-height:0;display:grid}.controlAlertList article{border-bottom:1px solid #22c55e57;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:6px;min-height:0;display:grid;overflow:hidden}.alertAvatar{color:#22c55e;background:#22c55e21;border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.controlAlertList article.critical .alertAvatar{color:#ef4444;background:#ef44442e}.controlAlertList article.warning .alertAvatar{color:#f59e0b;background:#f59e0b29}.controlAlertList article.offline .alertAvatar{color:#6b7280;background:#6b728029}.controlAlertList strong,.controlAlertList em,.controlAlertList small{min-width:0;display:block}.controlAlertList strong{color:#f9fafb;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.controlAlertList em{color:#d1d5db;white-space:nowrap;text-overflow:ellipsis;font-size:10px;font-style:normal;overflow:hidden}.controlAlertList small{color:#9ca3af;white-space:nowrap;text-overflow:ellipsis;font-size:9.5px;overflow:hidden}.controlAlertList time{color:#fca5a5;white-space:nowrap;background:#ef444424;border:1px solid #ef44446b;border-radius:5px;width:fit-content;margin-top:6px;padding:3px 7px;font-size:11px;font-weight:900;line-height:1;display:inline-flex}.eventList{display:grid}.controlRightRail .eventList span{-moz-column-gap:12px;color:#e5e7eb;border-bottom:1px solid #22c55e57;grid-template-columns:64px minmax(0,1fr);align-items:center;column-gap:12px;min-height:25px;font-size:12px;display:grid}.controlRightRail .eventList time{color:#9ca3af;white-space:nowrap;font-size:12px}.controlRightRail .eventList b{color:#e5e7eb;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-weight:650;overflow:hidden}.historyLink{color:#60a5fa;background:0 0;border:0;justify-self:start;margin-top:8px;font-size:12px;font-weight:800}.zoneSummaryPanel{min-height:0;padding:9px 12px 8px;overflow:hidden}.zoneSummaryGrid{border:1px solid #22c55e57;border-radius:8px;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:6px;display:grid;overflow:hidden}.zoneSummaryGrid article{background:#11182773;border-right:1px solid #22c55e57;min-height:86px;padding:7px 10px}.zoneSummaryGrid article:last-child{border-right:0}.zoneSummaryGrid h3{color:#f9fafb;margin:0 0 5px;font-size:12px;font-weight:850}.zoneWorkers{grid-template-columns:24px auto;align-items:center;gap:8px;display:grid}.zoneWorkers svg{color:#22c55e;grid-row:span 2;width:19px;height:19px}.zoneWorkers strong{color:#f9fafb;font-size:19px;line-height:1}.zoneWorkers span{color:#9ca3af;grid-column:2;font-size:11px}.zoneCounters{gap:10px;margin-top:6px;display:flex}.zoneCounters span{color:#d1d5db;align-items:center;gap:5px;font-size:12px;display:inline-flex}.zoneCounters svg{width:13px;height:13px}.zoneCounters .critical svg{color:#ef4444}.zoneCounters .warning svg{color:#f59e0b}.zoneCounters .offline svg{color:#9ca3af}.zoneLegend{color:#d1d5db;justify-content:center;gap:20px;margin-top:6px;font-size:11px;display:flex}.zoneLegend span{align-items:center;gap:8px;display:inline-flex}.zoneLegend i{border-radius:50%;width:10px;height:10px}.zoneLegend .normal{background:#22c55e}.zoneLegend .warning{background:#f59e0b}.zoneLegend .critical{background:#ef4444}.zoneLegend .offline{background:#6b7280}.personalScreen{gap:16px;margin-top:18px;display:grid}.personalKpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.personalKpi,.workersTablePanel,.workerDetailPanel{background:linear-gradient(#111827eb,#0b1220f0);border:1px solid #22c55e57;border-radius:8px;box-shadow:0 18px 44px #00000038,inset 0 1px #ffffff09}.personalKpi{-moz-column-gap:14px;background:radial-gradient(circle at 90% 15%,#3b82f61f,#0000 34%),linear-gradient(#111827f2,#0b1220f0);grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr) 40px;align-items:center;column-gap:14px;min-height:88px;padding:12px 18px;display:grid}.personalKpi svg{opacity:.92;stroke-width:1.8px;grid-area:1/2/4;justify-self:end;width:40px;height:40px}.personalKpi span{color:#f9fafb;letter-spacing:.01em;grid-column:1;font-size:13px;font-weight:850;display:block}.personalKpi strong{grid-column:1;margin-top:7px;font-size:32px;font-weight:850;line-height:1;display:block}.personalKpi small{color:#d1d5db;grid-column:1;margin-top:5px;font-size:13px;display:block}.personalKpi.connected svg,.personalKpi.connected strong{color:#22c55e}.personalKpi.warning svg,.personalKpi.warning strong{color:#f59e0b}.personalKpi.critical svg,.personalKpi.critical strong{color:#ef4444}.personalKpi.offline svg,.personalKpi.offline strong{color:#3b82f6}.personalLayout{grid-template-columns:minmax(720px,1fr) 434px;align-items:stretch;gap:14px;display:grid}.workersTablePanel{min-width:0;padding:18px}.workersTablePanel>header{gap:18px;display:grid}.workersTablePanel h2,.workerDetailPanel h2{color:#f9fafb;margin:0;font-size:16px;font-weight:900}.workerFilters{grid-template-columns:minmax(220px,1.2fr) minmax(170px,.8fr) minmax(170px,.8fr) 126px;gap:14px;display:grid}.workerFilters label,.workerFilters select,.workerFilters button{color:#f9fafb;background:#0b1220c7;border:1px solid #22c55e57;border-radius:6px;height:40px}.workerFilters label{grid-template-columns:34px minmax(0,1fr) 24px;align-items:center;padding:0 10px;display:grid}.workerFilters label svg,.workerFilters button svg{color:#9ca3af}.workerFilters input{color:#f9fafb;background:0 0;border:0;outline:0;min-width:0}.workerFilters select{padding:0 12px}.workerFilters button{justify-content:center;align-items:center;gap:9px;display:inline-flex}.workersTable{border:1px solid #22c55e57;border-radius:7px;margin-top:18px;overflow:hidden}.workersHead,.workerRow{grid-template-columns:70px minmax(180px,1.25fr) 120px minmax(190px,1.25fr) minmax(130px,.95fr) 140px;align-items:center;display:grid}.workersHead{color:#d1d5db;background:#111827d1;min-height:48px;font-size:12px}.workersHead span,.workerRow>span{min-width:0;padding:0 12px}.workerRow{color:#e5e7eb;text-align:left;background:#0b12206b;border:0;border-top:1px solid #22c55e57;width:100%;min-height:60px}.workerRow:hover,.workerRow.selected{background:#3b82f61a}.statusDot{border-radius:50%;width:14px;height:14px;display:block}.statusDot.normal{background:#22c55e}.statusDot.warning{background:#f59e0b}.statusDot.critical{background:#ef4444}.statusDot.offline{background:#9ca3af}.workerIdentity{align-items:center;gap:12px;display:flex}.workerIdentity img{-o-object-fit:cover;object-fit:cover;border:1px solid #22c55e8c;border-radius:50%;width:40px;height:40px}.workerIdentity b{color:#f9fafb;font-size:14px}.workerRow small{color:#9ca3af;margin-top:4px;font-size:12px;display:block}.workerUpdatedAt{line-height:1.25;display:block}.workerUpdatedAt b{font-size:11px;font-weight:800;line-height:1.2;display:block}.workerUpdatedAt small{margin-top:3px;font-size:10px;line-height:1.2}.okText{color:#22c55e!important}.warningText{color:#f59e0b!important}.dangerText{color:#ef4444!important}.mutedText{color:#9ca3af!important}.workersPagination{color:#d1d5db;justify-content:space-between;align-items:center;min-height:70px;font-size:13px;display:flex}.workersPagination div{align-items:center;gap:12px;display:flex}.workersPagination button{color:#d1d5db;background:0 0;border:0;border-radius:5px;min-width:32px;height:32px}.workersPagination button.active{color:#f9fafb;background:#3b82f6}.workersPagination button:disabled{opacity:.35;cursor:not-allowed}.workerDetailPanel{min-width:0;padding:12px}.workerDetailPanel>header{justify-content:space-between;align-items:center;display:flex}.workerProfile{grid-template-columns:82px minmax(0,1fr) 132px;align-items:center;gap:12px;margin-top:12px;display:grid}.workerProfile img{-o-object-fit:cover;object-fit:cover;border:1px solid #22c55e;border-radius:50%;width:78px;height:78px;box-shadow:0 0 0 4px #22c55e1f}.workerProfile h3{color:#f9fafb;margin:0 0 6px;font-size:18px}.workerProfile p{color:#d1d5db;margin:2px 0;font-size:12px}.profileActions{justify-self:end;gap:8px;width:132px;display:grid}.profileDataButton,.profileBuzzerButton{color:#dbeafe;background:#3b82f629;border:1px solid #3b82f68c;border-radius:6px;justify-self:end;width:100%;height:34px;font-size:12px;font-weight:900}.profileBuzzerButton{color:#fee2e2;background:#dc262638;border-color:#f87171c2;justify-content:center;align-items:center;gap:6px;display:inline-flex}.detailStatus{text-transform:uppercase;border:1px solid;border-radius:999px;margin-bottom:5px;padding:3px 8px;font-size:10px;font-weight:900;display:inline-flex}.detailStatus.normal{color:#22c55e}.detailStatus.warning{color:#f59e0b}.detailStatus.critical{color:#ef4444}.detailStatus.offline{color:#9ca3af}.detailTabs{border-bottom:1px solid #22c55e57;grid-template-columns:repeat(4,1fr);margin-top:12px;display:grid}.detailTabs button{color:#d1d5db;background:0 0;border:0;border-bottom:2px solid #0000;height:30px;font-size:11px;font-weight:700}.detailTabs button.active{color:#f9fafb;border-color:#3b82f6}.detailStatusGrid{grid-template-columns:1fr 1fr;gap:1px;margin-top:10px;display:grid}.detailStatusGrid article,.detailLocation,.detailVitals{background:#0b122085;border:1px solid #22c55e57;border-radius:7px;padding:10px}.detailStatusGrid article span,.detailLocation span{color:#9ca3af;font-size:12px;display:block}.detailStatusGrid strong{margin-top:5px;font-size:17px;display:block}.detailStatusGrid strong.detailUpdatedAt{font-size:13px;line-height:1.25}.detailLocation{margin-top:8px}.detailLocation header{justify-content:space-between;align-items:center;display:flex}.detailLocation header button{color:#60a5fa;background:#3b82f61f;border:1px solid #22c55e57;border-radius:6px;align-items:center;gap:8px;height:30px;padding:0 12px;display:inline-flex}.detailLocation strong{color:#f9fafb;margin-top:8px;display:block}.detailLocation p{color:#d1d5db;margin:4px 0 0}.detailVitals{margin-top:8px}.detailVitals h3,.quickActions h3{color:#f9fafb;margin:0 0 8px;font-size:13px}.detailVitals div{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.detailVitals span{color:#9ca3af;border-right:1px solid #22c55e57;gap:4px;padding:0 9px;font-size:10px;display:grid}.detailVitals span:last-child{border-right:0}.detailVitals svg{width:16px;height:16px}.detailVitals b{font-size:14px}.detailVitals small{font-size:10px}.detailTabPanel{gap:8px;margin-top:10px;display:grid}.detailVitals.expanded{margin-top:0}.detailVitals.expanded div{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.detailVitals.expanded span{background:#11182773;border:1px solid #22c55e57;border-radius:6px;padding:8px}.detailVitals.expanded span span{background:0 0;border:0;padding:0;font-weight:900}.detailMiniChart,.activityGrid article,.historyList{background:#0b122085;border:1px solid #22c55e57;border-radius:7px}.detailMiniChart{padding:8px}.detailMiniChart h3{color:#f9fafb;margin:0 0 8px;font-size:13px}.activityGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.activityGrid article{padding:9px}.activityGrid span{color:#9ca3af;font-size:12px;display:block}.activityGrid strong{color:#f9fafb;margin-top:5px;font-size:18px;display:block}.historyList{display:grid;overflow:hidden}.historyList article{color:#d1d5db;border-bottom:1px solid #22c55e57;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:10px;min-height:36px;padding:0 12px;font-size:12px;display:grid}.historyList article:last-child{border-bottom:0}.historyList time{color:#60a5fa;font-weight:800}.fullRecordButton{color:#dbeafe;background:#3b82f629;border:1px solid #22c55e57;border-radius:6px;height:34px;font-weight:800}.quickActions{margin-top:12px}.quickActions div{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.quickActions button{color:#fff;border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;height:34px;font-size:11px;font-weight:800;display:inline-flex}.quickActions .call{background:#2563eb}.quickActions .message{background:#16a34a}.quickActions .history{background:#2563eb}.quickActions .report{background:#b91c1c}.quickActions .buzzer{background:#dc2626}.quickActions .more{color:#d1d5db;background:#0b1220b8;border:1px solid #22c55e57;grid-column:span 1}.quickActionStatus{background:#0b1220b8;border:1px solid #22c55e57;border-left:3px solid #3b82f6;border-radius:7px;gap:5px;margin-top:10px;padding:10px 12px;display:grid}.quickActionStatus strong{color:#f9fafb;font-size:13px}.quickActionStatus span{color:#d1d5db;font-size:12px;line-height:1.35}.quickActionStatus.call{border-left-color:#3b82f6}.quickActionStatus.message{border-left-color:#22c55e}.quickActionStatus.report{border-left-color:#b91c1c}.quickActionStatus.buzzer{border-left-color:#ef4444}.quickActionStatus.more{border-left-color:#9ca3af}.quickActionModal{color:#f9fafb;background:linear-gradient(#111827fa,#0b1220fa);border:1px solid #22c55e57;border-radius:8px;width:min(440px,100%);padding:18px;box-shadow:0 28px 70px #0000007a}.quickActionModal header{grid-template-columns:42px minmax(0,1fr);align-items:start;gap:12px;display:grid}.quickActionModal header>span{color:#60a5fa;background:#3b82f624;border-radius:8px;place-items:center;width:42px;height:42px;display:grid}.quickActionModal.call header>span{color:#bfdbfe;background:#2563eb29}.quickActionModal.report header>span{color:#fca5a5;background:#b91c1c2e}.quickActionModal.message header>span{color:#86efac;background:#22c55e29}.quickActionModal.buzzer header>span{color:#fca5a5;background:#ef444429}.quickActionModal h2{color:#f9fafb;margin:0;font-size:18px}.quickActionModal p{color:#d1d5db;margin:6px 0 0;font-size:13px;line-height:1.4}.quickActionModal section{gap:8px;margin-top:16px;display:grid}.quickActionModal section span{color:#e5e7eb;background:#0b1220b8;border:1px solid #22c55e57;border-radius:6px;align-items:center;min-height:36px;padding:0 12px;font-size:13px;display:flex}.quickActionModal footer{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.quickActionModal footer button{border-radius:6px;height:38px;padding:0 16px;font-size:13px;font-weight:850}.quickActionModal .secondary{color:#d1d5db;background:#0b1220b8;border:1px solid #22c55e57}.quickActionModal .primary{color:#f9fafb;background:#2563eb;border:0}.quickActionModal.call .primary{background:#2563eb}.quickActionModal.message .primary{background:#16a34a}.quickActionModal.report .primary{background:#b91c1c}.quickActionModal.buzzer .primary{background:#dc2626}.quickActionModal.more .primary{background:#374151}.emergencyScreen{grid-template-rows:80px minmax(0,1fr);gap:10px;min-height:calc(100vh - 112px);margin-top:8px;display:grid}.emergencyKpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.emergencyKpis article,.emergencyTablePanel,.emergencyMapPanel,.emergencyDetail{background:linear-gradient(#111827e6,#0b1220f0);border:1px solid #22c55e57;border-radius:8px;box-shadow:0 18px 44px #00000038,inset 0 1px #ffffff09}.emergencyKpis article{-moz-column-gap:14px;background:radial-gradient(circle at 90% 15%,#3b82f61f,#0000 34%),linear-gradient(#111827f2,#0b1220f0);grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr) 40px;align-items:center;column-gap:14px;min-height:80px;padding:9px 16px;display:grid}.emergencyKpis svg{opacity:.92;stroke-width:1.8px;grid-area:1/2/4;justify-self:end;width:34px;height:34px}.emergencyKpis span{color:#f9fafb;letter-spacing:.01em;grid-column:1;font-size:12px;font-weight:850;display:block}.emergencyKpis strong{grid-column:1;margin-top:4px;font-size:26px;font-weight:850;line-height:1;display:block}.emergencyKpis small{color:#d1d5db;grid-column:1;margin-top:3px;font-size:11px;display:block}.emergencyKpis .critical svg,.emergencyKpis .critical strong{color:#ef4444}.emergencyKpis .warning svg,.emergencyKpis .warning strong{color:#f59e0b}.emergencyKpis .offline svg,.emergencyKpis .offline strong{color:#3b82f6}.emergencyLayout{grid-template-columns:minmax(720px,1fr) 440px;align-items:stretch;gap:10px;min-height:0;display:grid}.emergencyTablePanel{grid-template-rows:30px 32px minmax(0,1fr) 48px;gap:9px;min-width:0;padding:10px;display:grid}.emergencyTabs{border-bottom:1px solid #22c55e57;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.emergencyTabs button{color:#d1d5db;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;height:30px;font-size:11px;font-weight:800;overflow:hidden}.emergencyTabs button.active{color:#ef4444;border-color:#ef4444}.emergencyFilters{grid-template-columns:repeat(3,minmax(150px,1fr)) 100px;gap:8px;margin-top:0;display:grid}.emergencyFilters label,.emergencyFilters button{color:#d1d5db;background:#0b1220c2;border:1px solid #22c55e57;border-radius:6px;align-items:center;height:32px;padding:0 12px;font-size:12px;display:grid}.emergencyFilters label{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:8px}.emergencyFilters select{color:#f9fafb;background:0 0;border:0;outline:0;min-width:0}.emergencyFilters button{justify-content:center;gap:8px;display:inline-flex}.emergencyTable{border:1px solid #22c55e57;border-radius:7px;grid-template-rows:34px repeat(8,minmax(0,1fr));margin-top:0;display:grid;overflow:hidden}.emergencyHead,.emergencyRow{grid-template-columns:82px minmax(130px,.95fr) minmax(145px,1fr) minmax(88px,.5fr) 158px 78px;align-items:center;display:grid}.emergencyHead{color:#d1d5db;background:#1f2937;min-height:34px;font-size:11px}.emergencyHead span,.emergencyRow>span{min-width:0;padding:0 8px}.emergencyRow{color:#e5e7eb;text-align:left;background:#0b12206b;border:0;border-top:1px solid #22c55e57;width:100%;min-height:0}.emergencyRow:hover,.emergencyRow.selected{background:#3b82f61a}.emergencyRow>span:nth-child(5){white-space:nowrap;font-size:11px;overflow:visible}.emergencyRow>span:nth-child(5) small{white-space:nowrap;font-size:10px;display:block;overflow:visible}.priorityBadge,.stateBadge{border:1px solid;border-radius:5px;align-items:center;min-height:24px;padding:0 6px;font-size:9px;font-weight:900;display:inline-flex}.stateBadge{font-size:10px}.priorityBadge.critical,.stateBadge.critical{color:#ef4444}.priorityBadge.warning,.stateBadge.warning{color:#f59e0b}.priorityBadge.offline,.stateBadge.offline{color:#60a5fa}.emergencyWorker{-moz-column-gap:9px;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:0 9px;line-height:1.12;display:grid}.emergencyWorker img,.selectedAlertMain img{-o-object-fit:cover;object-fit:cover;border:1px solid #22c55e8c;border-radius:50%;width:38px;height:38px}.emergencyWorker strong,.emergencyWorker small{grid-column:2}.emergencyWorker strong,.emergencyType strong{line-height:1.12}.emergencyRow small,.selectedAlertMain span{color:#9ca3af;margin-top:0;font-size:11px;line-height:1;display:block}.emergencyWorker small{margin-top:-1px}.emergencyType{grid-template-columns:20px minmax(0,1fr);align-items:center;gap:6px;line-height:1.12;display:grid}.emergencyType svg{grid-row:span 2;width:17px;height:17px}.emergencyType.critical svg{color:#ef4444}.emergencyType.warning svg{color:#f59e0b}.emergencyType.offline svg{color:#60a5fa}.emergencyType strong,.emergencyType small{grid-column:2;min-width:0}.emergencyPagination{color:#d1d5db;justify-content:space-between;align-items:center;min-height:48px;font-size:12px;display:flex}.emergencyPagination div{align-items:center;gap:8px;display:flex}.emergencyPagination button{color:#d1d5db;background:0 0;border:1px solid #22c55e57;border-radius:5px;width:26px;height:26px}.emergencyPagination button.active{color:#f9fafb;background:#ef444429;border-color:#ef4444}.emergencyPagination button:disabled{opacity:.35;cursor:not-allowed}.emergencySide{grid-template-rows:minmax(285px,.92fr) minmax(270px,1fr);gap:10px;min-width:0;min-height:0;display:grid}.emergencyMapPanel,.emergencyDetail{min-width:0;overflow:hidden}.emergencyMapPanel header,.emergencyDetail header{border-bottom:1px solid #22c55e57;justify-content:space-between;align-items:center;min-height:42px;padding:0 12px;display:flex}.emergencyMapPanel h2,.emergencyDetail h2{color:#f9fafb;margin:0;font-size:12px;font-weight:900}.emergencyMap{filter:saturate(.8)brightness(.78);background:linear-gradient(#0b12202e,#0b122080),url(/dash-xignal/assets/mapa.png) 50%/cover no-repeat;height:calc(100% - 42px);position:relative;overflow:hidden}.emergencyZoom{z-index:2;border:1px solid #22c55e57;border-radius:6px;display:grid;position:absolute;top:42px;left:12px;overflow:hidden}.emergencyZoom button{color:#f9fafb;background:#0b1220d6;border:0;border-bottom:1px solid #22c55e57;width:30px;height:30px;font-size:20px}.emergencyMapMarker{z-index:2;color:#f59e0b;background:#0b1220d1;border:1px solid;border-radius:50%;place-items:center;width:30px;height:30px;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 8px #f59e0b1f}.emergencyMapMarker.critical{color:#ef4444;box-shadow:0 0 0 8px #ef444429}.emergencyMapMarker.offline{color:#60a5fa;box-shadow:0 0 0 8px #60a5fa24}.emergencyMapMarker.active{animation:.9s infinite sosBlink}.emergencyMapMarker svg{width:16px;height:16px}.emergencyDetail{padding-bottom:10px}.selectedAlertMain{grid-template-columns:48px minmax(0,1fr) minmax(130px,.9fr);align-items:center;gap:10px;padding:12px 14px;display:grid}.selectedAlertMain img{width:46px;height:46px}.selectedAlertMain strong{color:#f9fafb}.selectedAlertGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;padding:0 14px;display:grid}.selectedAlertGrid span{border-right:1px solid #22c55e57;gap:5px;min-height:58px;padding:7px 9px 7px 0;display:grid}.selectedAlertGrid b{color:#9ca3af;font-size:11px;font-weight:700}.selectedAlertGrid em{color:#f9fafb;font-size:12px;font-style:normal}.emergencyDetail footer{border-top:1px solid #22c55e57;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:16px 14px 0;padding-top:14px;display:grid}.emergencyDetail footer button{color:#f9fafb;border:0;border-radius:6px;justify-content:center;align-items:center;gap:6px;height:38px;font-size:11px;font-weight:850;display:inline-flex}.emergencyDetail .contact,.emergencyDetail .brigade{background:#dc2626}.emergencyDetail .history{background:#2563eb}.emergencyActionStatus{color:#d1fae5;background:#22c55e1a;border:1px solid #22c55e57;border-left:3px solid #22c55e;border-radius:6px;margin:6px 12px 0;padding:6px 8px;font-size:11px}.emergencyActionModal{color:#f9fafb;background:linear-gradient(#111827fa,#0b1220fa);border:1px solid #22c55e57;border-radius:8px;width:min(420px,100%);padding:18px;box-shadow:0 28px 70px #0000007a}.emergencyActionModal h2{margin:0;font-size:18px}.emergencyActionModal p{color:#d1d5db;margin:8px 0 14px}.emergencyActionModal div{gap:8px;display:grid}.emergencyActionModal span{color:#e5e7eb;background:#0b1220b8;border:1px solid #22c55e57;border-radius:6px;padding:10px;font-size:13px}.emergencyActionModal footer{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.emergencyActionModal button{border-radius:6px;height:38px;padding:0 14px;font-weight:850}.emergencyActionModal button:first-child{color:#d1d5db;background:0 0;border:1px solid #22c55e57}.emergencyActionModal button:last-child{color:#f9fafb;background:#dc2626;border:0}.zonesOperationScreen{grid-template-rows:auto minmax(0,1fr);gap:10px;height:calc(100vh - 104px);min-height:0;margin-top:10px;display:grid;overflow:hidden}.zonesKpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.zonesKpis article,.zonesListPanel,.zonesMapPanel,.zoneDetailPanel,.zonesCharts article{background:linear-gradient(#111827e6,#0b1220f0);border:1px solid #22c55e57;border-radius:8px;box-shadow:0 18px 44px #00000038,inset 0 1px #ffffff09}.zonesKpis article{-moz-column-gap:14px;background:radial-gradient(circle at 90% 15%,#3b82f61f,#0000 34%),linear-gradient(#111827f2,#0b1220f0);grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr) 40px;align-items:center;column-gap:14px;min-height:88px;padding:12px 18px;display:grid}.zonesKpis svg{color:#3b82f6;opacity:.92;stroke-width:1.8px;grid-area:1/2/4;justify-self:end;width:40px;height:40px}.zonesKpis span{color:#f9fafb;letter-spacing:.01em;grid-column:1;font-size:13px;font-weight:850;display:block}.zonesKpis strong{color:#f9fafb;grid-column:1;margin-top:7px;font-size:32px;font-weight:850;line-height:1;display:block}.zonesKpis small{color:#d1d5db;grid-column:1;margin-top:5px;font-size:13px;display:block}.zonesKpis .ok svg,.zonesKpis .ok strong{color:#22c55e}.zonesKpis .warning svg,.zonesKpis .warning strong{color:#f59e0b}.zonesKpis .danger svg,.zonesKpis .danger strong{color:#ef4444}.zonesKpis .purple svg,.zonesKpis .purple strong{color:#a855f7}.zonesMainGrid{grid-template-columns:minmax(0,1fr);height:100%;min-height:0;display:grid}.zonesListPanel,.zoneDetailPanel{min-width:0;min-height:0;padding:12px;overflow:hidden}.zonesListPanel.expanded{overflow:visible}.zonesListPanel h2,.zonesMapPanel h2,.zoneDetailPanel h2,.zonesCharts h2{color:#f9fafb;margin:0;font-size:14px;font-weight:900}.zonesListPanel>div{border-top:1px solid #22c55e57;margin:12px -12px 0;display:grid}.zonesListPanel.expanded>div{overscroll-behavior:contain;max-height:415px;overflow-y:auto}.zonesListPanel>div button{color:#d1d5db;text-align:left;background:0 0;border:0;border-bottom:1px solid #22c55e57;grid-template-columns:14px minmax(0,1fr) 44px 46px;align-items:center;gap:10px;min-height:58px;padding:0 12px;display:grid}.zonesListPanel.expanded>div button{min-height:54px}.zonesListPanel>div button.active,.zonesListPanel>div button:hover{background:#3b82f61a}.zonesListPanel i{border-radius:50%;width:11px;height:11px}.zonesListPanel strong{color:#f9fafb;font-size:13px;display:block}.zonesListPanel small{color:#9ca3af;margin-top:1px;font-size:11px;display:block}.zonesListPanel .zoneListStatus{grid-column:2/5;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:-5px;display:grid}.zonesListPanel .zoneListStatus span{color:#cbd5e1;text-align:center;background:#0f172ab8;border:1px solid #22c55e3d;border-radius:5px;padding:2px 5px;font-size:10px;font-weight:800}.zonesListPanel em,.zonesListPanel b{color:#d1d5db;align-items:center;gap:4px;font-size:12px;font-style:normal;display:inline-flex}.zonesListPanel b.normal{color:#22c55e}.zonesListPanel b.warning{color:#f59e0b}.zonesListPanel b.critical{color:#ef4444}.zonesListPanel b.offline{color:#9ca3af}.allZonesButton,.zoneFullDetail{color:#d1d5db;background:#0b1220b8;border:1px solid #22c55e57;border-radius:6px;width:100%;height:30px;margin-top:6px;font-weight:800}.allZonesButton.active{color:#86efac;background:#22c55e29;border-color:#22c55e}.zonesMapPanel{min-width:0;height:100%;min-height:0;overflow:hidden}.zonesMapPanel header{border-bottom:1px solid #22c55e57;justify-content:space-between;align-items:center;gap:16px;min-height:42px;padding:0 16px;display:flex}.zonesMapPanel header span{color:#cbd5e1;font-size:12px;font-weight:750}.zonesMapPanel header label{color:#cbd5e1;align-items:center;gap:8px;font-size:12px;font-weight:850;display:inline-flex}.zonesMapPanel header select{color:#f9fafb;background:#0f172ab8;border:1px solid #22c55e47;border-radius:6px;width:260px;height:30px;padding:0 10px;font-size:12px;font-weight:850}.operationGoogleMap{background:#0b1220;height:calc(100% - 42px);min-height:0;position:relative;overflow:hidden}.operationGoogleCanvas{position:absolute;inset:0}.operationZoneMapLabel{text-shadow:0 1px 2px #000000bf;white-space:nowrap;background:#0b1220e0;border:1px solid #e2e8f052;border-radius:6px;padding:4px 8px;box-shadow:0 8px 18px #00000057}.operationMapLegend{z-index:4;color:#e5e7eb;background:#0b1220d1;border:1px solid #e2e8f02e;border-radius:7px;gap:5px;padding:9px 12px;display:grid;position:absolute;bottom:14px;left:14px;box-shadow:0 16px 36px #00000047}.operationMapLegend b{font-size:12px;font-weight:900}.operationMapLegend span,.operationMapLegend em{color:#cbd5e1;align-items:center;gap:7px;font-size:11px;font-style:normal;font-weight:750;display:inline-flex}.operationMapLegend i{background:#38bdf847;border:1px solid #38bdf8;border-radius:999px;width:18px;height:9px}.operationMapLegend em i{border-color:#ffffffb8;width:10px;height:10px}.operationMapEditor{z-index:5;background:#0b1220db;border:1px solid #e2e8f02e;border-radius:7px;grid-template-columns:1fr;gap:7px;width:210px;padding:10px;display:grid;position:absolute;top:14px;right:14px;box-shadow:0 16px 36px #00000047}.operationMapEditor button{color:#e0f2fe;background:#0ea5e929;border:1px solid #38bdf857;border-radius:6px;min-height:31px;font-size:12px;font-weight:850}.operationMapEditor button:nth-child(2){color:#bbf7d0;background:#22c55e21;border-color:#22c55e8c}.operationMapEditor button:disabled{opacity:.46;cursor:not-allowed}.operationMapEditor small{color:#cbd5e1;font-size:11px;line-height:1.35}.operationMapFallback{background:linear-gradient(#22c55e3d,#0b1220e0),url(/dash-xignal/assets/mapa_solo.png) 50%/cover no-repeat;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;height:100%;padding:14px;display:grid;overflow-y:auto}.operationMapFallback button{color:#f9fafb;text-align:left;background:#0b1220c2;border:1px solid;border-radius:7px;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:66px;padding:10px;display:grid}.operationMapFallback button.active{background:#3b82f62e}.operationMapFallback i{border-radius:999px;width:10px;height:34px}.operationMapFallback span{min-width:0;font-size:12px;font-weight:850}.operationMapFallback strong{color:#f9fafb;font-size:18px}.zonesMineMap{background:linear-gradient(#0b122029,#0b12207a),url(/dash-xignal/assets/mapa_solo.png) 50%/100% 100% no-repeat;height:calc(100% - 42px);min-height:0;position:relative;overflow:hidden}.zonesMineMap:after{content:"";pointer-events:none;background:radial-gradient(circle at 50% 52%,#0000 0 42%,#0b122094 76%);position:absolute;inset:0}.zonePolygon{z-index:2;opacity:.34;mix-blend-mode:screen;border:2px solid;padding:0;position:absolute;transform:perspective(900px)rotateX(1deg)}.zonePolygon:hover,.zonePolygon.active{opacity:.58;filter:saturate(1.3)}.zonePolygon span{color:#f9fafb;pointer-events:none;background:#0b1220c7;border:1px solid #ffffff29;border-radius:7px;place-items:center;padding:8px 12px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.zonePolygon b{font-size:13px}.zonePolygon strong{margin-top:3px;font-size:20px}.zoneCompass{z-index:5;color:#f9fafb;background:#0b12206b;border:1px solid #d1d5db4d;border-radius:50%;place-items:center;width:58px;height:58px;display:grid;position:absolute;bottom:24px;right:24px}.zoneCompass span{border-bottom:24px solid #22c55e;border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;transform:translateY(4px)}.zoneDetailPanel select{color:#f9fafb;background:#0b1220b8;border:1px solid #22c55e57;border-radius:6px;width:100%;height:32px;margin-top:10px;padding:0 12px}.zoneStatusCard{background:#22c55e1f;border-radius:7px;align-items:center;gap:12px;min-height:44px;margin-top:10px;padding:8px 10px;display:flex}.zoneStatusCard.warning{background:#f59e0b24}.zoneStatusCard.critical{background:#ef444424}.zoneStatusCard.offline{background:#0f172ab8}.zoneStatusCard>span{border-radius:50%;width:12px;height:12px}.zoneStatusCard strong{color:#22c55e}.zoneStatusCard.warning strong{color:#fbbf24}.zoneStatusCard.critical strong{color:#f87171}.zoneStatusCard.offline strong{color:#cbd5e1}.zoneStatusCard small{color:#d1d5db;margin-top:3px;display:block}.zoneStateGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.zoneStateGrid article{background:#0f172ab8;border:1px solid #22c55e57;border-radius:7px;min-height:54px;padding:8px 10px}.zoneStateGrid span{color:#cbd5e1;font-size:11px;font-weight:850;display:block}.zoneStateGrid strong{color:#f9fafb;margin-top:4px;font-size:23px;line-height:1;display:block}.zoneStateGrid .normal strong{color:#22c55e}.zoneStateGrid .warning strong{color:#f59e0b}.zoneStateGrid .critical strong{color:#ef4444}.zoneStateGrid .offline strong{color:#cbd5e1}.zoneOccupancy{grid-template-columns:minmax(0,1fr) 92px;align-items:center;gap:8px 12px;margin-top:10px;display:grid;position:relative}.zoneOccupancy span,.zoneCapacity span{color:#d1d5db;font-size:13px}.zoneOccupancy strong,.zoneCapacity strong{color:#f9fafb;margin-top:4px;font-size:26px;line-height:1;display:block}.zoneOccupancy small,.zoneCapacity small{color:#d1d5db;margin-top:5px;font-size:12px;display:block}.zoneOccupancy>b{color:#f9fafb;place-items:center;font-size:14px;display:grid;position:absolute;top:30px;right:19px}.zoneOccupancy>b small{margin-top:2px;font-size:9px}.zoneOccupancyLegend{border-top:1px solid #22c55e57;grid-column:1/-1;gap:3px;padding-top:6px;display:grid}.zoneOccupancyLegend span{color:#d1d5db;justify-content:space-between;align-items:center;font-size:12px;display:flex}.zoneOccupancyLegend i{background:#1f2937;border-radius:50%;width:10px;height:10px;margin-right:8px;display:inline-block}.zoneCapacity{border-top:1px solid #22c55e57;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:8px;padding-top:7px;display:grid}.zoneCapacity svg{color:#22c55e;width:22px;height:22px}.zoneCapacity strong{font-size:24px}.zoneCapacity small{color:#bbf7d0;white-space:nowrap;background:#22c55e1f;border:1px solid #22c55e59;border-radius:999px;margin-top:0;padding:4px 8px}.zoneLevels{border-top:1px solid #22c55e57;margin-top:8px;padding-top:7px}.zoneLevels h3{color:#f9fafb;margin:0 0 8px;font-size:13px}.zoneLevels span{color:#d1d5db;grid-template-columns:68px minmax(0,1fr) 28px;align-items:center;gap:10px;min-height:18px;font-size:12px;display:grid}.zoneLevels em{font-style:normal}.zoneLevels i{background:#1f2937;border-radius:999px;height:5px;overflow:hidden}.zoneLevels i b{border-radius:inherit;height:100%;display:block}.zonesCharts{grid-template-columns:minmax(420px,.7fr) minmax(0,1.3fr);gap:10px;display:grid}.zonesCharts article{min-width:0;min-height:190px;padding:12px}.zonesCharts h2{margin-bottom:12px}.zonesCharts h2 span{color:#d1d5db;font-size:12px;font-weight:700}.zonesCharts p{color:#d1d5db;margin:0;font-size:12px}.zonesCharts p i,.zoneTrendLegend i{vertical-align:middle;background:#9ca3af;width:22px;height:2px;margin-right:8px;display:inline-block}.zoneTrendLegend{color:#d1d5db;flex-wrap:wrap;gap:12px 18px;font-size:12px;display:flex}.zoneTrendLegend span{align-items:center;display:inline-flex}.zoneStatusTable{overflow:hidden}.zoneStatusTable>div{border:1px solid #22c55e57;border-radius:7px;display:grid;overflow:hidden}.zoneStatusTable header,.zoneStatusTable button{color:#cbd5e1;text-align:left;background:#0f172ab8;border:0;border-bottom:1px solid #22c55e57;grid-template-columns:minmax(150px,1.4fr) repeat(6,minmax(54px,.55fr));align-items:center;gap:8px;min-height:29px;padding:0 10px;display:grid}.zoneStatusTable button{background:#0b122061;min-height:34px}.zoneStatusTable button:last-child{border-bottom:0}.zoneStatusTable button:hover,.zoneStatusTable button.active{background:#3b82f61f}.zoneStatusTable header span{color:#94a3b8;text-transform:uppercase;font-size:10px;font-weight:900}.zoneStatusTable button span{color:#f9fafb;align-items:center;gap:8px;min-width:0;font-size:12px;font-weight:850;display:inline-flex}.zoneStatusTable button span i{border-radius:50%;flex:none;width:9px;height:9px}.zoneStatusTable b{color:#e5e7eb;font-size:12px;font-weight:850}.zoneStatusTable b.normal{color:#22c55e}.zoneStatusTable b.warning{color:#f59e0b}.zoneStatusTable b.critical{color:#ef4444}.zoneStatusTable b.offline{color:#cbd5e1}.hierarchyMap{background-color:#eef2f4;background-image:radial-gradient(circle at 17% 22%,#ffffffd1 0 4%,#0000 4.5%),radial-gradient(circle at 82% 25%,#ffffffb3 0 3%,#0000 3.5%),linear-gradient(24deg,#0000 0 20%,#78716c38 20.5% 22.5%,#0000 23%),linear-gradient(155deg,#0000 0 25%,#78716c33 25.5% 27.5%,#0000 28%),linear-gradient(90deg,#64748b47 0 10%,#0000 10.5% 100%),linear-gradient(#22c55e3d,#47556938),none;background-position:0 0,0 0,0 0,0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat,repeat,repeat,repeat;background-size:auto;background-attachment:scroll,scroll,scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box,border-box,border-box}.subZonePrompt{z-index:4;color:#111827;text-align:center;background:#ffffffdb;border:1px solid #22c55e3d;border-radius:8px;place-items:center;width:min(420px,100% - 40px);padding:16px;font-size:16px;font-weight:900;display:grid;position:absolute;top:54%;left:50%;transform:translate(-50%,-50%);box-shadow:0 14px 28px #0f172a1f}.hierarchyMap.zoneDetail{cursor:grab;touch-action:none;background:radial-gradient(at 16% 18%,#fff3,#0000 34%),radial-gradient(at 84% 72%,#5c51462e,#0000 42%),radial-gradient(circle at 34% 66%,#78716c1f 0 2px,#0000 2.5px) 0 0/38px 38px,radial-gradient(circle at 72% 26%,#4755691a 0 1.5px,#0000 2px) 0 0/52px 52px,linear-gradient(135deg,#ffffff2e,#0000 32%),#d8d1c3}.hierarchyMap.zoneDetail.panning{cursor:grabbing}.hierarchyMap:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0 9%,#5c51463d 9.5% 11%,#0000 11.5% 38%,#5c514638 38.5% 40%,#0000 40.5% 66%,#5c51463d 66.5% 68%,#0000 68.5%),linear-gradient(18deg,#0000 0 32%,#5c514633 32.5% 34%,#0000 34.5%),linear-gradient(158deg,#0000 0 42%,#5c51462e 42.5% 44%,#0000 44.5%),radial-gradient(at 51% 53%,#7c6e5c1f,#0000 56%);border-radius:22px;position:absolute;inset:5% 4%}.hierarchyMap.zoneDetail:before{content:"";pointer-events:none;background:linear-gradient(24deg,#0000 0 18%,#685c4c1c 18.2% 18.5%,#0000 18.8%),linear-gradient(156deg,#0000 0 42%,#685c4c17 42.2% 42.5%,#0000 42.8%),radial-gradient(at 48% 52%,#ffffff1f,#0000 62%);border-radius:6px;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #0f172a0f,inset 0 0 48px #453b3024}.hierarchyMap.zoneDetail:after{content:"";z-index:1;pointer-events:none;background:0 0;position:absolute;inset:0}.mineMap:after{content:"";pointer-events:none;background:linear-gradient(#fff3,#0f172a0a);border:1px solid #22c55e38;position:absolute;inset:0}.mineMap.zoneDetail:after{background:0 0;border:0}.mapZoomLayer{z-index:2;transform-origin:50%;will-change:transform;transition:transform .16s;position:absolute;inset:0}.mapZoomControls{z-index:7;background:#ffffffe6;border:1px solid #22c55e3d;border-radius:8px;grid-template-columns:34px 54px 34px 44px;align-items:center;gap:6px;padding:6px;display:inline-grid;position:absolute;top:12px;right:12px;box-shadow:0 12px 24px #0f172a1f}.mapZoomControls button,.mapZoomControls span{color:#111827;border-radius:6px;place-items:center;height:30px;font-size:12px;font-weight:900;display:grid}.mapZoomControls button{background:#f1f5f9eb;border:1px solid #22c55e3d}.mapZoomControls span{background:#0f172ab8}.zoneCanvas{z-index:1;position:absolute;inset:0}.zoneDetail .zoneCanvas{display:none}.mineStreetLabels{z-index:2;pointer-events:none;position:absolute;inset:0}.zoneRouteSvg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.zoneRouteSvg path{fill:none;stroke:#aaa7a0;stroke-width:4.25px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px #ffffff61)drop-shadow(0 4px 7px #2d241c29)}.zoneRouteSvg path:nth-child(3n+1){stroke:#b5b1a7}.zoneRouteSvg path:nth-child(3n+2){stroke:#9f9b92}.zoneRouteSvg path:nth-child(3n){stroke:#beb7aa}.zoneRouteSvg .roadCenterLine{stroke:#f8fafc57;stroke-width:.55px;stroke-dasharray:1.2 2.4;filter:none}.roadLabel,.streetLabel{z-index:2;color:#111827;text-shadow:0 1px #fffffff2,0 -1px #fffc;font-size:12px;font-weight:900;line-height:1;position:absolute;transform:translate(-50%,-50%)}.streetA{top:63%;left:24%;transform:rotate(-21deg)}.streetB{top:38%;left:47%;transform:rotate(-28deg)}.streetC{top:26%;left:67%;transform:rotate(-12deg)}.streetD{top:48%;left:24%;transform:rotate(-21deg)}.streetE{top:67%;left:53%;transform:rotate(29deg)}.mapFeature{z-index:3;color:#111827;text-align:center;min-width:116px;box-shadow:none;text-shadow:0 1px #fffffff2;background:0 0;border:0;border-radius:0;place-items:center;padding:0;font-size:12px;font-weight:900;line-height:1.05;display:grid;position:absolute;transform:translate(-50%,-50%)}.mapFeature:before{content:"";filter:drop-shadow(0 7px 10px #22c55e3d);border-bottom:24px solid #64748b;border-left:13px solid #0000;border-right:13px solid #0000;width:0;height:0;margin:0 auto 6px}.mapFeature.green:before{border-bottom-color:#3fb996}.mapFeature.blue:before{border-bottom-color:#39a7b7}.mapFeature.yellow:before{border-bottom-color:#f2b24d}.mapFeature.red:before,.mapFeature.gray:before{border-bottom-color:#d9d9d3}.mineZoneShape{color:#111827;cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#e6ffefb8;border:2px solid #35d26f61;border-radius:18px;padding:18px;display:block;position:absolute;box-shadow:0 14px 30px #0f172a24,inset 0 1px #ffffffb8}.mineZoneShape:before{content:"";pointer-events:none;border:1px solid #22c55e3d;border-radius:13px;position:absolute;inset:7px}.mineZoneShape.warning{background:#fff9dcc7;border-color:#f5c33094}.mineZoneShape.critical{background:#ffe8e8c7;border-color:#ff4d4d85}.mineZoneShape.offline{background:#f1f5f9c7;border-color:#7d889a6b}.mineZoneShape.restricted:before{border-style:dashed}.zoneName,.zoneSummary{z-index:2;text-align:left;pointer-events:none;max-width:calc(100% - 24px);position:absolute}.mineZoneShape .zoneName{top:14px!important;left:14px!important}.mineZoneShape .zoneSummary{bottom:12px;right:14px;top:auto!important;left:14px!important}.zoneName b{color:#111827;font-size:clamp(14px,1.05vw,20px);font-weight:950;line-height:1.08;display:block}.zoneSummary{color:#334155;background:#ffffffbd;border:1px solid #22c55e3d;border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:8px;font-style:normal;font-weight:750;display:grid}.zoneSummary i{grid-template-columns:8px minmax(0,1fr);align-items:center;gap:2px 5px;min-width:0;font-style:normal;display:grid}.zoneSummary i em{border-radius:50%;width:8px;height:8px}.zoneSummary i b{color:#07111f;font-size:16px;line-height:1}.zoneSummary i small{color:#475569;white-space:nowrap;text-overflow:ellipsis;grid-column:1/-1;font-size:9px;font-weight:850;line-height:1.1;overflow:hidden}.mapBack{z-index:5;color:#111827;background:#ffffffe6;border:1px solid #22c55e3d;border-radius:8px;align-items:center;gap:6px;height:34px;padding:0 10px;font-size:12px;font-weight:850;display:inline-flex;position:absolute;top:12px;left:12px}.zoneDetailTitle{z-index:5;color:#111827;text-align:center;background:#ffffffeb;border:1px solid #22c55e3d;border-radius:9px;place-items:center;max-width:min(680px,100% - 280px);min-height:38px;padding:0 18px;font-size:22px;font-weight:950;line-height:1.1;display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 12px 24px #0f172a1f}.detailCounters{z-index:4;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid;position:absolute;bottom:12px;left:12px;right:176px}.detailCounters span{color:#111827;background:#ffffffdb;border:1px solid #22c55e3d;border-radius:7px;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;padding:8px 9px;font-size:11px;font-weight:800;display:grid}.detailCounters i{border-radius:50%;width:10px;height:10px}.bleBeacon{z-index:3;color:#1d4ed8;background:#dbeafee6;border:1px solid #2563eb47;border-radius:999px;align-items:center;gap:4px;padding:4px 6px;font-size:10px;font-weight:900;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.bleBeacon.maintenance{color:#92400e;border-color:#f59e0b66}.streetPlan{z-index:1;position:absolute;inset:0}.road{background:#c9c9c9;border-radius:999px;display:block;position:absolute;box-shadow:inset 0 1px #ffffffc7,0 1px 2px #0f172a14}.zoneArea{z-index:0;opacity:.88;border:1px solid;border-radius:8px;display:block;position:absolute}.zoneAccess{background:#3b82f61f;border-color:#3b82f647;width:28%;height:20%;top:50%;left:5%}.zoneNorth{background:#22c55e1f;border-color:#22c55e47;width:25%;height:33%;top:14%;left:28%}.zoneRamp{background:#f59e0b24;border-color:#f59e0b52;width:31%;height:26%;top:48%;left:30%}.zoneFront{background:#ef44441a;border-color:#ef44443d;width:33%;height:18%;top:34%;left:55%}.zoneAccessRoad{background:#7db2f5}.zoneNorthRoad{background:#74d990}.zoneRampRoad{background:#efc15f}.zoneFrontRoad{background:#f39a9a}.roadMain{background:linear-gradient(90deg,#7db2f5 0 28%,#74d990 28% 50%,#efc15f 50% 61%,#f39a9a 61% 100%);width:82%;height:13px;top:42%;left:7%}.roadNorth{border-radius:6px;width:13px;height:24%;top:19%;left:30%}.roadNorthTop{width:20%;height:13px;top:19%;left:30%}.roadSouth{border-radius:6px;width:13px;height:27%;top:43%;left:49%}.roadEast{width:22%;height:13px;top:42%;left:61%}.roadWest{width:25%;height:13px;top:58%;left:6%}.roadRamp{transform-origin:0;width:33%;height:13px;top:57%;left:28%;transform:rotate(-18deg)}.roadNode{z-index:1;background:#f8fafc;border:3px solid #c4c7cc;border-radius:50%;width:20px;height:20px;position:absolute;box-shadow:inset 0 1px #fffc}.nodeA{top:calc(42% - 4px);left:calc(30% - 4px)}.nodeB{top:calc(42% - 4px);left:calc(49% - 4px)}.nodeC{top:calc(42% - 4px);left:calc(60% - 4px)}.zoneLabel{z-index:2;color:#111827;text-shadow:0 1px #ffffffe6;font-size:12px;font-weight:800;line-height:1;position:absolute}.labelNorth{top:14%;left:39%}.labelRamp{top:69%;left:35%}.labelFront{top:35%;left:64%}.labelExit{top:53%;left:10%}.mapMarker{z-index:3;color:#07111f;border:2px solid;border-radius:50%;place-items:center;width:32px;height:32px;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 7px #ffffff14,0 12px 28px #0000006b}.workerMarker{width:28px;height:28px}.workerMarker span{color:#111827;white-space:nowrap;background:#ffffffeb;border-radius:5px;padding:2px 5px;font-size:10px;font-weight:900;position:absolute;top:42px;left:50%;transform:translate(-50%)}.zoneDetail .workerMarker span{display:none}.workerMarker.offline{border-style:dashed}.workerMarker.dimmed{opacity:.22}.workerMarker.priority{z-index:5}.unknownBucket{z-index:4;color:#111827;background:#ffffffd1;border:1px dashed #22c55e3d;border-radius:8px;margin:0;padding:10px 12px;font-size:12px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mapMarker.critical{box-shadow:0 0 0 12px #ff4d4d29,0 0 0 28px #ff4d4d1f}.mapMarker.selected:not(.critical){box-shadow:0 0 0 4px #1118272e,0 12px 28px #0000006b}.mapMarker.sosBlink{color:#fff;animation:.72s infinite sosBlink;background:#ff1f1f!important;border-color:#fff!important}@keyframes sosBlink{0%,to{opacity:1;transform:translate(-50%,-50%)scale(1);box-shadow:0 0 0 8px #ffffff29,0 0 0 20px #ff1f1f38,0 16px 34px #00000075}50%{opacity:.28;transform:translate(-50%,-50%)scale(1.22);box-shadow:0 0 0 14px #ff1f1f52,0 0 0 34px #ff1f1f29,0 16px 34px #00000075}}.mapTools{z-index:3;border:1px solid #22c55e42;border-radius:8px;display:grid;position:absolute;top:48px;right:12px;overflow:hidden}.mapInfoPanel{z-index:4;color:#111827;background:#fffffff0;border:1px solid #22c55e42;border-radius:8px;width:300px;padding:12px;position:absolute;bottom:14px;left:14px;box-shadow:0 20px 45px #0000006b}.mapInfoPanel header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.mapInfoPanel header b{color:#111827;font-size:14px;line-height:1.2}.mapInfoPanel header strong{text-transform:uppercase;flex:none;font-size:11px}.mapInfoPanel span{border-top:1px solid #22c55e3d;grid-template-columns:92px minmax(0,1fr);gap:10px;margin-top:7px;padding-top:7px;font-size:12px;display:grid}.mapInfoPanel span b{color:#4b5563}.mapInfoPanel span em{color:#111827;overflow-wrap:anywhere;font-style:normal}.mapTools button{color:#111827;background:#ffffffe0;border:0;border-bottom:1px solid #22c55e42;width:35px;height:35px}.mapLegend{z-index:3;color:#111827;background:#ffffffe6;border:1px solid #22c55e42;border-radius:8px;gap:10px;width:152px;padding:12px;font-size:12px;display:grid;position:absolute;bottom:12px;right:12px}.mapLegend span{align-items:center;gap:9px;display:flex}.mapLegend i{border-radius:50%;width:12px;height:12px}.modalOverlay{z-index:80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#02061785;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.workerModal{color:#d1d5db;background:linear-gradient(135deg,#22c55e3d,#22c55e1a 42%,#22c55e3d),#22c55e57;border:1px solid #22c55e7a;border-left:3px solid #22c55e;border-radius:8px;width:min(1040px,100%);max-height:calc(100vh - 42px);padding:16px;overflow:auto;box-shadow:0 28px 70px #0006,inset 0 1px #ffffff0f}.workerModal.fullRecordOnly{width:min(1120px,100%)}.workerModal header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.workerModal header div{gap:3px;display:grid}.workerModal header b{color:#f9fafb;font-size:20px;line-height:1.1}.workerModal header span{color:#4ade80;font-size:12px;font-weight:900}.workerModal header button{color:#f9fafb;background:#111827c2;border:1px solid #22c55e59;border-radius:6px;height:30px;padding:0 11px;font-size:12px;font-weight:900}.modalStatus{background:#111827a8;border:1px solid #22c55e38;border-radius:7px;grid-template-columns:24px auto minmax(0,1fr);align-items:center;gap:10px;padding:10px;font-size:13px;display:grid}.modalStatus.normal{color:#22c55e}.modalStatus.warning{color:#f59e0b}.modalStatus.critical{color:#ef4444}.modalStatus.offline{color:#9aa9bb}.modalStatus em{color:#d1d5db;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-style:normal;overflow:hidden}.modalMetrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.workerModal.fullRecordOnly .modalMetrics{display:none}.modalMetrics span{background:#0b1220a3;border:1px solid #22c55e57;border-radius:7px;gap:5px;min-width:0;padding:9px;display:grid}.modalMetrics b{color:#9ca3af;text-transform:uppercase;font-size:10px;line-height:1}.modalMetrics em{color:#f9fafb;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-style:normal;font-weight:900;overflow:hidden}.modalAction{color:#111827;background:#22c55e;border:1px solid #22c55ec2;border-radius:6px;margin-top:14px;font-size:12px;font-weight:900}.helmetFullRecord{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:14px;display:grid}.workerModal.fullRecordOnly .helmetFullRecord{margin-top:10px}.helmetFullRecord section{background:#111827b8;border:1px solid #22c55e2e;border-radius:8px;min-width:0;padding:10px;box-shadow:inset 0 1px #ffffff09}.helmetFullRecord h3{color:#f9fafb;letter-spacing:0;align-items:center;gap:8px;margin:0 0 8px;font-size:12px;font-weight:900;display:flex}.helmetFullRecord h3 svg{color:#4ade80}.helmetFullRecord section>div{gap:5px;display:grid}.helmetFullRecord span{border-top:1px solid #22c55e24;justify-content:space-between;align-items:start;gap:8px;min-width:0;padding-top:5px;font-size:11px;display:flex}.helmetFullRecord span:first-child{border-top:0;padding-top:0}.helmetFullRecord b{color:#9ca3af;flex:none}.helmetFullRecord em{text-align:right;color:#f9fafb;overflow-wrap:anywhere;min-width:0;font-style:normal;font-weight:800}.helmetFullRecord .wide{gap:4px;display:grid}.helmetFullRecord .wide em{text-align:left;max-height:34px;overflow:hidden}.controlCenter{gap:14px;margin-top:18px;display:grid}.controlKpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.controlGrid{grid-template-columns:300px minmax(560px,1fr) 320px;align-items:stretch;gap:14px;display:grid}.controlGrid .mapPanel,.controlGrid .alertPanel,.healthRail{height:560px}.controlGrid .mineMap{height:512px}.healthRail,.analyticsPanel{background:linear-gradient(#111827eb,#0b1220e6);border:1px solid #22c55e47;border-radius:8px;padding:14px;box-shadow:inset 0 1px #ffffff08,0 18px 40px #0000002e}.healthRailList{gap:10px;margin-top:12px;display:grid}.healthRailList button{color:#dbeafe;text-align:left;background:#040c167a;border:1px solid #22c55e42;border-radius:8px;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:7px 10px;min-height:104px;padding:11px;display:grid}.healthRailList button.selected{background:#2563eb29;border-color:#60a5fab8}.healthRailList b{color:#fff;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.healthRailList em{font-size:12px;font-style:normal;font-weight:800}.healthRailList small{color:#9aa9bb;grid-column:2/-1;font-size:11px}.healthRailList strong{color:#dbeafe;grid-column:2/-1;font-size:13px}.trafficLight{border-radius:50%;width:12px;height:12px;box-shadow:0 0 0 5px #ffffff0f}.trafficLight.green{background:#22c55e}.trafficLight.yellow{background:#f59e0b}.trafficLight.red{background:#ef4444}.analyticsPanel{min-height:214px}.criticalTimeline{gap:10px;margin-top:14px;display:grid;position:relative}.criticalTimeline article{grid-template-columns:52px 14px minmax(0,1fr);align-items:start;gap:10px;min-height:42px;display:grid}.criticalTimeline time{color:#9aa9bb;font-size:12px}.criticalTimeline article>span{background:#7d889a;border-radius:50%;width:10px;height:10px;margin-top:3px}.criticalTimeline article.critical>span{background:#ef4444}.criticalTimeline article.warning>span{background:#f59e0b}.criticalTimeline article.normal>span{background:#22c55e}.criticalTimeline b,.zoneRanking b{color:#fff;min-width:0;font-size:13px;display:block}.criticalTimeline em,.zoneRanking em{color:#9aa9bb;margin-top:3px;font-size:12px;font-style:normal;display:block}.zoneRanking{gap:8px;margin-top:14px;display:grid}.zoneRanking article{background:#040c167a;border:1px solid #22c55e42;border-radius:7px;grid-template-columns:28px minmax(0,1fr) 72px 70px;align-items:center;gap:10px;min-height:42px;padding:8px 10px;display:grid}.zoneRanking article>span{color:#93c5fd;background:#60a5fa2e;border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;font-weight:900;display:grid}.zoneRanking strong{color:#ff8585;font-size:12px}.trendPanel{min-width:0}.trendLegend{color:#9aa9bb;gap:16px;font-size:12px;display:flex}.trendLegend span{align-items:center;gap:7px;display:inline-flex}.trendLegend i{border-radius:50%;width:10px;height:10px}.trendLegend .pulse{background:#ff8585}.trendLegend .oxygen{background:#3b82f6}.alertPanel{flex-direction:column;gap:10px;display:flex;overflow-y:auto}.alertItem{border:1px solid;border-radius:7px;flex:none;gap:12px;min-height:68px;padding:10px;display:flex}.alertItem.critical{color:#ff8585;background:#ff4d4d1f;border-color:#ff4d4db8}.alertItem.warning{color:#f59e0b;background:#f5c3301f;border-color:#f5c330b8}.alertItem.normal,.alertItem.offline{background:#7d889a1a;border-color:#7d889a80}.alertItem strong,.alertItem span,.alertItem small{display:block}.alertItem strong{color:#fff;font-size:13px}.alertItem span,.alertItem small{color:#d0d7e2;margin-top:4px;font-size:12px}.allAlerts{color:#60a5fa;background:0 0;border:0;flex:none;margin-top:auto}.donutWrap{grid-template-columns:160px 1fr;align-items:center;margin-top:24px;display:grid;position:relative}.donutCenter{text-align:center;width:62px;position:absolute;top:48px;left:47px}.donutCenter strong{font-size:28px;display:block}.donutCenter span{color:#9aa9bb;font-size:11px}.donutWrap ul{color:#d0d7e2;gap:13px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.donutWrap li{align-items:center;gap:10px;display:flex}.donutWrap i{border-radius:2px;width:12px;height:12px}.zoneTable{color:#c8d2e2;border-top:1px solid #22c55e42;gap:8px;margin-top:22px;padding-top:12px;font-size:12px;display:grid}.zoneTable span{grid-template-columns:1fr 30px 30px 30px;display:grid}.zoneTable b:nth-child(2){color:#22c55e}.zoneTable b:nth-child(3){color:#f59e0b}.zoneTable b:nth-child(4){color:#ef4444}.minerStrip{margin-top:12px;padding:14px}.minerCards{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}.viewPage{gap:14px;margin-top:18px;display:grid}.mapView{grid-template-columns:minmax(700px,1fr) 340px}.mapView .mapPanel{height:600px}.mapView .mineMap{height:552px}.mapView .wide{grid-column:1/-1}.healthGrid,.reportGrid{grid-template-columns:360px minmax(0,1fr)}.healthScreen{gap:14px;margin-top:10px;display:grid}.healthKpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.healthKpis article,.healthWorkersPanel,.healthSummaryPanel,.environmentPanel,.recommendationsPanel{background:radial-gradient(circle at 90% 15%,#3b82f61f,#0000 34%),linear-gradient(#111827f2,#0b1220f0);border:1px solid #22c55e57;border-radius:8px;box-shadow:0 18px 44px #00000038,inset 0 1px #ffffff09}.healthKpis article{-moz-column-gap:14px;grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr) 40px;align-items:center;column-gap:14px;min-height:88px;padding:12px 18px;display:grid}.healthKpis svg{opacity:.92;stroke-width:1.8px;grid-area:1/2/4;justify-self:end;width:40px;height:40px}.healthKpis span,.healthKpis strong,.healthKpis small{grid-column:1;display:block}.healthKpis span{color:#f9fafb;letter-spacing:.01em;font-size:13px;font-weight:850}.healthKpis strong{color:#f9fafb;margin-top:7px;font-size:32px;font-weight:850;line-height:1}.healthKpis small{color:#d1d5db;margin-top:5px;font-size:13px}.healthKpis .green svg,.healthKpis .green strong{color:#22c55e}.healthKpis .red svg,.healthKpis .red strong{color:#ef4444}.healthKpis .yellow svg,.healthKpis .yellow strong{color:#f59e0b}.healthKpis .blue svg,.healthKpis .blue strong{color:#3b82f6}.healthKpis .purple svg,.healthKpis .purple strong{color:#a855f7}.healthMainGrid{grid-template-columns:minmax(720px,1fr) 520px;align-items:stretch;gap:14px;display:grid}.healthWorkersPanel{min-width:0;padding:14px}.healthWorkersPanel h2,.healthSummaryPanel h2,.environmentPanel h2,.recommendationsPanel h2{color:#f9fafb;margin:0;font-size:14px;font-weight:900}.healthFilters{grid-template-columns:minmax(220px,1.1fr) minmax(160px,.8fr) minmax(160px,.8fr) 100px;gap:12px;margin-top:16px;display:grid}.healthFilters label,.healthFilters select,.healthFilters button{color:#f9fafb;background:#0b1220c2;border:1px solid #22c55e57;border-radius:6px;height:38px}.healthFilters label{grid-template-columns:30px minmax(0,1fr);align-items:center;padding:0 10px;display:grid}.healthFilters input{color:#f9fafb;background:0 0;border:0;outline:0;min-width:0}.healthFilters select{padding:0 12px}.healthFilters button{justify-content:center;align-items:center;gap:8px;display:inline-flex}.healthFilters button.active{color:#86efac;background:#22c55e29;border-color:#22c55e}.healthTable{border:1px solid #22c55e57;border-radius:7px;margin-top:16px;overflow:hidden}.healthHead,.healthRow{grid-template-columns:68px minmax(155px,1.15fr) minmax(126px,.9fr) 92px 92px 78px 86px 104px;align-items:center;display:grid}.healthHead{color:#d1d5db;background:#1f2937;min-height:48px;font-size:11px}.healthHead span,.healthRow>span{min-width:0;padding:0 10px}.healthRow{color:#e5e7eb;text-align:left;background:#0b12206b;border:0;border-top:1px solid #22c55e57;width:100%;min-height:64px}.healthRow:hover,.healthRow.selected{background:#3b82f61a}.healthEmpty{color:#9ca3af;border-top:1px solid #22c55e57;place-items:center;min-height:96px;font-size:13px;display:grid}.healthDot{border-radius:50%;width:14px;height:14px;display:block}.healthDot.green{background:#22c55e}.healthDot.yellow{background:#f59e0b}.healthDot.red{background:#ef4444}.healthDot.gray{background:#6b7280}.healthWorker{-moz-column-gap:9px;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:0 9px;line-height:1;display:grid}.healthWorker img{-o-object-fit:cover;object-fit:cover;border:1px solid #22c55e8c;border-radius:50%;width:42px;height:42px}.healthWorker strong,.healthWorker small{grid-column:2}.healthRow small{color:#9ca3af;margin-top:1px;font-size:11px;line-height:1;display:block}.healthRow svg{vertical-align:-3px;margin-right:4px}.fatigueRing{border:3px solid;border-radius:50%;place-items:center;width:38px;height:38px;font-size:11px;display:grid}.fatigueRing.green{color:#22c55e}.fatigueRing.yellow{color:#f59e0b}.fatigueRing.red{color:#ef4444}.fatigueRing.gray{color:#6b7280}.healthPagination{color:#d1d5db;justify-content:space-between;align-items:center;min-height:58px;font-size:13px;display:flex}.healthPagination div{align-items:center;gap:12px;display:flex}.healthPagination button{color:#d1d5db;background:0 0;border:1px solid #22c55e57;border-radius:5px;width:30px;height:30px}.healthPagination button.active{color:#f9fafb;background:#22c55e24;border-color:#22c55e}.healthPagination button:disabled{opacity:.38;cursor:not-allowed}.healthSide{align-content:start;gap:8px;min-width:0;display:grid}.healthSummaryPanel,.environmentPanel,.recommendationsPanel{min-width:0;padding:10px}.healthSummaryPanel header{justify-content:space-between;align-items:center;display:flex}.healthSummaryPanel header button{color:#d1d5db;background:#0b1220b8;border:1px solid #22c55e57;border-radius:6px;height:26px;padding:0 10px}.healthTrendGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:9px;display:grid}.healthTrendGrid article{background:#0b122085;border:1px solid #22c55e57;border-radius:7px;min-width:0;padding:7px}.healthTrendGrid span{color:#d1d5db;font-size:11px;display:block}.healthTrendGrid strong{color:#f9fafb;margin-top:4px;font-size:20px;display:inline-block}.healthTrendGrid strong small{font-size:11px}.healthTrendGrid em{margin-left:6px;font-size:10px;font-style:normal}.environmentPanel>div{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:9px;display:grid}.environmentPanel article{text-align:center;background:#0b122085;border:1px solid #22c55e57;border-radius:7px;justify-items:center;min-width:0;min-height:70px;padding:7px;display:grid}.environmentPanel svg{color:#3b82f6}.environmentPanel span{color:#d1d5db;font-size:10px}.environmentPanel strong{color:#f9fafb;font-size:16px}.environmentPanel small{color:#22c55e}.recommendationsPanel{grid-template-columns:minmax(0,1fr) 104px;gap:8px;display:grid}.recommendationsPanel h2{grid-column:1/-1}.recommendationList{gap:5px;display:grid}.recommendationList span{background:#0b122085;border:1px solid #22c55e57;border-radius:7px;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:6px;min-height:38px;padding:6px;display:grid}.recommendationList svg{grid-row:span 2}.recommendationList b,.recommendationList small{grid-column:2;display:block}.recommendationList b{color:#f9fafb;font-size:11px}.recommendationList small{color:#9ca3af;font-size:10px}.recommendationList .red svg{color:#ef4444}.recommendationList .yellow svg{color:#f59e0b}.recommendationList .blue svg{color:#3b82f6}.healthLegend{color:#d1d5db;align-content:center;gap:8px;font-size:11px;display:grid}.healthLegend span{align-items:center;gap:8px;display:flex}.healthLegend i{border-radius:50%;width:10px;height:10px}.healthLegend .green{background:#22c55e}.healthLegend .yellow{background:#f59e0b}.healthLegend .red{background:#ef4444}.healthLegend .gray{background:#6b7280}.analyticsScreen{gap:8px;margin-top:6px;display:grid}.analyticsFilters{color:#d1d5db;justify-content:flex-end;align-items:center;gap:10px;font-size:13px;display:flex}.analyticsFilters select,.analyticsFilters button{color:#f9fafb;background:#0b1220c2;border:1px solid #22c55e57;border-radius:6px;height:30px;padding:0 12px}.analyticsFilters button{align-items:center;gap:8px;display:inline-flex}.analyticsKpis{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid}.analyticsKpis article,.analyticsPanelCard,.analyticsReports{background:radial-gradient(circle at 88% 12%,#3b82f61f,#0000 32%),linear-gradient(#111827f5,#0b1220f0);border:1px solid #22c55e57;border-radius:8px;box-shadow:0 18px 44px #00000038,inset 0 1px #ffffff09}.analyticsKpis article{-moz-column-gap:14px;grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr) 40px;align-items:center;column-gap:14px;min-height:74px;padding:9px 14px;display:grid}.analyticsKpis svg{opacity:.92;stroke-width:1.8px;grid-area:1/2/4;justify-self:end;width:34px;height:34px}.analyticsKpis span,.analyticsKpis strong,.analyticsKpis small{grid-column:1;display:block}.analyticsKpis span{color:#f9fafb;letter-spacing:.01em;font-size:11px;font-weight:850}.analyticsKpis strong{color:#f9fafb;margin-top:4px;font-size:25px;font-weight:850;line-height:1}.analyticsKpis small{color:#d1d5db;margin-top:3px;font-size:10px}.analyticsKpis .green svg,.analyticsKpis .green strong{color:#22c55e}.analyticsKpis .yellow svg,.analyticsKpis .yellow strong{color:#f59e0b}.analyticsKpis .blue svg,.analyticsKpis .blue strong{color:#3b82f6}.analyticsKpis .red svg,.analyticsKpis .red strong{color:#ef4444}.analyticsKpis .purple svg,.analyticsKpis .purple strong{color:#a855f7}.analyticsKpis .cyan svg,.analyticsKpis .cyan strong{color:#06b6d4}.analyticsGrid{grid-template-columns:minmax(330px,.9fr) minmax(360px,1fr) 430px;grid-template-areas:"zones trend events""health shifts reports""recent export reports";align-items:stretch;gap:8px;display:grid}.analyticsPanelCard,.analyticsReports{min-width:0;padding:10px}.analyticsPanelCard h2,.analyticsReports h2{color:#f9fafb;margin:0;font-size:12px;font-weight:900}.analyticsPanelCard header{justify-content:space-between;align-items:center;gap:12px;display:flex}.analyticsPanelCard header button{color:#d1d5db;background:#0b1220b8;border:1px solid #22c55e57;border-radius:6px;height:24px;padding:0 10px;font-size:10px}.zoneDistribution{grid-area:zones}.alertTrend{grid-area:trend}.eventTypes{grid-area:events}.healthAverage{grid-area:health}.shiftCompare{grid-area:shifts}.analyticsReports{grid-area:reports}.recentEvents{grid-area:recent}.exportData{grid-area:export}.zoneDistribution>div,.eventTypes>div{grid-template-columns:150px minmax(0,1fr);align-items:center;gap:8px;margin-top:8px;display:grid}.eventTypes>div{grid-template-columns:132px minmax(0,1fr)}.analyticsDonut{place-items:center;display:grid;position:relative}.analyticsDonut b{color:#f9fafb;text-align:center;font-size:23px;line-height:1;position:absolute}.analyticsDonut.small b{font-size:21px}.analyticsDonut small{color:#9ca3af;margin-top:4px;font-size:10px;display:block}.analyticsLegend{gap:5px;display:grid}.analyticsLegend span{color:#d1d5db;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0;font-size:11px;display:grid}.analyticsLegend i,.analyticsLineLegend i{border-radius:50%;width:10px;height:10px}.analyticsLegend b{color:#f9fafb;font-size:11px}.analyticsPanelCard>button,.allReports{color:#60a5fa;background:0 0;border:0;margin-top:7px;font-size:11px;font-weight:800}.analyticsLineLegend{color:#d1d5db;gap:14px;font-size:11px;display:flex}.analyticsLineLegend span{align-items:center;gap:7px;display:inline-flex}.analyticsLineLegend .red{background:#ef4444}.analyticsLineLegend .yellow{background:#f59e0b}.analyticsLineLegend .blue{background:#3b82f6}.healthAverage{gap:6px;display:grid}.healthAverage h2{margin-bottom:2px}.healthAverageRow{background:#0b122085;border:1px solid #22c55e57;border-radius:7px;grid-template-columns:minmax(0,1fr) 38%;align-items:center;gap:6px;min-height:42px;padding:5px 8px;display:grid}.healthAverageRow>span{-moz-column-gap:8px;grid-template-rows:auto auto;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;column-gap:8px;min-width:0;display:grid}.healthAverageRow svg{grid-row:1/3;width:16px;height:16px}.healthAverageRow b{color:#d1d5db;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:10px;overflow:hidden}.healthAverageRow strong{color:#f9fafb;grid-area:1/3/3;font-size:15px}.healthAverageRow strong small{color:#d1d5db;margin-left:3px;font-size:10px}.healthAverageRow em{color:#22c55e;font-size:10px;font-style:normal}.analyticsReports{align-content:start;gap:7px;display:grid}.analyticsReports article{background:#0b122085;border:1px solid #22c55e57;border-radius:7px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:54px;padding:7px;display:grid}.fileIcon{background:#ffffff0a;border:1px solid;border-radius:7px;place-items:center;width:32px;height:32px;font-size:10px;font-weight:900;display:grid}.analyticsReports strong,.analyticsReports span{display:block}.analyticsReports strong{color:#f9fafb;font-size:11px}.analyticsReports span{color:#9ca3af;margin-top:2px;font-size:10px}.analyticsReports article button{color:#93c5fd;background:#3b82f61f;border:1px solid #22c55e57;border-radius:6px;align-items:center;gap:6px;height:26px;padding:0 7px;font-size:10px;display:inline-flex}.recentEvents>div{gap:4px;margin-top:8px;display:grid}.recentEvents span{color:#d1d5db;border-bottom:1px solid #22c55e57;grid-template-columns:48px minmax(0,1fr) minmax(0,1.1fr) minmax(0,.9fr) 92px;align-items:center;gap:8px;min-height:28px;font-size:10px;display:grid}.recentEvents time,.recentEvents small,.recentEvents em{color:#9ca3af;font-style:normal}.recentEvents b{color:#f9fafb}.recentEvents strong{color:#22c55e;font-size:10px}.exportData{align-content:start;gap:8px;display:grid}.exportData p{color:#d1d5db;margin:0;font-size:11px}.exportData div{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.exportData div button,.scheduleReport{color:#f9fafb;background:#0b12209e;border:1px solid #22c55e57;border-radius:6px;justify-content:center;align-items:center;gap:7px;height:32px;font-size:11px;font-weight:800;display:inline-flex}.exportData svg{width:15px;height:15px}.scheduleReport{color:#bfdbfe;background:#3b82f624;width:100%}.adminScreen{grid-template-rows:46px 82px minmax(0,1fr);gap:8px;min-height:calc(100vh - 112px);margin-top:5px;display:grid}.adminTabs,.adminKpis article,.adminPanel{background:radial-gradient(circle at 88% 12%,#3b82f61a,#0000 32%),linear-gradient(#111827f5,#0b1220f0);border:1px solid #22c55e57;border-radius:8px;box-shadow:0 18px 44px #0003,inset 0 1px #ffffff09}.adminTabs{grid-template-columns:repeat(8,minmax(0,1fr));align-items:stretch;gap:4px;min-height:46px;padding:0 12px;display:grid}.adminTabs button{color:#d1d5db;background:0 0;border:0;justify-content:center;align-items:center;gap:7px;min-width:0;font-size:12px;font-weight:750;display:inline-flex;position:relative}.adminTabs button.active{color:#22c55e}.adminTabs button.active:after{content:"";background:#22c55e;border-radius:999px;height:2px;position:absolute;bottom:0;left:10px;right:10px}.adminKpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.adminKpis article{grid-template-columns:50px minmax(0,1fr);align-items:center;gap:12px;min-height:82px;padding:10px 16px;display:grid}.adminKpis article>svg{color:#f9fafb;border-radius:50%;width:46px;height:46px;padding:11px}.adminKpis .blue>svg{background:radial-gradient(circle,#3b82f6,#1e40af)}.adminKpis .green>svg{background:radial-gradient(circle,#22c55e,#166534)}.adminKpis .yellow>svg{background:radial-gradient(circle,#f59e0b,#c2410c)}.adminKpis .purple>svg{background:radial-gradient(circle,#a855f7,#6b21a8)}.adminKpis span,.adminKpis strong,.adminKpis small{display:block}.adminKpis span{color:#f9fafb;font-size:11px;font-weight:900}.adminKpis strong{color:#d1d5db;margin-top:4px;font-size:27px;font-weight:850;line-height:1}.adminKpis small{color:#d1d5db;margin-top:5px;font-size:11px}.adminKpis em{color:#d1d5db;margin-left:12px;font-style:normal}.adminGrid{grid-template:"workers devices actions"minmax(225px,.95fr)"zones users params"minmax(250px,1.05fr)/minmax(560px,1.55fr) minmax(330px,.9fr) 320px;gap:8px;min-height:0;display:grid}.adminGridFull{grid-template:"full side"minmax(0,1fr)/minmax(720px,1fr) 320px}.adminGridFull.adminGridWide{grid-template-columns:minmax(0,1fr);grid-template-areas:"full"}.adminPanel{min-width:0;padding:13px}.adminPanel h2{color:#f9fafb;margin:0 0 9px;font-size:14px;font-weight:900}.adminWorkers{grid-area:workers}.adminDevices{grid-area:devices}.adminActions{grid-area:actions}.adminZones{grid-area:zones}.adminUsers{grid-area:users}.adminParams{grid-area:params}.adminFullPanel{grid-area:full}.adminSidePanel{grid-area:side}.adminWorkerTable,.adminUserTable{border-top:1px solid #22c55e57}.adminWorkerTable header,.adminWorkerTable button{grid-template-columns:minmax(130px,1.15fr) 106px minmax(150px,1fr) 84px 96px 24px;align-items:center;gap:8px;display:grid}.adminWorkerTable header,.adminUserTable header{color:#9ca3af;min-height:30px;font-size:11px}.adminWorkerTable button{color:#d1d5db;text-align:left;background:0 0;border:0;border-top:1px solid #22c55e57;width:100%;min-height:40px;font-size:12px}.adminWorkerName{color:#f9fafb;align-items:center;gap:8px;font-weight:800;display:inline-flex}.adminWorkerName img{-o-object-fit:cover;object-fit:cover;-o-object-position:center top;object-position:center top;border:1px solid #22c55e8c;border-radius:50%;width:31px;height:31px}.adminWorkerTable .ok,.adminWorkerTable .warn,.adminUserTable .ok,.adminUserTable .bad,.adminParams strong{align-items:center;gap:5px;font-weight:850;display:inline-flex}.adminWorkerTable .ok,.adminUserTable .ok,.adminParams strong{color:#22c55e}.adminWorkerTable .warn{color:#f59e0b}.adminUserTable .bad{color:#ef4444}.adminWorkerTable i,.adminUserTable i,.adminParams i,.adminZones strong i{background:currentColor;border-radius:50%;width:7px;height:7px}.adminLink{color:#d1d5db;background:0 0;border:0;margin-top:9px;font-size:12px;font-weight:750}.adminDeviceBody{border-top:1px solid #22c55e57;grid-template-columns:170px minmax(0,1fr);align-items:center;gap:10px;min-height:188px;display:grid}.adminDeviceDonut{place-items:center;display:grid;position:relative}.adminDeviceDonut b{color:#f9fafb;text-align:center;font-size:29px;line-height:1;position:absolute}.adminDeviceDonut small{color:#d1d5db;margin-top:4px;font-size:13px;font-weight:500;display:block}.adminDeviceLegend{gap:10px;display:grid}.adminDeviceLegend span{color:#f9fafb;grid-template-columns:10px minmax(0,1fr);gap:6px;font-size:12px;display:grid}.adminDeviceLegend b{color:#d1d5db;grid-column:2;font-weight:500}.adminDeviceLegend i{border-radius:50%;width:9px;height:9px;margin-top:3px}.adminDeviceLegend .green{background:#22c55e}.adminDeviceLegend .yellow{background:#f59e0b}.adminDeviceLegend .red{background:#ef4444}.adminDeviceLegend .gray{background:#94a3b8}.adminActions{align-content:start;gap:7px;display:grid}.adminActions h2{margin-bottom:3px}.adminActions>button{color:#d1d5db;text-align:left;background:#0b12208c;border:1px solid #22c55e57;border-radius:6px;grid-template-columns:31px minmax(0,1fr);align-items:center;gap:8px;min-height:36px;padding:0 8px;font-size:12px;display:grid}.adminActions span{background:#3b82f624;border-radius:6px;place-items:center;width:28px;height:28px;display:grid}.adminActions .green span{color:#22c55e;background:#22c55e24}.adminActions .yellow span{color:#f59e0b;background:#f59e0b24}.adminActions .purple span{color:#a855f7;background:#a855f724}.adminActions .red span{color:#ef4444;background:#ef444424}.adminActions .gray span{color:#94a3b8;background:#0f172ab8}.adminZones>div,.adminParams>div{border-top:1px solid #22c55e57;display:grid}.adminZones span{border-bottom:1px solid #22c55e57;grid-template-columns:26px minmax(0,1fr) 56px 68px;align-items:center;gap:6px;min-height:40px;display:grid}.adminZones svg{fill:currentColor;fill-opacity:.16;width:23px;height:23px}.adminZones b,.adminZones small{display:block}.adminZones b{color:#f9fafb;font-size:12px}.adminZones small{color:#d1d5db;font-size:11px;font-weight:500}.adminZones em{color:#d1d5db;align-items:center;gap:6px;font-size:12px;font-style:normal;display:inline-flex}.adminZones strong{color:#22c55e;align-items:center;gap:6px;font-size:12px;display:inline-flex}.adminUserTable header,.adminUserTable>span{grid-template-columns:minmax(130px,1fr) 104px 78px 126px;align-items:center;gap:8px;display:grid}.adminUserTable>span{color:#d1d5db;border-top:1px solid #22c55e57;min-height:41px;font-size:12px}.adminUserTable b{color:#f9fafb;align-items:center;gap:7px;display:inline-flex}.adminUserTable b svg{color:#d1d5db;background:#0f172ab8;border-radius:50%;width:23px;height:23px;padding:4px}.adminUserTable em{color:#d1d5db;font-style:normal}.adminUserTable small{color:#d1d5db;font-size:12px}.adminParams>div{gap:0;padding-top:6px}.adminParams>div>span{border-bottom:1px solid #22c55e57;grid-template-columns:minmax(0,1fr) 86px 68px;align-items:center;gap:8px;min-height:35px;display:grid}.adminParams b{color:#f9fafb;font-size:12px;font-weight:650}.adminParams em{border:1px solid;border-radius:5px;place-items:center;height:24px;font-size:11px;font-style:normal;display:inline-grid}.adminParams strong{font-size:12px}.adminFullPanel,.adminSidePanel{min-height:0}.adminFullPanel header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;display:flex}.adminFullPanel header h2{margin:0}.adminFullPanel header button,.adminFullTable button,.adminSidePanel button,.adminRoleGrid button{color:#bfdbfe;background:#3b82f624;border:1px solid #22c55e57;border-radius:6px;justify-content:center;align-items:center;gap:7px;height:32px;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}.adminFullTable{border:1px solid #22c55e57;border-radius:7px;display:grid;overflow:hidden}.adminFullTable header,.adminFullTable>span{align-items:center;gap:10px;min-height:44px;padding:0 12px;display:grid}.adminFullTable header{color:#9ca3af;background:#1f2937;min-height:40px;font-size:11px;font-weight:800}.adminFullTable>span{color:#d1d5db;border-top:1px solid #22c55e57;font-size:12px}.adminFullTable.workers header,.adminFullTable.workers>span{grid-template-columns:minmax(150px,1.1fr) 96px 112px minmax(170px,1fr) 78px 88px 78px}.adminFullTable.devices header,.adminFullTable.devices>span{grid-template-columns:98px minmax(140px,1fr) minmax(130px,1fr) 100px 78px 98px 104px}.adminFullTable.positioningDevices header,.adminFullTable.positioningDevices>span{grid-template-columns:minmax(150px,.9fr) minmax(160px,1fr) 92px minmax(180px,1fr) 90px 150px}.adminFullTable.zones header,.adminFullTable.zones>span{grid-template-columns:minmax(180px,.85fr) 82px 72px minmax(140px,.75fr) 112px minmax(180px,1fr) 78px 286px}.zoneSectorSummary{white-space:normal;line-height:1.25}.adminRowActions{align-items:center;gap:6px;min-width:0;display:flex}.adminRowActions button{min-width:62px;padding-inline:8px}.adminRowActions .danger{color:#fca5a5;background:#ef44441f;border-color:#ef444461}.adminRowActions button:disabled{opacity:.4;cursor:not-allowed}.adminFullTable.users header,.adminFullTable.users>span{grid-template-columns:minmax(120px,.82fr) minmax(150px,.95fr) 96px 124px 82px 132px 78px}.adminFullTable.params header,.adminFullTable.params>span{grid-template-columns:minmax(180px,1.1fr) 112px 94px minmax(160px,1fr) 82px 78px}.adminFullTable.system header,.adminFullTable.system>span{grid-template-columns:minmax(160px,1fr) 112px minmax(260px,1.4fr) 90px 76px}.adminFullTable b{color:#f9fafb;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:inline-flex;overflow:hidden}.adminFullTable b img{-o-object-fit:cover;object-fit:cover;-o-object-position:center top;object-position:center top;border:1px solid #22c55e8c;border-radius:50%;flex:none;width:30px;height:30px}.adminFullTable em{color:#d1d5db;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-style:normal;overflow:hidden}.adminFullTable strong{align-items:center;gap:6px;font-size:12px;display:inline-flex}.adminFullTable strong i,.adminSidePanel strong i{background:currentColor;border-radius:50%;width:7px;height:7px}.adminFullTable .ok{color:#22c55e}.adminFullTable .warn{color:#f59e0b}.adminFullTable .bad{color:#ef4444}.adminFullTable .info{color:#3b82f6}.adminFullTable button:disabled{cursor:not-allowed;opacity:.42;color:#94a3b8;background:#1f2937}.adminWorkersPagination{color:#cbd5e1;background:#0b122094;border:1px solid #22c55e57;border-top:0;border-radius:0 0 7px 7px;justify-content:space-between;align-items:center;gap:12px;min-height:46px;padding:0 12px;font-size:12px;display:flex}.adminWorkersPagination div{align-items:center;gap:8px;display:inline-flex}.adminWorkersPagination button{color:#bfdbfe;background:#3b82f624;border:1px solid #22c55e57;border-radius:6px;width:32px;height:30px;font-weight:900}.adminWorkersPagination button:disabled{cursor:not-allowed;opacity:.42}.adminWorkersPagination strong{text-align:center;color:#f9fafb;min-width:70px;font-size:12px}.adminEditModal{color:#d1d5db;background:linear-gradient(145deg,#111827fa,#0b1220fa),#111827;border:1px solid #22c55e57;border-left:3px solid #22c55e;border-radius:8px;width:min(760px,100vw - 32px);padding:16px;box-shadow:0 28px 70px #00000075}.adminEditModal header{align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.adminEditModal header>span{color:#4ade80;background:#22c55e24;border:1px solid #22c55e94;border-radius:7px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.adminEditModal header div{gap:4px;min-width:0;display:grid}.adminEditModal h2{color:#f9fafb;margin:0;font-size:20px;line-height:1.1}.adminEditModal p{color:#9ca3af;margin:0;font-size:13px}.adminEditModal header button{color:#f9fafb;background:#0b1220d1;border:1px solid #22c55e57;border-radius:6px;height:30px;margin-left:auto;padding:0 11px;font-size:18px;font-weight:900}.adminEditContext{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px;display:grid}.adminZoneEditModal .adminEditContext{grid-template-columns:minmax(0,1fr)}.adminZoneEditModal .zoneIdentityFields{grid-template-columns:repeat(2,minmax(0,1fr))}.adminEditContext label{color:#9ca3af;text-transform:uppercase;background:#0b1220a3;border:1px solid #22c55e57;border-radius:7px;gap:6px;padding:9px;font-size:10px;font-weight:900;line-height:1;display:grid}.adminEditContext input,.adminEditContext select{color:#f9fafb;background:#0f172ab8;border:1px solid #22c55e57;border-radius:6px;height:34px;padding:0 10px;font-size:13px}.adminEditContext span{color:#d1d5db;text-overflow:ellipsis;white-space:nowrap;background:#0b1220a3;border:1px solid #22c55e57;border-radius:7px;min-width:0;padding:10px;font-size:12px;font-weight:800;overflow:hidden}.adminEditContext.danger span{color:#fecaca;background:#ef44441a;border-color:#ef444452}.adminEditForm{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 14px;display:grid}.adminEditForm label,.adminEditForm .adminFormField{color:#9ca3af;text-transform:uppercase;background:#0b1220a3;border:1px solid #22c55e57;border-radius:7px;gap:6px;padding:9px;font-size:10px;font-weight:900;line-height:1;display:grid}.adminEditForm label.wide,.adminEditForm .adminFormField.wide{grid-column:1/-1}.adminEditForm input,.adminEditForm select{color:#f9fafb;background:#0f172ab8;border:1px solid #22c55e57;border-radius:6px;height:34px;padding:0 10px;font-size:13px}.adminEditForm input[readonly]{color:#cbd5e1;background:#1f2937}.adminEditForm input[type=color]{padding:4px 8px}.adminCheckboxGroup{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;display:grid}.adminCheckboxGroup label{color:#e5e7eb;text-transform:none;background:#0f172ab8;border:1px solid #22c55e57;border-radius:6px;align-items:center;gap:7px;min-height:32px;padding:0 9px;font-size:12px;font-weight:800;display:inline-flex}.adminCheckboxGroup input{accent-color:#22c55e;width:14px;height:14px}.adminZoneEditModal{background:linear-gradient(135deg,#22c55e38,#22c55e14 38%,#22c55e3d),#111827;border-color:#22c55e3d;width:min(840px,100vw - 32px);box-shadow:0 28px 70px #00000075,inset 0 1px #ffffff0e}.adminZoneEditModal .adminEditContext label,.adminZoneEditModal .adminEditForm label,.adminZoneEditModal .adminEditForm .adminFormField{background:#111827b8;border-color:#22c55e2e}.adminZoneEditModal .adminEditContext input,.adminZoneEditModal .adminEditContext select,.adminZoneEditModal .adminEditForm input,.adminZoneEditModal .adminEditForm select{background:#0f172ab8;border-color:#22c55e33}.adminZoneMapModal{grid-template-rows:auto minmax(0,1fr);width:min(1540px,100vw - 20px);max-height:calc(100vh - 20px);display:grid}.adminZoneMapBody{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) 220px;gap:12px;min-height:min(760px,100vh - 166px);display:grid;overflow:hidden}.adminZoneMapWorkspace{min-width:0;min-height:0;display:grid}.adminZoneMapCanvas,.adminZoneMapFallback{background:#0b1220;border:1px solid #22c55e38;border-radius:8px;min-height:0;overflow:hidden}.adminZoneMapFallback{color:#cbd5e1;text-align:center;place-content:center;gap:8px;padding:18px;display:grid}.adminZoneMapFallback strong{color:#f9fafb}.adminZoneMapBody aside{background:#111827b8;border:1px solid #22c55e2e;border-radius:8px;grid-area:1/2;grid-template-rows:auto minmax(0,1fr);align-content:start;gap:9px;min-height:0;padding:12px;display:grid;overflow:hidden}.adminZoneMapBody aside b{color:#f9fafb;font-size:15px}.adminZoneMapInstructions span{color:#cbd5e1;border-top:1px solid #22c55e24;padding-top:8px;font-size:12px;line-height:1.35}.adminZoneMapHelp{background:#111827b8;border:1px solid #22c55e2e;border-radius:8px;grid-area:2/1;gap:10px;padding:10px;display:grid}.adminEditModal footer.adminZoneMapFooter{background:#111827b8;border:1px solid #22c55e2e;border-radius:8px;flex-direction:row;grid-area:2/2;justify-content:center;align-self:stretch;align-items:center;gap:8px;padding:10px;display:flex}.adminEditModal footer.adminZoneMapFooter button{flex:1 1 0;min-width:0;padding:0 8px}.adminZoneMapTools{grid-template-columns:minmax(0,1fr);gap:6px;display:grid}.adminZoneMapTools i{background:#22c55e38;height:1px;margin:4px 0}.adminZoneMapTools button,.adminZoneAnchorList p button{color:#bbf7d0;background:#22c55e24;border:1px solid #22c55e57;border-radius:6px;height:32px;font-size:12px;font-weight:900}.adminZoneMapTools button{text-align:left;padding:0 10px}.adminZoneMapTools button.active{color:#fff;background:#22c55e52;border-color:#22c55ed1}.adminZoneMapTools button.antenna{color:#bae6fd;background:#38bdf824;border-color:#38bdf870}.adminZoneMapTools button.antenna.active{color:#fff;background:#38bdf852;border-color:#38bdf8e6}.adminZoneMapTools button.probe{color:#ddd6fe;background:#a78bfa24;border-color:#a78bfa7a}.adminZoneMapTools button.probe.active{color:#fff;background:#a78bfa57;border-color:#a78bfaeb}.adminZoneMapTools button.wifi{color:#bbf7d0;background:#22c55e21;border-color:#22c55e6b}.adminZoneMapTools button.wifi.active{color:#fff;background:#22c55e47;border-color:#22c55ed1}.adminZoneMapInstructions{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.adminZoneAnchorList{align-content:start;gap:8px;min-height:0;display:grid;overflow:auto}.adminZoneAnchorList section{background:#0f172ab8;border:1px solid #22c55e3d;border-radius:7px;gap:5px;padding:8px;display:grid}.adminZoneAnchorList strong{font-size:11px;font-weight:950}.adminZoneAnchorList p{border-top:1px solid #22c55e3d;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:6px;margin:0;padding-top:6px;display:grid}.adminZoneAnchorList p:first-of-type{border-top:0;padding-top:0}.adminZoneAnchorList em,.adminZoneAnchorList small{color:#cbd5e1;font-size:11px;font-style:normal;line-height:1.25}.adminZoneAnchorList p button{color:#fecaca;background:#ef444424;border-color:#ef444459;width:100%;height:26px;padding:0 8px;font-size:10px}.adminZoneAnchorList p select{color:#e5e7eb;background:#0206177a;border:1px solid #22c55e3d;border-radius:6px;width:100%;min-width:0;height:28px;font-size:11px;font-weight:750}.adminZoneSectorsBody{grid-template-columns:minmax(0,1fr) 260px}.adminZoneSectorsPanel{grid-template-rows:auto minmax(0,1fr)}.adminZoneSectorList{align-content:start;gap:7px;min-height:0;display:grid;overflow:auto}.adminZoneSectorList button{color:#f9fafb;text-align:left;background:#0f172ab8;border:1px solid #22c55e3d;border-radius:7px;grid-template-columns:10px minmax(0,1fr);align-items:center;gap:8px;min-height:48px;padding:8px;display:grid}.adminZoneSectorList button.active{background:#22c55e24;border-color:#22c55e8f}.adminZoneSectorList i{border-radius:999px;grid-row:span 2;width:10px;height:30px}.adminZoneSectorList span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-weight:900;overflow:hidden}.adminZoneSectorList small{color:#cbd5e1;font-size:11px}.adminZoneSectorEditor{align-content:start;gap:10px;min-height:0;overflow:auto}.adminSectorFields{grid-template-columns:minmax(160px,1fr) minmax(160px,1fr) 70px 120px;gap:8px;display:grid}.adminSectorFields label{color:#94a3b8;text-transform:uppercase;gap:5px;font-size:10px;font-weight:900;display:grid}.adminSectorFields input,.adminSectorElementsHeader select,.adminSectorElements select,.adminSectorElements input{color:#f9fafb;background:#0f172ab8;border:1px solid #22c55e33;border-radius:6px;min-width:0;height:32px;padding:0 9px;font-size:12px;font-weight:750}.adminSectorFields button,.adminSectorElementsHeader button,.adminSectorElements button{color:#bbf7d0;background:#22c55e24;border:1px solid #22c55e57;border-radius:6px;align-self:end;height:32px;padding:0 10px;font-size:12px;font-weight:900}.adminSectorFields button.danger,.adminSectorElements button:not(.plan){color:#fecaca;background:#ef444424;border-color:#ef444459}.adminSectorElements button.plan{color:#bae6fd;background:#38bdf824;border-color:#38bdf86b}.adminSectorElementsHeader{grid-template-columns:minmax(0,1fr) 150px 96px;align-items:center;gap:8px;display:grid}.adminSectorElementsHeader strong{color:#f9fafb;font-size:13px}.adminSectorElements{gap:7px;max-height:190px;display:grid;overflow:auto}.adminSectorElements section{grid-template-columns:110px minmax(130px,.8fr) minmax(180px,1fr) 70px 78px;gap:7px;display:grid}.adminSectorElements small,.adminSectorEmpty span{color:#cbd5e1;font-size:12px}.adminSectorEmpty{text-align:center;place-content:center;gap:8px;min-height:220px;display:grid}.adminSectorEmpty strong{color:#f9fafb}.nestedPlanOverlay{z-index:80}.sectorPlanModal{width:min(1540px,100vw - 20px)}.sectorPlanBody{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) 270px;gap:12px;min-height:min(760px,100vh - 166px);display:grid;overflow:hidden}.sectorPlanCanvasWrap{background:#0b1220;border:1px solid #22c55e38;border-radius:8px;justify-content:center;align-items:center;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.sectorPlanCanvas{cursor:crosshair;touch-action:none;background:#0f172ab8;display:block}.sectorPlanObject{cursor:move}.sectorPlanObject text{pointer-events:none;-webkit-user-select:none;user-select:none}.sectorPlanResizeHandle{fill:#f9fafb;stroke:#0f172a;stroke-width:1.5px}.sectorPlanResizeHandle.nw,.sectorPlanResizeHandle.se{cursor:nwse-resize}.sectorPlanResizeHandle.ne,.sectorPlanResizeHandle.sw{cursor:nesw-resize}.sectorPlanScale{color:#e5e7eb;background:#0b1220d1;border:1px solid #e2e8f02e;border-radius:7px;gap:8px;padding:7px 10px;font-size:11px;font-weight:900;display:inline-flex;position:absolute;bottom:12px;left:12px}.sectorPlanTools{background:#111827b8;border:1px solid #22c55e2e;border-radius:8px;grid-area:1/2;grid-template-rows:auto auto auto minmax(0,1fr);gap:9px;min-height:0;padding:12px;display:grid;overflow:hidden}.sectorPlanMeasure{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.sectorPlanMeasure label,.sectorPlanObjectEditor label{color:#94a3b8;text-transform:uppercase;gap:5px;font-size:10px;font-weight:900;display:grid}.sectorPlanMeasure input,.sectorPlanObjectEditor input,.sectorPlanObjectEditor select{color:#f9fafb;background:#0f172ab8;border:1px solid #22c55e33;border-radius:6px;min-width:0;height:31px;padding:0 8px;font-size:12px}.sectorPlanToolButtons{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.sectorPlanToolButtons i{background:#0f172ab8;grid-column:1/-1;height:1px;margin:4px 0}.sectorPlanToolButtons button,.sectorPlanObjectList button,.sectorPlanObjectEditor button{background:#0f172ab8;border:1px solid #22c55e47;border-radius:6px;min-height:31px;padding:0 8px;font-size:12px;font-weight:900}.sectorPlanToolButtons button.active,.sectorPlanObjectList button.active{background:#22c55e2e;color:#fff!important}.sectorPlanObjectEditor{background:#0f172ab8;border:1px solid #22c55e3d;border-radius:7px;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px;display:grid}.sectorPlanObjectEditor strong{color:#f9fafb;grid-column:1/-1;font-size:12px}.sectorPlanObjectEditor label:first-of-type,.sectorPlanObjectEditor label.wide,.sectorPlanObjectEditor button{grid-column:1/-1}.sectorPlanObjectEditor button.danger{color:#fecaca;background:#ef444424;border-color:#ef444459}.sectorPlanTools>small{color:#cbd5e1;font-size:12px;line-height:1.35}.sectorPlanObjectList{align-content:start;gap:6px;min-height:0;display:grid;overflow:auto}.sectorPlanObjectList button{color:#e5e7eb;text-align:left;grid-template-columns:9px minmax(0,1fr);align-items:center;gap:7px;display:grid}.sectorPlanObjectList i{border-radius:999px;width:9px;height:22px}.sectorPlanObjectList span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sectorPlanFooter{grid-area:2/2}.adminUserEditModal{width:min(820px,100vw - 32px)}.adminEditModal footer{justify-content:flex-end;align-items:center;gap:10px;display:flex}.adminEditModal footer button{border:1px solid #22c55e57;border-radius:6px;height:36px;padding:0 14px;font-size:12px;font-weight:900}.adminEditModal footer .ghost{color:#cbd5e1;background:#0b1220d1}.adminEditModal footer .primary{color:#111827;background:#22c55e;border-color:#22c55ec2}.adminDeleteModal header>span{color:#fca5a5;background:#ef444429;border-color:#ef44446b}.adminDeleteBody{background:#0f172ab8;border:1px solid #ef444438;border-radius:8px;gap:12px;margin-bottom:14px;padding:14px;display:grid}.adminDeleteBody strong{color:#f9fafb;font-size:16px}.adminDeleteBody p{color:#cbd5e1;margin:0;font-size:13px;line-height:1.45}.adminDeleteBody div{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.adminDeleteBody span{background:#0b1220b3;border:1px solid #22c55e3d;border-radius:7px;padding:9px 10px}.adminDeleteBody b{color:#94a3b8;font-size:11px;font-weight:850;display:block}.adminDeleteBody em{color:#f9fafb;margin-top:4px;font-size:13px;font-style:normal;font-weight:850;display:block}.adminEditModal footer .dangerPrimary{color:#fca5a5;background:#ef44442e;border-color:#ef444470}.adminSidePanel{align-content:start;gap:12px;display:grid}.adminSidePanel h2{margin-bottom:2px}.adminSidePanel span{background:#0b122085;border:1px solid #22c55e57;border-radius:7px;align-content:center;gap:5px;min-height:64px;padding:10px;display:grid}.adminSidePanel span b{color:#d1d5db;font-size:12px}.adminSidePanel span strong{color:#f9fafb;font-size:22px}.adminSidePanel>button{width:100%}.adminRoleGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.adminRoleGrid article{background:#0b122085;border:1px solid #22c55e57;border-radius:8px;align-content:start;gap:9px;min-height:160px;padding:14px;display:grid}.adminRoleGrid h3{color:#f9fafb;margin:0;font-size:16px}.adminRoleGrid strong{color:#22c55e;font-size:22px}.adminRoleGrid p,.adminRoleGrid span{color:#d1d5db;margin:0;font-size:12px}.dataPanel{background:linear-gradient(#111827eb,#0b1220e6);border:1px solid #22c55e47;border-radius:8px;min-height:180px;padding:16px}.dataPanel.wide{min-height:240px}.dataTable{gap:8px;margin-top:14px;display:grid}.dataTable span{color:#c8d2e2;background:#040c167a;border:1px solid #22c55e42;border-radius:7px;grid-template-columns:1.1fr 1.2fr 1fr .7fr;align-items:center;gap:12px;min-height:42px;padding:9px 12px;font-size:13px;display:grid}.dataTable b{color:#fff;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dataTable em{color:#9aa9bb;text-overflow:ellipsis;white-space:nowrap;font-style:normal;overflow:hidden}.emptyState{color:#a7f3d0;background:#35d26f14;border:1px solid #35d26f47;border-radius:8px;padding:16px}.emptyState.compact{margin:0;padding:12px;font-size:13px}.personTable{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.personTable article{color:#c8d2e2;background:#040c167a;border:1px solid #22c55e42;border-radius:8px;padding:12px}.personTable header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.personTable header b{color:#fff;font-size:14px}.personTable header strong{font-size:11px}.personTable div,.personalRows span{border-top:1px solid #22c55e42;grid-template-columns:132px minmax(0,1fr);align-items:center;gap:10px;min-height:28px;margin-top:7px;padding-top:7px;display:grid}.personTable span,.personalRows b{color:#9aa9bb;font-size:12px;font-weight:700}.personTable em,.personalRows em{color:#dbeafe;overflow-wrap:anywhere;font-style:normal}.compactList{gap:8px;margin-top:14px;display:grid}.compactList button{color:#dbeafe;text-align:left;background:#040c1673;border:1px solid #22c55e42;border-radius:7px;grid-template-columns:12px 80px 1fr;align-items:center;gap:10px;height:46px;padding:0 12px;display:grid}.compactList button.selected{background:#2563eb29;border-color:#60a5fab8}.compactList span{border-radius:50%;width:10px;height:10px}.compactList b{color:#9aa9bb;font-weight:500}.healthMetrics,.reportCards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.healthMetrics article,.reportCards article{background:#040c167a;border:1px solid #22c55e42;border-radius:8px;min-height:96px;padding:14px}.healthMetrics span,.reportCards span{color:#9aa9bb;font-size:12px;display:block}.healthMetrics strong,.reportCards strong{color:#fff;margin-top:12px;font-size:22px;display:block}.healthNote{color:#bfd1e8;background:#2563eb14;border:1px solid #60a5fa38;border-radius:8px;margin-top:14px;padding:12px;font-size:13px}.personalRows{background:#040c1661;border:1px solid #22c55e42;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin-top:12px;padding:12px;display:grid}.personalRows span{border-top:0;margin-top:0;padding-top:0}.healthChart{height:90px;margin-top:18px}.configRows{gap:10px;margin-top:14px;display:grid}.configRows span{background:#040c167a;border:1px solid #22c55e42;border-radius:7px;grid-template-columns:160px 1fr;gap:12px;padding:12px;display:grid}.configRows b{color:#fff}.configRows em{color:#9aa9bb;overflow-wrap:anywhere;font-style:normal}.minerCard{border:1px solid;border-radius:8px;min-height:288px;overflow:hidden}.minerCardButton{width:100%;height:100%;color:inherit;text-align:left;background:0 0;border:0;padding:12px}.realBadge,.demoBadge{letter-spacing:.06em;border-radius:999px;margin-top:8px;padding:3px 8px;font-size:10px;font-weight:900;display:inline-flex}.realBadge{color:#bfdbfe;background:#2563eb2e;border:1px solid #60a5fa85}.demoBadge{color:#9aa9bb;background:#7d889a1f;border:1px solid #7d889a52}.minerHead,.cardMeta{justify-content:space-between;align-items:center;display:flex}.minerHead span{align-items:center;gap:5px;font-size:12px;font-weight:800;display:flex}.minerHead strong{letter-spacing:0;font-size:16px}.minerName{color:#fff;text-overflow:ellipsis;white-space:nowrap;margin-top:5px;font-size:14px;font-weight:800;overflow:hidden}.cardRisk{color:#c8d2e2;align-items:center;gap:8px;margin-top:7px;font-size:11px;font-weight:700;display:flex}.minerBody{grid-template-columns:45% 1fr;gap:12px;margin-top:10px;display:grid}.portrait{-o-object-fit:cover;object-fit:cover;-o-object-position:center top;object-position:center top;border-radius:7px;width:100%;height:118px;display:block}.vitalList{color:#d0d7e2;gap:8px;font-size:12px;display:grid}.vitalList span,.cardMeta span{align-items:center;gap:7px;display:flex}.vitalList svg,.cardMeta svg{color:#9aa9bb;width:14px;height:14px}.cardMeta{color:#dbeafe;margin-top:10px;font-size:13px}.miniChart{height:44px;margin-top:8px}.detailButton{color:#e2e8f0;border:1px solid #22c55e42;border-radius:6px;place-items:center;height:30px;margin-top:8px;font-size:13px;display:grid}.minerCard.active .detailButton{color:#93c5fd;border-color:#60a5faa6}.newsBar{color:#9aa9bb;align-items:center;gap:28px;height:46px;margin-top:18px;padding:0 18px;font-size:12px;display:flex}.newsBar strong{color:#60a5fa}@media (width<=1500px){.kpiGrid{grid-template-columns:repeat(3,1fr)}.centerGrid{grid-template-columns:1fr 300px}.centerGrid .opsPanel{grid-column:1/-1;height:250px}.summaryGrid,.controlKpis{grid-template-columns:repeat(2,minmax(0,1fr))}.controlGrid{grid-template-columns:280px minmax(470px,1fr) 300px}.controlAnalytics,.summaryAnalytics{grid-template-columns:repeat(2,minmax(0,1fr))}.trendPanel{grid-column:1/-1}.minerCards{grid-template-columns:repeat(2,minmax(0,1fr))}.controlZoneTabs{grid-template-columns:repeat(4,minmax(0,1fr))}.controlMapPanel{grid-template-rows:minmax(0,1fr)}}@media (width<=1320px){.controlGrid{grid-template-columns:280px minmax(520px,1fr)}.controlGrid .alertPanel{grid-column:1/-1;height:280px}}@media (width<=720px){body{min-width:0;min-height:100dvh;overflow-x:auto}.loginScreen{place-items:center;min-height:100dvh;padding:18px}.loginBox{width:min(100%,420px);padding:22px}.controlRoom{width:1280px;min-height:100dvh}}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/80:hover{background-color:hsl(var(--muted) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}
