/* admin_login.css — Modern admin login page. 2026-06-12 */

body.login.admin-login-page { margin: 0; min-height: 100vh; background: #f1f5f9; }
body.login.admin-login-page #container { width: 100%; max-width: none; min-width: 0; margin: 0; padding: 0; border: none; border-radius: 0; background: transparent; overflow: visible; }
body.login.admin-login-page #header { display: none; }
body.login.admin-login-page .breadcrumbs { display: none; }
body.login.admin-login-page #main { margin: 0; padding: 0; }
body.login.admin-login-page #content { margin: 0; padding: 0; max-width: none; }
body.login.admin-login-page #content-main { margin: 0; padding: 0; }
body.login.admin-login-page #footer { display: none; }
body.login.admin-login-page .skip-to-content-link { z-index: 20; }

.admin-login-shell { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); min-height: 100vh; }
.admin-login-brand { position: relative; display: flex; align-items: center; justify-content: center; padding: 3rem 2.5rem; background: linear-gradient(145deg, #0b1220 0%, #132238 38%, #1e3a5f 72%, #1d4ed8 100%); color: #e2e8f0; overflow: hidden; }
.admin-login-brand-inner { position: relative; z-index: 1; width: min(100%, 28rem); }
.admin-login-brand-glow { position: absolute; inset: auto -20% -30% -10%; height: 70%; background: radial-gradient(ellipse at center, rgba(96, 165, 250, 0.35) 0%, transparent 68%); pointer-events: none; }
.admin-login-brand-mark { display: inline-flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; margin-bottom: 1.25rem; border-radius: 16px; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.18); box-shadow: 0 12px 40px rgba(15, 23, 42, 0.35); font-size: 1.45rem; color: #93c5fd; }
.admin-login-brand-title { margin: 0 0 0.75rem; font-size: clamp(1.65rem, 3vw, 2.15rem); font-weight: 800; letter-spacing: -0.02em; color: #fff; line-height: 1.2; }
.admin-login-brand-lead { margin: 0 0 1.5rem; font-size: 0.98rem; line-height: 1.7; color: #cbd5e1; }
.admin-login-brand-features { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: 0.75rem; }
.admin-login-brand-features li { display: flex; align-items: center; gap: 0.65rem; padding: 0.7rem 0.85rem; border-radius: 12px; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1); font-size: 0.9rem; color: #f1f5f9; }
.admin-login-brand-features i { width: 1.1rem; text-align: center; color: #60a5fa; }
.admin-login-brand-foot { margin: 0; font-size: 0.82rem; line-height: 1.6; color: #94a3b8; }
.admin-login-brand-foot strong { color: #dbeafe; font-weight: 700; }

.admin-login-panel { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem 1.5rem 2.5rem; background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%); }
.admin-login-card { width: min(100%, 26rem); padding: 2rem 2rem 1.5rem; background: #fff; border: 1px solid #e2e8f0; border-radius: 20px; box-shadow: 0 24px 60px rgba(15, 23, 42, 0.08), 0 2px 8px rgba(15, 23, 42, 0.04); animation: admin-login-rise 0.45s ease-out; }
@keyframes admin-login-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.admin-login-card-head { margin-bottom: 1.35rem; text-align: center; }
.admin-login-card-icon { display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; margin-bottom: 0.85rem; border-radius: 14px; background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%); color: #2563eb; font-size: 1.2rem; }
.admin-login-card-head h1 { margin: 0 0 0.35rem; font-size: 1.45rem; font-weight: 800; color: #0f172a; letter-spacing: -0.02em; }
.admin-login-card-head p { margin: 0; font-size: 0.9rem; color: #64748b; line-height: 1.5; }

.admin-login-alert { display: flex; align-items: flex-start; gap: 0.55rem; margin-bottom: 1rem; padding: 0.75rem 0.85rem; border-radius: 12px; font-size: 0.875rem; line-height: 1.45; }
.admin-login-alert i { margin-top: 0.1rem; flex-shrink: 0; }
.admin-login-alert--error { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }
.admin-login-alert--warn { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; }

.admin-login-form { display: grid; gap: 1rem; }
.admin-login-field label { display: block; margin-bottom: 0.4rem; font-size: 0.8125rem; font-weight: 700; color: #334155; }
.admin-login-input-wrap { position: relative; }
.admin-login-input-wrap i { position: absolute; left: 0.9rem; top: 50%; transform: translateY(-50%); color: #94a3b8; font-size: 0.9rem; pointer-events: none; }
.admin-login-input-wrap input { width: 100%; height: 3rem; padding: 0 0.95rem 0 2.55rem; border: 1px solid #cbd5e1; border-radius: 12px; background: #f8fafc; color: #0f172a; font-size: 0.9375rem; line-height: 1.4; box-sizing: border-box; transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease; }
.admin-login-input-wrap input::placeholder { color: #94a3b8; }
.admin-login-input-wrap input:hover { border-color: #94a3b8; background: #fff; }
.admin-login-input-wrap input:focus { outline: none; border-color: #2563eb; background: #fff; box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.14); }
.admin-login-field .errorlist { margin: 0.35rem 0 0; padding: 0; list-style: none; color: #b91c1c; font-size: 0.8125rem; }

.admin-login-forgot { margin: -0.15rem 0 0; text-align: right; }
.admin-login-forgot a { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.8125rem; font-weight: 600; color: #475569; text-decoration: none; }
.admin-login-forgot a:hover { color: #2563eb; }

.admin-login-actions { margin-top: 0.35rem; }
.admin-login-submit { display: inline-flex; align-items: center; justify-content: center; gap: 0.55rem; width: 100%; height: 3rem; border: none; border-radius: 12px; background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%); color: #fff; font-size: 0.95rem; font-weight: 700; cursor: pointer; box-shadow: 0 10px 24px rgba(37, 99, 235, 0.28); transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease; }
.admin-login-submit:hover { filter: brightness(1.05); box-shadow: 0 14px 28px rgba(37, 99, 235, 0.34); transform: translateY(-1px); }
.admin-login-submit:active { transform: translateY(0); box-shadow: 0 8px 18px rgba(37, 99, 235, 0.24); }
.admin-login-submit:focus { outline: none; box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.22), 0 10px 24px rgba(37, 99, 235, 0.28); }

.admin-login-card-foot { margin-top: 1.35rem; padding-top: 1.15rem; border-top: 1px solid #f1f5f9; text-align: center; }
.admin-login-home-link { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.8125rem; font-weight: 600; color: #64748b; text-decoration: none; }
.admin-login-home-link:hover { color: #2563eb; }
.admin-login-copy { margin: 1.25rem 0 0; font-size: 0.75rem; color: #94a3b8; text-align: center; }

.admin-auth-lead { margin: 0 0 1rem; font-size: 0.875rem; line-height: 1.55; color: #64748b; }
.admin-auth-lead strong { color: #334155; }
.admin-auth-message { display: flex; align-items: flex-start; gap: 0.65rem; margin-bottom: 1rem; padding: 0.85rem 0.95rem; border-radius: 12px; font-size: 0.875rem; line-height: 1.5; }
.admin-auth-message > i { margin-top: 0.1rem; flex-shrink: 0; font-size: 1rem; }
.admin-auth-message p { margin: 0; }
.admin-auth-message-sub { margin-top: 0.35rem !important; font-size: 0.8125rem; color: inherit; opacity: 0.9; }
.admin-auth-message--success { background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; }
.admin-auth-message--success > i { color: #16a34a; }
.admin-auth-message--error { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }
.admin-auth-message--error > i { color: #dc2626; }
.admin-auth-message a { color: #2563eb; font-weight: 700; text-decoration: none; }
.admin-auth-message a:hover { text-decoration: underline; }
.admin-login-submit--link { text-decoration: none; box-sizing: border-box; }

/* Dark mode: keep login panel readable */
@media (prefers-color-scheme: dark) {
  html[data-theme="dark"] body.login.admin-login-page { background: #0f172a; }
  html[data-theme="dark"] body.login.admin-login-page .admin-login-panel { background: linear-gradient(180deg, #0f172a 0%, #111827 100%); }
  html[data-theme="dark"] body.login.admin-login-page .admin-login-card { background: #1e293b; border-color: #334155; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35); }
  html[data-theme="dark"] body.login.admin-login-page .admin-login-card-head h1 { color: #f8fafc; }
  html[data-theme="dark"] body.login.admin-login-page .admin-login-card-head p { color: #94a3b8; }
  html[data-theme="dark"] body.login.admin-login-page .admin-login-field label { color: #cbd5e1; }
  html[data-theme="dark"] body.login.admin-login-page .admin-login-input-wrap input { background: #0f172a; border-color: #475569; color: #f8fafc; }
  html[data-theme="dark"] body.login.admin-login-page .admin-login-input-wrap input:focus { background: #0f172a; border-color: #60a5fa; box-shadow: 0 0 0 4px rgba(96, 165, 250, 0.18); }
  html[data-theme="dark"] body.login.admin-login-page .admin-login-card-foot { border-top-color: #334155; }
}

@media (max-width: 960px) {
  .admin-login-shell { grid-template-columns: 1fr; }
  .admin-login-brand { min-height: auto; padding: 2rem 1.5rem; }
  .admin-login-brand-features { display: none; }
  .admin-login-panel { padding: 1.5rem 1rem 2rem; }
}

@media (max-width: 480px) {
  .admin-login-card { padding: 1.5rem 1.15rem 1.25rem; border-radius: 16px; }
  .admin-login-brand-title { font-size: 1.5rem; }
}

/* admin_login.css end */
