:root {
            --rojo: #98242b;
            --verde: #1f7a3a;
            --blanco: #ffffff;
            --fondo: #f7f3ee;
            --texto: #2d2d2d;
            --gris: #666666;
        }

        * {
            box-sizing: border-box;
        }

        body {
            margin: 0;
            min-height: 100vh;
            font-family: Arial, Helvetica, sans-serif;
            background:
                linear-gradient(135deg, rgba(152,36,43,0.09), rgba(31,122,58,0.08)),
                var(--fondo);
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 24px;
            color: var(--texto);
        }

        .login-wrapper {
            width: 100%;
            max-width: 430px;
            background: var(--blanco);
            border-radius: 22px;
            overflow: hidden;
            box-shadow: 0 18px 45px rgba(0,0,0,0.12);
            border: 1px solid rgba(152,36,43,0.12);
        }

        .login-header {
            background: linear-gradient(135deg, var(--rojo), #7f1d23);
            color: var(--blanco);
            padding: 30px 26px;
            text-align: center;
            position: relative;
        }

        .login-header::after {
            content: "";
            position: absolute;
            left: 0;
            bottom: 0;
            height: 6px;
            width: 100%;
            background: linear-gradient(90deg, var(--verde) 0 33%, var(--blanco) 33% 66%, var(--rojo) 66% 100%);
        }

        .login-header h1 {
            margin: 0;
            font-size: 24px;
            letter-spacing: 0.3px;
        }

        .login-header p {
            margin: 8px 0 0;
            font-size: 14px;
            opacity: 0.94;
        }

        .login-body {
            padding: 28px 26px 30px;
        }

        label {
            display: block;
            font-weight: 700;
            margin-bottom: 8px;
            color: #333;
            font-size: 14px;
        }

        input {
            width: 100%;
            border: 1px solid #ddd;
            border-radius: 12px;
            padding: 13px 14px;
            font-size: 15px;
            outline: none;
            margin-bottom: 18px;
            transition: 0.2s ease;
            background: #fff;
        }

        input:focus {
            border-color: var(--rojo);
            box-shadow: 0 0 0 4px rgba(152,36,43,0.08);
        }

        button {
            width: 100%;
            border: none;
            border-radius: 12px;
            background: var(--verde);
            color: var(--blanco);
            font-size: 16px;
            font-weight: 700;
            padding: 14px;
            cursor: pointer;
            transition: 0.2s ease;
        }

        button:hover {
            background: #17612d;
            transform: translateY(-1px);
        }

        .error {
            background: #fff1f2;
            color: #8a1f25;
            border: 1px solid rgba(152,36,43,0.2);
            padding: 12px 14px;
            border-radius: 12px;
            font-size: 14px;
            margin-bottom: 18px;
            line-height: 1.4;
        }

        .footer {
            text-align: center;
            margin-top: 18px;
            font-size: 12px;
            color: var(--gris);
        }

        .password-wrap {
            position: relative;
            width: 100%;
            margin-bottom: 18px;
        }

        .password-wrap input {
            padding-right: 50px;
            margin-bottom: 0 !important;
        }

        .toggle-password {
            position: absolute;
            right: 12px;
            top: 50%;
            transform: translateY(-50%);
            width: 34px !important;
            height: 34px !important;
            min-width: 34px !important;
            max-width: 34px !important;
            border: none !important;
            background: transparent !important;
            color: #666;
            cursor: pointer;
            padding: 0 !important;
            margin: 0 !important;
            display: flex !important;
            align-items: center !important;
            justify-content: center !important;
            box-shadow: none !important;
            border-radius: 8px;
            line-height: 1 !important;
        }

        .toggle-password:hover {
            background: rgba(152,36,43,0.08) !important;
            transform: translateY(-50%);
        }

        .toggle-password svg {
            width: 20px;
            height: 20px;
            display: block;
            stroke: currentColor;
        }


        .logo-portal {
            width: 86px;
            height: auto;
            display: block;
            margin: 0 auto 14px auto;
            filter: drop-shadow(0 8px 14px rgba(0,0,0,0.16));
        }

        .logo-portal-mini {
            width: 62px;
            height: auto;
            display: block;
            margin: 0 auto 12px auto;
        }

    
        .logo-login {
            width: 95px;
            height: auto;
            display: block;
            margin: 0 auto 16px auto;
            filter: drop-shadow(0 8px 14px rgba(0,0,0,0.16));
        }

    
        html,
        body.login-con-fondo {
            min-height: 100vh !important;
        }

        body.login-con-fondo {
            background-image:
                linear-gradient(135deg, rgba(0,0,0,0.62), rgba(0,0,0,0.38)),
                var(--login-bg) !important;
            background-size: cover !important;
            background-position: center center !important;
            background-repeat: no-repeat !important;
            background-attachment: fixed !important;
        }

        body.login-con-fondo::before {
            content: "";
            position: fixed;
            inset: 0;
            background:
                radial-gradient(circle at top left, rgba(152,36,43,0.24), transparent 35%),
                radial-gradient(circle at bottom right, rgba(31,122,58,0.24), transparent 35%);
            pointer-events: none;
            z-index: 0;
        }

        body.login-con-fondo > * {
            position: relative;
            z-index: 1;
        }

        body.login-con-fondo .container,
        body.login-con-fondo .card,
        body.login-con-fondo .login-card,
        body.login-con-fondo form {
            backdrop-filter: blur(8px);
        }

    
        /* Movimiento suave del fondo del login */
        body.login-con-fondo::after {
            content: "";
            position: fixed;
            inset: -24px;
            z-index: -1;
            background-image:
                linear-gradient(135deg, rgba(0,0,0,0.62), rgba(0,0,0,0.38)),
                var(--login-bg);
            background-size: cover;
            background-position: center center;
            background-repeat: no-repeat;
            animation: fondoItaliaMovimiento 22s ease-in-out infinite alternate;
            transform-origin: center center;
        }

        body.login-con-fondo {
            background: #1c1c1c !important;
            overflow-x: hidden;
        }

        @keyframes fondoItaliaMovimiento {
            0% {
                transform: scale(1.03) translateX(-10px) translateY(-6px);
                filter: saturate(1.02);
            }

            100% {
                transform: scale(1.11) translateX(12px) translateY(8px);
                filter: saturate(1.12);
            }
        }

        @media (prefers-reduced-motion: reduce) {
            body.login-con-fondo::after {
                animation: none;
                transform: scale(1.04);
            }
        }

.bg-login-1 { --login-bg: url("/assets/login/italia1.jpg"); }
.bg-login-2 { --login-bg: url("/assets/login/italia2.jpg"); }
.bg-login-3 { --login-bg: url("/assets/login/italia3.jpg"); }
.bg-login-4 { --login-bg: url("/assets/login/italia4.jpg"); }
.bg-login-5 { --login-bg: url("/assets/login/italia5.jpg"); }
.bg-login-6 { --login-bg: url("/assets/login/italia6.jpg"); }
.bg-login-7 { --login-bg: url("/assets/login/italia7.jpg"); }
