:root{--color-brand: #0768ac;--color-brand-soft: #eaf2f8;--color-bg-surface: #ffffff;--color-bg-subtle: #f0f1f3;--color-border: #e3e5e8;--color-text-secondary: #5b6068;--color-text-tertiary: #9198a1}.row-hoverable:hover{background:var(--color-brand-soft)!important}.clickable{cursor:pointer}.btn-ghost:hover:not(:disabled){border-color:var(--color-brand);color:var(--color-brand)}.btn-ghost:disabled{opacity:.45;cursor:not-allowed}.btn-ghost:focus-visible,.row-hoverable:focus-visible{outline:2px solid var(--color-brand);outline-offset:1px}.kpi-row{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}@media (max-width: 1280px){.kpi-row{grid-template-columns:repeat(3,1fr)}}@media (max-width: 720px){.kpi-row{grid-template-columns:repeat(2,1fr)}}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 1100px){.chart-grid{grid-template-columns:1fr}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.skeleton{background:var(--color-bg-subtle);border-radius:8px;animation:skeleton-pulse 1.4s ease-in-out infinite}.nav-glyph{width:14px;height:14px;flex-shrink:0;border:1.5px solid currentColor;border-radius:3px;opacity:.75;position:relative}.nav-glyph--list:before,.nav-glyph--list:after{content:"";position:absolute;left:2.5px;right:2.5px;height:1.5px;background:currentColor}.nav-glyph--list:before{top:2.5px}.nav-glyph--list:after{top:6px}.nav-glyph--user{border:none}.nav-glyph--user:before{content:"";position:absolute;top:0;left:4px;width:6px;height:6px;border:1.5px solid currentColor;border-radius:50%}.nav-glyph--user:after{content:"";position:absolute;bottom:0;left:1px;width:12px;height:6px;border:1.5px solid currentColor;border-bottom:none;border-radius:6px 6px 0 0}.nav-glyph--chart{border:none}.nav-glyph--chart:before{content:"";position:absolute;bottom:0;left:0;width:3px;height:8px;background:currentColor;box-shadow:5px -3px 0 0 currentColor,10px 2px 0 0 currentColor}.nav-glyph--device:before{content:"";position:absolute;top:50%;left:50%;width:4px;height:4px;margin:-2px 0 0 -2px;background:currentColor;border-radius:50%}.nav-glyph--contact{border-radius:2px}.nav-glyph--contact:before{content:"";position:absolute;top:1px;left:1.5px;width:9px;height:5px;border-top:1.5px solid currentColor;border-left:1.5px solid currentColor;transform:rotate(45deg);transform-origin:top left}
