:root { color-scheme:light; font-family:system-ui,-apple-system,"Segoe UI",sans-serif; color:#172b4d; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; min-height:100svh; background:var(--lock-bg,#101827); }
.lock-backdrop { position:fixed; inset:0; background:radial-gradient(ellipse at 15% 10%,#ffffff20,transparent 55%),radial-gradient(ellipse at 95% 90%,#00000040,transparent 60%); background-position:center; background-size:cover; }
.lock-backdrop::after { content:""; position:absolute; inset:0; background:linear-gradient(135deg,#00000018,#00000050); }
.lock-shell { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:100vh; min-height:100svh; padding:40px 20px 24px; }
.lock-brand { width:min(100%,520px); padding:0 0 16px; margin-bottom:8px; background:transparent; box-shadow:none; }
.lock-brand img { display:block; width:100%; max-height:90px; object-fit:contain; }
.lock-card { width:min(100%,420px); padding:32px; background:#fff; border:1px solid #ffffffaa; border-radius:18px; box-shadow:0 20px 70px #0004; }
label { display:block; margin:18px 0 8px; font-size:13px; font-weight:650; }
#site-login > label:first-of-type { margin-top:0; }
input[type=text],input[type=password],input[type=email] { width:100%; padding:13px 14px; border:1px solid #cbd5e1; border-radius:8px; background:#f8fafc; color:#172b4d; font:inherit; font-size:16px; }
input:focus-visible,button:focus-visible { outline:3px solid #38bdf8; outline-offset:3px; }
.lock-remember { display:flex; align-items:center; gap:9px; margin:0; color:#526178; font-size:13px; font-weight:400; cursor:pointer; }
.lock-remember input { width:17px; height:17px; margin:0; accent-color:#08789a; }
.lock-submit { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:20px; }
button { display:flex; justify-content:space-between; align-items:center; width:100%; padding:14px 17px; border:0; border-radius:8px; background:#08789a; color:#fff; font:inherit; font-size:15px; font-weight:650; cursor:pointer; }
button:hover { background:#056581; }
.lock-submit button { width:auto; justify-content:center; padding:11px 20px; }
.lock-error { padding:12px 14px; margin-bottom:16px; border:1px solid #fecaca; border-radius:8px; background:#fff1f2; color:#9f1239; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.lock-copyright { margin:24px 0 0; padding:5px 10px; border-radius:5px; background:#0006; color:#fff; font-size:12px; text-align:center; }
.lock-links { margin:24px 0 0; color:#627086; font-size:14px; text-align:center; line-height:1.6; }
.lock-card a { color:#076b89; text-underline-offset:3px; }
.lock-card a:focus-visible { outline:3px solid #38bdf8; outline-offset:3px; }
.lock-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin-top:16px; padding-top:14px; border-top:1px solid #edf2f7; font-size:12px; }
.lock-actions a { padding:6px 8px; border-radius:6px; background:#f1f5f9; text-decoration:none; white-space:nowrap; }
.lock-actions a:hover { background:#e2eef3; color:#054a60; }
.lock-card-wide { width:min(100%,680px); }
.lock-page { font-size:14px; line-height:1.65; overflow-wrap:anywhere; }
.lock-page h2 { margin:0 0 16px; font-size:24px; line-height:1.3; }
.lock-page h2 img { width:24px; height:24px; vertical-align:middle; }
.lock-page h3 { margin:24px 0 12px; font-size:17px; }
.lock-page fieldset { min-width:0; margin:0; padding:0; border:0; }
.lock-page small { display:block; color:#627086; font-size:12px; font-weight:400; }
.lock-page .message { padding:12px 14px; margin:16px 0; border-radius:8px; background:#eff6ff; }
.lock-page .message p { margin:0; }
.lock-page .message.red { background:#fff1f2; color:#9f1239; }
.lock-page .message.green { background:#ecfdf5; color:#166534; }
.lock-page .message p+p { margin-top:8px; }
.lock-page input[type=text],.lock-page input[type=password],.lock-page input:not([type]) { width:100%; padding:12px 14px; border:1px solid #cbd5e1; border-radius:8px; background:#f8fafc; color:#172b4d; font:inherit; font-size:16px; }
.lock-page input[type=checkbox] { width:17px; height:17px; accent-color:#08789a; vertical-align:middle; }
.lock-page input[type=submit],.lock-page input[type=reset],.lock-page a.button { display:inline-block; max-width:100%; margin:8px 4px 0 0; padding:12px 16px; border:0; border-radius:8px; background:#08789a; color:#fff; font:inherit; font-weight:650; cursor:pointer; text-decoration:none; white-space:normal; }
.lock-page input[type=reset] { background:#e2e8f0; color:#334155; }
.lock-page .space-top { margin-top:24px; }
.lock-page .space-bottom { margin-bottom:24px; }
.lock-page ul.line { margin:0; padding:0; list-style:none; }
.lock-page ol.list { padding-left:22px; }
.lock-page ol.list li+li { margin-top:12px; }
@media(max-width:480px) { .lock-shell { padding:24px 16px; } .lock-card { padding:26px 22px; } }
