/* OptionsPlay.Auth/wwwroot/css/site.css */

/* ============================================
   OptionsPlay brand palette
   Mirrors the dashboard design tokens so the SSO pages read as
   the same product as the landing page and redirect loaders.
   Brand is GREEN-forward; the blue→green gradient is the shared
   splash treatment used across the whole sign-in journey.
   ============================================ */
:root {
    --op-primary: #4f7a34;          /* brand green */
    --op-primary-hover: #3d6129;
    --op-primary-active: #2f4a20;
    --op-primary-soft: rgba(79, 122, 52, 0.12);
    --op-brand-blue-800: #003056;
    --op-brand-green-700: #3d6129;
    --op-gradient: linear-gradient(135deg, var(--op-brand-blue-800) 0%, var(--op-brand-green-700) 100%);
    --op-text: #1f2937;
    --op-text-muted: #6b7280;
    --op-border: #e5e7eb;
    --op-danger: #dc2626;
}

html, body {
    font-family: 'Noto Sans', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    margin: 0;
    padding: 0;
    min-height: 100vh;
}

body {
    background: var(--op-gradient) fixed;
    background-size: cover;
}

/* Standard subtle grid overlay — the brand splash treatment, applied
   site-wide so every auth page matches the dashboard landing page. */
body::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
    background-size: 60px 60px;
    pointer-events: none;
    z-index: 0;
}

.site-body {
    position: relative;
}

.site-body > * {
    position: relative;
    z-index: 1;
}

/* Sticky Footer Layout */
.site-body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.site-content {
    flex: 1 0 auto;
}

.site-footer {
    flex-shrink: 0;
    background-color: transparent;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    padding: 1rem 0;
    text-align: center;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
}

.site-footer a {
    color: rgba(255, 255, 255, 0.9);
    text-decoration: none;
    font-weight: 500;
}

.site-footer a:hover {
    text-decoration: underline;
}

/* Auth Navbar — transparent bar that sits on the brand gradient */
.auth-navbar {
    background-color: transparent;
    color: white;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 2rem;
}

.auth-navbar .navbar-brand {
    display: flex;
    align-items: center;
    gap: 9px;
}

.auth-navbar .navbar-brand .brand-ball {
    height: 34px;
    width: auto;
}

.auth-navbar .navbar-brand .brand-name {
    height: 28px;
    width: auto;
}

/* Dev-only "SSO" badge removed from the consumer-facing experience */
.auth-navbar .sso-badge {
    display: none;
}

/* Brand Bootstrap's primary so any Bootstrap-based page (e.g. the Index
   utility page) picks up OptionsPlay green instead of the CDN blue. */
.btn-primary {
    background-color: var(--op-primary);
    border-color: var(--op-primary);
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--op-primary-hover);
    border-color: var(--op-primary-hover);
}

.btn-primary:active,
.btn-primary:not(:disabled):not(.disabled):active {
    background-color: var(--op-primary-active);
    border-color: var(--op-primary-active);
}

.bg-primary {
    background-color: var(--op-primary) !important;
}

.text-primary {
    color: var(--op-primary) !important;
}

.auth-navbar nav ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    align-items: center;
}

.auth-navbar nav li {
    margin: 0 1rem;
}

.auth-navbar nav a {
    color: white;
    text-decoration: none;
    padding: 1rem 0;
    display: inline-block;
}

.auth-navbar nav a:hover {
    text-decoration: underline;
}

.container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 15px;
}

.row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
}

.justify-content-center {
    justify-content: center;
}

.col-md-6 {
    position: relative;
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
}

@media (min-width: 768px) {
    .col-md-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }
}

.mt-5 {
    margin-top: 3rem !important;
}