/* Tuner Logs — ajustes sobre Bootstrap 5.3 (usa las variables del tema, así funciona claro y oscuro) */
.stat-card { transition: transform .1s ease; }
.stat-card:hover { transform: translateY(-2px); }
.fila-link { cursor: pointer; }
.border-dashed { border-style: dashed !important; }
.dropzone { cursor: pointer; border-color: var(--bs-border-color) !important; transition: background .15s; }
.dropzone.activa, .dropzone:hover { border-color: var(--bs-primary) !important; background: var(--bs-primary-bg-subtle); }

/* chips de picos en el detalle */
.chip { display: inline-flex; flex-direction: column; padding: .3rem .65rem; border: 1px solid var(--bs-border-color); border-radius: .5rem; background: var(--bs-tertiary-bg); min-width: 5.5rem; }
.chip-label { font-size: .68rem; color: var(--bs-secondary-color); text-transform: uppercase; letter-spacing: .03em; }
.chip-valor { font-weight: 600; font-size: 1.05rem; line-height: 1.25; font-variant-numeric: tabular-nums; }
.chip-valor small { font-weight: 400; font-size: .7rem; color: var(--bs-secondary-color); }

/* visor */
.grafico-contenedor { position: relative; height: 62vh; min-height: 380px; }
.grafico-comparar { position: relative; height: 300px; }
.lista-canales { max-height: 70vh; overflow: auto; }
.lista-canales .grupo { font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); padding: .4rem .75rem .1rem; position: sticky; top: 0; background: var(--bs-body-bg); z-index: 1; }
.canal { display: flex; align-items: center; gap: .4rem; padding: .15rem .75rem; cursor: pointer; font-size: .84rem; margin: 0; user-select: none; }
.canal:hover { background: var(--bs-tertiary-bg); }
.canal input { margin: 0; }
.canal .punto { width: .6rem; height: .6rem; border-radius: 50%; flex: none; background: var(--bs-secondary-color); opacity: .25; border: 2px solid transparent; }
.canal.activo .punto { opacity: 1; }
.canal .punto.punteado, .readout .ro i.punteado { background: transparent !important; border: 2px dashed; }
.canal .nombre { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.canal .unidad { color: var(--bs-secondary-color); font-size: .7rem; }
.canal .rango { margin-left: auto; color: var(--bs-tertiary-color); font-size: .68rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.canal .parcial { font-size: .62rem; }
.readout { display: flex; flex-wrap: wrap; gap: .3rem 1rem; font-size: .84rem; min-height: 1.6rem; align-items: center; }
.readout .ro i { display: inline-block; width: .6rem; height: .6rem; border-radius: 50%; margin-right: .3rem; }
.readout .ro b { font-variant-numeric: tabular-nums; }
.readout .ro small { color: var(--bs-secondary-color); }
.readout .tiempo { font-weight: 600; color: var(--bs-primary); }
.lista-alertas { max-height: 24rem; overflow: auto; }
.alerta { display: block; width: 100%; text-align: left; border: 0; border-bottom: 1px solid var(--bs-border-color); background: transparent; color: inherit; }
.alerta:hover { background: var(--bs-tertiary-bg); }
.alerta-danger { border-left: 3px solid var(--bs-danger); }
.alerta-warning { border-left: 3px solid var(--bs-warning); }
.alerta-info { border-left: 3px solid var(--bs-secondary); }
#tabla-pulls tr.activo { background: var(--bs-primary-bg-subtle); }
.punto-color { width: .75rem; height: .75rem; border-radius: 50%; flex: none; display: inline-block; }

/* barra flotante de selección (lista de logs) */
.barra-flotante { position: fixed; bottom: 1rem; left: 50%; transform: translateX(-50%); background: var(--bs-dark); color: #fff; padding: .5rem 1rem; border-radius: 2rem; display: flex; gap: .75rem; align-items: center; z-index: 1030; }

.dl-compacto dt { font-weight: 500; color: var(--bs-secondary-color); }
.dl-compacto dd { margin-bottom: .15rem; }
.notas { white-space: pre-wrap; }
@media (max-width: 1199.98px) { .lista-canales { max-height: 40vh; } .grafico-contenedor { height: 55vh; } }
