html,body,#root{height:100%;margin:0;padding:0}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.tourMarkerRoot{background:transparent!important;border:0!important}.tourMarkerWrap{display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:auto}.tourMarkerLabel{max-width:170px;padding:4px 10px;border-radius:999px;background:#000000b3;color:#fff;font-weight:800;font-size:12px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 6px 18px #00000059}.tourMarkerPin{width:26px;height:26px;border-radius:999px;background:var(--accent, #2e7cff);border:3px solid rgba(255,255,255,.92);box-shadow:0 10px 22px #00000059;display:flex;align-items:center;justify-content:center}.tourMarkerNum{color:#0b1220;font-weight:1000;font-size:12px;line-height:1}.audPinRoot{background:transparent!important;border:none!important}.audPinWrap{display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none}.audPinLabel{background:#000000d1;color:#fff;font-weight:800;font-size:12px;line-height:1.1;padding:3px 8px;border-radius:999px;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 6px 14px #00000059}.audPinBody{width:26px;height:26px;border-radius:999px;background:#1976d2f2;border:2px solid rgba(255,255,255,.95);box-shadow:0 6px 14px #00000040;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:12px;position:relative}.audPinBody:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid rgba(25,118,210,.95)}:root{--bg:#070b14;--panel:#0e1626;--panel2:#0b1220;--text:#e8eefc;--muted:#a9b5d1;--primary:#3b82f6;--green:#22c55e;--red:#ef4444;--border:rgba(255,255,255,.12);--shadow: 0 18px 40px rgba(0,0,0,.55);--r:18px;color-scheme:dark}html,body,#root{height:100%;margin:0}*{box-sizing:border-box}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;color:var(--text);margin:0;background:radial-gradient(900px 520px at 18% 0%,rgba(59,130,246,.18),transparent 60%),radial-gradient(900px 520px at 82% 18%,rgba(34,197,94,.1),transparent 60%),var(--bg)}a{color:inherit;text-decoration:none}.small{font-size:12px;color:var(--muted)}.h1{font-size:34px;font-weight:900;margin:0;letter-spacing:.2px}.h2{font-size:18px;font-weight:900;margin:0}.pill{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;border:1px solid var(--border);background:#ffffff0d;box-shadow:var(--shadow);font-weight:900}.btn{border:1px solid var(--border);background:#ffffff0d;color:var(--text);padding:11px 14px;border-radius:14px;cursor:pointer;font-weight:900;transition:transform .08s ease,background .12s ease,border-color .12s ease}.btn:hover{transform:translateY(-1px);background:#ffffff14}.btn:disabled{opacity:.6;cursor:default;transform:none}.iconBtn{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:#ffffff0d;color:var(--text);border-radius:999px;cursor:pointer;font-size:20px;font-weight:900;transition:transform .08s ease,background .12s ease,border-color .12s ease}.iconBtn:hover{transform:translateY(-1px);background:#ffffff14}.rowActions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.rowActions--nowrap{flex-wrap:nowrap;white-space:nowrap}.actionIconButton{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid var(--border);background:#ffffff0d;color:var(--text);cursor:pointer;transition:transform .08s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease}.actionIconButton:hover{transform:translateY(-1px);background:#ffffff17;box-shadow:0 10px 18px #00000038}.actionIconButton:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}.actionIconButton svg{width:18px;height:18px;display:block}.actionIconButton--primary{background:#3b82f62e;border-color:#3b82f68c;color:#bfdbfe}.actionIconButton--danger{background:#ef444429;border-color:#ef44448c;color:#fecaca}.actionIconButton--success{background:#22c55e29;border-color:#22c55e8c;color:#bbf7d0}.btnPrimary{background:#3b82f638;border-color:#3b82f699}.btnGreen{background:#22c55e2e;border-color:#22c55e99}.btnRed{background:#ef44442e;border-color:#ef444499}.offlineBanner{margin-bottom:12px;border-color:#22c55e47}.offlineBannerRow{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.offlineBannerActions{display:flex;align-items:center;gap:8px}.card{background:linear-gradient(180deg,#ffffff12,#ffffff08);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);color:var(--text)}.anomalySolidCard{background:#0f172a!important;background-image:none!important;background-color:#0f172a!important}.cardPad{padding:16px}.input,select,textarea{width:100%;padding:12px;border-radius:14px;border:1px solid var(--border);background:#ffffff0f;color:var(--text);outline:none}.input::placeholder{color:#e8eefc8c}select,select.input{background:#0f172aeb;color:#e8eefcf2}select option{background-color:#0b1220;color:#e8eefcf2}select:focus,.input:focus,textarea:focus{border-color:#3b82f6d9;box-shadow:0 0 0 3px #3b82f638}label{display:block;font-size:13px;color:var(--muted);margin:12px 0 6px}.layout{display:grid;grid-template-columns:182px 1fr;min-height:100vh}.sidebar{padding:18px 14px;border-right:1px solid var(--border);background:linear-gradient(180deg,#ffffff0f,#ffffff05);min-height:100vh;align-self:stretch}.sideTitle{color:var(--text);font-weight:1000;font-size:22px;margin:0 0 14px}.sideBtn{width:100%;margin:8px 0;padding:11px 12px;border-radius:12px;border:1px solid var(--border);background:#ffffff0d;color:var(--text);cursor:pointer;font-weight:900;text-align:left;transition:background .12s ease,border-color .12s ease}.sideBtn:hover{background:#ffffff14}.sideBtnActive{background:#3b82f657;border-color:#3b82f6d9;box-shadow:0 0 0 1px #3b82f659 inset,0 12px 28px #3b82f638}.sideBtnActive:hover{background:#3b82f66b}.main{padding:18px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.topbarMain{display:flex;align-items:center;gap:10px;width:100%}.topbarIdentity{display:flex;align-items:center;gap:10px;min-width:0}.topbarActionsWrap{margin-left:auto;display:flex;align-items:center;gap:10px;max-width:100%}.mobileMenuButton,.sidebarBackdrop{display:none}.settingsLayout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px}.settingsNav{display:grid;gap:8px;align-content:start}.settingsContent{display:grid;gap:14px}.settingsActions{display:flex;gap:10px;flex-wrap:wrap}.settingsStatusGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.loadingBlock{display:inline-flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:#ffffff0a}.loadingSpinner{width:18px;height:18px;border-radius:999px;border:2px solid rgba(255,255,255,.18);border-top-color:#bfdbfe;animation:loadingSpin .8s linear infinite}@keyframes loadingSpin{to{transform:rotate(360deg)}}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{padding:12px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.table th{color:var(--muted);font-weight:900}.table tr:hover td{background:#ffffff08}.kpiPage{display:flex;flex-direction:column;gap:14px}.kpiHero{display:flex;flex-direction:column;gap:18px}.kpiViewSwitch{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.kpiViewSwitch .btn{border-radius:999px;padding:6px 18px;border:1px solid rgba(255,255,255,.15)}.kpiViewSwitch .btnPrimary{border-color:transparent}.kpiHeroRow{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}.kpiHeroCopy{flex:1 1 420px;min-width:280px}.kpiPresetWrap{min-width:160px}.kpiPresetHint{line-height:1.4;min-height:42px;display:flex;align-items:center}.kpiPresetSummary{min-width:170px}.kpiFilters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.kpiFiltersInline{grid-template-columns:minmax(160px,220px) minmax(170px,220px) minmax(160px,220px);align-items:start;justify-content:end}.kpiGaugeGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;overflow:visible}.kpiGaugeCard{position:relative;overflow:visible;isolation:isolate;z-index:0}.kpiGaugeCard>*{position:relative;z-index:1}.kpiGaugeCard:after{content:"";position:absolute;inset:auto -20% -42% auto;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.12),transparent 66%);pointer-events:none;z-index:0}.kpiGaugeHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.kpiGaugeValue{font-size:34px;line-height:1;font-weight:1000}.kpiGaugeWrap{margin:8px 0 4px}.kpiGaugeSvg{width:100%;height:auto;display:block}.kpiGaugeTrack{fill:none;stroke:#ffffff1f;stroke-width:16;stroke-linecap:round}.kpiGaugeFill{fill:none;stroke-width:16;stroke-linecap:round}.kpiGaugeNeedle{stroke:#f8fafc;stroke-width:5;stroke-linecap:round}.kpiGaugeHub{fill:#f8fafc}.kpiGaugeCard--good .kpiGaugeFill{stroke:var(--green)}.kpiGaugeCard--warn .kpiGaugeFill{stroke:#f59e0b}.kpiGaugeCard--bad .kpiGaugeFill{stroke:var(--red)}.kpiSummaryGrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.9fr);gap:14px}.kpiSectionHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.kpiHighlightGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.kpiHighlight{padding:14px;border-radius:16px;border:1px solid var(--border);background:#ffffff0a}.kpiHighlightName,.kpiBranchName{font-size:18px;font-weight:900;margin:6px 0 4px}.kpiBranchList{display:flex;flex-direction:column;gap:10px}.kpiBranchRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:16px;border:1px solid var(--border);background:#ffffff0a}.kpiScorePill{display:inline-flex;align-items:center;justify-content:center;min-width:78px;padding:8px 12px;border-radius:999px;font-size:13px;font-weight:1000;border:1px solid var(--border)}.kpiScorePill--good{background:#22c55e29;border-color:#22c55e8c;color:#bbf7d0}.kpiScorePill--warn{background:#f59e0b29;border-color:#f59e0b8c;color:#fde68a}.kpiScorePill--bad{background:#ef444429;border-color:#ef44448c;color:#fecaca}.apkBanner{margin-bottom:12px;border:1px solid rgba(59,130,246,.35);background:linear-gradient(135deg,#1e293bfa,#0f172afa)}.apkBannerRow{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.apkBannerActions{display:flex;gap:10px;flex-wrap:wrap}@media (max-width: 900px){.layout{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(82vw,320px);min-height:100dvh;z-index:30;border-right:1px solid var(--border);transform:translate(-100%);transition:transform .18s ease;overflow-y:auto;padding-bottom:24px;background:linear-gradient(180deg,#0e1626fa,#0b1220fa)}.sidebar.sidebarMobileOpen{transform:translate(0)}.sidebarBackdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;border:0;background:#0000006b;opacity:0;pointer-events:none;z-index:20;transition:opacity .18s ease}.sidebarBackdrop.sidebarBackdropOpen{opacity:1;pointer-events:auto}.mobileMenuButton{display:inline-flex}.main{padding:14px}.topbarMain{flex-wrap:wrap;align-items:flex-start}.topbarIdentity{width:100%}.topbarActionsWrap{margin-left:0;width:100%;justify-content:flex-start;overflow-x:auto;padding-bottom:2px}.settingsLayout{grid-template-columns:1fr}.settingsNav{grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto;align-content:stretch;padding-bottom:2px}.settingsStatusGrid,.kpiHero,.kpiSummaryGrid,.kpiGaugeGrid,.kpiHighlightGrid,.kpiFilters{grid-template-columns:1fr}.apkBannerActions{width:100%;display:grid;grid-template-columns:1fr}}@media (max-width: 640px){.main,.cardPad{padding:12px}.btn{min-height:44px}.iconBtn{width:44px;height:44px}.settingsActions{display:grid;grid-template-columns:1fr}.settingsActions .btn{width:100%}}.leaflet-tooltip.mapTip{background:#0f172aeb;border:1px solid rgba(255,255,255,.14);color:#fff;border-radius:12px;padding:10px 12px;box-shadow:0 18px 30px #00000073}.leaflet-tooltip.mapTip:before{display:none!important}.leaflet-div-icon.pdvMarkerRoot,.leaflet-div-icon.pdvPinRoot,.leaflet-div-icon.audPinRoot,.leaflet-div-icon.visitMarkerRoot,.pdvMarkerRoot.leaflet-div-icon{background:transparent!important;border:0!important;box-shadow:none!important}.pdvPinWrap{--okColor:#16a34a;--pin-bg: var(--okColor);position:relative;display:block;pointer-events:auto;-webkit-user-select:none;user-select:none;background:transparent;border:0;box-shadow:none}.pdvPinWrap.pdvBranch-orange,.pdvPinWrap.pdvMarker--orange,.pdvPinWrap.pdvBranch-canal,.pdvPinWrap.pdvMarker--canal{--okColor:#16a34a !important}.pdvPinWrap.pdvStatus-ok,.pdvPinWrap.pdvMarker--ok{--pin-bg: var(--okColor) !important}.pdvPinWrap.pdvStatus-late,.pdvPinWrap.pdvMarker--late{--pin-bg:#dc2626 !important}.pdvPinWrap.pdvStatus-never,.pdvPinWrap.pdvMarker--never{--pin-bg:#6b7280 !important}.pdvPinLabel{height:26px;width:100%;display:flex;align-items:center;justify-content:center;padding:0 8px;font-weight:900;font-size:12px;letter-spacing:.2px;color:#fff;background:var(--pin-bg);border:2px solid rgba(0,0,0,.35);box-shadow:0 6px 14px #00000040;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdvBranch-orange .pdvPinLabel,.pdvMarker--orange .pdvPinLabel{border-radius:999px}.pdvBranch-canal .pdvPinLabel,.pdvMarker--canal .pdvPinLabel{border-radius:0}.pdvPinWrap:after{content:"";position:absolute;left:50%;top:24px;transform:translate(-50%);width:14px;height:10px;background:var(--pin-bg);clip-path:polygon(50% 100%,0 0,100% 0);filter:drop-shadow(0 2px 2px rgba(0,0,0,.35));pointer-events:none}.audPinWrap{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#0f172aeb;border:1px solid rgba(255,255,255,.14);box-shadow:0 8px 18px #00000047;-webkit-user-select:none;user-select:none}.audPinLabel{font-weight:800;font-size:13px;line-height:1.1;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e8eefcf2}.audPinBody{width:34px;height:34px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-weight:900;color:#030c12eb;background:#fff3;border:1px solid rgba(255,255,255,.25)}html{background:var(--bg)!important}body{min-height:100vh;background:var(--bg)!important}#root{min-height:100vh;background:transparent!important}.modalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:18px}.modalCard{width:min(920px,96vw);max-height:90vh;overflow:auto;border-radius:18px;background:#0c1018fa;border:1px solid rgba(255,255,255,.1);box-shadow:0 18px 46px #0000008c}.modalHeader{padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.modalFooter{padding:14px 16px;border-top:1px solid rgba(255,255,255,.1)}.leaflet-div-icon,.leaflet-div-icon.pdvMarkerRoot,.pdvMarkerRoot.leaflet-div-icon{background:transparent!important;border:0!important;box-shadow:none!important}.pdvStatus-ok{--pdvColor:#16a34a !important}.pdvStatus-late{--pdvColor:#dc2626 !important}.pdvStatus-never{--pdvColor:#6b7280 !important}.leaflet-container .pdvPinWrap{transform:none!important;padding:0!important;background:transparent!important;border:0!important;outline:0!important;box-shadow:none!important;overflow:visible!important;position:relative!important;display:inline-flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;-webkit-user-select:none!important;user-select:none!important;pointer-events:auto!important;box-sizing:border-box!important}.leaflet-container .pdvPinWrap:before,.leaflet-container .pdvPinWrap:after{content:none!important;display:none!important}.leaflet-container .pdvPinLabel{position:relative!important;z-index:10!important;height:34px!important;width:100%!important;padding:0 14px!important;display:flex!important;align-items:center!important;justify-content:center!important;background:var(--pdvColor)!important;color:#fff!important;font-weight:900!important;font-size:12px!important;line-height:1!important;border:0!important;outline:0!important;overflow:visible!important;box-shadow:0 10px 22px #00000059!important;cursor:pointer!important;pointer-events:auto!important;box-sizing:border-box!important}.leaflet-container .pdvPinText{display:block!important;max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.leaflet-container .pdvBranch-orange .pdvPinLabel{border-radius:9999px!important}.leaflet-container .pdvBranch-canal .pdvPinLabel{border-radius:0!important}.leaflet-container .pdvPinLabel:after{content:""!important;position:absolute!important;left:50%!important;bottom:-10px!important;transform:translate(-50%)!important;width:0!important;height:0!important;border-left:9px solid transparent!important;border-right:9px solid transparent!important;border-top:10px solid var(--pdvColor)!important;filter:drop-shadow(0 6px 10px rgba(0,0,0,.25))!important;pointer-events:none!important}.leaflet-container .pdvPinDot{width:10px!important;height:10px!important;margin-top:14px!important;border-radius:9999px!important;background:#fff!important;border:3px solid var(--pdvColor)!important;box-shadow:0 10px 22px #00000059!important;pointer-events:none!important;box-sizing:border-box!important}.pdvStatus-here .audPinBody{outline:3px solid rgba(0,255,140,.65);box-shadow:0 0 0 6px #00ff8c2e}.pdvStatus-here .audPinDot{background:#00ff8cf2}.pdvTip.pdvStatus-here{border:2px solid rgba(0,255,140,.65)}.pdvHereRow{outline:2px solid rgba(0,255,140,.7);background:#00ff8c14}.audPinWrap.pdvHere{filter:drop-shadow(0 0 10px rgba(0,255,140,.85))}.audPinWrap.pdvHere .audPinBody,.audPinWrap.pdvHere .audPinLabel{border-color:#00ff8ce6!important}
