/* JM sign-in theme adapted from the user-supplied rendered reference, 2026-10-09.
   Scoped to the existing login view. Original MVC form and handlers remain. */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');
html.jm-login-page { --login-navy:#002c62; --login-navy-dark:#00204a; --login-blue:#0078af; --login-ink:#14303b; --login-muted:#5f7581; --login-line:#d3dee4; background:#fff !important; color-scheme:light; }
html.jm-login-page body { margin:0; padding:0; border:0; min-height:100vh; background:#fff; color:var(--login-ink); font:400 16px/1.5 "Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; display:flex; flex-direction:column; }
html.jm-login-page body > .main-content { width:100%; max-width:none; margin:0; padding:0 0 28px; background:none; flex:1; }
html.jm-login-page body > .main-content::before, html.jm-login-page body > .main-content::after { content:none; }
.jm-login-sky, .jm-login-scene, .jm-login-sky *, .jm-login-scene * { box-sizing:border-box; }
.jm-login-sky { width:100%; background:linear-gradient(160deg,var(--login-navy),var(--login-blue)); color:#fff; padding:22px clamp(20px,5vw,64px) 170px; }
.jm-login-bar { display:flex; justify-content:space-between; align-items:center; gap:20px; max-width:1080px; margin:0 auto; }
.jm-login-brand { display:block; flex:0 0 auto; width:164px; background:#fff; padding:10px 14px; border-radius:10px; }
.jm-login-brand img { display:block; width:100%; height:auto; }
.jm-login-bar nav { display:flex; align-items:center; gap:22px; font-size:14px; }
.jm-login-bar nav a { color:#fff; text-decoration:none; background:transparent; padding:0; }
.jm-login-bar nav a:hover { text-decoration:underline; }
.jm-login-greeting { max-width:1080px; margin:44px auto 0; display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; }
.jm-login-greeting h1 { color:#fff; padding:0; margin:0; font:800 clamp(32px,5vw,54px)/1.05 "Plus Jakarta Sans",system-ui,sans-serif; letter-spacing:-.03em; }
.jm-login-greeting p { margin:10px 0 0; color:#e0edf6; font-size:17px; max-width:44ch; }
.jm-login-clock { text-align:right; }
.jm-login-clock[hidden] { display:none; }
.jm-login-clock time { display:block; font-weight:700; font-size:clamp(40px,6vw,72px); line-height:1; letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.jm-login-clock span { display:block; color:#e0edf6; font-size:14px; }
.jm-login-clock .jm-login-clock-label { font-size:11px; margin-top:3px; }
.jm-login-scene { position:relative; width:calc(100% - 40px); max-width:960px; margin:-120px auto 0; background:#fff; border-radius:20px; box-shadow:0 24px 60px rgba(0,44,98,.20); display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); overflow:hidden; border-top:5px solid var(--login-blue); }
.jm-login-form-panel { padding:clamp(28px,4vw,48px); min-width:0; }
.jm-login-form-panel h2 { margin:0 0 4px; padding:0; font-size:26px; font-weight:700; letter-spacing:-.02em; color:var(--login-ink); }
.jm-login-subtitle { margin:0 0 28px; color:var(--login-muted); }
.jm-login-form-panel form { margin:0; padding:0; }
.jm-login-field { margin-bottom:16px; }
.jm-login-field > label { display:block; font-weight:600; font-size:14px; margin:0 0 6px; color:var(--login-ink); }
.jm-login-field input.k-textbox { width:100% !important; height:50px; padding:0 14px; border:1.5px solid var(--login-line); border-radius:12px; background:#f7fafb; color:var(--login-ink); font:inherit; box-shadow:none; }
.jm-login-field input:focus { outline:2px solid var(--login-blue); outline-offset:2px; border-color:var(--login-blue); background:#fff; box-shadow:0 0 0 4px rgba(6,133,183,.16); }
.jm-login-password { position:relative; }
.jm-login-password input.k-textbox { padding-right:70px; }
#jm-login-show-password { position:absolute; right:6px; top:6px; height:38px; padding:0 10px; border:0; background:none; color:var(--login-blue); font:600 13px "Plus Jakarta Sans",system-ui,sans-serif; cursor:pointer; border-radius:8px; }
#jm-login-show-password[hidden] { display:none !important; }
.jm-login-form-links { display:flex; justify-content:flex-end; margin:6px 0 22px; font-size:14px; }
.jm-login-form-links a { color:var(--login-blue); font-weight:600; text-decoration:none; }
.jm-login-form-links a:hover { text-decoration:underline; }
.jm-login-submit.k-button { display:flex; justify-content:center; align-items:center; gap:12px; width:100%; min-height:52px; margin:0; padding:12px; border:0; border-radius:12px; background:linear-gradient(90deg,var(--login-navy),var(--login-blue)); color:#fff; font:700 16px "Plus Jakarta Sans",system-ui,sans-serif; cursor:pointer; }
.jm-login-submit.k-button:hover { background:linear-gradient(90deg,var(--login-navy-dark),#00689a); }
.jm-login-sky a:focus-visible, .jm-login-scene a:focus-visible, .jm-login-scene button:focus-visible { outline:3px solid #43c6fb; outline-offset:3px; }
.jm-login-inside { width:100%; float:none; min-width:0; margin:0; background:#eef3f9; padding:clamp(28px,4vw,48px); border-left:1px solid var(--login-line); }
.jm-login-inside h3 { padding:0; margin:0 0 18px; color:var(--login-ink); font-size:16px; font-weight:700; }
.jm-login-tools { list-style:none; margin:0; padding:0; display:grid; gap:16px; }
.jm-login-tools li { display:grid; grid-template-columns:40px minmax(0,1fr); gap:14px; align-items:start; }
.jm-login-icon { width:40px; height:40px; border-radius:10px; display:grid; place-items:center; background:#fff; border:1px solid var(--login-line); color:var(--login-blue); }
.jm-login-icon svg { width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.jm-login-tools strong { display:block; font-size:15px; font-weight:600; }
.jm-login-tools div > span { font-size:14px; color:var(--login-muted); }
.jm-login-scene .field-validation-error { display:block; margin-top:6px; color:#b13632; font-size:13px; }
.jm-login-scene .input-validation-error { border-color:#b13632 !important; }
.jm-login-scene .validation-summary-errors { margin-bottom:16px; padding:11px 14px; border-radius:10px; background:#fff2f1; color:#b13632; font-size:14px; border:1px solid #e8bfbd; }
.jm-login-scene .validation-summary-errors ul { margin:0; padding-left:18px; }
html.jm-login-page body > footer { box-sizing:border-box; position:static; width:100%; height:auto; margin:0; padding:28px 20px 24px; background:#fff; color:var(--login-muted); font-size:13px; }
html.jm-login-page footer .content-wrapper { max-width:920px; width:auto; margin:0 auto; display:flex; justify-content:space-between; gap:8px 20px; flex-wrap:wrap; }
html.jm-login-page footer .float-left { float:none; margin:0 !important; }
html.jm-login-page footer p { margin:0; }
html.jm-login-page footer a { color:var(--login-muted) !important; }
html.jm-login-page #gdpr-cookie-message { position:fixed; z-index:20000; right:20px; bottom:20px; width:min(400px,calc(100vw - 40px)); box-sizing:border-box; max-height:calc(100vh - 40px); overflow:auto; background:#fff; color:var(--login-ink); padding:20px; border:1px solid var(--login-line); border-radius:12px; box-shadow:0 10px 40px rgba(0,0,0,.15); text-align:left; }
html.jm-login-page #gdpr-cookie-message a { color:var(--login-blue); }
html.jm-login-page #gdpr-cookie-message button { border:1px solid var(--login-line); border-radius:5px; background:#eef3f9; color:var(--login-navy); }
@media(max-width:820px) {
.jm-login-sky { padding-bottom:130px; }
.jm-login-greeting { margin-top:36px; }
.jm-login-clock { text-align:left; }
.jm-login-bar { align-items:flex-start; }
.jm-login-bar nav { flex-direction:column; align-items:flex-end; gap:8px; font-size:12px; padding-top:8px; }
.jm-login-brand { width:140px; padding:9px 12px; }
.jm-login-scene { grid-template-columns:1fr; margin-top:-90px; }
.jm-login-inside { border-left:0; border-top:1px solid var(--login-line); }
}
@media(max-width:360px) { .jm-login-brand { width:118px; } .jm-login-bar { gap:12px; } .jm-login-form-panel,.jm-login-inside { padding:26px 22px; } }
@media(prefers-reduced-motion:reduce) { .jm-login-scene *, .jm-login-sky * { transition:none !important; animation:none !important; } }

/* Password recovery: reuses sign-in components; existing MVC/CAPTCHA behavior stays intact. */
.jm-recovery-page .jm-login-subtitle { line-height:1.65; }
.jm-recovery-back { margin-top:22px; text-align:center; font-size:14px; }
.jm-recovery-page a:not(.jm-login-submit) { color:var(--login-blue); }
.jm-recovery-page a.jm-login-submit { text-decoration:none; }
.jm-recovery-captcha { margin:20px 0 24px; min-width:0; overflow-wrap:anywhere; }
.jm-recovery-captcha img { max-width:100%; height:auto; border-radius:8px; }
.jm-recovery-captcha label { display:block; margin:8px 0 6px; font-size:14px; font-weight:600; }
.jm-recovery-captcha input[type="text"] { box-sizing:border-box; width:100%; max-width:100%; height:48px; padding:0 12px; border:1.5px solid var(--login-line); border-radius:10px; background:#f7fafb; color:var(--login-ink); font:inherit; }
.jm-recovery-captcha input[type="text"]:focus { outline:2px solid var(--login-blue); outline-offset:2px; }
.jm-recovery-captcha a { display:inline-block; margin:6px 0; font-size:14px; }
.jm-recovery-steps { margin:0; padding-left:22px; display:grid; gap:24px; }
.jm-recovery-steps li { padding-left:8px; }
.jm-recovery-steps li::marker { color:var(--login-blue); font-weight:700; }
.jm-recovery-steps strong { color:var(--login-ink); font-size:15px; }
.jm-recovery-steps p { margin:6px 0 0; color:var(--login-muted); font-size:14px; line-height:1.65; }
.jm-recovery-help { margin:28px 0 0; padding-top:20px; border-top:1px solid var(--login-line); font-size:14px; color:var(--login-muted); }
.jm-recovery-success { display:grid; place-items:center; width:60px; height:60px; margin-bottom:22px; border-radius:16px; background:#e8f4ee; color:#237647; }
.jm-recovery-success svg { width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.jm-recovery-strength { margin:0 0 20px; }
.jm-recovery-strength-label { display:block; margin-bottom:8px; font-size:14px; color:var(--login-muted); }
.jm-recovery-page #passStrength { width:100%; box-sizing:border-box; }
