
        :root {
            --azul: #0047d9;
            --azul-2: #0067ff;
            --azul-oscuro: #001f5c;
            --azul-profundo: #001546;
            --azul-claro: #eaf1ff;

            --verde: #2c9b3f;
            --verde-claro: #eaf8ed;

            --morado: #6b3fd1;
            --morado-claro: #f1ebff;

            --naranja: #f59e0b;
            --naranja-claro: #fff7e6;

            --rojo: #d93025;
            --rojo-claro: #fdecec;

            --dorado: #c89211;
            --dorado-claro: #fff6dd;

            --gris-fondo: #f4f7fb;
            --gris-borde: #d9e2f1;
            --gris-texto: #526178;

            --texto: #061b46;
            --blanco: #ffffff;

            --sombra: 0 12px 28px rgba(0, 32, 90, 0.10);
            --sombra-fuerte: 0 18px 45px rgba(0, 32, 90, 0.16);
            --radio: 18px;
        }

        * {
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            margin: 0;
            font-family: "Segoe UI", Arial, sans-serif;
            background:
                radial-gradient(circle at top right, rgba(0, 103, 255, 0.10), transparent 32%),
                linear-gradient(180deg, #f8fbff 0%, var(--gris-fondo) 100%);
            color: var(--texto);
        }

        .layout {
            min-height: 100vh;
            display: flex;
        }

        .sidebar {
            width: 250px;
            background: linear-gradient(180deg, #001f5c 0%, #001546 100%);
            color: white;
            position: fixed;
            inset: 0 auto 0 0;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            box-shadow: 8px 0 24px rgba(0,0,0,0.16);
            z-index: 20;
        }

        .sidebar-top {
            padding: 26px 18px;
        }

        .brand {
            text-align: center;
            margin-bottom: 38px;
        }

        .brand-circle {
            width: 82px;
            height: 82px;
            border-radius: 50%;
            margin: 0 auto 12px;
            background: linear-gradient(145deg, #0969ff, #002e8c);
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 900;
            font-size: 28px;
            box-shadow: 0 10px 25px rgba(0,0,0,0.25);
            border: 3px solid rgba(255,255,255,0.15);
        }

        .brand-title {
            font-size: 22px;
            font-weight: 850;
            line-height: 1.05;
        }

        .menu {
            display: flex;
            flex-direction: column;
            gap: 12px;
        }

        .menu a {
            text-decoration: none;
            color: white;
            display: flex;
            align-items: center;
            gap: 14px;
            padding: 15px 18px;
            border-radius: 12px;
            font-weight: 700;
            transition: 0.2s ease;
            opacity: 0.92;
        }

        .menu a:hover,
        .menu a.active {
            background: linear-gradient(90deg, #0067ff, #0047d9);
            box-shadow: 0 8px 18px rgba(0, 89, 255, 0.35);
            opacity: 1;
        }

        .menu-icon {
            font-size: 21px;
            width: 24px;
            text-align: center;
        }

        .sidebar-user {
            padding: 18px;
            border-top: 1px solid rgba(255,255,255,0.12);
            display: flex;
            align-items: center;
            gap: 12px;
        }

        .user-avatar-small {
            width: 44px;
            height: 44px;
            border-radius: 50%;
            background: rgba(255,255,255,0.18);
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 900;
        }

        .user-info strong {
            display: block;
            font-size: 14px;
        }

        .user-info span {
            font-size: 12px;
            opacity: 0.8;
        }

        .main {
            margin-left: 250px;
            width: calc(100% - 250px);
        }

        .header {
            height: 86px;
            background: linear-gradient(90deg, #0047d9, #002b8f);
            color: white;
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0 34px;
            box-shadow: 0 6px 22px rgba(0, 40, 120, 0.18);
            position: sticky;
            top: 0;
            z-index: 10;
        }

        .header h1 {
            margin: 0;
            font-size: 34px;
            font-weight: 900;
            letter-spacing: -0.6px;
        }

        .header-right {
            display: flex;
            align-items: center;
            gap: 18px;
            font-weight: 700;
        }

        .header-pill {
            background: rgba(255,255,255,0.14);
            padding: 10px 14px;
            border-radius: 999px;
            border: 1px solid rgba(255,255,255,0.18);
        }

        .content {
            padding: 28px 34px 44px;
            max-width: 1500px;
        }

        .login-shell {
            min-height: calc(100vh - 86px);
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 34px;
        }

        .login-card {
            width: 100%;
            max-width: 760px;
            background: white;
            border: 1px solid var(--gris-borde);
            border-radius: 28px;
            box-shadow: var(--sombra-fuerte);
            overflow: hidden;
        }

        .login-top {
            background:
                radial-gradient(circle at top right, rgba(44, 155, 63, 0.18), transparent 38%),
                linear-gradient(135deg, #0047d9 0%, #001f5c 100%);
            color: white;
            padding: 34px;
            text-align: center;
        }

        .login-logo {
            width: 92px;
            height: 92px;
            border-radius: 50%;
            margin: 0 auto 16px;
            background: rgba(255,255,255,0.14);
            border: 2px solid rgba(255,255,255,0.20);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 34px;
            font-weight: 950;
        }

        .login-top h2 {
            margin: 0;
            font-size: 34px;
            font-weight: 950;
        }

        .login-top p {
            margin: 10px 0 0;
            opacity: 0.88;
            font-weight: 600;
        }

        .login-body {
            padding: 34px;
        }

        .message {
            padding: 14px 16px;
            border-radius: 14px;
            font-weight: 800;
            margin-bottom: 20px;
        }

        .message.error {
            background: var(--rojo-claro);
            color: var(--rojo);
            border: 1px solid #f3b9b5;
        }

        .field label {
            display: block;
            font-size: 14px;
            font-weight: 850;
            margin-bottom: 8px;
            color: var(--texto);
        }

        .field input {
            width: 100%;
            border: 1px solid var(--gris-borde);
            border-radius: 15px;
            padding: 16px 18px;
            font-size: 16px;
            outline: none;
            background: white;
            color: var(--texto);
            font-family: inherit;
            font-weight: 650;
            text-transform: uppercase;
        }

        .field input:focus {
            border-color: var(--azul);
            box-shadow: 0 0 0 4px rgba(0, 103, 255, 0.10);
        }

        .btn {
            border: none;
            border-radius: 14px;
            padding: 14px 18px;
            cursor: pointer;
            font-weight: 850;
            font-size: 14px;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 9px;
            transition: 0.2s ease;
            white-space: nowrap;
            font-family: inherit;
        }

        .btn-primary {
            background: linear-gradient(90deg, #0067ff, #0047d9);
            color: white;
            box-shadow: 0 8px 18px rgba(0, 89, 255, 0.28);
        }

        .btn-primary:hover {
            transform: translateY(-1px);
            box-shadow: 0 12px 24px rgba(0, 89, 255, 0.36);
        }

        .btn-outline {
            background: white;
            color: var(--azul);
            border: 1px solid #9bbcff;
        }

        .btn-outline:hover {
            background: var(--azul-claro);
        }

        .login-actions {
            margin-top: 20px;
            display: flex;
            justify-content: flex-end;
            gap: 12px;
            flex-wrap: wrap;
        }

        .login-help {
            margin-top: 22px;
            background: #f8fbff;
            border: 1px solid var(--gris-borde);
            border-radius: 16px;
            padding: 16px;
            color: var(--gris-texto);
            font-size: 14px;
            line-height: 1.45;
            font-weight: 600;
        }

        .top-card {
            background: white;
            border: 1px solid var(--gris-borde);
            border-radius: var(--radio);
            box-shadow: var(--sombra);
            padding: 22px;
            margin-bottom: 18px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 18px;
        }

        .top-card-left {
            display: flex;
            align-items: center;
            gap: 16px;
        }

        .top-icon {
            width: 58px;
            height: 58px;
            border-radius: 17px;
            background: var(--azul-claro);
            color: var(--azul);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 26px;
            font-weight: 900;
            flex-shrink: 0;
        }

        .top-card h2 {
            margin: 0;
            font-size: 24px;
            font-weight: 950;
        }

        .top-card p {
            margin: 5px 0 0;
            color: var(--gris-texto);
            font-weight: 650;
        }

        .profile-card {
            background: white;
            border: 1px solid var(--gris-borde);
            border-radius: var(--radio);
            box-shadow: var(--sombra);
            padding: 24px;
            display: grid;
            grid-template-columns: 110px 1fr 280px;
            gap: 22px;
            align-items: center;
            margin-bottom: 18px;
        }

        .profile-photo {
            width: 96px;
            height: 96px;
            border-radius: 50%;
            object-fit: cover;
            border: 4px solid white;
            box-shadow: 0 10px 20px rgba(0,0,0,0.14);
            background: var(--azul-claro);
        }

        .profile-photo-placeholder {
            width: 96px;
            height: 96px;
            border-radius: 50%;
            border: 4px solid white;
            box-shadow: 0 10px 20px rgba(0,0,0,0.14);
            background: linear-gradient(145deg, #dfeaff, #eef4ff);
            color: var(--azul);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 30px;
            font-weight: 950;
        }

        .label {
            color: var(--gris-texto);
            font-size: 13px;
            font-weight: 750;
            margin-bottom: 5px;
        }

        .profile-name {
            font-size: 27px;
            font-weight: 950;
            margin-bottom: 14px;
            letter-spacing: -0.4px;
        }

        .profile-meta {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
        }

        .meta-pill {
            display: inline-flex;
            align-items: center;
            gap: 7px;
            background: #f8fbff;
            border: 1px solid var(--gris-borde);
            border-radius: 999px;
            padding: 8px 11px;
            font-size: 13px;
            font-weight: 850;
            color: var(--texto);
        }

        .status-box {
            border-radius: 18px;
            padding: 18px;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 12px;
            font-size: 18px;
            font-weight: 950;
            min-height: 82px;
            text-align: center;
        }

        .status-box.approved {
            background: var(--verde-claro);
            color: var(--verde);
            border: 1px solid #bfe8c7;
        }

        .status-box.approved-not-winner {
            background: var(--azul-claro);
            color: var(--azul);
            border: 1px solid #bcd4ff;
        }

        .status-box.not-approved {
            background: var(--rojo-claro);
            color: var(--rojo);
            border: 1px solid #f3b9b5;
        }

        .status-box.pending {
            background: var(--azul-claro);
            color: var(--azul);
            border: 1px solid #bcd4ff;
        }

        .status-box.waiting {
            background: var(--naranja-claro);
            color: var(--naranja);
            border: 1px solid #f4d390;
        }

        .status-box.winner {
            background: var(--dorado-claro);
            color: var(--dorado);
            border: 1px solid #efcf78;
        }

        .status-icon {
            width: 42px;
            height: 42px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            background: currentColor;
            color: white;
            font-size: 22px;
            font-weight: 950;
            flex-shrink: 0;
        }

        .score-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 18px;
            margin-bottom: 18px;
        }

        .score-card {
            background: white;
            border: 1px solid var(--gris-borde);
            border-radius: var(--radio);
            box-shadow: var(--sombra);
            padding: 20px;
            min-height: 215px;
        }

        .score-head {
            display: flex;
            align-items: center;
            gap: 11px;
            padding-bottom: 14px;
            border-bottom: 1px solid var(--gris-borde);
            margin-bottom: 16px;
        }

        .score-icon {
            width: 44px;
            height: 44px;
            border-radius: 15px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 21px;
            font-weight: 900;
        }

        .score-icon.blue {
            background: var(--azul-claro);
            color: var(--azul);
        }

        .score-icon.green {
            background: var(--verde-claro);
            color: var(--verde);
        }

        .score-icon.purple {
            background: var(--morado-claro);
            color: var(--morado);
        }

        .score-icon.orange {
            background: var(--naranja-claro);
            color: var(--naranja);
        }

        .score-icon.gold {
            background: var(--dorado-claro);
            color: var(--dorado);
        }

        .score-title {
            font-size: 15px;
            font-weight: 950;
        }

        .score-title.blue {
            color: var(--azul);
        }

        .score-title.green {
            color: var(--verde);
        }

        .score-title.purple {
            color: var(--morado);
        }

        .score-title.total {
            color: var(--verde);
        }

        .score-label {
            text-align: center;
            color: var(--gris-texto);
            font-weight: 750;
            margin-bottom: 10px;
            font-size: 13px;
        }

        .circle-score {
            width: 105px;
            height: 105px;
            border-radius: 50%;
            margin: 0 auto;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-direction: column;
            background:
                radial-gradient(circle at center, white 56%, transparent 57%),
                conic-gradient(var(--circle-color) var(--circle-percent), #e8edf5 0);
        }

        .circle-score.blue {
            --circle-color: var(--azul);
        }

        .circle-score.green {
            --circle-color: var(--verde);
        }

        .circle-score.purple {
            --circle-color: var(--morado);
        }

        .circle-score.orange {
            --circle-color: var(--naranja);
        }

        .circle-score.red {
            --circle-color: var(--rojo);
        }

        .circle-score.gold {
            --circle-color: var(--dorado);
        }

        .circle-score.gray {
            --circle-color: #9aa7b8;
        }

        .score-number {
            font-size: 32px;
            font-weight: 950;
            color: var(--circle-color);
            line-height: 1;
        }

        .score-base {
            color: var(--gris-texto);
            font-size: 12px;
            font-weight: 850;
            margin-top: 3px;
        }

        .result-banner {
            border-radius: 20px;
            padding: 26px 30px;
            display: grid;
            grid-template-columns: 76px 1fr;
            gap: 20px;
            align-items: center;
            border: 1px solid;
            box-shadow: var(--sombra);
            overflow: hidden;
            position: relative;
            background: white;
        }

        .result-banner.approved {
            background:
                radial-gradient(circle at top right, rgba(44, 155, 63, 0.13), transparent 30%),
                linear-gradient(90deg, #f0fbf2 0%, #ffffff 100%);
            border-color: #bfe8c7;
        }

        .result-banner.approved-not-winner {
            background:
                radial-gradient(circle at top right, rgba(0, 103, 255, 0.13), transparent 30%),
                linear-gradient(90deg, #eef5ff 0%, #ffffff 100%);
            border-color: #bcd4ff;
        }

        .result-banner.not-approved {
            background:
                radial-gradient(circle at top right, rgba(245, 158, 11, 0.13), transparent 30%),
                linear-gradient(90deg, #fff8e9 0%, #ffffff 100%);
            border-color: #f4d390;
        }

        .result-banner.pending {
            background:
                radial-gradient(circle at top right, rgba(0, 103, 255, 0.12), transparent 30%),
                linear-gradient(90deg, #f3f8ff 0%, #ffffff 100%);
            border-color: #bcd4ff;
        }

        .result-banner.waiting {
            background:
                radial-gradient(circle at top right, rgba(245, 158, 11, 0.16), transparent 30%),
                linear-gradient(90deg, #fff7e6 0%, #ffffff 100%);
            border-color: #f4d390;
        }

        .result-banner.winner {
            background:
                radial-gradient(circle at top right, rgba(200, 146, 17, 0.18), transparent 30%),
                linear-gradient(90deg, #fff6dd 0%, #ffffff 100%);
            border-color: #efcf78;
        }

        .result-big-icon {
            width: 72px;
            height: 72px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 34px;
            font-weight: 950;
            color: white;
        }

        .result-banner.approved .result-big-icon {
            background: linear-gradient(145deg, #39b54a, #1e7e32);
        }

        .result-banner.approved-not-winner .result-big-icon {
            background: linear-gradient(145deg, #0067ff, #0047d9);
        }

        .result-banner.not-approved .result-big-icon {
            background: linear-gradient(145deg, #f5b342, #d18805);
        }

        .result-banner.pending .result-big-icon {
            background: linear-gradient(145deg, #0067ff, #0047d9);
        }

        .result-banner.waiting .result-big-icon {
            background: linear-gradient(145deg, #f5b342, #d18805);
        }

        .result-banner.winner .result-big-icon {
            background: linear-gradient(145deg, #e0a51b, #b98006);
        }

        .result-title {
            font-size: 30px;
            font-weight: 950;
            margin-bottom: 4px;
            letter-spacing: -0.5px;
        }

        .result-banner.approved .result-title {
            color: var(--verde);
        }

        .result-banner.approved-not-winner .result-title {
            color: var(--azul);
        }

        .result-banner.not-approved .result-title {
            color: var(--texto);
        }

        .result-banner.pending .result-title {
            color: var(--azul);
        }

        .result-banner.waiting .result-title {
            color: var(--naranja);
        }

        .result-banner.winner .result-title {
            color: var(--dorado);
        }

        .result-text {
            font-size: 18px;
            font-weight: 750;
            color: var(--texto);
            line-height: 1.35;
        }

        .footer-note {
            text-align: center;
            color: var(--gris-texto);
            font-size: 13px;
            font-weight: 650;
            margin-top: 22px;
        }

        @media (max-width: 1250px) {
            .profile-card {
                grid-template-columns: 100px 1fr;
            }

            .status-box {
                grid-column: 1 / -1;
            }

            .score-grid {
                grid-template-columns: repeat(2, 1fr);
            }

            .top-card {
                align-items: flex-start;
                flex-direction: column;
            }
        }

        @media (max-width: 800px) {
            .layout {
                flex-direction: column;
            }

            .sidebar {
                position: relative;
                width: 100%;
                height: auto;
            }

            .main {
                margin-left: 0;
                width: 100%;
            }

            .header {
                height: auto;
                padding: 22px;
                flex-direction: column;
                align-items: flex-start;
                gap: 12px;
                position: relative;
            }

            .header h1 {
                font-size: 28px;
            }

            .content {
                padding: 20px;
            }

            .login-shell {
                min-height: auto;
                padding: 20px;
            }

            .profile-card {
                grid-template-columns: 1fr;
                text-align: center;
            }

            .profile-photo,
            .profile-photo-placeholder {
                margin: 0 auto;
            }

            .profile-meta {
                justify-content: center;
            }

            .score-grid {
                grid-template-columns: 1fr;
            }

            .result-banner {
                grid-template-columns: 1fr;
                text-align: center;
            }

            .result-big-icon {
                margin: 0 auto;
            }

            .top-card-left {
                align-items: flex-start;
            }
        }
    