@keyframes bg-drift {
    0%   { background-position: center center, 0 0; }
    50%  { background-position: center center, 400px 200px; }
    100% { background-position: center center, 0 400px; }
}

body {
    padding-top: 0;
    padding-bottom: 0;
    background-color: #1a1d23;
    background-image:
        linear-gradient(135deg, rgba(26,29,35,.65) 0%, rgba(34,38,46,.65) 50%, rgba(42,46,55,.65) 100%),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400' viewBox='0 0 400 400'%3E%3Cdefs%3E%3Cstyle%3Ecircle%7Bfill:%2343b77a;opacity:.45%7Dline%7Bstroke:%2343b77a;stroke-width:1;opacity:.25%7D%3C/style%3E%3C/defs%3E%3Ccircle cx='40' cy='60' r='3.5'/%3E%3Ccircle cx='140' cy='30' r='3'/%3E%3Ccircle cx='260' cy='55' r='4'/%3E%3Ccircle cx='360' cy='40' r='2.5'/%3E%3Ccircle cx='80' cy='150' r='5'/%3E%3Ccircle cx='200' cy='120' r='3.5'/%3E%3Ccircle cx='320' cy='130' r='3'/%3E%3Ccircle cx='30' cy='250' r='3'/%3E%3Ccircle cx='150' cy='220' r='4'/%3E%3Ccircle cx='270' cy='240' r='3.5'/%3E%3Ccircle cx='370' cy='210' r='2.5'/%3E%3Ccircle cx='100' cy='330' r='3.5'/%3E%3Ccircle cx='220' cy='350' r='3'/%3E%3Ccircle cx='340' cy='320' r='3.5'/%3E%3Ccircle cx='180' cy='170' r='2.5'/%3E%3Ccircle cx='60' cy='380' r='2.5'/%3E%3Ccircle cx='300' cy='370' r='3'/%3E%3Cline x1='40' y1='60' x2='140' y2='30'/%3E%3Cline x1='140' y1='30' x2='260' y2='55'/%3E%3Cline x1='260' y1='55' x2='360' y2='40'/%3E%3Cline x1='40' y1='60' x2='80' y2='150'/%3E%3Cline x1='140' y1='30' x2='200' y2='120'/%3E%3Cline x1='260' y1='55' x2='320' y2='130'/%3E%3Cline x1='80' y1='150' x2='200' y2='120'/%3E%3Cline x1='200' y1='120' x2='320' y2='130'/%3E%3Cline x1='200' y1='120' x2='180' y2='170'/%3E%3Cline x1='80' y1='150' x2='150' y2='220'/%3E%3Cline x1='30' y1='250' x2='150' y2='220'/%3E%3Cline x1='150' y1='220' x2='270' y2='240'/%3E%3Cline x1='270' y1='240' x2='370' y2='210'/%3E%3Cline x1='320' y1='130' x2='370' y2='210'/%3E%3Cline x1='150' y1='220' x2='180' y2='170'/%3E%3Cline x1='30' y1='250' x2='100' y2='330'/%3E%3Cline x1='100' y1='330' x2='220' y2='350'/%3E%3Cline x1='220' y1='350' x2='340' y2='320'/%3E%3Cline x1='270' y1='240' x2='340' y2='320'/%3E%3Cline x1='100' y1='330' x2='60' y2='380'/%3E%3Cline x1='220' y1='350' x2='300' y2='370'/%3E%3Cline x1='340' y1='320' x2='300' y2='370'/%3E%3C/svg%3E");
    background-size: cover, 400px 400px;
    background-repeat: no-repeat, repeat;
    animation: bg-drift 30s linear infinite;
    min-height: 100vh;
}

/* AdminLTE wrapper — full width, centered */
.wrapper {
    width: 100% !important;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent !important;
}

.content-wrapper {
    background: transparent !important;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: auto !important;
    margin-left: 0 !important;
    width: 100%;
    flex: none;
    padding: 0 1rem;
}

.content-wrapper > .content {
    width: 100%;
    max-width: 420px;
    margin: 0 auto;
}

#changelist-form,
.container-fluid {
    max-width: 420px;
    margin: 0 auto;
    padding: 0;
}

/* Logo block */
.auth-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 1.5rem;
}
.auth-logo-text {
    font-size: 2.2rem;
    font-weight: 700;
    color: #fff;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    letter-spacing: 0.02em;
}

form fieldset {
    background: rgba(255,255,255,.12);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 16px;
    padding: 2rem 2rem 1.5rem;
    box-shadow: 0 8px 32px rgba(0,0,0,.35);
}

form .form-group {
    margin-bottom: 1rem;
}

form .form-group label {
    font-weight: 600;
    color: rgba(255,255,255,.85);
    font-size: 0.9rem;
    margin-bottom: 0.3rem;
}

form .form-control {
    font-size: 1rem;
    padding: 0.6rem 0.8rem;
    border-radius: 8px;
    border: 1px solid rgba(255,255,255,.2);
    background: rgba(255,255,255,.1);
    color: #fff;
    width: 100%;
    box-sizing: border-box;
    transition: border-color .2s, box-shadow .2s;
}

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

form .form-control:focus {
    border-color: #43b77a;
    background: rgba(255,255,255,.15);
    color: #fff;
    box-shadow: 0 0 0 0.2rem rgba(67,183,122,.25);
}

form .btn {
    width: 100%;
    padding: 0.65rem;
    font-size: 1rem;
    font-weight: 600;
    margin-top: 0.5rem;
    border-radius: 6px;
    background: linear-gradient(135deg, #43b77a, #3cbfae) !important;
    border: none !important;
    color: #fff !important;
    transition: opacity .2s;
}
form .btn:hover {
    opacity: 0.9;
}

.alert-danger {
    border-radius: 6px;
    margin-bottom: 1rem;
}

/* Hide AdminLTE chrome on login page */
.main-footer,
.main-sidebar,
.main-header {
    display: none !important;
}

/* Mobile adjustments */
@media (max-width: 576px) {
    .auth-logo-text {
        font-size: 1.6rem;
    }
    form fieldset {
        padding: 1.5rem 1.25rem 1.25rem;
    }
}
