/* ── Login / Logout frosted-glass card ── Matches the site-background.css design system. Uses the same --glass-* CSS custom properties. ───────────────────────────────────────────── */ /* ── Login card: frosted glass ── */ .login-card { position: relative; max-width: 420px; width: 100%; background: rgba(255, 255, 255, 0.55); backdrop-filter: blur(12px) saturate(1.3); -webkit-backdrop-filter: blur(12px) saturate(1.3); border-radius: 16px; border: 1px solid rgba(255, 255, 255, 0.5); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.6); padding: 1.5rem 2rem; overflow: hidden; } /* Tighter vertical rhythm inside card */ .login-card .mb-3 { margin-bottom: 0.65rem !important; } /* Specular shine overlay */ .login-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 50%; background: linear-gradient( 180deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0) 100% ); border-radius: 16px 16px 0 0; pointer-events: none; } /* ── Dark mode ── */ [data-bs-theme="dark"] .login-card { background: rgba(33, 37, 41, 0.6); border-color: rgba(255, 255, 255, 0.08); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.05); } [data-bs-theme="dark"] .login-card::before { background: linear-gradient( 180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0) 100% ); } /* ── Logo ── */ .login-card .login-logo { filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.12)); } [data-bs-theme="dark"] .login-card .login-logo { filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4)); } /* ── Heading ── */ .login-card .login-heading { font-weight: 600; letter-spacing: -0.01em; } /* ── Divider ── */ .login-divider { border: 0; height: 1px; background: linear-gradient( 90deg, transparent, rgba(0, 0, 0, 0.12), transparent ); margin: 0.5rem 0 1rem; } [data-bs-theme="dark"] .login-divider { background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.12), transparent ); } /* ── Input focus glow ── */ .login-card .form-control:focus { border-color: #86b7fe; box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15); transition: border-color 0.2s ease, box-shadow 0.2s ease; } .login-card .form-control { transition: border-color 0.2s ease, box-shadow 0.2s ease; } [data-bs-theme="dark"] .login-card .form-control:focus { box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25); } /* ── Input group icon styling ── */ .login-card .input-group-text { background: rgba(255, 255, 255, 0.5); border-color: inherit; } [data-bs-theme="dark"] .login-card .input-group-text { background: rgba(52, 58, 64, 0.5); } /* ── Password toggle button ── */ .login-card .btn-password-toggle { border-color: var(--bs-border-color); background: rgba(255, 255, 255, 0.5); color: var(--bs-body-color); display: flex; align-items: center; padding: 0.375rem 0.75rem; } .login-card .btn-password-toggle:hover { background: rgba(0, 0, 0, 0.05); } [data-bs-theme="dark"] .login-card .btn-password-toggle { background: rgba(52, 58, 64, 0.5); } [data-bs-theme="dark"] .login-card .btn-password-toggle:hover { background: rgba(255, 255, 255, 0.08); } /* ── Logo spacing ── */ .login-card .login-logo { margin-bottom: 0.5rem !important; } /* ── Submit button ── */ .login-card .btn-login { padding: 0.6rem 1rem; font-size: 1.05rem; font-weight: 500; background: linear-gradient(180deg, #0d6efd 0%, #0b5ed7 100%); border: none; transition: transform 0.15s ease, box-shadow 0.15s ease; } .login-card .btn-login:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(13, 110, 253, 0.35); } .login-card .btn-login:active { transform: translateY(0); } /* ── Logout card extras ── */ .login-card .logout-icon { font-size: 2.5rem; color: #198754; } [data-bs-theme="dark"] .login-card .logout-icon { color: #75b798; } /* ── Mobile responsive ── */ @media (max-width: 576px) { .login-card { padding: 1.5rem 1.25rem; border-radius: 12px; margin: 0 0.75rem; } .login-card::before { border-radius: 12px 12px 0 0; } }