/* Shared auth page styles — teal/dark brand */
:root {
    --tp-primary: #0D9488;
    --tp-primary-hover: #0F766E;
    --tp-primary-light: #14B8A6;
    --tp-bg-base: #0F172A;
    --tp-bg-surface: #1E293B;
    --tp-bg-surface-light: #334155;
    --tp-text-primary: #F1F5F9;
    --tp-text-secondary: #94A3B8;
    --tp-text-muted: #64748B;
    --tp-border: #334155;
    --tp-pass: #22C55E;
    --tp-fail: #EF4444;
}

body {
    font-family: 'Inter', sans-serif;
    background: linear-gradient(135deg, var(--tp-bg-base) 0%, #0B1120 100%);
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 0;
    margin: 0;
}

.auth-container {
    text-align: center;
    width: 100%;
    max-width: 420px;
    padding: 0 1rem;
}

.auth-container.auth-wide {
    max-width: 480px;
}

.auth-branding {
    margin-bottom: 2rem;
}

.auth-logo {
    height: 40px;
}

.auth-tagline {
    color: var(--tp-text-secondary);
    margin-top: 0.5rem;
    font-size: 0.95rem;
}

.auth-card {
    background: var(--tp-bg-surface);
    border: 1px solid var(--tp-border);
    border-radius: 1rem;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.4);
    padding: 2.5rem;
    text-align: left;
}

.auth-card h2 {
    color: var(--tp-text-primary);
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.auth-card .form-label {
    color: var(--tp-text-secondary);
    font-size: 0.875rem;
    font-weight: 500;
}

.auth-card .form-control {
    background: var(--tp-bg-base);
    border: 1px solid var(--tp-border);
    color: var(--tp-text-primary);
    border-radius: 0.5rem;
    padding: 0.625rem 0.875rem;
}

.auth-card .form-control:focus {
    border-color: var(--tp-primary);
    box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.2);
    background: var(--tp-bg-base);
    color: var(--tp-text-primary);
}

.auth-card .form-control::placeholder {
    color: var(--tp-text-muted);
}

.auth-card .form-control:disabled,
.auth-card .form-control[readonly] {
    background: var(--tp-bg-surface-light);
    color: var(--tp-text-muted);
    opacity: 0.8;
}

.auth-card .form-text {
    color: var(--tp-text-muted);
    font-size: 0.8rem;
}

.auth-card .form-check-input {
    background-color: var(--tp-bg-base);
    border-color: var(--tp-border);
}

.auth-card .form-check-input:checked {
    background-color: var(--tp-primary);
    border-color: var(--tp-primary);
}

.auth-card .form-check-label {
    color: var(--tp-text-secondary);
    font-size: 0.875rem;
}

.btn-auth {
    background: var(--tp-primary);
    border-color: var(--tp-primary);
    padding: 0.75rem;
    font-weight: 600;
    color: white;
    border-radius: 0.5rem;
    transition: background 0.15s, border-color 0.15s;
}

.btn-auth:hover {
    background: var(--tp-primary-hover);
    border-color: var(--tp-primary-hover);
    color: white;
}

.btn-auth:focus {
    box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.3);
}

.btn-auth:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.auth-card .alert {
    border-radius: 0.5rem;
    font-size: 0.875rem;
}

.auth-card .alert-danger {
    background: rgba(239, 68, 68, 0.1);
    border: 1px solid rgba(239, 68, 68, 0.3);
    color: #FCA5A5;
}

.auth-card .alert-success {
    background: rgba(34, 197, 94, 0.1);
    border: 1px solid rgba(34, 197, 94, 0.3);
    color: #86EFAC;
}

.auth-card .alert-info {
    background: rgba(13, 148, 136, 0.1);
    border: 1px solid rgba(13, 148, 136, 0.3);
    color: #5EEAD4;
}

.auth-links {
    text-align: center;
    margin-top: 1.5rem;
}

.auth-links span {
    color: var(--tp-text-muted);
    font-size: 0.875rem;
}

.auth-links a {
    color: var(--tp-primary-light);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 500;
}

.auth-links a:hover {
    color: var(--tp-primary);
    text-decoration: underline;
}

.auth-links + .auth-links {
    margin-top: 0.5rem;
}

.auth-divider {
    display: flex;
    align-items: center;
    text-align: center;
    margin: 1.5rem 0;
    color: var(--tp-text-muted);
    font-size: 0.8rem;
}

.auth-divider::before,
.auth-divider::after {
    content: '';
    flex: 1;
    border-bottom: 1px solid var(--tp-border);
}

.auth-divider::before {
    margin-right: 1rem;
}

.auth-divider::after {
    margin-left: 1rem;
}

.team-info {
    background: var(--tp-bg-base);
    border: 1px solid var(--tp-border);
    border-radius: 0.5rem;
    padding: 1rem;
    margin-bottom: 1.5rem;
    text-align: center;
}

.team-info h5 {
    margin-bottom: 0.25rem;
    color: var(--tp-text-primary);
    font-size: 1rem;
}

.team-info small {
    color: var(--tp-text-muted);
}

.auth-card .forgot-link {
    color: var(--tp-text-muted);
    font-size: 0.8rem;
    text-decoration: none;
}

.auth-card .forgot-link:hover {
    color: var(--tp-primary-light);
    text-decoration: underline;
}

/* External provider buttons */
.btn-external {
    background: var(--tp-bg-base);
    border: 1px solid var(--tp-border);
    color: var(--tp-text-primary);
    padding: 0.625rem;
    font-weight: 500;
    border-radius: 0.5rem;
    transition: background 0.15s, border-color 0.15s;
}

.btn-external:hover {
    background: var(--tp-bg-surface-light);
    border-color: var(--tp-text-muted);
    color: var(--tp-text-primary);
}

/* Status icon for confirm/access-denied pages */
.auth-status-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    font-size: 2rem;
}

.auth-status-icon.success {
    background: rgba(34, 197, 94, 0.1);
    color: var(--tp-pass);
}

.auth-status-icon.error {
    background: rgba(239, 68, 68, 0.1);
    color: var(--tp-fail);
}

.auth-status-icon.warning {
    background: rgba(234, 179, 8, 0.1);
    color: #EAB308;
}

.auth-status-icon.info {
    background: rgba(13, 148, 136, 0.1);
    color: var(--tp-primary-light);
}

/* Recovery codes display */
.recovery-codes {
    background: var(--tp-bg-base);
    border: 1px solid var(--tp-border);
    border-radius: 0.5rem;
    padding: 1rem;
    font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
    font-size: 0.875rem;
    color: var(--tp-text-primary);
    line-height: 1.8;
}
