/* Shared styles for all admin authentication screens. */
:root { color-scheme: light; --bg: #f4f2fc; --surface: #fff; --line: #e5e7ef; --text: #1e1b3a; --muted: #6b7085; --primary: #4438c7; --primary-dark: #30278f; --danger: #dc2626; --shadow: 0 28px 70px rgba(45, 37, 102, .16); --font-sans: Calibri, Arial, sans-serif; --font-size-body: 15px; --font-size-label: 14px; --font-size-muted: 13px; }
        * { box-sizing: border-box; }
        body { margin: 0; min-height: 100vh; padding: 32px; display: grid; place-items: center; font-family: var(--font-sans); font-size:var(--font-size-body); line-height:1.5; color: var(--text); background: radial-gradient(circle at 4% 8%, rgba(117, 92, 255, .18), transparent 26%), radial-gradient(circle at 95% 90%, rgba(235, 182, 46, .17), transparent 25%), var(--bg); }
        .auth-shell { width: min(100%, 460px); background: var(--surface); border: 1px solid rgba(255, 255, 255, .72); border-radius: 24px; box-shadow: var(--shadow); }
        .auth-main { padding: 26px 28px 24px; }
        .auth-card { width: 100%; }
        .auth-brand { display: block; width: 112px; height: auto; margin: 0 auto 20px; object-fit: contain; }
        .form-eyebrow { margin: 0 0 10px; color: var(--primary); font-size: 13px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
        .auth-card h2 { margin: 0; color: #202039; font-size: 30px; line-height: 1.1; letter-spacing: -.03em; }
        .auth-card > p { margin: 10px 0 22px; color: var(--muted); font-size: var(--font-size-muted); line-height: 1.55; }
        .field-group { margin-bottom: 16px; }
        .label { display: block; margin-bottom: 7px; color: #34354a; font-size: var(--font-size-label); font-weight: 700; line-height:1.35; }
        .field-required-marker,
        label > .field-required-marker { display:inline !important; position:static !important; float:none !important; margin:0 0 0 4px !important; color:#dc2626 !important; font-weight:700 !important; font-size:inherit !important; line-height:inherit !important; vertical-align:baseline !important; white-space:nowrap !important; }
        .field { width: 100%; height: 48px; padding: 0 14px; border: 1px solid #dcdfea; border-radius: 11px; color: var(--text); font: inherit; font-size: var(--font-size-body); background: #fbfbfe; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
        .field::placeholder { color: #9da1b1; }
        .field:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 4px rgba(68, 56, 199, .12); background: #fff; }
        .error { color: var(--danger); margin-top: 6px; font-size: 14px; }
        .checkbox-row { display: flex; align-items: center; gap: 9px; margin: 2px 0 20px; color: var(--muted); font-size: var(--font-size-label); cursor: pointer; }
        .checkbox-row input { width: 16px; height: 16px; margin: 0; accent-color: var(--primary); }
        .btn { width: 100%; border: 0; border-radius: 11px; padding: 13px 16px; color: #fff; font: inherit; font-size: var(--font-size-label); font-weight: 700; cursor: pointer; background: linear-gradient(135deg, var(--primary), #6252de); box-shadow: 0 10px 20px rgba(68, 56, 199, .25); transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
        .btn:hover { background: linear-gradient(135deg, var(--primary-dark), var(--primary)); box-shadow: 0 13px 24px rgba(68, 56, 199, .32); transform: translateY(-1px); }
        .btn:focus-visible { outline: 3px solid rgba(68, 56, 199, .3); outline-offset: 3px; }
        @media (max-width: 520px) { body { padding: 16px; } .auth-shell { border-radius: 20px; } .auth-main { padding: 28px 24px 24px; } }
        @media (max-width: 390px) { .auth-main { padding: 24px 20px 22px; } .auth-card h2 { font-size: 29px; } }

.auth-link { display:block; width:max-content; margin:14px auto 0; color:var(--primary); font-size:var(--font-size-label); font-weight:700; text-decoration:none; }
.auth-card--reset .auth-brand { margin-bottom:16px; }
.auth-card--reset > p { margin-bottom:18px; }
.auth-card--reset .field-group { margin-bottom:14px; }
.page-loader { position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(244, 242, 252, .94); opacity:1; visibility:visible; transition:opacity .18s ease, visibility .18s ease; }
.page-loader img { width:86px; max-width:30vw; height:auto; }
.page-loader.is-hidden { opacity:0; visibility:hidden; pointer-events:none; }
.auth-link:hover { color:var(--primary-dark); text-decoration:underline; }
.auth-link:focus-visible { outline:3px solid rgba(68, 56, 199, .3); outline-offset:3px; border-radius:4px; }
.auth-notice { margin:0 0 20px; padding:12px 14px; border:1px solid #bbf7d0; border-radius:11px; background:#ecfdf3; color:#166534; font-size:var(--font-size-muted); line-height:1.55; }
