esp/assets/css/layout.css

93 lines
1.9 KiB
CSS

/* Layout CSS Optimizado - Solo estilos que no pueden expresarse con Tailwind */
/* Variables CSS globales */
:root {
--navbar-height: 56px;
--container-padding: 1.5rem;
}
/* Layout flexbox básico para sticky footer */
html, body {
height: 100%;
margin: 0;
padding: 0;
}
body {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.main-content {
flex: 1 0 auto;
width: 100%;
max-width: 1400px;
margin: 0 auto;
padding: 0 var(--container-padding);
}
.site-footer {
flex-shrink: 0;
}
/* Mejoras para tablas responsive */
.table-responsive {
display: block;
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
/* Utilidades específicas no cubiertas por Tailwind */
.update-column {
display: none;
}
/* Media Queries para responsividad */
@media (max-width: 576px) {
:root {
--container-padding: 0.75rem;
}
/* Ocultar columnas no esenciales en móviles para tablas legacy */
#lista-dispositivos table th:nth-child(3),
#lista-dispositivos table td:nth-child(3),
#lista-dispositivos table th:nth-child(4),
#lista-dispositivos table td:nth-child(4),
#lista-dispositivos table th:nth-child(5),
#lista-dispositivos table td:nth-child(5),
#lista-dispositivos table th:nth-child(6),
#lista-dispositivos table td:nth-child(6) {
display: none;
}
#lista-puertos table th:nth-child(2),
#lista-puertos table td:nth-child(2),
#lista-puertos table th:nth-child(5),
#lista-puertos table td:nth-child(5) {
display: none;
}
}
/* Indicador de estado MQTT WebSocket */
.ws-indicator {
position: fixed;
bottom: 8px;
right: 8px;
z-index: 10;
backdrop-filter: saturate(120%) blur(2px);
}
.ws-indicator .dot {
box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.6);
}
.ws-indicator.connected .dot {
box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.3);
}
.ws-indicator.disconnected .dot {
box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.3);
}