/* UPM login identity layer. */
:root {
    --ir-auth-navy: #033f61;
    --ir-auth-blue: #045881;
    --ir-auth-sky: #69cbca;
    --ir-auth-gold: #eaba6a;
    --ir-auth-teal: #2b8584;
    --ir-auth-ink: #123746;
    --ir-auth-muted: #647a82;
    --ir-auth-line: #d7e7e4;
    --ir-auth-cloud: #f1f7f6;
    --ir-auth-white: #ffffff;
}

body.ir-auth-page { background: #f4f8f7; }

.ir-auth-shell { grid-template-columns: minmax(460px, .96fr) minmax(540px, 1.04fr); }

.ir-auth-brand {
    padding-top: 42px;
    background:
        linear-gradient(150deg, rgba(105, 203, 202, .16), transparent 40%),
        linear-gradient(145deg, #087184 0%, #045881 52%, #033f61 100%);
}

.ir-auth-brand::before {
    right: auto;
    bottom: 8%;
    left: -22px;
    content: "UPM";
    font-size: clamp(8rem, 15vw, 15rem);
    letter-spacing: -.04em;
    -webkit-text-stroke: 1px rgba(255, 255, 255, .07);
}

.ir-auth-brand::after {
    left: -120px;
    bottom: -150px;
    width: 430px;
    height: 430px;
    border-color: rgba(255, 255, 255, .13);
    box-shadow: 0 0 0 46px rgba(255,255,255,.024), 0 0 0 92px rgba(255,255,255,.016);
}

.ir-auth-logo img {
    width: 230px;
    max-height: 96px;
    filter: none;
}

.ir-auth-eyebrow {
    width: fit-content;
    padding: 8px 13px;
    color: #d8f0ee;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 30px;
}

.ir-auth-eyebrow i { width: 21px; background: var(--ir-auth-gold); }

.ir-auth-brand h1 {
    color: #fff;
    font-size: clamp(2.2rem, 3.3vw, 3.65rem);
    line-height: 1.2;
    letter-spacing: 0;
    text-shadow: 0 12px 35px rgba(0, 30, 49, .2);
}

.ir-auth-brand-copy > p { color: #c6dfe2; }

.ir-auth-features {
    gap: 9px;
    background: transparent;
    border: 0;
}

.ir-auth-features > div {
    min-height: 150px;
    background: rgba(255, 255, 255, .065);
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: 16px;
    backdrop-filter: blur(10px);
    transition: transform .25s ease, background .25s ease;
}

.ir-auth-features > div:hover {
    background: rgba(255, 255, 255, .1);
    transform: translateY(-5px);
}

.ir-auth-features > div > span {
    color: var(--ir-auth-gold);
    border-color: rgba(234, 186, 106, .38);
}

.ir-auth-features small { color: #b5d0d5; }
.ir-auth-brand-footer { color: #9ec0c8; }

.ir-auth-panel {
    position: relative;
    background:
        linear-gradient(rgba(4, 88, 129, .028) 1px, transparent 1px),
        linear-gradient(90deg, rgba(4, 88, 129, .028) 1px, transparent 1px),
        #f8fbfa;
    background-size: 50px 50px;
    overflow: hidden;
}

.ir-auth-panel::before {
    position: absolute;
    content: "";
    top: -170px;
    right: -180px;
    width: 430px;
    height: 430px;
    border: 1px solid rgba(4, 88, 129, .08);
    border-radius: 50%;
    box-shadow: 0 0 0 48px rgba(43, 133, 132, .025), 0 0 0 96px rgba(43, 133, 132, .016);
}

.ir-auth-topbar { position: relative; z-index: 1; }
.ir-auth-topbar a:hover { color: var(--ir-auth-teal); }

.ir-auth-secure-access {
    color: var(--ir-auth-teal);
    background: #edf7f5;
    border-color: #d3e7e3;
}

.ir-auth-content { position: relative; z-index: 1; }

.ir-auth-card {
    position: relative;
    border-color: rgba(4, 88, 129, .1);
    border-radius: 28px;
    box-shadow: 0 30px 75px rgba(4, 88, 129, .12);
    overflow: hidden;
    animation: upm-auth-reveal .65s ease both;
}

.ir-auth-card::before {
    position: absolute;
    content: "";
    top: 0;
    right: 0;
    width: 125px;
    height: 6px;
    background: linear-gradient(90deg, var(--ir-auth-gold), var(--ir-auth-teal));
    border-radius: 0 0 0 6px;
}

.ir-login-heading > span { color: var(--ir-auth-teal); }
.ir-login-heading h2 { color: var(--ir-auth-ink); }

.ir-form-group input {
    border-color: #d3e4e1;
    background: #fbfdfc;
}

.ir-form-group input:focus {
    border-color: var(--ir-auth-teal);
    box-shadow: 0 0 0 4px rgba(43, 133, 132, .1);
}

.ir-form-icon { color: #7aa1a5; }

.ir-login-button {
    background: linear-gradient(135deg, var(--ir-auth-teal), var(--ir-auth-blue));
    border-radius: 12px;
    box-shadow: 0 16px 34px rgba(4, 88, 129, .22);
}

.ir-login-button:hover {
    background: linear-gradient(135deg, #247877, #03496e);
    box-shadow: 0 20px 42px rgba(4, 88, 129, .27);
}

.ir-register-prompt a,
.ir-forgot-link { color: var(--ir-auth-teal); }

.ir-secure-note i { color: var(--ir-auth-teal); }

@keyframes upm-auth-reveal {
    from { opacity: 0; transform: translateY(18px) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 1040px) {
    .ir-auth-shell { grid-template-columns: minmax(410px, .9fr) minmax(500px, 1.1fr); }
    .ir-auth-brand { padding-inline: 42px; }
}

@media (max-width: 860px) {
    .ir-auth-shell { grid-template-columns: 1fr; }
    .ir-auth-brand {
        padding: 26px 26px 36px;
        background:
            linear-gradient(140deg, rgba(105, 203, 202, .17), transparent 45%),
            linear-gradient(145deg, #087184, #045881 60%, #033f61);
    }
    .ir-auth-logo img { width: 190px; max-height: 78px; }
    .ir-auth-brand-copy { padding: 42px 0 6px; }
    .ir-auth-brand h1 { font-size: clamp(1.8rem, 5.6vw, 2.45rem); }
    .ir-auth-content { padding-top: 22px; }
}

@media (max-width: 480px) {
    .ir-auth-brand { padding: 22px 20px 30px; }
    .ir-auth-logo img { width: 165px; }
    .ir-auth-brand-copy { padding-top: 34px; }
    .ir-auth-brand h1 { font-size: 1.65rem; line-height: 1.3; }
    .ir-auth-brand-copy > p { font-size: .78rem; }
    .ir-auth-card { border-radius: 20px; }
    .ir-login-heading h2 { font-size: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
    .ir-auth-card,
    .ir-auth-features > div { animation: none; transition: none; }
}
