*{margin:0;padding:0;box-sizing:border-box}:root{--font-primary: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: Consolas, Monaco, "Courier New", monospace;--transition-fast: .15s;--transition-normal: .25s;--transition-slow: .4s;--ease-out: cubic-bezier(0, 0, .2, 1);--sidebar-width: 240px;--logs-sidebar-width: 320px}[data-theme=light]{--color-primary: #2ea3f2;--color-background: #f3f3f3;--color-surface: #fff;--color-text: #333;--color-text-secondary: #666;--color-border: #e2e2e2}[data-theme=dark]{--color-primary: #4db8ff;--color-background: #121212;--color-surface: #1e1e1e;--color-text: #e0e0e0;--color-text-secondary: #a0a0a0;--color-border: #333}body{font-family:var(--font-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;overflow-y:auto;transition:background var(--transition-normal) var(--ease-out),color var(--transition-normal) var(--ease-out)}html,body,#root{height:100%}html{scroll-behavior:smooth}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#444}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#555}@media (max-width: 1280px){:root{--logs-sidebar-width: 280px}}@media (max-width: 1024px){:root{--sidebar-width: 200px;--logs-sidebar-width: 260px}}@media (max-width: 768px){:root{--sidebar-width: 0px;--logs-sidebar-width: 0px}.sidebar-collapsible{position:fixed;left:-260px;z-index:100;transition:left var(--transition-normal) var(--ease-out)}.sidebar-collapsible.open{left:0}.logs-sidebar-collapsible{position:fixed;right:-340px;z-index:100;transition:right var(--transition-normal) var(--ease-out)}.logs-sidebar-collapsible.open{right:0}.mobile-menu-button{display:flex!important}}@media (pointer: coarse){button,[role=button],input[type=button],input[type=submit]{min-height:44px;min-width:44px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid #1de9b6;outline-offset:2px}:focus:not(:focus-visible){outline:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #1de9b6;outline-offset:2px;box-shadow:0 0 0 4px #1de9b633}.skip-to-content{position:absolute;top:-100%;left:50%;transform:translate(-50%);z-index:9999;padding:12px 24px;background:#1de9b6;color:#0a1929;font-weight:600;border-radius:0 0 8px 8px;text-decoration:none;transition:top .2s ease}.skip-to-content:focus{top:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn var(--transition-normal) var(--ease-out)}.card-hover{transition:transform var(--transition-fast) var(--ease-out),box-shadow var(--transition-fast) var(--ease-out)}.card-hover:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}[data-theme=dark] .card-hover:hover{box-shadow:0 4px 12px #0006}button:active:not(:disabled){transform:scale(.98)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{animation:spin 1s linear infinite}@keyframes slideRight{0%{transform:translate(-100%)}50%{transform:translate(150%)}to{transform:translate(-100%)}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes skeleton-wave{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pulse{0%{transform:scale(1);opacity:.5}50%{transform:scale(1.15);opacity:.3}to{transform:scale(1);opacity:.5}}.custom-device-marker{background:transparent!important;border:none!important}.leaflet-marker-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}@media print{.no-print{display:none!important}body{background:#fff!important;color:#000!important}}
