* {
    box-sizing: border-box;
}

body {
    margin: 0;

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Helvetica,
        Arial,
        sans-serif;

    background:
        linear-gradient(
            135deg,
            #05265a,
            #0b438e
        );

    color: #122f5b;
}

.admin-login-page {
    min-height: 100vh;

    display: grid;
    place-items: center;

    padding: 24px;
}

.login-card {
    width: min(100%, 430px);

    padding: 34px;

    border-radius: 18px;

    background: #fff;

    box-shadow:
        0 24px 70px
        rgba(0, 0, 0, .2);
}

.login-brand {
    display: flex;
    align-items: center;

    gap: 12px;

    margin-bottom: 30px;
}

.login-logo {
    width: 48px;
    height: 48px;

    display: grid;
    place-items: center;

    border-radius: 13px;

    background: #0c4da8;
    color: #fff;

    font-size: 21px;
}

.login-brand strong,
.login-brand span {
    display: block;
}

.login-brand strong {
    font-size: 17px;
}

.login-brand span {
    margin-top: 3px;

    color: #718098;

    font-size: 12px;
}

.login-heading h1 {
    margin: 0 0 7px;

    font-size: 29px;
}

.login-heading p {
    margin: 0 0 25px;

    color: #748198;

    font-size: 13px;
}

.login-group {
    margin-bottom: 18px;
}

.login-group label {
    display: block;

    margin-bottom: 7px;

    font-size: 13px;
    font-weight: 700;
}

.login-input {
    position: relative;
}

.login-input i {
    position: absolute;

    left: 14px;
    top: 50%;

    transform: translateY(-50%);

    color: #8390a3;
}

.login-input input {
    width: 100%;
    height: 49px;

    padding:
        0 14px
        0 42px;

    border:
        1px solid #d7dfeb;

    border-radius: 9px;

    outline: none;

    font-family: inherit;
    font-size: 14px;
}

.login-input input:focus {
    border-color: #1a61b9;

    box-shadow:
        0 0 0 3px
        rgba(26, 97, 185, .09);
}

.login-card button {
    width: 100%;
    height: 48px;

    margin-top: 4px;

    border: 0;
    border-radius: 9px;

    background:
        linear-gradient(
            135deg,
            #195cb5,
            #0a4095
        );

    color: #fff;

    font-family: inherit;
    font-size: 14px;
    font-weight: 750;

    cursor: pointer;
}

.login-card button i {
    margin-left: 6px;
}

.login-back {
    display: block;

    margin-top: 22px;

    color: #66758d;

    text-align: center;

    font-size: 12px;
}

.login-back i {
    margin-right: 5px;
}

.login-alert {
    margin-bottom: 18px;

    padding: 12px 13px;

    border-radius: 8px;

    font-size: 12px;
}

.login-alert.error {
    border: 1px solid #ffd1d1;

    background: #fff1f1;
    color: #a72c2c;
}

.login-alert.success {
    border: 1px solid #ccebd8;

    background: #effaf3;
    color: #247344;
}

/* =========================================================
   PASSWORD SHOW / HIDE
   ========================================================= */

.login-password {
    position: relative;
}

.login-password input {
    padding-right: 52px;
}

/* Override style tombol submit */
.login-input .password-toggle {
    position: absolute;

    top: 50%;
    right: 10px;

    width: 38px !important;
    height: 38px !important;

    min-width: 38px;

    padding: 0 !important;
    margin: 0 !important;

    display: flex;
    align-items: center;
    justify-content: center;

    transform: translateY(-50%) !important;

    border: 0 !important;
    border-radius: 8px;

    background: transparent !important;
    box-shadow: none !important;

    color: #7b8aa3;

    font-size: 16px;

    cursor: pointer;
}

/* Mata tidak ikut aturan icon tombol utama */
.login-input .password-toggle i {
    margin: 0 !important;

    color: inherit;

    font-size: 16px;
}

.login-input .password-toggle:hover {
    width: 38px !important;
    height: 38px !important;

    background: #eef4fb !important;
    color: #0e4fb3;

    transform: translateY(-50%) !important;

    box-shadow: none !important;
}

.login-input .password-toggle:focus {
    outline: none;

    background: #eef4fb !important;
    color: #0e4fb3;
}