:after,:before{--tw-content: "" }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;color:#1f2937}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}button,:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-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-size:12px}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.mr-2{margin-right:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.flex{display:flex}.h-screen{height:100vh}.w-64{width:20rem}.w-72{width:18rem}.w-full{width:100%}.flex-1{flex:1 1 0%}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.p-2{padding:.5rem;margin:.2rem 0;font-size:14px}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-sm{font-size:.875rem;line-height:1.25rem;white-space:normal;overflow-wrap:break-word}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.outline-none{outline:2px solid transparent;outline-offset:2px}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}nav button{justify-content:left;text-align:left}#openChatBtn{position:fixed;bottom:20px;right:20px;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1));color:#fff;border:none;padding:10px 15px;border-radius:20px;cursor:pointer}.chatbox{position:fixed;right:20px;bottom:80px;width:350px;display:flex;flex-direction:column;height:min(72vh,620px);max-height:calc(100vh - 120px);background:#1f2937;border-radius:14px;box-shadow:0 10px 30px #00000040;overflow:hidden}.chat-header{display:flex;align-items:center;gap:8px;background:var(--header-gradient);color:#fff;font-weight:700;padding:10px 12px}.chat-header button{background:none;border:none;color:#fff;font-size:20px;cursor:pointer}.chat-body{flex:1 1 auto;min-height:0;background:#fff;overflow-y:auto;overflow-x:hidden;padding:10px 10px 14px;scroll-behavior:smooth;overscroll-behavior:contain}.chat-footer{flex:0 0 auto;display:flex;gap:10px;align-items:center;padding:10px;background:#fff;border-top:1px solid #ddd}.chat-footer input{flex:1 1 auto;height:42px;padding:0 12px;border:1px solid #d1d5db;border-radius:10px;outline:none}.chat-footer button{flex:0 0 auto;height:42px;padding:0 14px;border:none;cursor:pointer;background:var(--themeBgBtnColor);color:#fff;font-weight:600}.chat-message{max-width:85%;word-break:break-word;overflow-wrap:anywhere}.chat-body::-webkit-scrollbar{width:6px}.chat-body::-webkit-scrollbar-track{background:#0000000d}.chat-body::-webkit-scrollbar-thumb{background:#00000040;border-radius:999px}.chat-body::-webkit-scrollbar-thumb:hover{background:#00000059}@media(max-width:900px){.chatbox{right:10px;left:10px;width:auto;height:min(60vh,520px);bottom:70px}}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);-webkit-border-radius:10px;border-radius:10px}::-webkit-scrollbar-thumb{-webkit-border-radius:10px;border-radius:10px;background:#ffffff4d;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.5)}::-webkit-scrollbar-thumb:window-inactive{background:#ffffff4d}.text-box{margin-left:44vw;margin-top:42vh}.text-box .btn:link,.text-box .btn:visited{text-transform:uppercase;text-decoration:none;padding:15px 40px;display:inline-block;border-radius:100px;transition:all .2s;position:absolute}.text-box .btn:hover{transform:translateY(-3px);box-shadow:0 10px 20px #0003}.text-box .btn:active{transform:translateY(-1px);box-shadow:0 5px 10px #0003}.text-box .btn-white{color:#777}.text-box .btn:after{content:"";display:inline-block;height:100%;width:100%;border-radius:100px;position:absolute;top:0;left:0;z-index:-1;transition:all .4s}.text-box .btn-white:after{background-color:var(--themeBgBtnColor)}.btn-animated .fa{color:#fff}.text-box .btn:hover:after{transform:scaleX(1.4) scaleY(1.6);opacity:0}.text-box .btn-animated{-webkit-animation:moveInBottom 5s ease-out;animation:moveInBottom 5s ease-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}@-webkit-keyframes moveInBottom{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes moveInBottom{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.powerIcon{width:30px;display:block;cursor:pointer}.powerIcon img{width:100%}.dflexTxt{display:flex;justify-content:space-between;border-bottom:1px solid #374151;padding-bottom:15px;align-items:center;min-height:50px;box-sizing:border-box}:root{--themeBgColor: #fff;--themeBgBtnColor: #13345F}html,body{height:100%;margin:0;overflow:hidden}body{font-family:Inter,sans-serif;background:var(--gray-50);margin:0;color:var(--gray-800);line-height:1.6}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f5f5;background-color:var(--themeBgColor);flex-direction:row}.login-container{padding:2.5rem;border-radius:0;width:100%;max-width:400px;border-left:2px solid #5a5a5a;height:auto}.login-container:first-child{border:none}.error-message{text-align:center;color:#fff;padding:10px 15px}.logout-btn{background:transparent;border:none;padding:6px;cursor:pointer;color:#eaf0ff;font-size:16px;outline:none;box-shadow:none}.header{background:var(--themeBgColor);padding:1rem 2rem;box-shadow:0 2px 4px #0000001a}.header h1{margin:0;color:#fff;font-size:1.5rem}.section-head-icon{margin-right:8px;font-size:.95em;vertical-align:-.06em}.section-head-icon-cyan{color:#06b6d4}.section-head-icon-amber{color:#f59e0b}.section-head-icon-green{color:#22c55e}.section-head-icon-violet{color:#8b5cf6}.section-head-icon-rose{color:#f43f5e}.section-head-icon-sky{color:#0ea5e9}.content-wrapper{display:flex;flex:1;overflow:hidden;height:calc(100vh - 58px);height:calc(100dvh - 58px)}.main-content{flex:1;padding:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:env(safe-area-inset-bottom);overflow-x:hidden}.chat-sidebar{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}.chat-messages{height:auto;flex:1 1 auto;min-height:0;overflow-y:auto;padding:10px;display:flex;flex-direction:column}.chat-input-container{display:flex;align-items:center;gap:5px;background:#fff;width:100%}.chat-input{display:flex;align-items:center;background:#fff;width:100%}.chat-input-container button{border:none;background:var(--button-gradient);color:#fff;margin-left:8px;padding:10px 20px;cursor:pointer;display:flex;align-items:center;margin-right:10px;gap:4px;height:40px}.chat-input-container button:active{transform:translateY(1px)}.chat-message{color:#000;float:left;background-color:#f3f6fb;max-width:70%;min-width:40%;padding:6px 25px 25px 10px;margin:5px;border-radius:6px 6px 6px 0;font-size:12px;position:relative}.user-message{background:#eee;color:#000}.system-message{align-self:flex-start}.thinking-message{color:#fff;float:left;background-color:#374151;max-width:70%;min-width:40%;padding:6px 10px 10px;margin:5px;border-radius:6px 6px 6px 0;font-size:12px;position:relative}.upload-container{background:#fff;overflow:hidden;padding:0}.main-content-form{padding-left:35px;padding-right:35px}@media(max-width:700px){.upload-container{flex-direction:column}}@media(max-width:768px){.sidebar{width:100vw;right:-100vw}.sidebar.move-to-left{transform:translate(calc(-100vw + 15px))}}@media(max-width:900px){.upload-container{flex-direction:column}.chatbox{width:100%;height:320px;margin-left:0;margin-top:20px}}.upload-container h2{display:block;font-size:1.17em;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0px;margin-inline-end:0px;font-weight:700;unicode-bidi:isolate}.form-row{display:flex;align-items:flex-end;gap:20px;margin-bottom:20px}.search-form{position:relative;display:grid;grid-template-columns:repeat(3,5fr);gap:14px;width:100%;margin-bottom:20px;margin-top:15px}#instanceSearchForm .search-form{grid-template-columns:minmax(0,1fr) auto}.search-form input{height:38px;padding:0 12px;font-size:13px;border-radius:8px;background:#fff;border:1px solid #A3B1C6;box-shadow:none}.search-form button{height:38px;padding:0 18px;font-size:13px;border-radius:8px}@media(max-width:1024px){.chatbox{min-width:240px}}.tooltip{display:none;position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#212121f2;color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;white-space:nowrap;box-shadow:0 2px 8px #0003;z-index:100;margin-bottom:8px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:none;background:#00000073;padding:16px;overflow-y:auto;z-index:9999}.modal-content{background:#fff;margin:0 auto;padding:0;border-radius:var(--radius-lg);max-width:700px;width:90%;position:relative;box-shadow:var(--shadow-lg);animation:modalFadeIn .3s;display:flex;flex-direction:column;max-height:calc(100vh - 32px);overflow:hidden}.modal-content--instance{max-width:960px;width:min(960px,95%);max-height:calc(100vh - 32px)}.modal-header{padding:10px 16px;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center;font-weight:600}.modal-title{font-size:var(--text-xl);font-weight:600;margin:0;color:var(--primary);display:flex;align-items:center;gap:var(--space-3)}.modal-close{font-size:var(--text-xl);font-weight:700;cursor:pointer;color:var(--gray-500);background:none;border:none;padding:0;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.modal-close:hover{background:var(--gray-100);color:var(--gray-700)}.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:12px}.modal-footer{flex:0 0 auto;display:flex;justify-content:flex-end;gap:10px;padding:12px 20px;background:#fff;border-top:1px solid var(--gray-200);position:sticky;bottom:0;z-index:2;border-bottom-left-radius:0;border-bottom-right-radius:0}@media(max-width:480px){.modal{padding:10px}.modal-content,.modal-content--instance{width:100%;max-height:calc(100vh - 20px)}.modal-footer{justify-content:stretch}.modal-footer .action-button{flex:1}}.instance-form-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;align-items:start}.instance-form-left,.instance-form-right{display:flex;flex-direction:column;gap:10px}.instance-location-hint{font-size:12px;color:#9aa0a6;margin:6px 0 10px}.instance-mini-map{width:100%;height:220px;border-radius:10px;border:1px solid #2b2f36;overflow:hidden;margin-bottom:12px}@media(max-width:900px){.modal-content--instance{width:95%}.instance-form-grid{grid-template-columns:1fr}}@keyframes tabFadeIn{0%{opacity:0}to{opacity:1}}.button-group .btn-save{background:var(--button-gradient);color:#fff;padding:8px 16px;border-radius:4px;border:none;cursor:pointer;font-weight:600}.button-group .btn-cancel{background:#ccc;color:#000;padding:8px 16px;border-radius:4px;border:none;cursor:pointer;font-weight:600}.close-modal{position:absolute;right:14px;top:8px;font-size:22px;line-height:1;color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none}.close-modal:hover{color:var(--themeBgBtnColor)}.form-grid.form-grid--3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 16px}:root{--ctl-h: 32px;--ctl-r: 6px;--ctl-px: 12px;--ctl-py: 8px;--ctl-fs: 14px;--ctl-bd: 1px solid #d1d5db;--ctl-bg: #fff;--ctl-fg: #111827;--ctl-focus: #2563eb}.form-grid.form-grid--3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 16px;align-items:start}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label{margin:0;font-weight:500;line-height:1.2;font-size:var(--ctl-px)}label{font-weight:500;font-size:var(--ctl-px);line-height:1.2}input.text-input,select.text-input,textarea.text-input{width:100%;box-sizing:border-box;font-size:var(--ctl-px);color:var(--ctl-fg);background:var(--ctl-bg);border:var(--ctl-bd);border-radius:var(--ctl-r);outline:none}input.text-input,select.text-input,textarea.text-input{line-height:calc(var(--ctl-h) - 2*var(--ctl-py))}input.text-input:focus,select.text-input:focus,textarea.text-input:focus{border-color:var(--ctl-focus);box-shadow:0 0 0 3px #2563eb26}select.text-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,#6b7280 50%),linear-gradient(135deg,#6b7280 50%,transparent 50%),linear-gradient(to right,#d1d5db,#d1d5db);background-position:right 12px center,right 6px center,right 30px center;background-size:6px 6px,6px 6px,1px 60%;background-repeat:no-repeat}.span-2{grid-column:span 2}.mapboxgl-ctrl-geocoder--input{font-size:var(--ctl-px)!important}@media(max-width:1024px){.form-grid.form-grid--3{grid-template-columns:repeat(2,1fr)}.span-2{grid-column:span 2}}@media(max-width:640px){.modal-contentt{width:95%}.form-grid.form-grid--3{grid-template-columns:1fr}.span-2{grid-column:span 1}}.text-input{padding:10px;border:1px solid #ccc;border-radius:4px;width:100%}.hidden{display:none}.data-table{width:95%;border-collapse:collapse;font-size:12px;justify-content:center;border:1px solid #ddd}.data-table td .scroll{max-height:140px;overflow-y:auto}.data-table thead tr th:first-child{border-top-left-radius:8px}.data-table thead tr th:last-child{border-top-right-radius:8px}.data-table th{background:#1f2a44;color:#e6ecff;padding:12px 14px;font-size:12px;font-weight:600;letter-spacing:.3px;text-align:left;border-bottom:2px solid rgba(11,59,140,.6)}.data-table td{padding:10px;border-top:1px solid #ddd;background:#fff;font-size:12px;vertical-align:middle}.data-table tbody tr:nth-child(2n) td{background:#f0f7ff}.data-table tbody tr{border-radius:8px;box-shadow:none;transition:none}.data-table tbody tr:hover{transform:none;box-shadow:none}.data-table .card{background:#f8fafc;border-radius:10px;overflow:hidden}.data-table.card tbody td{height:160px;padding:12px}.data-table.card .summary-card-content{height:100%;overflow-y:auto;overflow-x:hidden;padding-right:6px}.summary-card-content ol,.summary-card-content ul{margin:0;padding-left:20px}.table-buttons{display:flex;gap:8px;align-items:center}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;border:none;border-radius:6px;cursor:pointer;transition:transform .15s ease,filter .15s ease,opacity .15s ease;background:#fff}.icon-btn i{font-size:14px;line-height:1}.icon-btn:hover{transform:translateY(-1px);filter:brightness(1.03)}.icon-btn:active{transform:translateY(0);filter:brightness(.95)}.icon-btn.action-button-del{color:#dc2626}.icon-btn.action-button-duplicate{color:#7c3aed}.icon-btn.action-button-ingest{color:#0284c7}.icon-btn.action-button-health{color:#ef4444}.icon-btn.action-button-predictive{color:#16a34a}.icon-btn.action-button-detail{color:#e11d48}.icon-btn.action-button-edit{color:#1f3a8a}.icon-btn.action-button-duplicate:hover{background:#7c3aed1f}.icon-btn.action-button-ingest:hover{background:#0284c71f}.icon-btn.action-button-health:hover{background:#ef44441f}.icon-btn.action-button-predictive:hover{background:#16a34a1f}.icon-btn.action-button-detail:hover{background:#e11d481f}.icon-btn .icon-dup{color:#7c3aed!important}.icon-btn .icon-ingest{color:#0284c7!important}.icon-btn .icon-detail{color:#e11d48!important}.icon-btn .icon-edit{color:#1f3a8a!important}.icon-btn .icon-del{color:#dc2626!important}.icon-btn.action-button-edit:hover{background:#1f3a8a1a}.icon-btn.action-button-action{color:#0e7490}.icon-btn.action-button-action:hover{background:#0e74901f}.action-button{background:var(--themeBgBtnColor);color:#fff;border:none;padding:8px 14px;border-radius:8px;cursor:pointer}details-btn{background:var(--themeBgBtnColor);color:#fff;border:none;padding:8px 14px;border-radius:8px;cursor:pointer}.secondary{background:#f3f4f6;color:#000}@media(max-width:720px){.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table tr{background:#fff;margin:0 0 12px;border-radius:8px;box-shadow:0 2px 6px #00000014;overflow:hidden}.data-table td{border:none;display:flex;justify-content:space-between;align-items:center;padding:10px 12px}.data-table td:first-child{border-top:none}.data-table td:before{content:attr(data-label);font-weight:600;color:#4b5563;margin-right:12px;flex:0 0 auto}.table-buttons{justify-content:flex-end}}.form-select{width:100%;padding:10px;border:1px solid #ccc;border-radius:4px;font-size:var(--ctl-px);background-color:#f9fafb;cursor:pointer;color:#080808;margin-bottom:10px}.form-select:focus{outline:none;box-shadow:0 0 0 2px #1a103233}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:20px;padding:10px}.pagination button{padding:8px 16px;background:var(--button-gradient);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:all .3s ease}.pagination button:disabled{background:#374151;cursor:not-allowed}.pagination button:hover:not(:disabled){background:#c2953b80;box-shadow:0 2px 4px #0003}.pagination span{color:#fff;font-weight:500}.userName{padding-left:10px;font-size:16px}.welcomeTxt{color:#ffffffab}.LogginedUserName{display:inline-flex;justify-content:end;color:#ffffffab}.VEuserName{font-size:14px;margin-right:15px}.welcomeMsg{color:#fff;line-height:1.2}.user-avatar{width:20px;margin:5px}.user-container{display:inline-flex;align-items:end;flex-direction:row;justify-content:end}.system-avatar,.user-avatar{width:20px;height:20px;border-radius:50%;background:#374151;padding:0;font-size:12px;display:flex;justify-content:center;align-items:center;position:relative;bottom:4px;border:1px solid #c2953b66}.system-container{display:inline-flex;align-items:flex-end}.location-input-group{display:flex;gap:10px}.location-input-group input{flex:1}.location-input-group button{padding:8px 12px;white-space:nowrap}#map{width:100%;height:345px;border-radius:8px;margin:15px 0}h3{display:flex;align-items:center;justify-content:space-between;color:#000;margin:0}.logo{font-size:28px;font-weight:700}.tagline{font-size:13px;opacity:.9;color:#f1f6fa}.app-header{width:100%;height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;color:#fff;box-sizing:border-box;overflow:hidden;position:relative;z-index:10;background:var(--header-gradient)}.app-header:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:url(images/header-bg.svg) no-repeat right center;background-size:cover;opacity:.95;animation:nodePulse 8s ease-in-out infinite;transition:opacity .3s ease}@keyframes nodePulse{0%,to{opacity:.8}50%{opacity:1}}.app-header .logo{font-size:1.5rem;font-weight:700;position:relative;z-index:2}.app-header .nav-links{display:flex;gap:20px;position:relative;z-index:2}.app-header .nav-links a{color:#cfe8ff;text-decoration:none;font-weight:600;transition:color .3s ease,text-shadow .3s ease}.app-header .nav-links a:hover{color:#a9d1ff;text-shadow:0 0 8px rgba(169,209,255,.7)}.app-header .nav-links a:active{color:#7ab8ff}.app-header .nav-links a:focus{color:#d8f3ff;text-shadow:0 0 10px rgba(216,243,255,.8)}.header-left{display:flex;align-items:center;gap:12px;position:relative;z-index:2}.app-logo{height:42px;width:42px;object-fit:contain;filter:drop-shadow(0 0 4px rgba(255,255,255,.2))}.logo-text{font-size:1.5rem;font-weight:700;letter-spacing:.5px;color:#fff}.modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#00000080}.move-to-left{transform:translate(-385px)}.sidebar{height:calc(100vh - 57px);height:calc(100dvh - 57px);width:400px;position:fixed;top:57px;bottom:0;z-index:1;right:-400px;box-shadow:0 1rem 5rem #0006;transition:transform .35s ease,box-shadow .2s ease;border-top:1px solid #363f4f;display:flex;flex-direction:column;border-radius:var(--button-radius);overflow:hidden;box-shadow:0 3px 8px #00000026;margin-left:auto}.container-liner{margin-left:0rem;height:100%}.chatboxSidebar{display:flex;flex-direction:column;height:100%;min-height:0}.chat-body{display:flex;flex:1 1 auto;min-height:0}.chat-footer{flex:0 0 auto;padding-bottom:max(10px,env(safe-area-inset-bottom))}.sidebar-tab{height:124x;width:32px;position:fixed;top:50%;z-index:1;right:0;margin-left:auto;border-radius:10px 0 0 10px;background:linear-gradient(180deg,#241a4a,#1a1338);box-shadow:-4px 0 16px #1a133873;transition:transform .35s ease,box-shadow .2s ease;border:1px solid rgba(255,255,255,.08)}#sidebar-tab{cursor:pointer}#sidebar-tab-text{pointer-events:none;display:block;white-space:nowrap;width:auto;writing-mode:vertical-rl;transform:rotate(180deg);line-height:1}.vertical-text{writing-mode:vertical-rl;transform:rotate(180deg);color:#fff;font-weight:500;letter-spacing:.5px;text-align:center;padding:6px 0;margin-left:5px;line-height:1.1;-webkit-user-select:none;user-select:none}.item{display:flex;flex-direction:column;align-items:center}.header-text{margin:15px 0 10px;width:100%;text-align:center;font-size:16px}.chat-link{cursor:pointer;color:#101011;text-decoration:underline;font-size:14px;font-weight:500;transition:all .3s ease}.chat-link:hover{cursor:pointer;color:var(--themeBgBtnColor);text-decoration:underline;font-size:14px;font-weight:500;transition:all .3s ease}.timestamp{position:absolute;bottom:2px;right:10px;font-size:.75rem;color:#1f1a1a}.app-container.move-to-left .content-wrapper{flex:0 0 75%}.app-container.move-to-left .sidebar{width:25%}.move-to-left-partly .content-wrapper{flex:0 0 75%;width:calc(100% - 400px);transition:transform .7s ease-in-out}.form-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(90deg,#eef2ff,#dbeafe);color:#1f2937;font-size:16px;font-weight:600;border-bottom:1px solid grey}.search-actions{display:flex;align-items:center}.search-actions-button{background:var(--button-gradient);color:#fff;border:none;padding:10px 22px;border-radius:6px;cursor:pointer;font-weight:600;font-size:.95rem;letter-spacing:.3px;transition:all .25s ease;box-shadow:0 3px 8px #0e4c9b59}.collapse-btn{padding:9px 12px;background:var(--themeBgBtnColor);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .3s ease;margin-bottom:10px}.collapse-btn.collapsed i{transform:rotate(180deg)}.form-collapsed{display:none}.info-button{background:none;border:none;cursor:pointer;color:#c2953b;font-size:1.2rem;padding:0;margin-left:.5rem}.info-tooltip{display:none;position:absolute;background:#232b3a;color:#fff;border:1px solid #374151;border-radius:8px;padding:12px;z-index:1000;left:50px;top:40px;min-width:260px;box-shadow:0 4px 12px #0000004d;font-size:.98rem;line-height:1.5}.viewer-container{position:relative;display:flex;flex-direction:column;height:90vh;border-radius:8px;overflow:hidden}.viewer-header{position:relative;top:0;border-radius:8px 8px 0 0;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#fff;z-index:2;color:#000;border-bottom:1px solid #ddd}.vh-left{display:flex;align-items:center;gap:10px;padding-bottom:5px}.vh-title-top{font-weight:500;font-size:16px;line-height:1.2}.vh-title-sub{opacity:.8;font-size:12px}.vh-right{display:flex;align-items:center;gap:8px}.icon-btn.ghost{height:34px;width:34px;display:inline-grid;place-items:center;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer}.three-canvas{position:relative;width:100%;height:calc(100% - var(--viewer-header-h));display:block;background-color:#fff;border-top-left-radius:0;border-top-right-radius:0;z-index:1}.sensor-list-panel{position:absolute;top:62px;left:0;bottom:0;width:250px;z-index:12;border-right:1px solid #ddd;box-shadow:2px 0 8px #0000001a;border-radius:0;overflow:hidden;background:#fff}.sensor-list-panel.collapsed{width:var(--barW);padding-left:0;background:transparent;cursor:pointer}.sensor-list-panel.collapsed #sensorList{display:none}.sensor-list-panel.collapsed:after{opacity:1}.viewer-container.sidebar-open .three-canvas{left:260px;width:calc(100% - 260px)}.three-canvas{z-index:1}.sensor-list-panel{z-index:2}.viewer-container.sidebar-open .three-canvas{left:270px;top:-10px;width:calc(100% - 270px)}.viewer-container.sidebar-collapsed .three-canvas{left:48px;width:calc(100% - 48px);transition:width .3s ease,left .3s ease}.sensor-list-open-btn{position:absolute;left:12px;top:calc(var(--viewer-header-h) + 12px);height:36px;width:36px;display:none;place-items:center;background:#1e3a8a;color:#fff;border:none;border-radius:8px;z-index:12;cursor:pointer}.sensor-list-panel.collapsed~.sensor-list-open-btn{display:grid}.sensor-tooltip{display:none;position:absolute;background:#000000b3;color:#fff;padding:5px 10px;border-radius:4px;pointer-events:none}.sensor-popup-menu{display:none;position:absolute;background:#232b3a;border:1px solid #374151;border-radius:8px;padding:10px;box-shadow:0 4px 12px #0000004d;z-index:1000}.sensor-popup-title{color:#c2953b;font-weight:700;margin-bottom:10px;font-size:14px}.sensor-popup-edit{width:100%;margin-bottom:8px;font-size:12px;padding:6px 12px}.sensor-popup-delete{width:100%;font-size:12px;padding:6px 12px;background:#dc3545}.sensor-modal-title{color:#c2953b;margin-top:0}.sensor-modal-desc{color:#bdbdbd;font-size:.9rem;margin-bottom:1.5rem}.sensor-label{color:#bdbdbd}.sensor-remarks{min-height:80px;background:#232b3a;border-color:#374151;color:#fff}.sensor-modal-buttons{display:flex;gap:1rem;margin-top:1.5rem}.sensor-list{overflow-y:auto;flex:1}.sensor-list-item{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid #eee;cursor:pointer;transition:background-color .18s ease,box-shadow .18s ease;background:#fff}.sensor-list-item:hover{background-color:#284e53}.sensor-list-item.highlighted{background-color:#113c25;border-left:4px solid #469a99;padding-left:6px}.sensor-item-name{font-weight:600;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sensor-item-status{justify-self:end}.sensor-item-actions{display:flex;gap:6px;justify-self:end}.empty-list-message{text-align:center;color:#9ca3af;padding:10px 6px}.row-actions{display:inline-flex;gap:6px;vertical-align:middle}.sidebar-table tbody td{padding:8px 10px;vertical-align:middle}.sidebar-table tbody tr{transition:background-color .18s ease;border-bottom:1px solid #ddd}.sidebar-table tbody tr.row-highlight{background:#13345f14}.name-text{transition:color .12s ease,font-weight .12s ease}.name-text.name-highlight{color:#101011;font-weight:700}.sidebar-table{width:100%;border-collapse:collapse;font-size:13px}.sidebar-table thead th{background:#fff;color:#000;padding:8px 10px;text-align:left;font-weight:600;border-bottom:1px solid #e5e7eb}.sidebar-table td{padding:8px 10px;vertical-align:middle}.sidebar-table .row-actions{display:flex;gap:6px;justify-content:flex-end}.action-edit i{color:#1d4ed8}.action-delete i{color:#dc2626}.sidebar-table tbody tr:last-child td{border-bottom:none}.led{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:#9ca3af;box-shadow:0 0 #0000}.led-green{background:#22c55e}.led-blue{background:#3b82f6}.blink{animation:ledPulse 1s ease-in-out infinite}@keyframes ledPulse{0%{transform:scale(.95);box-shadow:0 0 #22c55e99;opacity:.85}70%{transform:scale(1.15);box-shadow:0 0 0 6px #22c55e00;opacity:1}to{transform:scale(.95);box-shadow:0 0 #22c55e00;opacity:.85}}.led-blue.blink{animation-name:ledPulseBlue}@keyframes ledPulseBlue{0%{transform:scale(.95);box-shadow:0 0 #3b82f699;opacity:.85}70%{transform:scale(1.15);box-shadow:0 0 0 6px #3b82f600;opacity:1}to{transform:scale(.95);box-shadow:0 0 #3b82f600;opacity:.85}}.cell-name{max-width:128px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-status{width:72px}.col-actions,.cell-actions{width:84px;text-align:right}.sensor-list-open-btn{display:none!important}.button-icon{font-size:1.2rem;line-height:1}.pagination{display:flex;justify-content:center;gap:.5rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.pagination button{padding:.5rem 1rem;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:.25rem;cursor:pointer;transition:all .2s ease;font-weight:500}.pagination button:hover{background-color:var(--bg-hover);border-color:var(--primary-color)}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination .current-page{padding:.5rem 1rem;background-color:var(--primary-color);color:#fff;border-radius:.25rem;font-weight:500}#viewer-controls{position:absolute;top:var(--viewer-header-h, 70px);right:12px;z-index:3;width:258px;background:#3038708c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:12px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:10px;color:#e5e7eb;font-size:12px;box-shadow:0 12px 30px #00000073;opacity:0;animation:fadeInControls .35s ease-out forwards}#viewer-controls .viewer-controls-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px}#viewer-controls .viewer-controls-head span{color:#fff;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}#viewer-controls .viewer-controls-body{width:100%;display:flex;flex-direction:column;gap:10px}#viewer-controls.is-collapsed .viewer-controls-body{display:none}#viewer-controls label{font-size:12px;color:#c7cbe4;display:flex;align-items:center;gap:6px;cursor:pointer}#viewer-controls input[type=checkbox]{width:14px;height:14px;accent-color:#3b82f6;cursor:pointer}#viewer-controls .viewer-toggles{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}#viewer-controls .viewer-toggles label{margin:0}#viewer-controls .viewer-toggle-chip{min-width:0;flex:1 1 0;justify-content:center;padding:9px 10px;border-radius:12px;background:#ffffff14;box-shadow:inset 0 0 0 1px #ffffff0f}#viewer-controls .clip-toolbar{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:14px;background:linear-gradient(180deg,#ffffff1a,#ffffff0d);box-shadow:inset 0 0 0 1px #ffffff14,0 8px 18px #080f232e}#viewer-controls .clip-toolbar.is-disabled{opacity:.52}#viewer-controls .clip-toolbar-label{color:#dbe4ff;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}#viewer-controls .clip-inline{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}#viewer-controls .clip-inline-actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;justify-content:flex-end}#viewer-controls .clip-value-btn{min-width:52px;height:28px;padding:0 8px;border:none;border-radius:8px;background:#ffffff29;color:#fff;font-size:12px;font-weight:700;cursor:pointer}#viewer-controls .clip-value-btn:hover{background:#ffffff2e}#viewer-controls .clip-value-btn:disabled{opacity:.45;cursor:not-allowed}#viewer-controls .control-buttons{display:grid;grid-template-columns:repeat(3,38px);grid-template-rows:repeat(2,38px);gap:8px;justify-items:center;align-items:center;justify-content:center}#viewer-controls button{width:38px;height:38px;border-radius:10px;border:none;background:#2a3170;color:#fff;font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,transform .1s ease,box-shadow .15s ease;box-shadow:inset 0 0 0 1px #ffffff14,0 4px 10px #00000059}#viewer-controls .clip-inline-actions button{height:28px;border-radius:8px;font-size:12px}#viewer-controls .clip-inline-actions button:not(#clipFlipBtn){width:28px;padding:0;flex:0 0 auto}#viewer-controls #clipFlipBtn{min-width:42px;padding:0 10px;flex:0 0 auto}#viewer-controls .viewer-controls-collapse{width:28px;height:28px;border-radius:8px;font-size:18px;line-height:1}#viewer-controls button:hover{background:#3a418a}#viewer-controls button:active{transform:scale(.94);box-shadow:inset 0 0 0 1px #ffffff1f,0 2px 6px #0006}#viewer-controls button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:inset 0 0 0 1px #ffffff14,0 4px 10px #0003}#viewer-controls button:disabled:hover{background:#2a3170}#viewer-controls{top:calc(var(--viewer-header-h, 70px) + 14px);right:14px;width:auto;padding:12px;border-radius:18px;background:#3038707a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 14px 32px #0f172a47;align-items:stretch;gap:0}#viewer-controls .control-buttons{grid-template-columns:repeat(3,46px);grid-template-rows:repeat(2,46px);gap:10px}#viewer-controls button{width:46px;height:46px;border-radius:14px;font-size:18px}@keyframes fadeInControls{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.model-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:50;color:#fff;font-size:16px;font-weight:500;letter-spacing:.5px;opacity:0;pointer-events:none;transition:opacity .3s ease}.model-loading-overlay.visible{opacity:1;pointer-events:all}.model-loading-overlay .spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.2);border-top-color:#4dabf7;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:10px}.chat-message.system-message{border:1px solid #b7d8fa;border-radius:10px;box-shadow:0 2px 6px #00000014;padding:10px 18px 26px;animation:fadeInUp .35s ease both;transition:all .25s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.user-message{background:#f5f7fa;border:1px solid #e1e7ef;border-radius:10px 10px 0;box-shadow:0 2px 4px #0000000d;font-weight:500;color:#222}.timestamp{font-size:11px!important;color:#666!important;opacity:.75;margin-top:6px;text-align:right;display:block;pointer-events:none}.chat-suggestions{display:flex;flex-direction:column;gap:12px;margin-top:4px}.chat-suggestions-title{font-weight:500;font-size:12px;color:#000;margin-bottom:6px}.chat-suggestions-group{display:flex;flex-wrap:wrap;gap:10px}.chat-suggestion-btn{background:var(--button-gradient);color:#fff;border:none;border-radius:10px;padding:9px 18px;font-size:12px;font-weight:500;text-decoration:none;cursor:pointer;box-shadow:0 3px 6px #00000026;transition:all .25s ease}.chat-suggestion-btn:hover{transform:translateY(-2px);filter:brightness(1.05);box-shadow:0 6px 12px #0003}.chat-suggestion-btn:active{transform:translateY(0);box-shadow:0 2px 6px #0000001a}@media(max-width:768px){.chat-suggestions-group{flex-direction:column}.chat-suggestion-btn{width:100%;text-align:center}}.model-hint{position:absolute;bottom:24px;left:50%;transform:translate(-50%);background:#0000008c;color:#fff;padding:6px 14px;border-radius:14px;font-size:13px;line-height:1.2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;box-shadow:0 6px 18px #00000040;z-index:5}.app-modal.hidden{display:none}.app-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:block}.app-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073}.app-modal-card{position:relative;width:min(560px,calc(100% - 24px));margin:10vh auto;background:#fff;border-radius:14px;box-shadow:0 20px 60px #00000040;overflow:hidden}.app-modal-head{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #eee}.app-modal-title{font-weight:700;font-size:16px}.app-modal-subtitle{font-size:12px;opacity:.7;margin-top:2px}.app-modal-close{width:34px;height:34px;border:none;border-radius:10px;background:#f3f3f3;cursor:pointer;font-size:20px;line-height:1}.app-modal-body{padding:14px 16px}.app-modal-message{font-size:14px;line-height:1.4}.app-modal-reason{margin-top:12px;padding:10px 12px;background:#fafafa;border:1px solid #eee;border-radius:12px}.app-modal-reason-title{font-weight:600;font-size:12px;margin-bottom:6px;opacity:.8}.app-modal-reason-text{font-size:12px;white-space:pre-wrap;opacity:.9}.app-modal-foot{padding:14px 16px;border-top:1px solid #eee;display:flex;justify-content:flex-end}.status-active{color:#28a745;font-weight:700}.status-inactive{color:#dc3545;font-weight:700}.pager-container{padding:14px 16px calc(20px + env(safe-area-inset-bottom))}.pager{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:12px;width:min(100%,520px);margin:0 auto}.pager-cell--left{display:flex;justify-content:flex-end}.pager-cell--mid{display:flex;justify-content:center}.pager-cell--right{display:flex;justify-content:flex-start}.pager-text{text-align:center;color:#1f2937;font-weight:600;font-size:13px;line-height:1.2;white-space:nowrap}.pager .action-button[data-act=prev],.pager .action-button[data-act=next]{width:104px;min-width:104px;padding:8px 0;margin:0;font-size:13px;line-height:1.2}@media(max-width:768px){.main-content-form{padding-left:16px;padding-right:16px}.main-content-form .search-form{grid-template-columns:1fr;gap:10px;padding:12px}.main-content-form .search-actions{width:100%;justify-content:stretch}.main-content-form .search-actions .action-button{width:100%}.pager-container{padding:12px 12px calc(18px + env(safe-area-inset-bottom))}.pager{column-gap:8px}.pager-text{font-size:12px}.pager .action-button[data-act=prev],.pager .action-button[data-act=next]{width:84px;min-width:84px;padding:7px 0;font-size:12px}}.modal-content{width:min(900px,92vw);border-radius:18px;padding:0;overflow:hidden}.modal-body{padding:24px}.model-mode{margin-top:10px;display:flex;gap:14px;flex-wrap:wrap}.model-mode .chk{display:flex;align-items:center;gap:8px;font-weight:600;color:#111827}.type-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.type-modal-left{display:flex;flex-direction:column}.type-modal-left label{margin-top:12px;margin-bottom:6px;font-weight:600}.type-modal-left .text-input{width:100%}.type-modal-right{display:flex;justify-content:center}.preview-card{width:100%;max-width:420px;background:#071327;border-radius:20px;overflow:hidden;box-shadow:0 15px 40px #00000040}.preview-card-head{padding:16px;font-weight:700;font-size:15px;color:#fff}.preview-area{width:100%;height:250px;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.06),transparent 60%),#071327}.modal-footer{padding:18px 24px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:12px}@media(max-width:850px){.type-modal-grid{grid-template-columns:1fr}.preview-card{max-width:100%}}.clear-chat-btn{margin-left:auto;background:transparent;border:none;color:#ff4d4f;cursor:pointer;font-size:14px;margin-right:20px}.clear-chat-btn:hover{color:#ff1a1a}.viewer-tools{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:4px 10px 4px 12px;border-radius:999px;background:#0f172a57;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 24px #0f172a3d;flex-wrap:wrap;max-width:min(100%,1000px)}.viewer-icon-btn{width:34px;height:34px;border-radius:50%;border:none;background:var(--themeBgBtnColor);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.viewer-icon-btn:disabled{cursor:not-allowed;opacity:.48;transform:none;box-shadow:none}.viewer-icon-btn i{font-size:14px}.viewer-icon-btn:hover{transform:translateY(-1px);box-shadow:0 3px 8px #00000040}.viewer-icon-btn:disabled:hover{transform:none;box-shadow:none}.viewer-icon-btn.active{background:#1e3a8a;box-shadow:0 0 8px #3b82f680}.viewer-tools .viewer-icon-btn{flex:0 0 auto}.viewer-reset-btn{border:1px solid rgba(148,163,184,.22);background:linear-gradient(135deg,#1e293bf5,#334155e0)}.viewer-inline-tools{display:flex;align-items:center;gap:12px;padding-left:12px;border-left:1px solid rgba(255,255,255,.12);flex-wrap:wrap}.viewer-inline-toggle{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;color:#dbe4ff;cursor:pointer;white-space:nowrap}.viewer-inline-toggle input[type=checkbox]{width:14px;height:14px;accent-color:#60a5fa;cursor:pointer}.viewer-inline-toggle input[type=checkbox]:disabled{cursor:not-allowed}.viewer-inline-slice{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.viewer-inline-slice.is-disabled .viewer-slice-actions{opacity:1}.viewer-slice-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.viewer-icon-btn.viewer-slice-btn{width:auto;min-width:34px;height:34px;padding:0 12px;border-radius:10px;font-size:12px;font-weight:700}.viewer-slice-actions .viewer-slice-btn:not(#clipFlipBtn):not(.viewer-clip-value-btn){padding:0}.viewer-icon-btn.viewer-clip-value-btn{min-width:58px}#clipFlipBtn.viewer-icon-btn.viewer-slice-btn{min-width:52px}.home-btn{background:transparent;border:none;color:#fff;font-size:18px;margin-right:12px;cursor:pointer;padding:6px 10px;border-radius:6px;transition:background .2s ease}.home-btn:hover{background:#ffffff26}:root{--primary: #13345F;--primary-light: #1E4A7F;--secondary: #F26913;--success: #2ecc71;--warning: #f39c12;--danger: #e74c3c;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--radius: .375rem;--radius-lg: .75rem;--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05)}*{box-sizing:border-box}.alerts-container{overflow:hidden;background:#fff;box-shadow:0 2px 4px #0000000d;display:flex;flex-direction:column}.alerts-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#fff;color:#1f2937;font-size:16px;font-weight:600;border-bottom:1px solid grey}.alerts-controls{display:flex;gap:var(--space-4);align-items:center;color:#000}.alerts-bar{padding:var(--space-4) var(--space-6);display:flex;gap:var(--space-3);overflow-x:auto;max-height:200px;transition:max-height .3s ease}.alerts-bar.collapsed{max-height:0;padding:0;overflow:hidden}.alert-pill{flex:0 0 auto;padding:var(--space-2) var(--space-4);border-radius:999px;font-size:var(--text-sm);white-space:nowrap;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:var(--space-2)}.alert-pill.critical{background:#fdecea;color:var(--danger);border:1px solid #fadbd8}.alert-pill.warning{background:#fff4e0;color:var(--warning);border:1px solid #fae0b3}.alert-pill:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.card{background:#fff;border-radius:8px;padding:var(--space-6)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;overflow-x:auto;white-space:nowrap;padding:10px 12px}.summary-card{background:#f1f3f6;border-radius:10px;padding:var(--space-5);cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column}.summary-card:hover{transform:translateY(-5px);background:#fff}.summary-card-header{display:flex;align-items:center;gap:12px;justify-content:flex-start;margin-bottom:var(--space-4)}.summary-card-title{font-size:var(--text-base);font-weight:600;margin:0;color:var(--gray-700)}.summary-card-icon{width:44px;height:44px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.2rem;flex-shrink:0;box-shadow:0 2px 6px #0003}.summary-card-icon.healthy{background:var(--success)}.summary-card-icon.warning{background:var(--warning)}.summary-card-icon.critical{background:var(--danger)}.summary-card-icon.colorful{background:linear-gradient(135deg,#f26913,#fc3);color:#fff;box-shadow:0 3px 8px #f2691366;animation:pulseGlow 2.5s infinite alternate}.summary-card-content{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:60px}.summary-card-stats{display:flex;justify-content:center;align-items:center;gap:12px}.stat{display:flex;flex-direction:column;align-items:center;text-align:center;margin:0 auto}.stat-label{font-size:var(--text-xs);color:var(--gray-500);text-transform:uppercase;font-weight:500}.table-container{display:flex;overflow-x:auto;justify-content:center}.alert-table-wrapper{display:flex;align-items:center;justify-content:center;padding-top:10px}.status-badge{padding:var(--space-1) var(--space-3);border-radius:999px;font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-Healthy{background:#eaf9f0;color:var(--success)}.status-Warning{background:#fff4e0;color:var(--warning)}.status-Critical{background:#fdecea;color:var(--danger)}.chart-container{background:var(--gray-50);border-radius:var(--radius);height:250px;display:flex;align-items:center;justify-content:center;padding:var(--space-4);margin-bottom:var(--space-5)}canvas{width:100%!important;height:100%!important}.rpt-modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;overflow:auto;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.rpt-modal-content{background:#fff;margin:40px auto;padding:0;border-radius:var(--radius-lg);max-width:900px;width:90%;position:relative;box-shadow:var(--shadow-lg);animation:modalFadeIn .3s}.rpt-modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center}.rpt-modal-title{font-size:var(--text-xl);font-weight:600;margin:0;color:var(--primary);display:flex;align-items:center;gap:var(--space-3)}.rpt-modal-close{font-size:var(--text-xl);font-weight:700;cursor:pointer;color:var(--gray-500);background:none;border:none;padding:0;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.rpt-modal-close:hover{background:var(--gray-100);color:var(--gray-700)}.rpt-tab-nav{display:flex;gap:var(--space-2);border-bottom:1px solid var(--gray-200)}.rpt-tab-nav button{padding:var(--space-3) var(--space-5);border:none;background:transparent;cursor:pointer;font-weight:500;color:var(--gray-600);position:relative;transition:all .2s}.rpt-tab-nav button:hover{color:var(--primary)}.rpt-tab-nav button.active{color:var(--primary);font-weight:600}.rpt-tab-nav button.active:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--primary)}.rpt-tab-content>div{display:none}.rpt-tab-content>div.active{display:block;animation:tabFadeIn .3s}@media(max-width:768px){.summary-grid,.sensor-grid{grid-template-columns:1fr}.modal-content{width:95%;margin:20px auto}}@media(max-width:1024px){.summary-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media(max-width:768px){.card{padding:var(--space-4);margin-bottom:var(--space-5)}}@media(max-width:600px){.rpt-modal-content{width:95%;margin:10px auto;padding:0}}.summary-card.healthy{background:#2ecc711a}.summary-card.warning{background:#f39c121a}.summary-card.critical{background:#e74c3c1a}.summary-card.omitted{background:#6b728014}.summary-card.colorful{background:linear-gradient(135deg,#f2691314,#ffcc331a)}.summary-card.predictive{background:linear-gradient(135deg,#6366f114,#818cf81f)}.summary-card.healthy:hover{background:#2ecc712e}.summary-card.warning:hover{background:#f39c122e}.summary-card.critical:hover{background:#e74c3c2e}.summary-card.omitted:hover{background:#6b728026}.summary-card.colorful:hover{background:linear-gradient(135deg,#f2691326,#ffcc332e)}#reportViewerContainer{height:65vh!important;min-height:unset!important;padding:0!important;margin:0!important;line-height:0!important}#reportViewerContainer canvas{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important}#rptEquipment3d{padding:0!important;margin:0!important;height:80vh}.viewer-tooltip{position:absolute;pointer-events:none;z-index:99999;opacity:0;transition:opacity .15s ease-out}.viewer-tooltip.show{opacity:1}.viewer-tooltip-content{padding:10px 14px;background:#4dabf7;color:#fff;border-radius:8px;font-size:13px;box-shadow:0 4px 12px #00000059;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.15);position:relative}.viewer-tooltip-content:after{content:"";position:absolute;bottom:-8px;left:calc(50% - 6px);border-width:8px 6px 0 6px;border-style:solid;border-color:rgba(20,20,20,.92) transparent transparent transparent}#viewer3d-container{position:relative;width:100%;height:100%}#viewer3d-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:none;align-items:center;justify-content:center;flex-direction:column;font-size:18px;color:#fff;z-index:9999}.spinner{width:42px;height:42px;border:4px solid #ffffff;border-top-color:transparent;border-radius:50%;margin-bottom:10px;animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.report-3col-layout{--report-panel-strip-width: 26px;--report-list-panel-width: 264px;--report-details-panel-width: 290px;display:grid;grid-template-columns:var(--report-list-panel-width) minmax(0,1fr) var(--report-details-panel-width);gap:0;height:100%;width:100%;border-top:1px solid #ddd;overflow:hidden}.report-sensor-list-shell,.report-sensor-details-shell{display:grid;min-width:0;height:100%;background:#fff;overflow:hidden}.report-sensor-list-shell{grid-template-columns:var(--report-panel-strip-width) minmax(0,1fr)}.report-sensor-details-shell{grid-template-columns:minmax(0,1fr) var(--report-panel-strip-width)}.report-sensor-list{border-left:1px solid #ddd;overflow-y:auto;padding:10px;margin-top:10px;min-width:0;transition:opacity .18s ease}.report-panel-strip{display:flex;justify-content:center;align-items:stretch;background:var(--primary, #173f7a);min-width:var(--report-panel-strip-width);position:relative;z-index:2}.report-sensor-empty{padding:12px;color:#6b7280;font-size:13px;text-align:center}.report-sensor-details{border-right:1px solid #ddd;overflow-y:auto;display:flex;flex-direction:column;height:100%;min-width:0;transition:opacity .18s ease}.report-3col-layout.is-list-collapsed{grid-template-columns:var(--report-panel-strip-width) minmax(0,1fr) var(--report-details-panel-width)}.report-3col-layout.is-list-collapsed .report-sensor-list{opacity:0;overflow:hidden;pointer-events:none;border-left:none}.report-3col-layout.is-details-collapsed{grid-template-columns:var(--report-list-panel-width) minmax(0,1fr) var(--report-panel-strip-width)}.report-3col-layout.is-list-collapsed.is-details-collapsed{grid-template-columns:var(--report-panel-strip-width) minmax(0,1fr) var(--report-panel-strip-width)}.report-3col-layout.is-details-collapsed .report-sensor-details{opacity:0;overflow:hidden;pointer-events:none;border-right:none}.report-panel-toggle{width:100%;min-height:100%;height:100%;border:none;border-radius:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;background:transparent;color:#fff;cursor:pointer;padding:16px 0 12px;box-shadow:none;transition:background-color .18s ease,color .18s ease;font-size:12px}.report-panel-tab-text{writing-mode:vertical-rl;transform:rotate(180deg);color:#fff;font-weight:600;font-size:11px;letter-spacing:.6px;text-align:center;line-height:1;-webkit-user-select:none;user-select:none;white-space:nowrap}.report-panel-toggle:hover{background:#ffffff14}.report-panel-toggle:focus-visible{outline:none}.rpt-gauge-row{margin-top:12px;display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.sensor-gauge-bar{position:relative;flex:1 1 260px;padding:8px 8px 18px;font-size:11px}.sensor-gauge-bar-track{display:flex;height:18px;border-radius:999px;overflow:hidden;box-shadow:inset 0 0 0 1px #0f172a14}.sgb-seg{flex:1}.sgb-red{background:#ef4444}.sgb-amber{background:#f97316}.sgb-green{background:#22c55e}.sensor-gauge-pointer{position:absolute;top:0;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:10px solid #111827;transform:translate(-50%)}.sensor-gauge-label{position:absolute;bottom:0;color:var(--gray-700, #374151);font-size:11px}.sensor-gauge-label-min{left:0}.sensor-gauge-label-max{right:0}.sensor-gauge-label-value{left:50%;transform:translate(-50%);font-weight:600}.sgd-value{position:relative;font-size:18px;font-weight:700;color:#111827}.status-badge{padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:600}.status-critical{background:#fee2e2;color:#b91c1c}.status-warning{background:#fef9c3;color:#92400e}.status-healthy{background:#dcfce7;color:#166534}.status-unknown{background:#e5e7eb;color:#374151}.sensor-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:.75rem;margin:1rem 0;font-size:.85rem}.chart-box{margin-top:.75rem}.sensor-details-panel{display:flex;flex-direction:column;gap:14px}.sensor-values{padding:10px;border:1px solid #e5e7eb;border-radius:6px;background:#f9fafb}.sensor-chart-box{border:1px solid #e5e7eb;padding:10px;border-radius:6px;background:#fff}.range-wrap{position:relative;padding-top:26px}.range-bar{display:flex;height:14px;border-radius:8px;overflow:hidden}.seg.red{background:#dc2626}.seg.amber{background:#f59e0b}.seg.green{background:#16a34a}.range-value{font-weight:600;font-size:13px}.range-arrow{font-size:14px}.range-scale{display:flex;justify-content:space-between;font-size:12px;margin-top:4px}.sensor-inner-tabs{display:flex;gap:6px;margin:10px 0}.sensor-inner-tab{padding:6px 12px;border-radius:6px;border:1px solid #e5e7eb;cursor:pointer;background:#f9fafb}.sensor-inner-tab.active{background:#2563eb;color:#fff}.sensor-inner-content{display:none}.sensor-inner-content.active{display:block}.sensor-inner-content{padding:16px 12px}#chartTab{display:flex;flex-direction:column;gap:20px}.range-wrap{position:relative;padding-top:36px}.range-bar{display:flex;height:14px;border-radius:8px;overflow:hidden;background:#e5e7eb}.range-bar .seg{flex:1}.range-bar .red{background:#ef4444}.range-bar .amber{background:#f59e0b}.range-bar .green{background:#22c55e}.range-indicator{position:absolute;top:0;transform:translate(-50%);text-align:center;pointer-events:none}.range-value{background:#111827;color:#fff;font-size:12px;padding:3px 8px;border-radius:6px;margin-bottom:2px;white-space:nowrap}.range-arrow{font-size:14px;color:#111827;line-height:1}.status-badge{padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.status-Critical{background:#fee2e2;color:#b91c1c}.status-Warning{background:#fef3c7;color:#92400e}.status-Healthy{background:#dcfce7;color:#166534}.range-wrap{position:relative;padding-top:42px}.range-bar{display:flex;height:16px;border-radius:10px;overflow:hidden}.range-bar .seg{height:100%}.range-bar .seg.critical{background:#ef4444}.range-bar .seg.warning{background:#f59e0b}.range-bar .seg.normal{background:#22c55e}.range-indicator{position:absolute;top:0;transform:translate(-50%);text-align:center}.range-value{background:#111827;color:#fff;font-size:12px;padding:4px 8px;border-radius:6px}.range-arrow{font-size:14px;color:#111827}.range-scale{display:flex;justify-content:space-between;font-size:12px;margin-top:6px;color:#6b7280}.sensor-alert-cards{display:flex;flex-direction:column;gap:14px}.sensor-alert-card{background:#fff;padding:14px 16px;border-radius:12px;box-shadow:0 4px 10px #00000014}.sensor-alert-card.critical{background:#e74c3c1a}.sensor-alert-card.warning{background:#f39c121a}.sensor-alert-card.healthy{border-left-color:var(--success)}.alert-row{display:flex;justify-content:space-between;align-items:flex-start;padding:4px 0;gap:12px}.alert-label{font-size:12px;font-weight:600;color:#6b7280;min-width:90px}.alert-value{font-size:13px;color:#111827;text-align:right;word-break:break-word}.no-alert-card{padding:20px;font-size:13px;text-align:center;color:#6b7280;background:#f9fafb;border-radius:10px}.report-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.report-header-tabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.report-header-tabs .action-button{display:inline-flex;align-items:center;gap:6px;transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}#btnOperationalReport,#btnPredictiveReport{position:relative;background:#fff;color:var(--themeBgBtnColor, var(--primary));border:1px solid rgba(19,52,95,.18);box-shadow:0 1px 2px #0f172a0d}#btnOperationalReport:hover,#btnPredictiveReport:hover{transform:translateY(-1px);background:#f8fafc;border-color:#13345f47}#btnOperationalReport.is-active,#btnPredictiveReport.is-active{background:var(--themeBgBtnColor, var(--primary));color:#fff;border-color:var(--themeBgBtnColor, var(--primary));box-shadow:0 6px 16px #13345f2e}#btnOperationalReport.is-active i,#btnPredictiveReport.is-active i{color:#fff!important}#btnOperationalReport i{color:#ef4444}#btnPredictiveReport i{color:#22c55e}#btnIngestionApiDoc i{color:#38bdf8}.report-tab{color:#cfe8ff;font-weight:600;text-decoration:underline;cursor:pointer;font-size:12px;transition:color .25s ease,text-shadow .25s ease}.predictive-empty{height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#6b7280;text-align:center}.predictive-empty i{font-size:42px;margin-bottom:12px;color:#9ca3af}.predictive-empty h3{margin:0;font-weight:500;color:#111827}.predictive-empty p{margin-top:6px;font-size:14px}.gauge-wrap{width:100%;max-width:520px;margin:12px auto 0}.gauge-wrap canvas{width:100%!important;height:auto!important;display:block}.sensor-panel{flex:1;display:flex;flex-direction:column;height:auto;background:#fff;overflow:hidden}.sensor-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--gray-200);padding:10px}.sensor-header .sensor-name{font-size:15px;font-weight:600;color:var(--gray-800)}.sensor-sub{font-size:12px;color:var(--gray-500)}.sensor-status{padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase}.sensor-status.critical{background:#fdecea;color:var(--danger)}.sensor-status.warning{background:#fff4e0;color:var(--warning)}.sensor-status.healthy{background:#eaf9f0;color:var(--success)}.sensor-tabs button{padding:6px 12px;border:none;border-radius:6px;background:#f3f5f9;font-size:13px;cursor:pointer;color:#1f2937;min-width:72px;text-align:center}.sensor-tabs button.active{background:var(--primary);color:#fff}.sensor-meta{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--gray-200);font-size:12px;color:#374151}.sensor-meta-box{border:1px solid var(--gray-200);text-align:center;background:var(--gray-50)}.sensor-meta-box span{display:block;font-size:11px;color:var(--gray-500);margin-bottom:2px}.sensor-meta-box strong{display:block;font-size:14px;font-weight:600;color:var(--gray-800)}.sensor-message.critical{background:#fff1f2;color:#9f1239}.sensor-message.warning{background:#fff7ed;color:#92400e}.sensor-message.healthy{background:#f0fdf4;color:#166534}#reportSensorList{list-style:none;padding:0;margin:0}.sensor-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:46px;padding:5px 8px;cursor:pointer;border-left:3px solid transparent;border-bottom:1px solid var(--gray-200)}.sensor-item:hover{background:var(--gray-50)}.sensor-item.selected{background:#13345f14;border-left-color:var(--primary);padding-left:11px}.sensor-index-pill{width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px;font-weight:800;color:#fff;box-shadow:inset 0 0 0 1px #ffffff40}.sensor-row-main{min-width:0}.sensor-row-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;color:var(--gray-800)}.sensor-badge-row{display:inline-flex;align-items:center;gap:0;justify-self:end;flex-shrink:0}.sensor-badge{min-width:34px;height:22px;padding:0 7px;border-radius:999px;border:1px solid currentColor;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:#ffffffc7}.gauge-wrap{width:100%;display:flex;align-items:center;justify-content:center}.gauge-wrap canvas{max-width:100%;max-height:100%}.sensor-tabs{display:flex;justify-content:center;gap:6px;padding:10px 16px;border-bottom:1px solid var(--gray-200)}.sensor-content{padding:6px 10px;height:100%}.sensor-message{padding:6px 10px 15px;font-size:12px;border-top:1px solid var(--gray-200);flex:1;height:auto;display:block}.sensor-list{list-style:none;margin:0;padding:0}.status-dot{width:10px;height:10px;border-radius:50%;margin-top:4px;flex-shrink:0}.sensor-name{font-size:14px;font-weight:500;color:var(--gray-800);line-height:1.2}.sensor-status{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;background:none!important;padding:0!important}.sensor-item.critical .status-dot,.sensor-item.critical .sensor-status{color:var(--danger);background-color:var(--danger)}.sensor-item.warning .status-dot,.sensor-item.warning .sensor-status{color:var(--warning);background-color:var(--warning)}.sensor-item.normal .status-dot,.sensor-item.normal .sensor-status{color:var(--success);background-color:var(--success)}.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.status-dot.dot-healthy{background:#22c55e}.status-dot.dot-warning{background:#f59e0b}.status-dot.dot-critical{background:#ef4444}.status-dot.dot-nodata{background:#9ca3af}.sensor-lastseen{display:block;font-size:12px;opacity:.75;margin-top:2px}.portfolio-overview-grid{display:grid;grid-template-columns:2.5fr 1fr;gap:1.5rem;align-items:center}.portfolio-status-bar-container{width:100%;margin-top:1rem}.portfolio-status-bar{display:flex;height:18px;width:100%;background:#eee;border-radius:6px;overflow:hidden;margin-bottom:.75rem}.bar-segment{height:100%}.portfolio-status-section{margin-top:1rem}.portfolio-status-summary{padding:10px;border-width:0px;font-size:small}.portfolio-status-label{font-size:.9rem;margin-bottom:.4rem}.portfolio-status-bar{display:flex;height:16px;width:100%;background:#eee;border-radius:6px;overflow:hidden;margin-bottom:.6rem}.bar-segment.operational{background:#2ecc71}.bar-segment.degraded{background:#f1c40f}.bar-segment.not-operational{background:#e74c3c}.bar-segment.no-data{background:#bdc3c7}.portfolio-status-legend{display:flex;flex-wrap:wrap;gap:1.25rem;font-size:.85rem}.summary-card-icon.omitted{background:#9ca3af;color:#fff}#portfolioSection .portfolio-overview-grid{display:grid;grid-template-columns:1fr 220px;gap:10px;align-items:center}#portfolioSection .portfolio-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}#portfolioSection .portfolio-donut-container{width:140px;height:160px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:15px;padding-left:20px}#portfolioSection .donut-caption{margin-top:.25rem;font-size:.75rem;text-align:center;color:#666;line-height:1.2}#portfolioSection .portfolio-donut-wrapper canvas{width:100px!important;height:100px!important}#portfolioSection .summary-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}#portfolioSection .summary-card{padding:.6rem .75rem;min-height:88px;border-radius:12px}#portfolioSection .summary-card-header{gap:.4rem;margin-bottom:.25rem}#portfolioSection .summary-card-icon{width:28px;height:28px;border-radius:8px}#portfolioSection .summary-card-icon i{font-size:14px}#portfolioSection .summary-card-title{font-size:.85rem;font-weight:600}#portfolioSection .stat{font-size:1.2rem;font-weight:600;margin-top:.2rem}.portfolio-loader{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f121ebf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:9999}.portfolio-loader.hidden{display:none}@media(max-width:1100px){.portfolio-overview-grid{grid-template-columns:1fr}.portfolio-donut-container{margin-top:1.5rem}}@media(max-width:1024px){.portfolio-overview-grid{grid-template-columns:1fr}}#predictive-report-section.report-container,#predictive-report-section{width:100%!important;max-width:100%!important;margin:0!important;padding:12px 16px!important}#predictive-report-section *{box-sizing:border-box}#predictive-report-section .report-section{width:100%!important;max-width:100%!important;display:block!important;justify-content:unset!important;padding:12px!important}#predictive-report-section .predictive-insights{width:100%!important;max-width:100%!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}@media(max-width:1100px){#predictive-report-section .predictive-insights{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:700px){#predictive-report-section .predictive-insights{grid-template-columns:1fr!important}}#predictive-report-section table,#predictive-report-section .data-table{width:100%!important;max-width:100%!important}@media(max-width:900px){#predictive-report-section .sensor-table-wrap{overflow-x:auto!important}#predictive-report-section .sensor-table-wrap table{min-width:920px}}html.modal-open,body.modal-open{overflow:hidden}#ingestionApiModal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;padding:12px;box-sizing:border-box}#ingestionApiModal.open{display:flex;align-items:center;justify-content:center}#ingestionApiModal .app-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a38}#ingestionApiModal .app-modal-panel{position:relative;width:min(1240px,94vw);height:min(760px,88vh);background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 20px 70px #0003;overflow:hidden;display:flex;flex-direction:column;font-size:14px;color:#0f172a}#ingestionApiModal .ing-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #e5e7eb;gap:10px}#ingestionApiModal .ing-header h3{margin:0;font-size:16px;font-weight:600;color:#0f172a}#ingestionApiModal .ing-actions{display:flex;align-items:center;gap:8px}#ingestionApiModal .ing-actions .close-modal{position:static;top:auto;right:auto;font-size:22px;line-height:1;color:#6b7280;cursor:pointer;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity .16s ease,color .16s ease}#ingestionApiModal .ing-actions .close-modal:hover{color:#13345f}#ingestionApiModal .ing-header:hover .ing-actions .close-modal{opacity:1}#ingestionApiModal .ing-actions .close-modal:focus-visible{opacity:1;outline:2px solid #93c5fd;outline-offset:2px;border-radius:6px}#ingestionApiModal .ing-btn{height:36px;padding:0 12px;border-radius:10px;border:1px solid #cbd5e1;background:#13345f;font-weight:600;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .18s ease,border-color .18s ease,transform .12s ease}#ingestionApiModal .ing-btn:hover{background:#0f2f57;border-color:#0f2f57}#ingestionApiModal .ing-btn:active{transform:translateY(1px)}#ingestionApiModal .ing-btn.icon{width:36px;padding:0;font-size:15px;line-height:1}#ingestionApiModal .ing-copy-icon-btn i{pointer-events:none}#ingestionApiModal .ing-btn.copied{background:#16a34a!important;border-color:#15803d!important}#ingestionApiModal .ing-stats{margin:10px 12px 0;border:1px solid #bae6fd;border-radius:12px;background:#e0f2fe;padding:8px 10px;display:flex;align-items:center;gap:12px}#ingestionApiModal .ing-stats-kpis{display:flex;align-items:center;gap:6px;flex-wrap:wrap}#ingestionApiModal .ing-stat-chip{display:flex;align-items:center;gap:6px;padding:6px 8px;min-height:42px;border:1px solid rgba(15,47,87,.12);border-radius:8px;background:#ffffffa6;white-space:nowrap;box-sizing:border-box}#ingestionApiModal .ing-stat-label{font-size:13px;font-weight:600;color:#0f172a;opacity:1;text-transform:none}#ingestionApiModal .ing-stat-value{font-size:13px;line-height:1.1;font-weight:700;color:#0f172a}#ingestionApiModal .ing-api-block{display:flex;align-items:center;justify-content:flex-start;gap:8px;border:1px solid rgba(15,47,87,.12);background:#ffffffb8;border-radius:8px;padding:6px 8px;margin-left:auto;min-width:0;flex:1;min-height:42px;box-sizing:border-box}#ingestionApiModal .ing-api-text{min-width:0;flex:1;display:flex;align-items:center;gap:6px}#ingestionApiModal #ingApiEndpoint{display:inline-block;max-width:min(48vw,760px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:none;border-radius:0;padding:0;background:transparent;color:#0f172a;font-size:13px;font-family:inherit;cursor:copy;-webkit-user-select:all;user-select:all}#ingestionApiModal .ing-copy-icon-btn{width:26px;height:26px;min-width:26px;font-size:11px;border-radius:8px;border:none!important;background:transparent!important;box-shadow:none;color:#13345f;padding:0}#ingestionApiModal .ing-card-header .ing-copy-icon-btn{color:#fff}#ingestionApiModal .ing-body{flex:1;min-height:0;padding:10px;display:grid;grid-template-columns:360px 420px 1fr;gap:10px}#ingestionApiModal .ing-card{border:1px solid #e5e7eb;border-radius:12px;background:#fff;min-height:0;overflow:hidden;display:flex;flex-direction:column}#ingestionApiModal .ing-card h4{margin:0;padding:13px 14px;font-size:13px;font-weight:600;border-bottom:1px solid #0f2d52;color:#fff;background:#13345f}#ingestionApiModal .ing-head-icon{margin-right:8px;font-size:12px;vertical-align:middle}#ingestionApiModal .ing-head-icon-sensors{color:#22c55e}#ingestionApiModal .ing-head-icon-details{color:#f59e0b}#ingestionApiModal .ing-head-icon-api{color:#a78bfa}#ingestionApiModal #ingDetailTitle:before{content:"";font-family:"Font Awesome 6 Free";font-weight:900;margin-right:8px;color:#f59e0b}#ingestionApiModal #ingSensorList{flex:1;min-height:0;overflow:auto;padding:8px 8px 12px}#ingestionApiModal .ing-empty{padding:14px;color:#000;background:#fff;border:1px dashed rgba(255,255,255,.35);border-radius:10px;font-size:13px;text-align:center}#ingestionApiModal .ing-sensor-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 10px;border-radius:12px;cursor:pointer;font-size:13px;font-weight:500;color:#0f172a;border:1px solid transparent;background:#fff;text-align:left;font:inherit;transition:all .16s ease}#ingestionApiModal .ing-sensor-name{display:flex;align-items:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#ingestionApiModal .ing-sensor-item:hover{background:#f8fafc;border-color:#e5e7eb}#ingestionApiModal .ing-sensor-item.active{background:#e0f2fe;border-color:#bae6fd;box-shadow:0 0 0 2px #bae6fd8c inset}#ingestionApiModal #ingDetailFreq{padding:14px 16px 6px;border-bottom:1px solid #eef2f7}#ingestionApiModal .ing-freq-text{font-size:13px;font-weight:500;padding:0;border:none;background:transparent;color:#334155}#ingestionApiModal #ingDetailTitle{font-weight:500}#ingestionApiModal #ingDetailFreq{padding:14px 16px 6px;font-size:13px;font-weight:500;color:#0f172a}#ingestionApiModal #ingDetailTable{flex:1;min-height:0;overflow:auto;padding:4px 12px 12px}#ingestionApiModal .ing-line{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #eef2f7;font-size:13px;font-weight:500;color:#0f172a}#ingestionApiModal .ing-line:last-child{border-bottom:none}#ingestionApiModal .ing-line-key{display:flex;align-items:center;gap:6px;color:#3b5776;font-weight:600}#ingestionApiModal .ing-line-key-icon{font-size:11px}#ingestionApiModal .ing-line:nth-child(1) .ing-line-key-icon{color:#0ea5e9}#ingestionApiModal .ing-line:nth-child(2) .ing-line-key-icon{color:#f59e0b}#ingestionApiModal .ing-line:nth-child(3) .ing-line-key-icon{color:#ef4444}#ingestionApiModal .ing-line:nth-child(4) .ing-line-key-icon{color:#10b981}#ingestionApiModal .ing-line:nth-child(5) .ing-line-key-icon{color:#8b5cf6}#ingestionApiModal .ing-line:nth-child(6) .ing-line-key-icon{color:#14b8a6}#ingestionApiModal .ing-line:nth-child(7) .ing-line-key-icon{color:#6366f1}#ingestionApiModal .ing-line-val{color:#0f172a;font-weight:500}#ingestionApiModal .ing-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-right:6px;background:#13345f;border-bottom:1px solid #0f2d52}#ingestionApiModal .ing-card-header h4{margin:0;font-size:13px;font-weight:500;color:#fff}#ingestionApiModal #ingPayloadPre{width:100%;height:100%;margin:0;background:#f8fafc;color:#0f172a;border-radius:12px;padding:12px;overflow:auto;font-size:13px;line-height:1.5;border:1px solid #e5e7eb;font-family:inherit;cursor:copy}#ingestionApiModal #ingPayloadPre::-webkit-scrollbar{width:12px}#ingestionApiModal #ingPayloadPre::-webkit-scrollbar-thumb{background:#ffffff38;border-radius:999px}#ingestionApiModal .ing-footer{padding:10px 12px;display:flex;justify-content:flex-end}#ingestionApiModal .ing-sensor-item.active{background:#e0f2fe;border-color:#bae6fd}@media(max-width:980px){#ingestionApiModal .ing-body{grid-template-columns:1fr}#ingestionApiModal .ing-stats{flex-direction:column;align-items:stretch;gap:8px}#ingestionApiModal .ing-stats-kpis{gap:8px;align-items:start}#ingestionApiModal .ing-api-block{margin-left:0}#ingestionApiModal .ing-api-text{width:100%;justify-content:flex-start}#ingestionApiModal #ingApiEndpoint{font-size:14px;max-width:100%}}.pager{display:flex;align-items:center;justify-content:center;gap:14px;margin:14px 0;width:100%}.action-button:disabled{opacity:.45;cursor:not-allowed}.pager-mid{display:flex;align-items:center;gap:10px;color:#000;font-size:14px;font-weight:600}.report-3d-viewer{position:relative}.report-3d-controls{position:absolute;top:10px;right:10px;display:flex;align-items:center;justify-content:flex-end;z-index:20;max-width:calc(100% - 20px)}.report-toolbar-pill{display:flex;align-items:center;gap:10px;padding:6px 8px 6px 12px;border-radius:999px;background:#0f172a6b;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 10px 24px #00000047;max-width:100%}.report-toolbar-pill-content{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.report-toolbar-pill.is-collapsed .report-toolbar-pill-content{display:none}.report-toolbar-pill-toggle{width:28px;height:28px;border:none;border-radius:999px;background:#3b82f62e;color:#fff;font-size:16px;line-height:1;cursor:pointer;flex:0 0 auto}.report-toolbar-pill-toggle:hover{background:#3b82f652}.report-toolbar-section{display:flex;align-items:center;gap:10px;padding:0 10px;min-height:36px}.report-toolbar-section+.report-toolbar-section{border-left:1px solid rgba(255,255,255,.12)}.report-toolbar-label{color:#cbd5e1;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.report-toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.report-inline-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.report-inline-toggle{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;color:#c7cbe4;cursor:pointer;padding:0 2px}.report-inline-toggle input[type=checkbox]{width:14px;height:14px;accent-color:#3b82f6;cursor:pointer}.report-inline-slice{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.report-slice-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.report-toolbar-actions--view .view-btn{width:32px;height:32px}.view-btn.report-slice-btn{width:auto;min-width:34px;height:34px;padding:0 12px;border-radius:10px;font-size:12px;font-weight:700}.report-slice-actions .report-slice-btn:not(#reportClipFlipBtn):not(.report-clip-value-btn){padding:0}.view-btn.report-clip-value-btn{min-width:58px}#reportClipFlipBtn.view-btn.report-slice-btn{min-width:52px}.report-inline-slice.is-disabled .report-slice-actions{opacity:1}.viewer-switch{position:relative;display:inline-block;width:46px;height:24px}.viewer-switch input{opacity:0;width:0;height:0}.viewer-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#64748b;border-radius:22px;transition:.25s}.viewer-slider:before{content:"";position:absolute;height:16px;width:16px;left:4px;top:4px;background:#fff;border-radius:50%;transition:.25s}.viewer-switch input:checked+.viewer-slider{background:#22c55e}.viewer-switch input:checked+.viewer-slider:before{transform:translate(22px)}.view-btn{width:34px;height:34px;padding:0;border-radius:50%;border:none;background:var(--themeBgBtnColor);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.view-btn i{font-size:14px}.view-btn:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 3px 8px #00000040}.view-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.view-btn:disabled:hover{background:var(--themeBgBtnColor);transform:none;box-shadow:none}.view-btn:active{transform:scale(.92)}.toggle-btn.active{background:#3b82f6}.toggle-btn.active i{color:#fff}:root{--app-header-height: 55px}.map-container{width:100%;height:100%;min-height:0;overflow:hidden}.map-floating-title{position:absolute;top:20px;left:20px;padding:6px 12px;background:#1a1033d9;color:#eaf0ff;font-size:14px;font-weight:600;border-radius:8px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 12px #00000040;z-index:25}#mapSection{position:fixed;top:var(--app-header-height);left:0;right:0;bottom:0;height:auto;width:100%;padding:0;margin:0;z-index:5}#mapSidebar{position:absolute;top:15px;left:20px;width:240px;background:var(--themeBgColor);border-radius:10px;box-shadow:0 4px 12px #00000026;padding:0;overflow:hidden;z-index:20}#mapSidebar .form-header{padding:8px 12px;background:var(--header-gradient);color:#fff;font-size:14px;font-weight:600;margin:0;border-radius:10px 10px 0 0}#mapSidebar .panel-body{padding:8px 12px;background:#f1f3f7}#mapSidebar select{width:100%;padding:6px 8px;font-size:13px}.mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0 / 0)}#mapSection #mapBand{position:absolute;top:10px;left:50%;transform:translate(-50%);--map-band-toggle-height: 32px;--map-band-hidden-offset: 6px;display:flex;align-items:center;gap:26px;padding:5px 10px;background:#1f2937;border-radius:14px;color:#fff;box-shadow:0 12px 30px #00000073;z-index:20;transition:transform .24s ease;overflow:visible}#mapSection #mapBand.is-collapsed{transform:translate(-50%,calc(-100% - var(--map-band-hidden-offset)))}#mapSection #mapBand .mapBandToggle{position:absolute;left:50%;bottom:calc(-1 * var(--map-band-toggle-height));width:132px;height:var(--map-band-toggle-height);display:flex;align-items:center;justify-content:center;border:none;border-radius:0 0 18px 18px;background:#334155;color:#e5e7eb;cursor:pointer;transform:translate(-50%);transition:background .2s ease,transform .2s ease;z-index:22}#mapSection #mapBand .mapBandToggle:hover{background:#475569;transform:translate(-50%) scale(1.03)}#mapSection #mapBand .mapBandToggle i{font-size:24px}#mapSection #mapBand>.section{display:flex;align-items:center;gap:14px;padding-right:24px;border-right:1px solid rgba(255,255,255,.28);box-shadow:1px 0 #00000059}#mapSection #mapBand>.section:last-child{border-right:none;box-shadow:none;padding-right:0}#mapSection #mapBand .label{font-size:12px;opacity:.9;font-weight:400;color:#fff}#mapSection #mapBand .value{display:flex;align-items:center;gap:10px}#mapSection #mapBand .bandSelect{background:#374151;border:none;color:#fff;padding:8px 14px;border-radius:8px;outline:none}#mapSection #mapBand .iconBtn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#334155;cursor:pointer;transition:.25s;border:none;box-shadow:none;color:inherit}#mapSection #mapBand .iconBtn:hover{background:#475569;transform:translateY(-2px)}#mapSection #mapBand .iconBtn i{font-size:15px;line-height:1}#mapSection #mapBand .iconBtn.refresh{color:#60a5fa}#mapSection #mapBand .iconBtn.time{color:#fbbf24}#mapSection #mapBand .iconBtn.location{color:#f87171}#mapSection #mapBand .iconBtn.analytics{color:#34d399}#mapSection #mapBand .iconBtn.alerts{color:#fb7185;position:relative}#mapSection #mapBand .toggle{display:inline-flex;align-items:center;gap:10px}#mapSection #mapBand #refreshSwitch.switch{width:44px;height:22px;background:#4b5563;border-radius:999px;position:relative;cursor:pointer}#mapSection #mapBand #refreshSwitch.switch:after{content:"";width:18px;height:18px;background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;transition:.2s}#mapSection #mapBand #refreshSwitch.switch.on{background:#16a34a}#mapSection #mapBand #refreshSwitch.switch.on:after{left:24px}#mapSection #mapBand .opsStatus{display:flex;align-items:center;gap:6px}#mapSection #mapBand .opsStatus .pill{padding:6px 14px;border-radius:999px;font-weight:600;font-size:12px}#mapSection #mapBand .pill.ok{background:#16a34a;color:#fff}#mapSection #mapBand .pill.warn{background:#f59e0b;color:#111827}#mapSection #mapBand .pill.crit{background:#dc2626;color:#fff}#mapSection #mapBand .dropdown{position:absolute;top:100%;left:0;margin-top:10px;min-width:200px;background:#f3f5f9;border:1px solid rgba(15,23,42,.1);border-radius:16px;box-shadow:0 24px 60px #02061747;padding:0;display:none;color:#0f172a;overflow:hidden;z-index:1000}#mapSection #mapBand .dropdown.open{display:block}#mapSection #mapBand .dropdownHeader{padding:14px 18px;font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;background:#e4e7ee;border-bottom:1px solid rgba(15,23,42,.08)}#mapSection #mapBand .dropdownBody{padding:10px;display:flex;flex-direction:column}#mapSection #mapBand .dropdown .item{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:6px 10px;min-height:42px;flex-wrap:nowrap;border-radius:12px;cursor:pointer;transition:.15s ease;position:relative;white-space:nowrap;background:#f7f8fb}#mapSection #mapBand .dropdown .item:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:4px;border-radius:0 4px 4px 0;background:var(--item-accent, #94a3b8)}#mapSection #mapBand .dropdown .item.is-selected{background:#e6ebf3}#mapSection #mapBand .dropdown .item:hover{background:#e8edf5}#mapSection #mapBand .dropdown .item .itemLabel{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;line-height:1.2}#mapSection #mapBand .dropdown .item .itemIcon{width:18px;min-width:18px;text-align:center;color:var(--item-accent, #475569);opacity:1}#mapSection #mapBand .countBadge{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;align-self:center;margin-left:auto;flex-shrink:0;font-weight:700;font-size:12px;line-height:1;border-radius:999px;background:#e6ebf2;color:#334155}#mapSection #mapBand .countBadge.crit{background:#fee2e2;color:#991b1b}#mapSection #mapBand .countBadge.warn{background:#fef3c7;color:#92400e}#mapSection #mapBand .countBadge.ok{background:#fff;color:#075985}#mapSection #mapBand .checkBadge{background:transparent;color:#0f766e;width:24px;height:24px;font-size:20px;font-weight:700}#mapSection #mapBand .tone-critical{--item-accent:#dc2626}#mapSection #mapBand .tone-warn{--item-accent:#d97706}#mapSection #mapBand .tone-live{--item-accent:#16a34a}#mapSection #mapBand .tone-info{--item-accent:#0284c7}#mapSection #mapBand .tone-muted{--item-accent:#64748b}#mapSection #mapBand .tone-neutral{--item-accent:#94a3b8}#mapSection #mapBand .gps-live .itemIcon{color:#16a34a}#mapSection #mapBand .gps-delayed .itemIcon{color:#d97706}#mapSection #mapBand .gps-stale .itemIcon{color:#475569}#mapSection #mapBand .gps-nolocation .itemIcon{color:#64748b}#mapSection #mapBand .gps-withlocation .itemIcon{color:#0284c7}#mapSection #mapBand #dd-location .item,#mapSection #mapBand #dd-ops .item{display:flex;flex-direction:row;align-items:center;flex-wrap:nowrap}@media(max-width:900px){#mapSection #mapBand{left:12px;right:12px;transform:none;width:auto;overflow-x:auto;white-space:nowrap}#mapSection #mapBand.is-collapsed{transform:translateY(calc(-100% - var(--map-band-hidden-offset)))}#mapSection #mapBand .mapBandToggle{left:50%;right:auto}}.map-location-card{position:fixed;left:50%;bottom:14px;transform:translate(-50%);width:min(460px,calc(100% - 24px));background:#fff;border-radius:14px;padding:12px 48px 12px 14px;box-shadow:0 10px 26px #00000038;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;z-index:1000;animation:slideUp .22s ease}.map-location-card.hidden{display:none}.map-location-card .close-btn{position:absolute;top:12px;right:14px;line-height:1;border:none;background:transparent;font-size:18px;cursor:pointer;color:#666}.location-header{display:flex;gap:12px;align-items:flex-start}.location-text{flex:1;min-width:0}.location-title{font-size:15px;font-weight:600;color:#111;margin-bottom:2px}.location-address{font-size:13px;color:#555;margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid #e4e9f2;line-height:1.35}.location-last-seen{font-size:12px;color:#666;margin-top:2px}.location-coords{font-size:12px;color:#1a73e8;margin-top:4px;white-space:nowrap}.location-actions{flex-shrink:0;display:flex;flex-direction:column;gap:6px;margin-top:2px;margin-right:4px}.location-actions button{background:#eef5ff;border:1px solid #cfe0ff;color:#004aad;font-size:12px;padding:8px 12px;border-radius:10px;cursor:pointer;white-space:nowrap}.location-actions button:hover{background:#dfeeff}#resetMapViewBtn{display:none}:root{--header-gradient: linear-gradient(90deg, #1A1033 0%, #1E1F6A 100%);--button-gradient: linear-gradient(90deg, #0B3A80 0%, #0E4C9B 100%)}h1{font-size:22px;margin-bottom:15px}.dashboard-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;min-height:240px}.dashboard-cell{display:flex;flex-direction:column;height:100%}.health-panel{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:16px;padding:16px 18px;margin-bottom:12px;box-shadow:0 1px 4px #00000014}.health-text{display:flex;flex-direction:column;gap:6px}.health-title{font-size:14px;color:#666}.health-value{font-size:42px;font-weight:700}.health-confidence{font-size:14px;color:#555}.health-gauge{width:90px;height:90px}.health-gauge canvas{width:100%!important;height:100%!important}.report-section{display:flex;justify-content:center;background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014}.predictive-insights{display:grid;grid-template-columns:repeat(3,410px);justify-items:center}.kpi-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.kpi-predictive-card{border-radius:12px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;justify-self:center;width:100%;height:90px;border:1px solid rgba(120,170,220,.35);background-clip:padding-box;box-shadow:0 1px 2px #0f172a14,0 4px 10px #0f172a0f;transition:box-shadow .25s ease,transform .2s ease,background .25s ease}.kpi-predictive-card.predictive{background:linear-gradient(135deg,#d1e8fff2,#b4d7fabf)}.kpi-title{font-size:12px;color:#666}.kpi-value{font-size:20px;font-weight:600;margin-top:4px}.report-container{max-width:1400px;margin:0 auto;display:none;flex-direction:column;gap:16px}.report-section.fill{display:flex;flex-direction:column;height:100%}.section-header{margin:0 0 10px;font-size:16px;color:#000}.section-body{font-size:14px;line-height:1.45;color:#444}.section-body.scroll{flex:1;overflow-y:auto}.status-ok{color:#2ecc71;font-weight:700}.status-warning{color:#f39c12;font-weight:700}.status-critical{color:#e74c3c;font-weight:700}.severity-low{color:#2ecc71;font-weight:700}.severity-medium{color:#f1c40f;font-weight:700}.severity-high{color:#e74c3c;font-weight:700}.details-row td{background:#f7f9fc!important;border-top:none!important;padding:0!important}.details-box{width:100%;background:#fff;padding:16px 20px;border:1px solid #e1e5ea;box-shadow:0 2px 4px #0000000d}.details-box strong{display:block;margin-bottom:12px;font-size:15px}.details-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px 16px}.detail-item{background:linear-gradient(135deg,#d1e8fff2,#b4d7fabf);padding:8px 10px;border-radius:8px;border:1px solid #e3e7eb;font-size:13px}.detail-label{font-weight:600;color:#444}.widget-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.chart-wrapper{width:100%;height:180px}.chart-wrapper canvas{width:100%!important;height:100%!important}.small-note{font-size:11px;color:#777;margin-top:8px}.info-icon{margin-left:6px;cursor:pointer;font-size:13px;color:#666}.info-icon:hover{color:#000}.hero-row{display:grid;grid-template-columns:1fr;gap:16px;width:100%}.health-gauge-wrapper{width:80px;height:80px;grid-template-columns:1fr 1fr;margin-left:7px}#healthGauge{width:100%;height:100%;display:block}.kpi-predictive-card.health-kpi{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;justify-items:center;text-align:center}.hero-kpis{width:100%;display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;align-items:stretch;height:95%;padding-top:10px;padding-left:10px;padding-right:10px}.hero-summary{background:#fff;border-radius:12px;padding:14px;overflow:auto;font-size:14px}.details-btn{background:var(--themeBgBtnColor);color:#fff;border:none;padding:8px 14px;border-radius:8px;cursor:pointer}.predictive-loader{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f121ebf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:9999}.predictive-loader.hidden{display:none}.loader-card{background:#f1f3f5;border-radius:14px;padding:28px 36px;text-align:center;width:340px;box-shadow:0 25px 60px #00000059}.loader-ring{width:52px;height:52px;margin:0 auto 18px;border-radius:50%;border:4px solid #dfe4ee;border-top-color:#3b82f6;animation:spin 1.1s linear infinite}.loader-title{font-size:15px;font-weight:600;color:#1f2937;margin-bottom:6px}.loader-sub{font-size:13px;color:#6b7280}@keyframes spin{to{transform:rotate(360deg)}}.risk-context{background:linear-gradient(135deg,#d1e8ff99,#b4d7fa73);border-radius:10px;padding:12px 16px;margin:8px 10px 4px;box-shadow:0 1px 3px #0000000f}.risk-context.hidden{display:none}.risk-context-header{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:#1f2937}.risk-badge{padding:2px 8px;border-radius:10px;font-size:11px;text-transform:uppercase;font-weight:600}.risk-badge.high{background:#fee2e2;color:#991b1b}.risk-badge.medium{background:#fef3c7;color:#92400e}.risk-badge.low{background:#dcfce7;color:#166534}.risk-context-body{margin-top:6px;font-size:12px;color:#334155}.risk-context-note{display:block;margin-top:4px;font-size:12px;color:#64748b}tr.risk-focus{background:#fefce8}tr.risk-focus td{transition:background .2s ease}td.risk-emphasis{font-weight:600;color:#92400e}tr.risk-focus-secondary{background:#fefce8;opacity:.6}
