* {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: 'Arial', sans-serif;
        }

        body, html {
            width: 100%;
            height: 100%;
            overflow: hidden;
            color: white;
        }

        .map-wrapper {
            background: #000;
            color-scheme: light;
            filter: none !important;
            mix-blend-mode: normal !important;
        }

        #map-container {
            background-color: transparent !important;
            isolation: isolate;
            mix-blend-mode: normal !important;
            filter: none !important;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: -1;
        }

        .container {
            position: absolute;
            top: 0;
            left: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            width: 100vw;
            z-index: 1;
        }
        .register-form {
            background-color: rgba(0, 0, 0, 0.5);
            backdrop-filter: blur(5px);
            padding: 30px;
            border-radius: 10px;
            width: 90%;
            max-width: 500px;
        }

        .login-form {
            background-color: rgba(0, 0, 0, 0.5);
            backdrop-filter: blur(5px);
            padding: 30px;
            border-radius: 10px;
            width: 90%;
            max-width: 400px;
        }

        #h2 {
            color: #d9aa3b;
            text-align: center;
            margin-bottom: 10px;
        }

        #logoForm {
            display: block;
            margin: 0 auto 10px;
            width: 210px;
            height: auto;
            object-fit: contain;
        }

        /* Tablet */
        @media screen and (min-width: 768px) {
            #logoForm {
                width: 250px;
            }
        }

        /* Desktop */
        @media screen and (min-width: 1024px) {
            #logoForm {
                width: 300px;
                margin-bottom: 15px;
            }
        }

        .back-button {
            position: fixed;
            top: 20px;
            left: 20px;
            z-index: 1000;
            background-color: transparent;
            border: 2px solid rgba(255, 255, 255, 0.3);
            padding: 12px 20px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            gap: 10px;
            cursor: pointer;
            transition: all 0.3s ease;
            text-decoration: none;
            color: white;
        }

        .back-button:hover {
            background-color: rgba(255, 255, 255, 0.1);
            border-color: rgba(255, 255, 255, 0.5);
            transform: translateX(-5px);
        }

        .back-button:active {
            transform: translateX(-5px) scale(0.95);
        }

        .back-button svg {
            width: 24px;
            height: 24px;
            stroke: white;
            transition: transform 0.3s ease;
        }

        .back-button:hover svg {
            transform: translateX(-3px);
        }

        .back-button span {
            font-size: 14px;
            font-weight: 500;
        }

        .alert {
            padding: 14px 18px;
            border-radius: 8px;
            margin-bottom: 16px;
            font-size: 14px;
            display: block;
            align-items: center;
            gap: 10px;
            position: relative;
        }

        .alert-success {
            background-color: #065f46;
            border: 1px solid #6ee7b7;
            color: #ffffff;
        }

        .alert-info {
            background-color: #1e40af;
            border: 1px solid #93c5fd;
            color: #ffffff;
        }

        .alert-dismissible {
            padding-right: 40px;
        }

        .btn-close {
            position: absolute;
            right: 12px;
            top: 50%;
            transform: translateY(-50%);
            background: none;
            border: none;
            font-size: 18px;
            cursor: pointer;
            color: inherit;
            opacity: 0.6;
            line-height: 1;
        }

        .btn-close:hover {
            opacity: 1;
        }

        .btn-close::before {
            content: '×';
        }

        @media screen and (max-width: 768px) {
            .back-button {
                top: 15px;
                left: 15px;
                padding: 10px 15px;
            }

            .back-button svg {
                width: 20px;
                height: 20px;
            }

            .back-button span {
                font-size: 12px;
            }
        }

        .running-text-container {
            width: 100%; /* Akan mengikuti lebar .login-form */
            overflow: hidden; /* Penting! Menyembunyikan bagian teks yang keluar dari container */
            white-space: nowrap; /* Penting! Mencegah teks melompat ke baris baru */
            box-sizing: border-box; /* Memastikan padding dan border tidak menambah lebar */
            padding: 10px 0; /* Padding vertikal agar teks tidak terlalu mepet */
            background-color: #f0f0f0; /* Contoh: warna latar belakang banner */
            border: 1px solid #ddd; /* Contoh: border banner */
            border-radius: 5px; /* Contoh: sudut membulat */
            margin-bottom: 15px; /* Jarak bawah banner */
            font-size: 0.9em; /* Ukuran font lebih kecil agar tidak terlalu memakan tempat */
            color: #0048ba; /* Warna teks */
        }

        .running-text-content {
            display: inline-block; /* Penting! Agar elemen bisa bergerak horizontal */
            padding-left: 100%; /* Memulai teks dari luar sisi kanan container */
            animation: scroll-text 20s linear infinite; /* Animasi scroll */
        }

        @keyframes scroll-text {
            0% {
                transform: translateX(0%); /* Posisi awal: di luar kanan */
            }
            100% {
                transform: translateX(-100%); /* Posisi akhir: di luar kiri */
            }
        }

        @media screen and (max-width: 768px) {
            .running-text-content {
                /* Misalnya, buat lebih cepat di layar kecil */
                animation: scroll-text 20s linear infinite;
            }
        }

        .form-title {
            text-align: center;
            margin-bottom: 20px;
            font-size: 24px;
            color: white;
        }

        .form-group {
            margin-bottom: 15px;
        }

        .form-group label {
            display: block;
            margin-bottom: 5px;
            font-weight: bold;
        }

        .row {
            display: flex; /* Menggunakan flexbox untuk menata elemen di dalamnya secara horizontal */
            gap: 15px; /* Memberikan jarak antar kolom */
            margin-bottom: 15px; /* Memberikan jarak dengan elemen berikutnya */
        }

        .col-md-6 {
            flex: 1; /* Membuat setiap kolom mengambil porsi lebar yang sama (atau sesuai dengan content jika gap diperhitungkan) */
            width: 50%; /* Alternatif jika Anda tidak ingin menggunakan flex-grow */
        }

        /* Pastikan form-group di dalam col-md-6 tetap memiliki margin bawah yang sesuai untuk jarak dengan label dan input di bawahnya */
        .col-md-6 .form-group {
            margin-bottom: 15px; /* Atau sesuaikan sesuai kebutuhan */
        }

        .form-check {
             margin-right: 15px;
             margin-bottom: 0;
             display: inline-flex;
             align-items: center;
        }

        .form-check:last-child {
            margin-right: 0;
        }

        .form-check-input {
            appearance: none;
            -webkit-appearance: none;
            -moz-appearance: none;
            width: 16px;
            height: 16px;
            border: 2px solid white;
            border-radius: 50%;
            background-color: transparent;
            cursor: pointer;
            margin-right: 8px;
            display: inline-block;
            position: relative;
        }

        .form-check-input:checked {
            background-color: #0048ba;
            border-color: #0048ba;
        }

        .form-check-input:checked::before {
            content: '';
            position: absolute;
            display: block;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background-color: white;
        }

        .form-check-input:focus {
            outline: none;
            border-color: #d9aa3b; /* Warna border saat fokus */
        }

        .form-check-label {
            color: white; /* Warna teks label pilihan radio */
            cursor: pointer;
            margin-right: 10px; /* Tambahkan sedikit jarak antara radio dan label */
        }

        .form-control {
            width: 100%;
            padding: 10px;
            background-color: rgba(0, 72, 186, 0.6);
            border: none;
            border-radius: 5px;
            color: white;
            transition: all 0.3s ease;
        }

        .form-control:focus {
            outline: none;
            background-color: rgba(0, 72, 186, 0.8);
        }

        .form-control::placeholder {
            color: rgba(255, 255, 255, 0.7);
        }

        .btn-submit {
            width: 100%;
            padding: 12px;
            background-color: #0048ba;
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            font-weight: bold;
            transition: all 0.3s ease;
        }

        .btn-submit:hover {
            background-color: #d9aa3b;
            color: #000;
        }

        .form-footer {
            text-align: center;
            margin-top: 20px;
        }

        .form-footer a {
            color: #0048ba;
            text-decoration: none;
        }

        .form-footer a:hover {
            text-decoration: underline;
        }

        .text-danger {
            color: red;
        }

        #alert-header {
            color: #ffffff;
            font-weight: bold;
            margin-bottom: 10px;
            margin-top: 10px;
        }


/* ============================================
   SELECT2 - Override sesuai tema SIGEO ULM
   ============================================ */

/* Container utama */
.select2-container {
    width: 100% !important;
}

/* Kotak pilihan (tampilan tertutup) */
.select2-container--default .select2-selection--single {
    background-color: rgba(0, 72, 186, 0.6);
    border: none;
    border-radius: 5px;
    height: 41px;
    transition: all 0.3s ease;
}

/* Teks yang dipilih */
.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: rgba(220, 220, 220, 0.9); /* UBAH - abu terang */
    line-height: 41px;
    padding-left: 10px;
    padding-right: 30px;
}

/* Placeholder */
.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: rgba(255, 255, 255, 0.7);
}

/* Ikon panah dropdown */
.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 41px;
    right: 8px;
}

.select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: rgba(255, 255, 255, 0.7) transparent transparent transparent;
}

/* Saat dropdown terbuka, panah berbalik */
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color: transparent transparent #d9aa3b transparent;
}

/* Saat fokus/aktif */
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
    background-color: rgba(0, 72, 186, 0.8);
    outline: none;
}

/* Ikon X (clear button) */
.select2-container--default .select2-selection--single .select2-selection__clear {
    color: rgba(255, 255, 255, 0.7);
    font-size: 16px;
    margin-right: 5px;
}

.select2-container--default .select2-selection--single .select2-selection__clear:hover {
    color: #d9aa3b;
}

/* Kotak dropdown (daftar pilihan) */
.select2-dropdown {
    background-color: rgba(0, 30, 100, 0.97);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(0, 72, 186, 0.6);
    border-radius: 5px;
    z-index: 9999;
}
/* Search box di dalam dropdown (jika diaktifkan) */
.select2-container--default .select2-search--dropdown .select2-search__field {
    background-color: rgba(0, 72, 186, 0.4);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 4px;
    color: rgb(220, 220, 220); /* UBAH - abu terang */
    padding: 6px 10px;
}

.select2-container--default .select2-search--dropdown .select2-search__field:focus {
    outline: none;
    border-color: #d9aa3b;
}

/* Setiap item pilihan */
.select2-container--default .select2-results__option {
    color: rgba(200, 200, 200, 0.85); /* UBAH - abu terang */
    padding: 8px 12px;
    background-color: transparent; /* UBAH - pastikan tidak ada bg putih */
    transition: background-color 0.2s ease;
}


/* Item saat di-hover */
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: rgba(0, 72, 186, 0.7);
    color: rgba(220, 220, 220, 0.9); /* UBAH - abu terang */
}

.select2-container--default .select2-results__option[aria-selected="true"] {
    background-color: #d9aa3b;
    color: #1a1a1a; /* UBAH - gelap agar kontras di atas emas */
    font-weight: bold;
}

/* Container hasil (ul) - ini sering jadi sumber bg putih */
.select2-results {
    background-color: transparent; /* UBAH */
}

.select2-results__options {
    background-color: transparent; /* UBAH */
}

@media screen and (max-width: 576px) {
    .row {
        flex-direction: column;
        gap: 0;
    }

    .col-md-6 {
        width: 100%;
    }
}

/* ============================================
   RESPONSIVE MOBILE - Max 768px
   ============================================ */
@media screen and (max-width: 768px) {

    /* Izinkan scroll di mobile */
    body, html {
        overflow-y: auto;
        overflow-x: hidden;
        height: auto;
    }

    /* Container tidak lagi fixed center, tapi flow dari atas */
    .container {
        position: relative;
        align-items: flex-start;
        padding: 70px 16px 30px; /* 70px atas: ruang untuk tombol back */
        min-height: 100dvh; /* dvh: memperhitungkan browser bar di HP */
    }

    /* Form menyesuaikan lebar layar */
    .register-form,
    .login-form {
        width: 100%;
        max-width: 100%;
        padding: 20px 16px;
        border-radius: 8px;
    }

    /* Logo lebih kecil */
    #logoForm {
        width: 160px;
        margin-bottom: 8px;
    }

    /* Judul lebih kecil */
    #h2 {
        font-size: 16px;
        margin-bottom: 8px;
    }

    /* Running text lebih kecil */
    .running-text-container {
        font-size: 0.75em;
        padding: 7px 0;
        margin-bottom: 10px;
    }

    /* Semua .row jadi satu kolom */
    .row {
        flex-direction: column;
        gap: 0;
        margin-bottom: 0;
    }

    .col-md-6 {
        width: 100%;
    }

    /* form-group jarak lebih rapat */
    .form-group {
        margin-bottom: 10px;
    }

    .col-md-6 .form-group {
        margin-bottom: 10px;
    }

    /* Input & select lebih kompak */
    .form-control {
        padding: 8px 10px;
        font-size: 13px;
    }

    /* Select2 sesuaikan tinggi baru */
    .select2-container--default .select2-selection--single {
        height: 36px;
    }

    .select2-container--default .select2-selection--single .select2-selection__rendered {
        line-height: 36px;
        font-size: 13px;
    }

    .select2-container--default .select2-selection--single .select2-selection__arrow {
        height: 36px;
    }

    /* Label lebih kecil */
    .form-group label {
        font-size: 12px;
        margin-bottom: 4px;
    }

    /* Tombol submit kompak */
    .btn-submit {
        padding: 10px;
        font-size: 14px;
    }

    /* Footer form */
    .form-footer {
        margin-top: 12px;
        font-size: 13px;
    }
}

/* ============================================
   RESPONSIVE - HP sangat kecil (max 380px)
   ============================================ */
@media screen and (max-width: 380px) {

    .container {
        padding: 60px 12px 24px;
    }

    #logoForm {
        width: 130px;
    }

    #h2 {
        font-size: 14px;
    }

    .form-control {
        font-size: 12px;
        padding: 7px 9px;
    }

    .form-group label {
        font-size: 11px;
    }
}
