:root{--primary-color:var(--p-primary-color);--primary-contrast-color:var(--p-primary-contrast-color);--text-color:var(--p-text-color);--text-color-secondary:var(--p-text-muted-color);--surface-border:var(--p-content-border-color);--surface-card:var(--p-content-background);--surface-hover:var(--p-content-hover-background);--surface-overlay:var(--p-overlay-popover-background);--transition-duration:var(--p-transition-duration);--maskbg:var(--p-mask-background);--content-border-radius:var(--p-content-border-radius);--layout-section-transition-duration:0.2s;--element-transition-duration:var(--p-transition-duration);--focus-ring-width:var(--p-focus-ring-width);--focus-ring-style:var(--p-focus-ring-style);--focus-ring-color:var(--p-focus-ring-color);--focus-ring-offset:var(--p-focus-ring-offset);--focus-ring-shadow:var(--p-focus-ring-shadow);--surface-ground:var(--p-surface-100);--code-background:var(--p-surface-900);--code-color:var(--p-surface-200)}:root[class*=app-dark]{--surface-ground:var(--p-surface-950);--code-background:var(--p-surface-800);--code-color:var(--p-surface-100)}.preloader{background:#edf1f5;height:100%;position:fixed;width:100%;z-index:999999}.preloader-content{border:0 solid transparent;border-radius:50%;height:150px;left:calc(50vw - 75px);position:absolute;top:calc(50vh - 75px);width:150px}.preloader-content:after,.preloader-content:before{animation:loader 2s linear infinite;border:1em solid var(--primary-color);border-radius:50%;content:"";height:inherit;left:0;opacity:0;position:absolute;top:0;width:inherit}.preloader-content:before{animation-delay:.5s}@keyframes loader{0%{opacity:0;transform:scale(0)}50%{opacity:1}to{opacity:0;transform:scale(1)}}html{font-size:14px;height:100%;line-height:1.2}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--surface-ground);color:var(--text-color);font-family:Lato,sans-serif;margin:0;min-height:100%;padding:0}a{text-decoration:none}.layout-wrapper{min-height:100vh}.layout-main-container{display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;padding:6rem 2rem 0;transition:margin-left var(--layout-section-transition-duration)}.layout-main{flex:1 1 auto;padding-bottom:2rem}.layout-topbar{align-items:center;background-color:var(--surface-card);display:flex;height:4rem;left:0;padding:0 2rem;position:fixed;top:0;transition:left var(--layout-section-transition-duration);width:100%;z-index:997}.layout-topbar .layout-topbar-logo-container{align-items:center;display:flex;width:20rem}.layout-topbar .layout-topbar-logo{align-items:center;border-radius:var(--content-border-radius);color:var(--text-color);display:inline-flex;font-size:1.5rem;font-weight:500;gap:.5rem}.layout-topbar .layout-topbar-logo svg{width:3rem}.layout-topbar .layout-topbar-logo:focus-visible{box-shadow:var(--focus-ring-shadow);outline-color:var(--focus-ring-color);outline-offset:var(--focus-ring-offset);outline-style:var(--focus-ring-style);outline-width:var(--focus-ring-width);transition:box-shadow var(--transition-duration),outline-color var(--transition-duration)}.layout-topbar .layout-topbar-action{align-items:center;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:none;border-radius:50%;color:var(--text-color);cursor:pointer;display:inline-flex;font:inherit;height:2.5rem;justify-content:center;transition:background-color var(--element-transition-duration);width:2.5rem}.layout-topbar .layout-topbar-action:hover{background-color:var(--surface-hover)}.layout-topbar .layout-topbar-action:focus-visible{box-shadow:var(--focus-ring-shadow);outline-color:var(--focus-ring-color);outline-offset:var(--focus-ring-offset);outline-style:var(--focus-ring-style);outline-width:var(--focus-ring-width);transition:box-shadow var(--transition-duration),outline-color var(--transition-duration)}.layout-topbar .layout-topbar-action i{font-size:1.25rem}.layout-topbar .layout-topbar-action span{display:none;font-size:1rem}.layout-topbar .layout-topbar-action.layout-topbar-action-highlight{background-color:var(--primary-color);color:var(--primary-contrast-color)}.layout-topbar .layout-menu-button{margin-right:.5rem}.layout-topbar .layout-topbar-menu-button{display:none}.layout-topbar .layout-topbar-actions{display:flex;gap:1rem;margin-left:auto}.layout-topbar .layout-config-menu,.layout-topbar .layout-topbar-menu-content{display:flex;gap:1rem}@media (max-width:991px){.layout-topbar{padding:0 2rem}.layout-topbar .layout-topbar-logo-container{width:auto}.layout-topbar .layout-menu-button{margin-left:0;margin-right:.5rem}.layout-topbar .layout-topbar-menu-button{display:inline-flex}.layout-topbar .layout-topbar-menu{background-color:var(--surface-overlay);border:1px solid var(--surface-border);border-radius:var(--content-border-radius);box-shadow:0 3px 5px rgba(0,0,0,.02),0 0 2px rgba(0,0,0,.05),0 1px 4px rgba(0,0,0,.08);min-width:15rem;padding:1rem;position:absolute;right:2rem;top:4rem;transform-origin:top}.layout-topbar .layout-topbar-menu .layout-topbar-menu-content{gap:.5rem}.layout-topbar .layout-topbar-menu .layout-topbar-action{border-radius:var(--content-border-radius);display:flex;height:auto;justify-content:flex-start;padding:.5rem 1rem;width:100%}.layout-topbar .layout-topbar-menu .layout-topbar-action i{font-size:1rem;margin-right:.5rem}.layout-topbar .layout-topbar-menu .layout-topbar-action span{display:block;font-weight:medium}.layout-topbar .layout-topbar-menu-content{flex-direction:column}}.config-panel .config-panel-label{color:var(--text-secondary-color);font-size:.875rem;font-weight:600;line-height:1}.config-panel .config-panel-colors>div{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;padding-top:.5rem}.config-panel .config-panel-colors>div button{border:none;border-radius:50%;cursor:pointer;height:1.25rem;outline-color:transparent;outline-offset:1px;outline-style:solid;outline-width:2px;padding:0;width:1.25rem}.config-panel .config-panel-colors>div button.active-color{outline-color:var(--primary-color)}.config-panel .config-panel-settings{display:flex;flex-direction:column;gap:.5rem}.layout-sidebar{background-color:var(--surface-overlay);border-radius:var(--content-border-radius);height:calc(100vh - 8rem);left:2rem;overflow-y:auto;padding:.5rem 1.5rem;position:fixed;top:6rem;transition:transform var(--layout-section-transition-duration),left var(--layout-section-transition-duration);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:20rem;z-index:999}.layout-menu{list-style-type:none;margin:0;padding:0}.layout-menu .layout-root-menuitem>.layout-menuitem-root-text{color:var(--text-color);font-size:.857rem;font-weight:700;margin:.75rem 0;text-transform:uppercase}.layout-menu .layout-root-menuitem>a{display:none}.layout-menu a{-webkit-user-select:none;-moz-user-select:none;user-select:none}.layout-menu a.active-menuitem>.layout-submenu-toggler,.layout-menu li.active-menuitem>a .layout-submenu-toggler{transform:rotate(-180deg)}.layout-menu ul{list-style-type:none;margin:0;padding:0}.layout-menu ul a{align-items:center;border-radius:var(--content-border-radius);color:var(--text-color);cursor:pointer;display:flex;outline:0 none;padding:.75rem 1rem;position:relative;transition:background-color var(--element-transition-duration),box-shadow var(--element-transition-duration)}.layout-menu ul a .layout-menuitem-icon{margin-right:.5rem}.layout-menu ul a .layout-submenu-toggler{font-size:75%;margin-left:auto;transition:transform var(--element-transition-duration)}.layout-menu ul a.active-route{color:var(--primary-color);font-weight:700}.layout-menu ul a:hover{background-color:var(--surface-hover)}.layout-menu ul a:focus{box-shadow:inset var(--focus-ring-shadow);outline-offset:-1px}.layout-menu ul ul{border-radius:var(--content-border-radius);overflow:hidden}.layout-menu ul ul li a{margin-left:1rem}.layout-menu ul ul li li a{margin-left:2rem}.layout-menu ul ul li li li a{margin-left:2.5rem}.layout-menu ul ul li li li li a{margin-left:3rem}.layout-menu ul ul li li li li li a{margin-left:3.5rem}.layout-menu ul ul li li li li li li a{margin-left:4rem}.layout-submenu-enter-from,.layout-submenu-leave-to{max-height:0}.layout-submenu-enter-to,.layout-submenu-leave-from{max-height:1000px}.layout-submenu-leave-active{overflow:hidden;transition:max-height .45s cubic-bezier(0,1,0,1)}.layout-submenu-enter-active{overflow:hidden;transition:max-height 1s ease-in-out}.layout-footer{align-items:center;border-top:1px solid var(--surface-border);display:flex;gap:.5rem;justify-content:center;padding:1rem 0}@media screen and (min-width:1960px){.landing-wrapper,.layout-main{margin-left:auto!important;margin-right:auto!important;width:1504px}}@media (min-width:992px){.layout-wrapper.layout-overlay .layout-main-container{margin-left:0;padding-left:2rem}.layout-wrapper.layout-overlay .layout-sidebar{border-bottom-left-radius:0;border-right:1px solid var(--surface-border);border-top-left-radius:0;box-shadow:0 3px 5px rgba(0,0,0,.02),0 0 2px rgba(0,0,0,.05),0 1px 4px rgba(0,0,0,.08);height:100vh;left:0;top:0;transform:translateX(-100%);transition:transform .4s cubic-bezier(.05,.74,.2,.99),left .4s cubic-bezier(.05,.74,.2,.99)}.layout-wrapper.layout-overlay.layout-overlay-active .layout-sidebar{transform:translateX(0)}.layout-wrapper.layout-static .layout-main-container{margin-left:22rem}.layout-wrapper.layout-static.layout-static-inactive .layout-sidebar{left:0;transform:translateX(-100%)}.layout-wrapper.layout-static.layout-static-inactive .layout-main-container{margin-left:0;padding-left:2rem}.layout-wrapper .layout-mask{display:none}}@media (max-width:991px){.blocked-scroll{overflow:hidden}.layout-wrapper .layout-main-container{margin-left:0;padding-left:2rem}.layout-wrapper .layout-sidebar{border-bottom-left-radius:0;border-top-left-radius:0;height:100vh;left:0;top:0;transform:translateX(-100%);transition:transform .4s cubic-bezier(.05,.74,.2,.99),left .4s cubic-bezier(.05,.74,.2,.99)}.layout-wrapper .layout-mask{background-color:var(--maskbg);display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:998}.layout-wrapper.layout-mobile-active .layout-sidebar{transform:translateX(0)}.layout-wrapper.layout-mobile-active .layout-mask{display:block}}.clearfix:after{clear:both;content:" ";display:block}.card{background:var(--surface-card);border-radius:var(--content-border-radius);margin-bottom:2rem;padding:2rem}.card:last-child{margin-bottom:0}.card:has(>.p-tabs):not(:has(>.settings-vertical-tabs)){display:flex;flex-direction:column;height:calc(100vh - 8rem);margin-bottom:0;min-height:0;overflow:hidden;padding-left:0;padding-right:0}.card:has(>.p-tabs):not(:has(>.settings-vertical-tabs))>.fire-detail-header{flex:none;padding-left:1.5rem;padding-right:1.5rem}.card:has(>.p-tabs):not(:has(>.settings-vertical-tabs)) .p-tabs{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.card:has(>.p-tabs):not(:has(>.settings-vertical-tabs)) .p-tablist{flex:none;padding-left:0;padding-right:0}.card:has(>.p-tabs):not(:has(>.settings-vertical-tabs)) .p-tablist-tab-list{padding-left:.375rem}.card:has(>.p-tabs):not(:has(>.settings-vertical-tabs)) .p-tabpanels{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden;padding-left:0;padding-right:0}.card:has(>.p-tabs):not(:has(>.settings-vertical-tabs)) .p-tabpanel{flex:1 1 auto;min-height:0;overflow:auto}.card:has(>.p-tabs):not(:has(>.settings-vertical-tabs)) .p-tabpanel:not(:has(.fire-grid)):not(:has(.device-dashboard)){padding-left:1.5rem;padding-right:1.5rem}.card:has(>.p-tabs):not(:has(>.settings-vertical-tabs)) .p-tabpanel:has(.fire-grid) [class$=-toolbar]{padding-left:1.5rem;padding-right:1.5rem}.card:has(>.p-tabs):not(:has(>.settings-vertical-tabs)) .p-tabpanel .p-datatable-tbody>tr>td:first-child,.card:has(>.p-tabs):not(:has(>.settings-vertical-tabs)) .p-tabpanel .p-datatable-thead>tr>th:first-child{padding-left:1.5rem}.card:has(>.p-tabs):not(:has(>.settings-vertical-tabs)) .p-tabpanel .p-datatable-tbody>tr>td:last-child,.card:has(>.p-tabs):not(:has(>.settings-vertical-tabs)) .p-tabpanel .p-datatable-thead>tr>th:last-child{padding-right:1.5rem}.card:has(>.p-tabs):has(.p-tabpanel-active>.device-dashboard){padding-bottom:0}.card:has(>.p-tabs):has(.p-tabpanel-active>.device-dashboard)>.p-tabs>.p-tabpanels{padding-bottom:0;padding-top:0}.page-fill{display:flex;flex-direction:column;height:calc(100vh - 8rem);min-height:0}.card:has(>.form-body){display:flex;flex-direction:column;height:calc(100vh - 8rem);margin-bottom:0;min-height:0;overflow:hidden;padding-left:1.5rem;padding-right:1.5rem}.card:has(>.form-body)>.fire-detail-header{flex:none}.card:has(>.form-body)>.form-body{flex:1 1 auto;min-height:0;overflow:auto}.fire-grid.card{display:flex;flex-direction:column;height:calc(100vh - 8rem);margin-bottom:0;min-height:0;overflow:hidden;padding-bottom:0;padding-left:0;padding-right:0}.fire-grid.card>.fire-detail-header,.fire-grid.card>.fire-grid-toolbar,.fire-grid.card>.fire-page-title{flex:none;padding-left:1.5rem;padding-right:1.5rem}.fire-grid.card .p-datatable{display:flex;flex:0 1 auto;flex-direction:column;min-height:0}.fire-grid.card .p-datatable-table-container{flex:0 1 auto;min-height:0;overflow:auto}.fire-grid.card .p-datatable-paginator-bottom{flex:none}.fire-grid.card .p-datatable-tbody>tr>td:first-child,.fire-grid.card .p-datatable-thead>tr>th:first-child{padding-left:1.5rem}.fire-grid.card .p-datatable-tbody>tr>td:last-child,.fire-grid.card .p-datatable-thead>tr>th:last-child{padding-right:1.5rem}.p-toast.p-toast-top-center,.p-toast.p-toast-top-left,.p-toast.p-toast-top-right{top:100px}h1,h2,h3,h4,h5,h6{color:var(--text-color);font-family:inherit;font-weight:700;line-height:1.5;margin:1.5rem 0 1rem}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}mark{background:#fff8e1;border-radius:var(--content-border-radius);font-family:monospace;padding:.25rem .4rem}blockquote{border-left:4px solid #90a4ae;margin:1rem 0;padding:0 2rem}hr{border-top:solid var(--surface-border);border-width:1px 0 0;margin:1rem 0}p{line-height:1.5;margin:0 0 1rem}p:last-child{margin-bottom:0}.hidden{display:none!important}.relative{position:relative}@media (min-width:1024px){.lg\:block{display:block!important}}.animate-fadein{animation:fadein .15s linear}.animate-fadeout{animation:fadeout .15s linear}.animate-scalein{animation:scalein .15s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes fadeout{0%{opacity:1}to{opacity:0}}@keyframes scalein{0%{opacity:0;transform:scaleY(.8)}to{opacity:1;transform:scaleY(1)}}.fire-splash{background:var(--surface-ground);color:var(--text-color-secondary);display:flex;flex-direction:column;gap:1rem;height:100vh}.fire-logo-badge,.fire-splash{align-items:center;justify-content:center}.fire-logo-badge{background:var(--primary-color);border-radius:8px;color:var(--primary-contrast-color);display:inline-flex;height:2rem;width:2rem}.fire-logo-image{height:2rem;max-width:160px;-o-object-fit:contain;object-fit:contain;width:auto}.fire-logo-text{color:var(--text-color);font-size:1.05rem;font-weight:700;white-space:nowrap}.fire-user-action{padding:0!important}.fire-user-action .p-avatar-label{display:flex!important}.fire-topbar-avatar{background:color-mix(in srgb,var(--primary-color) 16%,transparent);color:var(--primary-color);font-weight:700}.fire-user-menu-header{border-bottom:1px solid var(--surface-border);padding:.75rem 1rem}.fire-user-menu-header .name{font-weight:600}.fire-user-menu-header .mail{color:var(--text-color-secondary);font-size:.8rem}.fire-page-title{color:var(--text-color);font-size:1.5rem;font-weight:700;margin:0 0 1.25rem}.fire-card{background:var(--surface-card);border-radius:var(--content-border-radius);padding:1.5rem}.fire-stat-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:1.25rem}.fire-stat{align-items:center;display:flex;gap:1rem}.fire-stat .stat-icon{align-items:center;border-radius:10px;display:flex;font-size:1.2rem;height:2.75rem;justify-content:center;width:2.75rem}.fire-stat .stat-value{color:var(--text-color);font-size:1.4rem;font-weight:700;line-height:1.2}.fire-stat .stat-label{color:var(--text-color-secondary);font-size:.82rem}.marked,.p-tab.marked{background:#fff59d;border-radius:4px}.fire-detail-header{align-items:center;display:flex;gap:.75rem;margin-bottom:1.25rem}.fire-detail-header .fire-page-title{margin-bottom:0}.fire-detail-header .spacer{flex:1}.fire-grid>.fire-detail-header{margin-bottom:.25rem}.card>.fire-page-title,.fire-grid .fire-page-title{margin-bottom:5px}.fire-grid-toolbar{align-items:flex-end;display:flex;gap:.75rem;margin-bottom:1rem;min-height:3.25rem}.fire-grid-toolbar .spacer{flex:1}@media (max-width:991px){.fire-detail-header{flex-wrap:wrap}.fire-detail-header .fire-page-title{min-width:0;overflow-wrap:anywhere}.fire-grid-toolbar{align-items:center;flex-wrap:wrap;gap:.5rem;min-height:0}.fire-grid-toolbar>*{min-width:0}.fire-grid-toolbar>.p-iconfield{flex:1 1 0;min-width:0}.fire-grid-toolbar>.p-iconfield .p-inputtext{min-width:0;width:100%}.fire-grid-toolbar .spacer{flex:0 0 auto}.vgl-layout{height:auto!important}.vgl-item{inset:auto!important;margin-bottom:1rem;position:relative!important;transform:none!important;width:100%!important}.vgl-item--placeholder,.vgl-item__resizer{display:none!important}}.p-datatable-mask{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background:color-mix(in srgb,var(--surface-card,#fff) 55%,transparent)!important;transition:opacity .15s ease}.p-datatable-loading-icon{color:var(--primary-color,#3b82f6);font-size:1.75rem}.form-grid{display:flex;flex-direction:column;gap:1rem}.form-grid .two-col{display:grid;gap:1rem;grid-template-columns:1fr 1fr}.form-grid .field label{color:var(--p-text-muted-color,#475569);display:block;font-size:.85rem;font-weight:600;margin-bottom:.35rem}.form-grid .field-inline{align-items:center;display:flex;gap:.5rem}.form-grid .field-inline label{font-size:.9rem}.form-grid .hint{color:var(--p-text-muted-color,#64748b);display:block;margin-top:.35rem}.form-grid .p-error{color:var(--p-red-500,#ef4444);display:block;font-size:.8rem;margin-top:.35rem}.form-lines{border-collapse:separate;border-spacing:0 .5rem;width:100%}.form-lines th{color:var(--p-text-muted-color,#64748b);font-size:.74rem;font-weight:600;padding:0 .4rem;text-align:left}.form-lines td{padding:0 .4rem;vertical-align:top}.widget-config .field{margin-bottom:1rem}.widget-config .field label{color:var(--p-text-muted-color,#475569);display:block;font-size:.85rem;font-weight:600;margin-bottom:.35rem}.widget-config .field-inline{align-items:center;display:flex;gap:.5rem}.widget-config .field-inline label{font-size:.9rem}.widget-config .row-2{display:grid;gap:1rem;grid-template-columns:1fr 1fr}.widget-config .hint{color:var(--p-text-muted-color,#64748b);display:block;font-size:.8rem;margin-top:.35rem}
