:root {
    color-scheme: dark;
    --background: #07101d;
    --surface: #101b2c;
    --surface-soft: #152338;
    --border: #283951;
    --text: #f7f9fc;
    --text-soft: #9cacbf;
    --primary: #347cff;
    --primary-dark: #1766f5;
    --success: #38c982;
    --warning: #f2b94b;
    --error: #ff7171;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    background:
        radial-gradient(
            circle at top right,
            rgba(52, 124, 255, 0.18),
            transparent 38%
        ),
        var(--background);
    color: var(--text);
    font-family:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

.auth-shell {
    width: min(100% - 28px, 520px);
    margin: 0 auto;
    padding: 48px 0;
}

.auth-brand {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 24px;
}

.auth-brand > span {
    width: 41px;
    height: 41px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: var(--primary);
    color: white;
    font-size: 21px;
    font-weight: 900;
}

.auth-brand strong {
    font-size: 23px;
}

.auth-card,
.dashboard-card {
    padding: 30px;
    border: 1px solid var(--border);
    border-radius: 24px;
    background: rgba(16, 27, 44, 0.94);
    box-shadow:
        0 30px 90px rgba(0, 0, 0, 0.28);
}

.auth-heading {
    margin-bottom: 27px;
}

.auth-heading p,
.page-label {
    margin: 0 0 9px;
    color: #6c9cff;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.auth-heading h1,
.dashboard-card h1 {
    margin: 0;
    font-size: 31px;
    line-height: 1.14;
    letter-spacing: -0.035em;
}

.auth-heading > span,
.dashboard-card > p {
    display: block;
    margin-top: 11px;
    color: var(--text-soft);
    line-height: 1.6;
}

.auth-form {
    display: grid;
    gap: 17px;
}

.auth-form label {
    display: grid;
    gap: 8px;
    color: #dce5f1;
    font-size: 13px;
    font-weight: 750;
}

.auth-form input,
.auth-form select,
.auth-form textarea {
    width: 100%;
    border: 1px solid var(--border);
    border-radius: 12px;
    outline: none;
    background: #0b1524;
    color: var(--text);
}

.auth-form input,
.auth-form select {
    height: 50px;
    padding: 0 14px;
}

.auth-form textarea {
    padding: 13px 14px;
    resize: vertical;
}

.auth-form input:focus,
.auth-form select:focus,
.auth-form textarea:focus {
    border-color: var(--primary);
    box-shadow:
        0 0 0 4px rgba(52, 124, 255, 0.13);
}

.auth-form small,
.standalone-error {
    color: var(--error);
    font-size: 11px;
}

.auth-form button,
.secondary-form button {
    min-height: 51px;
    border: 0;
    border-radius: 13px;
    background: var(--primary);
    color: white;
    font-weight: 850;
    cursor: pointer;
}

.auth-form button:hover {
    background: var(--primary-dark);
}

.checkbox-field {
    grid-template-columns: 19px 1fr !important;
    align-items: start;
}

.checkbox-field input {
    width: 17px;
    height: 17px;
    margin-top: 1px;
    accent-color: var(--primary);
}

.auth-footer,
.auth-links,
.admin-login-link {
    color: var(--text-soft);
    font-size: 13px;
}

.auth-footer {
    margin: 24px 0 0;
    text-align: center;
}

.auth-footer a,
.auth-links a,
.admin-login-link {
    color: #78a5ff;
    font-weight: 750;
}

.auth-links {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin-top: 23px;
}

.admin-login-link {
    display: block;
    margin-top: 23px;
    text-align: center;
}

.alert {
    margin-bottom: 21px;
    padding: 13px 15px;
    border-radius: 12px;
    font-size: 13px;
    line-height: 1.55;
}

.alert.success {
    border: 1px solid rgba(56, 201, 130, 0.3);
    background: rgba(56, 201, 130, 0.1);
    color: #8de2b8;
}

.alert.warning {
    border: 1px solid rgba(242, 185, 75, 0.3);
    background: rgba(242, 185, 75, 0.09);
    color: #f4ca79;
}

.information-box {
    margin-bottom: 20px;
    padding: 15px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #0b1524;
    color: var(--text-soft);
    font-size: 13px;
}

.information-box strong {
    display: block;
    margin-top: 5px;
    color: var(--text);
}

.secondary-form {
    margin-top: 13px;
}

.secondary-form button {
    width: 100%;
    border: 1px solid var(--border);
    background: transparent;
}

.honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
}

.app-header {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    padding: 0 max(20px, calc((100% - 1120px) / 2));
    border-bottom: 1px solid var(--border);
    background: rgba(7, 16, 29, 0.9);
}

.app-header .auth-brand {
    margin: 0;
}

.app-header nav {
    display: flex;
    align-items: center;
    gap: 18px;
}

.app-header nav a,
.app-header nav button {
    color: var(--text-soft);
    font-size: 13px;
    font-weight: 750;
}

.app-header nav form {
    margin: 0;
}

.app-header nav button {
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
}

.app-main {
    width: min(100% - 28px, 1120px);
    margin: 0 auto;
    padding: 45px 0;
}

.account-information {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 13px;
    margin-top: 28px;
}

.account-information div {
    padding: 17px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: #0b1524;
}

.account-information span,
.session-item span,
.session-item small {
    display: block;
    color: var(--text-soft);
    font-size: 11px;
}

.account-information strong {
    display: block;
    margin-top: 5px;
}

.settings-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 19px;
}

.settings-grid h2 {
    margin: 0 0 20px;
}

.session-list {
    display: grid;
    gap: 10px;
}

.session-item {
    padding: 15px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #0b1524;
}

.session-item strong {
    display: block;
    margin-bottom: 5px;
}

.session-item small {
    margin-top: 5px;
}

.user-agent {
    word-break: break-word;
}

.session-form {
    margin-top: 22px;
}

@media (max-width: 760px) {
    .auth-shell {
        padding: 25px 0;
    }

    .auth-card,
    .dashboard-card {
        padding: 22px 18px;
        border-radius: 19px;
    }

    .settings-grid,
    .account-information {
        grid-template-columns: 1fr;
    }

    .app-header {
        align-items: flex-start;
        flex-direction: column;
        padding: 16px;
    }

    .app-header nav {
        width: 100%;
        justify-content: space-between;
    }
}

/* PRELHE FEMININE AUTH THEME */
:root {
    --background: #241525;
    --surface: #342036;
    --surface-soft: #422942;
    --border: #624262;
    --text: #fff8fc;
    --text-soft: #d4b9cd;
    --primary: #e1529b;
    --primary-dark: #c43b82;
    --success: #42bd8b;
    --warning: #f3b867;
    --error: #ff8aab;
}

body {
    background:
        radial-gradient(
            circle at top right,
            rgba(244, 114, 182, 0.24),
            transparent 35%
        ),
        radial-gradient(
            circle at bottom left,
            rgba(139, 92, 246, 0.17),
            transparent 35%
        ),
        var(--background);
}

.auth-brand > span {
    background:
        linear-gradient(
            145deg,
            #f472b6,
            #d9468f,
            #9f55e8
        );
}

.auth-card,
.dashboard-card {
    background: rgba(52, 32, 54, 0.95);
}

.auth-form input,
.auth-form select,
.auth-form textarea {
    background: #29192b;
}

.auth-form input:focus,
.auth-form select:focus,
.auth-form textarea:focus {
    box-shadow:
        0 0 0 4px rgba(225, 82, 155, 0.15);
}
