/* --- Tamaño general (más chico y compacto que el de Pico por defecto) --- */
:root {
  --pico-font-size: 87.5%;
  --pico-line-height: 1.4;
  --pico-spacing: .8rem;
  --pico-form-element-spacing-vertical: .45rem;
  --pico-form-element-spacing-horizontal: .7rem;
  --pico-typography-spacing-vertical: .8rem;
  --pico-block-spacing-vertical: .9rem;
  --pico-block-spacing-horizontal: 1rem;
  --pico-nav-element-spacing-vertical: .6rem;
}
h2 { font-size: 1.5rem; margin-bottom: .8rem; }
h3 { font-size: 1.25rem; }
table { font-size: .9rem; }
th, td { padding: .45rem .6rem; }
main.container { max-width: 1400px; }

/* --- Tarjetas de estadísticas --- */
.grid-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .8rem; margin-bottom: 1.2rem; }
.stat { margin: 0; text-align: center; padding: .8rem; }
.stat h3 { margin: .2rem 0 0 0; }

/* --- Colores de estado --- */
.ok { color: #3fbf5f; }
.bad { color: #e5534b; }
.aviso { color: #e0a33a; }
.apagada { color: #8891a0; }

/* --- Login --- */
.login { max-width: 360px; margin: 10vh auto; }

/* --- Botones y formularios --- */
form.inline { display: inline-block; margin: 0 .2rem .2rem 0; }
button.chico, a.chico { padding: .25rem .7rem; margin: 0; font-size: .85rem; width: auto; }
.angosto { max-width: 480px; }
.angosto-ancho { max-width: 720px; }

/* --- Mensajes --- */
.flash { padding: .6rem .9rem; margin-bottom: .8rem; border-left: 4px solid; }
.flash.ok   { border-color: #3fbf5f; }
.flash.bad  { border-color: #e5534b; }
.flash.info { border-color: #4a90d9; }

/* --- Bloqueo judicial --- */
.buscador { display: grid; grid-template-columns: 1fr 150px auto; gap: .5rem; margin-top: 1.2rem; }
.buscador input, .buscador select, .buscador button { margin: 0; }
form.quitar { display: flex; gap: .4rem; margin: 0; align-items: center; }
form.quitar input { margin: 0; padding: .25rem .5rem; height: auto; width: 9rem; font-size: .8rem; }

/* --- Listas --- */
td.acciones { white-space: nowrap; }
small.url { color: #8891a0; word-break: break-all; }
label.catalogo { display: block; padding: .4rem 0; border-bottom: 1px solid rgba(255,255,255,.06); }
label.catalogo input { margin-right: .5rem; }

/* --- Usuarios --- */
details.editar { margin: 0; }
details.editar summary { cursor: pointer; }
details.editar form { margin: .5rem 0; min-width: 260px; }
details.editar input, details.editar select { margin-bottom: .4rem; }

/* --- Estadísticas --- */
.titulo-rango { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .5rem; margin-bottom: .8rem; }
.titulo-rango h2 { margin: 0; }
.rangos { display: flex; gap: .3rem; }
.graf-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .6rem; margin-bottom: .8rem; }
.graf-stats iframe { width: 100%; height: 130px; border: 0; border-radius: 6px; }
.graf-charts { display: grid; grid-template-columns: repeat(auto-fit, minmax(520px, 1fr)); gap: .8rem; }
.graf-charts iframe { width: 100%; height: 320px; border: 0; border-radius: 6px; }

/* --- Perfiles y orígenes --- */
.etiqueta { display: inline-block; padding: .05rem .45rem; margin: .1rem .15rem .1rem 0; border-radius: 4px; font-size: .78rem; background: rgba(74,144,217,.2); }
.etiqueta.apagada { background: rgba(136,145,160,.15); }
.ok-fondo { background: rgba(63,191,95,.25); }
fieldset { margin-bottom: .6rem; }

/* --- Bloqueos --- */
.filtros { display: grid; grid-template-columns: 1fr 1.5fr 1fr auto auto; gap: .5rem; margin-bottom: 1rem; }
.filtros input, .filtros select, .filtros button, .filtros a { margin: 0; }
.stat.seleccionada { outline: 2px solid #4a90d9; }

/* --- Listas propias --- */
.servicios { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .2rem .8rem; margin-bottom: .6rem; }
.resultados { max-height: 420px; overflow-y: auto; margin-bottom: .6rem; border: 1px solid rgba(255,255,255,.06); padding: .4rem .6rem; border-radius: 6px; }
.resultados label { display: block; padding: .15rem 0; }

/* --- Pie de página --- */
body { min-height: 100vh; display: flex; flex-direction: column; }
main.container { flex: 1; }
.pie { display: flex; align-items: center; justify-content: center; gap: .55rem; padding: 1rem 0 1.2rem; margin-top: 2rem; border-top: 1px solid rgba(255,255,255,.06); color: #8891a0; font-size: .85rem; }
.pie-logo { width: 26px; height: 26px; flex-shrink: 0; }
.pie-texto strong { color: #c9d1d9; }
