:root { color-scheme: dark; font-family: system-ui, sans-serif; color: #e7edf6; background: #0c1220; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; }
a { color: #9fc7ff; }
.cabecera { border-bottom: 1px solid #283247; padding: 1.4rem max(1.25rem, calc((100vw - 64rem) / 2)); }
.marca { display: inline-block; max-width: 100%; }
.marca img { display: block; width: 21rem; max-width: 100%; height: auto; }
.logo-acceso { display: block; width: 100%; max-width: 21rem; height: auto; margin: 0 auto 1.75rem; }
main { max-width: 64rem; margin: 0 auto; padding: 2.5rem 1.25rem; }
.tarjeta { padding: 2rem; border: 1px solid #303d56; border-radius: 1rem; background: #141e30; }
.acceso { max-width: 28rem; margin: 1rem auto; }
h1 { font-size: 1.8rem; margin: .25rem 0 1rem; }
h2 { font-size: 1.2rem; }
p { line-height: 1.6; color: #b4c0d5; }
.etiqueta { color: #83b6ff; font-size: .85rem; margin: 0 0 .5rem; }
label { display: block; font-size: .95rem; margin: 1.2rem 0 .5rem; }
input { width: 100%; padding: .8rem; border: 1px solid #5c6c85; border-radius: .5rem; background: #0c1220; color: #fff; font: inherit; }
button { cursor: pointer; padding: .8rem 1.1rem; border: 1px solid #8abbff; border-radius: .5rem; background: #8abbff; color: #101a2d; font: inherit; font-weight: 650; }
.acceso button { width: 100%; margin-top: 1.5rem; }
button:hover { background: #b7d5ff; }
button.secundario { background: transparent; color: #dce9ff; border-color: #617695; }
:focus-visible { outline: 3px solid #b6d4ff; outline-offset: 3px; }
.error { color: #ffd1d1; border-left: 3px solid #ff9090; padding-left: .8rem; }
.titulo-panel { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.vacio { text-align: center; padding: 4rem 1rem; }
select { width: 100%; padding: .8rem; border: 1px solid #5c6c85; border-radius: .5rem; background: #0c1220; color: #fff; font: inherit; }
.boton { display: inline-block; padding: .8rem 1.1rem; border-radius: .5rem; background: #8abbff; color: #101a2d; text-decoration: none; font-weight: 650; }
.servidores { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); gap: 1rem; }
.tarjeta + .tarjeta { margin-top: 1.5rem; }
.servidores .tarjeta { margin-top: 0; }
.formulario { max-width: 42rem; }
fieldset { margin: 1.5rem 0; padding: 1rem 1.25rem 1.25rem; border: 1px solid #45546d; border-radius: .5rem; }
legend { padding: 0 .5rem; }
.acciones { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
.confirmacion { display: flex; align-items: baseline; gap: .7rem; line-height: 1.5; }
.confirmacion input { width: auto; }
.peligro { color: #ffb6b6; }
button.destructivo { background: #ffb6b6; border-color: #ffb6b6; }
#url_conector { font-family: ui-monospace, monospace; }
.boton.secundario { background: transparent; color: #dce9ff; border: 1px solid #617695; }
.acciones-panel { margin-bottom: 1.5rem; }
.filtros-descargas { display: flex; flex-wrap: wrap; align-items: end; gap: 1rem; padding: 1.25rem; }
.filtros-descargas > div { flex: 1 1 10rem; }
.filtros-descargas label { margin-top: 0; }
.filtros-descargas > a { padding-bottom: .8rem; }
.lista-descargas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 25rem), 1fr)); gap: 1rem; }
.lista-descargas .tarjeta { margin-top: 0; padding: 1.5rem; }
.archivo-video h2, .nombre-archivo { overflow-wrap: anywhere; }
.reproductor-panel { display: block; width: 100%; max-height: 34rem; background: #080e19; border-radius: .7rem; }
.detalle-video hr { border: 0; border-top: 1px solid #303d56; margin: 2rem 0; }
@media (max-width: 36rem) { .filtros-descargas > div { flex-basis: 100%; } .detalle-video { padding: 1.2rem; } }
