/* ─────────────────────────────────────────────────────────────────────────
   Nimbus — hoja de estilo del panel

   Autocontenida a propósito: el panel arranca y se ve bien sin depender de
   nada externo. Para pasar a AdminLTE alcanza con reemplazar el <head> y el
   armazón de Site.Master; las clases de acá están acotadas a este archivo.
   ───────────────────────────────────────────────────────────────────────── */

:root {
    --fondo:        #0f1720;
    --panel:        #17212b;
    --panel-alto:   #1e2b38;
    --borde:        #2a3947;
    --texto:        #dbe4ec;
    --texto-suave:  #8ba0b4;
    --acento:       #3b9cff;
    --acento-oscuro:#2b7fd4;
    --ok:           #3fb950;
    --aviso:        #d29922;
    --error:        #f85149;
    --radio:        6px;
}

* { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
    background: var(--fondo);
    color: var(--texto);
    font: 15px/1.5 "Segoe UI", system-ui, -apple-system, sans-serif;
}

a { color: var(--acento); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ── Armazón ─────────────────────────────────────────────────────────── */

.barra {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 0 24px;
    height: 56px;
    background: var(--panel);
    border-bottom: 1px solid var(--borde);
}

.barra .marca {
    font-weight: 600;
    font-size: 17px;
    letter-spacing: .5px;
    color: var(--texto);
}

.barra .marca span { color: var(--acento); }

.barra nav { display: flex; gap: 4px; margin-left: 12px; }

.barra nav a {
    padding: 6px 12px;
    border-radius: var(--radio);
    color: var(--texto-suave);
}

.barra nav a:hover { background: var(--panel-alto); color: var(--texto); text-decoration: none; }
.barra nav a.activo { background: var(--panel-alto); color: var(--texto); }

.barra .usuario { margin-left: auto; color: var(--texto-suave); font-size: 13px; }
.barra .usuario strong { color: var(--texto); font-weight: 600; }

.contenido { max-width: 1200px; margin: 0 auto; padding: 28px 24px 60px; }

h1 { font-size: 22px; font-weight: 600; margin: 0 0 4px; }
h2 { font-size: 17px; font-weight: 600; margin: 28px 0 10px; }
.subtitulo { color: var(--texto-suave); font-size: 14px; margin: 0 0 24px; }

/* ── Tarjetas y tablas ───────────────────────────────────────────────── */

.tarjeta {
    background: var(--panel);
    border: 1px solid var(--borde);
    border-radius: var(--radio);
    overflow: hidden;
}

table.grilla { width: 100%; border-collapse: collapse; }

table.grilla th {
    text-align: left;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: var(--texto-suave);
    font-weight: 600;
    padding: 12px 16px;
    border-bottom: 1px solid var(--borde);
    background: var(--panel-alto);
}

table.grilla td { padding: 12px 16px; border-bottom: 1px solid var(--borde); vertical-align: middle; }
table.grilla tr:last-child td { border-bottom: none; }
table.grilla tr:hover td { background: rgba(59, 156, 255, .04); }

.nombre-sitio { font-weight: 600; }
.slug { color: var(--texto-suave); font-size: 13px; font-family: Consolas, monospace; }
.tenue { color: var(--texto-suave); font-size: 13px; }

.vacio { padding: 48px 24px; text-align: center; color: var(--texto-suave); }

/* ── Etiquetas de estado ─────────────────────────────────────────────── */

.etiqueta {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    border: 1px solid transparent;
}

.etiqueta.activo   { color: var(--ok);    border-color: rgba(63,185,80,.4);  background: rgba(63,185,80,.1); }
.etiqueta.proceso  { color: var(--acento); border-color: rgba(59,156,255,.4); background: rgba(59,156,255,.1); }
.etiqueta.detenido { color: var(--texto-suave); border-color: var(--borde);   background: var(--panel-alto); }
.etiqueta.error    { color: var(--error); border-color: rgba(248,81,73,.4);  background: rgba(248,81,73,.1); }

/* ── Formularios ─────────────────────────────────────────────────────── */

.campo { margin-bottom: 16px; }
.campo label { display: block; font-size: 13px; color: var(--texto-suave); margin-bottom: 6px; }

.campo input[type=text],
.campo input[type=password],
.campo input[type=email],
.campo select,
.campo textarea {
    width: 100%;
    padding: 9px 12px;
    background: var(--fondo);
    border: 1px solid var(--borde);
    border-radius: var(--radio);
    color: var(--texto);
    font: inherit;
}

.campo input:focus, .campo select:focus, .campo textarea:focus {
    outline: none;
    border-color: var(--acento);
}

.boton {
    display: inline-block;
    padding: 9px 18px;
    background: var(--acento);
    color: #fff;
    border: none;
    border-radius: var(--radio);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.boton:hover { background: var(--acento-oscuro); text-decoration: none; }
.boton:disabled { opacity: .5; cursor: not-allowed; }

.boton.secundario {
    background: transparent;
    border: 1px solid var(--borde);
    color: var(--texto);
}

.boton.secundario:hover { background: var(--panel-alto); }
.boton.chico { padding: 5px 12px; font-size: 13px; font-weight: 500; }

/* ── Mensajes ────────────────────────────────────────────────────────── */

.mensaje {
    padding: 11px 16px;
    border-radius: var(--radio);
    margin-bottom: 20px;
    font-size: 14px;
    border: 1px solid transparent;
}

.mensaje.ok    { color: var(--ok);    border-color: rgba(63,185,80,.4);  background: rgba(63,185,80,.08); }
.mensaje.aviso { color: var(--aviso); border-color: rgba(210,153,34,.4); background: rgba(210,153,34,.08); }
.mensaje.error { color: var(--error); border-color: rgba(248,81,73,.4);  background: rgba(248,81,73,.08); }
.mensaje:empty { display: none; }

/* ── Login y Setup ───────────────────────────────────────────────────── */

.centrado {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.caja { width: 100%; max-width: 400px; }

.caja .marca {
    text-align: center;
    font-size: 26px;
    font-weight: 600;
    letter-spacing: 1px;
    margin-bottom: 6px;
}

.caja .marca span { color: var(--acento); }
.caja .lema { text-align: center; color: var(--texto-suave); font-size: 13px; margin-bottom: 28px; }
.caja .tarjeta { padding: 28px; }
.caja .boton { width: 100%; margin-top: 4px; }
.caja .pie { text-align: center; margin-top: 20px; font-size: 12px; color: var(--texto-suave); }
