/**
* ================================================
* File: public/css/app.css
* Purpose: Minor layout polish
* ================================================
*/


/* BEGIN CSS ESPECÍFICO PARA PÁGINA DE LOGIN*/
    .login-logo {
        width: 350px;
    }
    .divider-form:after,
    .divider-form:before {
        content: "";
        flex: 1;
        height: 1px;
        background: #757575;
        opacity: 0.4;
    }
/* END CSS ESPECÍFICO PARA PÁGINA DE LOGIN*/


/* BEGIN CSS GLOBAL*/

    /* Make the layout full height with sidebar */
    html,
    body {
        font-family: "Raleway", Arial, Verdana, Helvetica, Sans-serif;
        font-size: 100%;
        height: 100%;
        /* background-color: hsl(0, 0%, 96%);*/
    }

    .logo {
        /*width: 150px;*/
        width: 90%;
    }

    .brandlogo {
        width: 150px;
    }



    @media (min-width: 1400px) {
        /* Estilos necesarios para Sidenav */
        main,
        header,
        footer,
        /*#debug-bar,*/
        /*#development-bar,*/
        #main-navbar,
        #topdebug {
            padding-left: 280px;
        }
        #sidebar {
            width: 280px;
        }

    }

    @media (max-width: 991.98px) {
        #sidebar {
            width: 100%;
        }
    }

    /* Sidebar group title styling */
    .sidenav-title {
        letter-spacing: .08em;
    }

/* END CSS GLOBAL*/

/* BEGIN STATUS PILLS — globales para listados, exports e informes
 *
 * Portado desde SIG-Derivalya en E6. En E4c se decidió NO traerlo porque la
 * vista de referencia definía el helper `pill()` y no lo usaba; aquí sí hace
 * falta: el `status` del registro de accesos es una píldora natural.
 *
 * app.css NO es artefacto sincronizado (solo lo es fetch_utils.js): verificado
 * antes de ampliarlo — los dos ficheros difieren en md5 y en número de líneas, y
 * la lista de artefactos canónicos de la skill no lo menciona.
 */

.pill {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: 12px;
    font-weight: 600;
    padding: .25rem .55rem;
    border-radius: 999px;
    line-height: 1;
    white-space: nowrap;
}
.pill .dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    display: inline-block;
}

/* Estado de un intento de acceso.
 *
 * Las variantes se definen sobre los valores REALES, medidos en binario sobre
 * los cinco tenants el 2026-08-31: solo existen «success» (147) y «failure» (54).
 * No se inventan variantes para valores que nadie escribe. */
.pill-success           { background: #e6f4ea; color: #1e7e34; }
.pill-success      .dot { background: #1e7e34; }
.pill-failure           { background: #fdecec; color: #921e1e; }
.pill-failure      .dot { background: #bb2929; }

/* 🔴 CASO POR DEFECTO, y no es decorativo: `recordAttempt()` recibe
 * `string $status` SIN validarlo contra ninguna lista, así que un valor nuevo es
 * posible el día que alguien añada una llamada. Sin esta variante, ese valor se
 * pintaría como píldora sin color —invisible sobre el fondo— en vez de leerse.
 * Se prueba con un valor inventado, no se supone. */
.pill-desconocido       { background: #f1f3f5; color: #495057; }
.pill-desconocido  .dot { background: #adb5bd; }

/* Estado de BLOQUEO — «Logs del sistema» → «Logs de acceso / Bloqueos» (E7).
 *
 * 🔴 Las tres variantes se pintan sobre la definición de «bloqueo ACTIVO» que usa
 * `LoginSecurityService::isIpBlocked()`: fila presente, `blocked_until` no nulo y
 * estrictamente en el futuro. Una fila con `blocked_until` en el pasado es un bloqueo
 * CADUCADO y sale como `.pill-sin-bloqueo`, no como bloqueada — hay un caso así en los
 * datos locales, con la fecha nueve meses atrás.
 *
 * Dos tonos distintos a propósito: un bloqueo de IP afecta a todo el que salga por esa
 * dirección y un bloqueo de usuario a una sola cuenta. Son consecuencias distintas y no
 * deben leerse como el mismo aviso. */
.pill-ip-banned         { background: #fde8d7; color: #8a4b12; }
.pill-ip-banned    .dot { background: #d97706; }
.pill-user-banned       { background: #fdecec; color: #921e1e; }
.pill-user-banned  .dot { background: #bb2929; }
.pill-sin-bloqueo       { background: #eef2f6; color: #55636f; }
.pill-sin-bloqueo  .dot { background: #94a3b8; }

/* END STATUS PILLS */
