:root {
    --error: #e81123;
    --primary: #0067b8;
    --text: #1b1b1b;
    --bg: #e2e5d3;
}

* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    font-family: "Segoe UI", "Helvetica Neue", "Roboto", sans-serif;
}

html, body {
    background-color: var(--bg);
    color: var(--text);
}

section {
    display: table-cell;
    vertical-align: middle;
    height: 100vh;
    width: 100rem;
    max-width: 100%;
}

.auth-wrapper {
    max-width: 440px;
    width: calc(100% - 40px);
    padding: 44px;
    margin: 0 auto 28px;
    background-color: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .2);
    min-width: 320px;
}

.title {
    line-height: 1.75rem;
    color: var(--text);
    font-size: 1.5rem;
    font-weight: 600;
}

.input {
    height: 36px;
    padding: 6px 0;
    border: none;
    border-bottom: 1px solid rgba(0, 0, 0, .6);
    outline: none;
    border-radius: 0;
    background-color: transparent;
    width: calc(100% - 20px);
    font-size: 15px;
}

.input:hover {
    border-bottom-color: rgba(0, 0, 0, .8);
}

.input::placeholder {
    font-size: 15px;
}

.input:focus {
    border-bottom-color: var(--primary);
    border-bottom-width: 2px;
}

a.link {
    text-decoration: none;
    color: var(--primary);
}

a.link:hover {
    text-decoration: underline;
    color: #005da6;
}

.app-btn {
    margin: 0 0 0 auto;
    display: block;
    background-color: var(--primary);
    color: #fff;
    border: 2px solid var(--primary);
    padding: 5px 30px;
    font-size: 15px;
    cursor: pointer;
}

.app-btn:hover {
    background-color: #005da6;
    border-color: #005da6;
}

.app-btn:disabled {
    opacity: .7;
    cursor: not-allowed;
}

.text-danger {
    color: var(--error);
    font-size: 13px;
}

.mt-16 { margin-top: 16px; }
.mb-16 { margin-bottom: 16px; }
.fs-13 { font-size: 13px; }
.w-100 { width: 100%; }
.d-flex { display: flex; }
.justify-content-between { justify-content: space-between; }
.align-items-center { align-items: center; }

/* Spinner — replaces Bootstrap dependency */
@keyframes spin { to { transform: rotate(360deg); } }
.spinner-border-sm {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    border: .2em solid currentcolor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: spin .75s linear infinite;
    vertical-align: -.125em;
}

@media screen and (max-width: 600px) {
    html, body { background-color: #fff; }
    section { display: block !important; }
    .auth-wrapper {
        box-shadow: none !important;
        padding: 24px !important;
        width: unset !important;
        max-width: unset !important;
    }
}
