:root {
    --term-bg: #1b1519;
    --term-fg: #d2ccd2;
    --term-muted: #96708e;
    --term-cursor: #e3a16f;
    --term-purple: #6843ae;
    --term-link: #f4b39e;
    --term-white: #e8e8e8;
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100vh;
    margin: 0;
    color: var(--term-fg) !important;
    background: #000000 !important;
    font-family: "MesloLGS NF", "Meslo LG S", "MesloLGS", "IBM Plex Mono", monospace !important;
}

a {
    color: var(--term-link);
    text-decoration: none;
}

a:hover {
    color: var(--term-white);
}

.auth-shell {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(320px, 480px);
    gap: 12px;
    min-height: calc(100vh - 71px);
    padding: 12px;
    background: #000000;
}

.auth-shell-centered {
    grid-template-columns: minmax(320px, 720px);
    justify-content: center;
    align-content: center;
}

.auth-intro,
.auth-window {
    color: var(--term-fg);
    background: rgba(27, 21, 25, .78);
    border: 1px solid var(--term-purple);
    border-radius: 3px;
    box-shadow: 0 0 0 1px rgba(104, 67, 174, .24), 0 18px 70px rgba(0, 0, 0, .46);
}

.auth-intro {
    padding: clamp(16px, 3vw, 32px);
}

.auth-intro h1 {
    margin: 10px 0 12px;
    color: var(--term-white);
    font-size: clamp(34px, 4vw, 56px);
    line-height: 1.04;
    letter-spacing: 0;
}

.auth-intro p {
    max-width: 72ch;
    color: var(--term-fg);
    line-height: 1.6;
}

.auth-window {
    align-self: start;
    overflow: hidden;
}

.auth-window-wide {
    width: 100%;
}

.auth-body {
    padding: clamp(16px, 2.5vw, 28px);
}

.auth-form {
    display: grid;
    gap: 16px;
    margin-top: 18px;
}

.auth-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.field {
    display: grid;
    gap: 8px;
}

label,
.auth-form p {
    color: var(--term-fg);
}

label {
    font-size: 14px;
    font-weight: 700;
}

.auth-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.check-field {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

input {
    width: 100%;
    color: var(--term-white) !important;
    background: rgba(46, 35, 41, .9) !important;
    border: 1px solid var(--term-purple) !important;
    border-radius: 0 !important;
    font-family: inherit !important;
}

input:not([type="checkbox"]) {
    min-height: 42px;
    padding: 9px 11px;
}

input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: var(--term-purple);
}

input::placeholder {
    color: var(--term-muted) !important;
}

button {
    width: fit-content;
    min-height: 38px;
    padding: 8px 14px;
    color: var(--term-link) !important;
    background: transparent !important;
    border: 1px solid var(--term-purple) !important;
    border-radius: 0 !important;
    font-family: inherit !important;
}

button:hover {
    color: var(--term-white) !important;
    background: var(--term-purple) !important;
}

.auth-cmd {
    margin: 0 0 .5rem;
    color: var(--term-fg);
}

.auth-cmd .cmd-text {
    color: var(--term-fg);
}

.auth-cmd::before {
    content: none !important;
}

dialog {
    color: var(--term-fg);
    background: rgba(27, 21, 25, .98);
    border: 1px solid var(--term-purple);
}

@media (max-width: 850px) {
    .auth-shell {
        grid-template-columns: 1fr;
        min-height: auto;
        padding: 8px;
    }

    .auth-grid {
        grid-template-columns: 1fr;
    }

    .auth-row {
        align-items: flex-start;
        flex-direction: column;
    }
}
