html,body{margin: 0;min-height: 100%}.main-layout{--vaadin-app-layout-drawer-width: 17rem;min-height: 100vh;background: var(--vaadin-background-color)}.main-layout::part(navbar){min-height: 3.5rem;padding-inline: var(--vaadin-padding-s) var(--vaadin-padding-l);background: var(--vaadin-background-color);border-block-end: 1px solid var(--vaadin-border-color-secondary)}.main-layout::part(drawer){background: var(--vaadin-background-container);border-inline-end: 1px solid var(--vaadin-border-color-secondary)}.navbar__title{font-size: var(--aura-font-size-m,1rem);font-weight: var(--aura-font-weight-semibold,600)}.sidebar{box-sizing: border-box;display: flex;flex-direction: column;width: 100%;min-height: 100%;padding: var(--vaadin-padding-l);color: var(--vaadin-text-color);background: var(--vaadin-background-container)}.sidebar__brand{display: flex;align-items: center;gap: var(--vaadin-gap-s);margin-block-end: var(--vaadin-padding-xl)}.sidebar__brand-mark,.sidebar__avatar{display: inline-flex;flex: 0 0 auto;align-items: center;justify-content: center;color: var(--vaadin-background-color);background: var(--vaadin-text-color)}.sidebar__brand-mark{width: 2.5rem;height: 2.5rem;border-radius: var(--vaadin-radius-m);font-size: var(--aura-font-size-l,1.25rem);font-weight: var(--aura-font-weight-semibold,600);box-shadow: var(--aura-shadow-s)}.sidebar__brand-name{font-size: var(--aura-font-size-l,1.25rem);font-weight: var(--aura-font-weight-semibold,600);letter-spacing: -0.02em}.sidebar__navigation{display: flex;flex: 1;flex-direction: column;gap: var(--vaadin-gap-xs);overflow-y: auto}.sidebar__link{display: flex;align-items: center;gap: var(--vaadin-gap-s);padding: var(--vaadin-padding-s) var(--vaadin-padding-m);color: var(--vaadin-text-color-secondary);border-radius: var(--vaadin-radius-m);font-size: var(--aura-font-size-s,0.875rem);font-weight: var(--aura-font-weight-medium,500);text-decoration: none;transition: background-color 120ms ease,color 120ms ease}.sidebar__link:hover{color: var(--vaadin-text-color);background: var(--vaadin-background-container-strong)}.sidebar__link:focus-visible{outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);outline-offset: var(--vaadin-focus-ring-offset)}.sidebar__link--active{color: var(--aura-accent-text-color,var(--vaadin-text-color));background: var(--aura-accent-surface,var(--vaadin-background-container-strong))}.sidebar__link-icon{flex: 0 0 auto;width: 1.25rem;height: 1.25rem}.theme-toggle{box-sizing: border-box;display: flex;justify-content: flex-start;width: 100%;min-height: auto;margin-block-end: var(--vaadin-padding-l);padding: var(--vaadin-padding-s) var(--vaadin-padding-m);color: var(--vaadin-text-color-secondary);background: transparent;border: 0;border-radius: var(--vaadin-radius-m);box-shadow: none;font-family: inherit;font-size: var(--aura-font-size-s,0.875rem);font-weight: var(--aura-font-weight-medium,500);cursor: pointer}.theme-toggle:hover{color: var(--vaadin-text-color);background: var(--vaadin-background-container-strong)}.theme-toggle:focus-visible{outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);outline-offset: var(--vaadin-focus-ring-offset)}.theme-toggle__icon{width: 1.25rem;height: 1.25rem}.sidebar__profile{display: flex;align-items: center;gap: var(--vaadin-gap-s);padding-block-start: var(--vaadin-padding-l);border-block-start: 1px solid var(--vaadin-border-color-secondary)}.sidebar__avatar{width: 2.25rem;height: 2.25rem;border-radius: 50%;font-size: var(--aura-font-size-xs,0.75rem);font-weight: var(--aura-font-weight-semibold,600)}.sidebar__profile-text{display: flex;min-width: 0;flex-direction: column}.sidebar__profile-name,.sidebar__profile-role{overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.sidebar__profile-name{font-size: var(--aura-font-size-s,0.875rem);font-weight: var(--aura-font-weight-medium,500)}.sidebar__profile-role{color: var(--vaadin-text-color-secondary);font-size: var(--aura-font-size-xs,0.75rem)}.page-view{box-sizing: border-box;flex: 1;min-width: 0;padding: var(--vaadin-padding-xl)}.page-view h1{margin: 0;font-size: var(--aura-font-size-xl,1.75rem)}.page-view p{margin-block: var(--vaadin-gap-xs) 0;color: var(--vaadin-text-color-secondary)}@media (max-width: 640px){.page-view{padding: var(--vaadin-padding-l)}}vaadin-app-layout [slot="drawer"]{height: 100% !important;overflow: hidden !important}.status-circle{width: 16px;height: 16px;border-radius: 50%;border: 1px solid #000000;display: inline-block;flex-shrink: 0}.status-circle--green{background-color: #51cf66}.status-circle--yellow{background-color: #ffd43b}.status-circle--red{background-color: #ff6b6b}.status-circle--split{background: linear-gradient(90deg,#ff6b6b 50%,#ffd43b 50%)}.sensor-matrix-cell{-webkit-user-select: none;-ms-user-select: none;user-select: none;cursor: default}