:root { --auth-primary:#0057b8; --auth-primary-dark:#06356f; --auth-deep:#082547; --auth-cyan:#00a7e1; --auth-border:#d9e4f2; --auth-text:#172033; --auth-muted:#64748b; }
* { box-sizing: border-box; }
body.olm-auth-body { min-width:320px; min-height:100vh; margin:0; color:var(--auth-text); background:radial-gradient(circle at 18% 20%,rgba(0,167,225,.2),transparent 32%),linear-gradient(135deg,#082547 0%,#123f6c 48%,#315c7d 100%); }
.olm-auth-shell { display:grid; min-height:100vh; place-items:center; padding:5rem 1rem 2rem; }
.olm-auth-card { width:min(100%,460px); overflow:hidden; border:1px solid rgba(255,255,255,.25); border-radius:14px; background:#fff; box-shadow:0 24px 65px rgba(2,19,39,.38); }
.olm-auth-card-wide { width:min(100%,620px); }
.olm-auth-card-header { display:flex; min-height:92px; align-items:center; gap:.8rem; padding:1rem 1.35rem; color:#fff; background:linear-gradient(115deg,var(--auth-primary-dark),var(--auth-primary)); }
.olm-auth-brand { display:flex; min-width:0; align-items:center; gap:.8rem; }
.olm-auth-logo { width:48px; height:48px; flex:0 0 auto; padding:5px; border-radius:9px; background:#fff; object-fit:contain; }
.olm-auth-title { margin:0; font-size:1.35rem; font-weight:750; }
.olm-auth-subtitle { display:block; margin-top:.15rem; color:rgba(255,255,255,.72); font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; }
.olm-auth-card-body { padding:1.6rem 1.75rem; }
.olm-auth-field { position:relative; margin-bottom:1rem; }
.olm-auth-field > .material-icons { position:absolute; top:50%; left:.85rem; z-index:2; transform:translateY(-50%); color:#718096; pointer-events:none; }
.olm-auth-field .form-control { min-height:54px; padding-left:3rem; border-color:#b9c9d9; border-radius:8px; color:var(--auth-text); background:#fbfdff; }
.olm-auth-field .form-control:focus { border-color:var(--auth-cyan); box-shadow:0 0 0 .22rem rgba(0,167,225,.16); background:#fff; }
.olm-auth-field label { padding-left:3rem; color:var(--auth-muted); }
.olm-auth-field-has-toggle .form-control { padding-right:3rem; }
.olm-password-toggle { position:absolute; top:50%; right:.65rem; z-index:4; display:grid; width:38px; height:38px; padding:0; place-items:center; transform:translateY(-50%); border:0; border-radius:50%; color:#64748b; background:transparent; }
.olm-password-toggle:hover,.olm-password-toggle:focus-visible { color:var(--auth-primary); background:#eaf4fb; }
.olm-password-toggle .material-icons { font-size:1.25rem; }
.olm-auth-submit { display:inline-flex; min-height:50px; align-items:center; justify-content:center; gap:.45rem; border-color:var(--auth-primary); border-radius:8px; background:var(--auth-primary); font-weight:700; }
.olm-auth-submit:hover,.olm-auth-submit:focus { border-color:var(--auth-primary-dark); background:var(--auth-primary-dark); }
.olm-auth-alert { border:0; border-left:4px solid #dc3545; border-radius:6px; color:#842029; background:#f8d7da; }
.olm-auth-control-group { margin-bottom:1rem; }
.olm-auth-control-group > label { margin-bottom:.4rem; color:var(--auth-deep); font-size:.9rem; font-weight:700; }
.olm-auth-input-line { position:relative; }
.olm-auth-input-line > .material-icons { position:absolute; top:50%; left:.85rem; z-index:2; transform:translateY(-50%); color:#718096; pointer-events:none; }
.olm-auth-input-line .form-control { min-height:50px; padding-left:3rem; border-color:#b9c9d9; border-radius:8px; background:#fbfdff; }
.olm-auth-input-line .form-control:focus { border-color:var(--auth-cyan); box-shadow:0 0 0 .22rem rgba(0,167,225,.16); background:#fff; }
.olm-auth-input-line-has-toggle .form-control { padding-right:3rem; }
.olm-auth-error,.olm-auth-control-group .errorlist { margin:.35rem 0 0; padding:0; color:#b42331; font-size:.82rem; list-style:none; }
.olm-password-strength { height:6px; margin-top:.55rem; overflow:hidden; border-radius:999px; background:#dfe7ef; transition:background-color .25s; }
.olm-password-strength.weak { background:#dc3545; }.olm-password-strength.medium { background:#e7a900; }.olm-password-strength.strong { background:#28a66a; }
.olm-auth-captcha { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; padding:.8rem; border:1px solid var(--auth-border); border-radius:8px; background:#f5f8fc; }
.olm-auth-captcha img { width:auto; max-width:100%; height:50px; border:1px solid #c8d4df; border-radius:6px; background:#fff; }
.olm-auth-captcha input[type=text] { min-width:150px; min-height:46px; flex:1; padding:.6rem .75rem; border:1px solid #b9c9d9; border-radius:7px; }
.olm-auth-consents { display:grid; gap:.6rem; margin:1rem 0; padding:.9rem; border:1px solid var(--auth-border); border-radius:8px; background:#f8fbfe; }
.olm-auth-consents .form-check { margin:0; }
.olm-auth-consents .form-check-input { width:1.15rem; height:1.15rem; margin-top:.15rem; border-color:#7f97ad; }
.olm-auth-consents .form-check-input:checked { border-color:var(--auth-primary); background-color:var(--auth-primary); }
.olm-auth-consent-term { color:var(--auth-primary-dark); font-weight:700; }
.olm-auth-description { margin:0 0 1.2rem; color:var(--auth-muted); line-height:1.55; text-align:center; }
.olm-auth-status { display:grid; place-items:center; text-align:center; }
.olm-auth-status-icon { display:grid; width:68px; height:68px; margin-bottom:1rem; place-items:center; border-radius:50%; color:var(--auth-primary); background:#e5f3fb; }
.olm-auth-status-icon .material-icons { font-size:2.15rem; }
.olm-auth-status-icon-success { color:#18764a; background:#dff4e9; }
.olm-auth-status-icon-error { color:#a82230; background:#f8e2e5; }
.olm-auth-status h2 { color:var(--auth-deep); font-size:1.15rem; }
.olm-auth-secondary-action { display:inline-flex; min-height:46px; align-items:center; justify-content:center; gap:.4rem; border-color:var(--auth-primary); color:var(--auth-primary-dark); font-weight:700; }
.olm-auth-secondary-action .material-icons { font-size:1.1rem; }
.olm-auth-links { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--auth-border); }
.olm-auth-links-single { grid-template-columns:1fr; }
.olm-auth-link { display:inline-flex; min-height:60px; align-items:center; justify-content:center; gap:.35rem; padding:.75rem; color:var(--auth-primary-dark); font-size:.9rem; font-weight:700; text-align:center; text-decoration:none; }
.olm-auth-link + .olm-auth-link { border-left:1px solid var(--auth-border); }
.olm-auth-link:hover,.olm-auth-link:focus-visible { color:var(--auth-primary); background:#eef7fc; }
.olm-auth-link .material-icons { font-size:1.1rem; }
.olm-auth-footer { padding:.75rem 1rem; border-top:1px solid var(--auth-border); color:var(--auth-muted); background:#f5f8fc; font-size:.78rem; text-align:center; }
/* Compatibility for auth pages awaiting migration to the shared card markup. */
.auth-card-header { position:relative; display:flex; min-height:64px; align-items:center; justify-content:center; padding:.75rem 1rem; }
.auth-card-logo { position:absolute; top:50%; left:1rem; width:34px; height:34px; transform:translateY(-50%); object-fit:contain; }
.auth-card-title { flex:1; margin:0; text-align:center; }
.form-control:focus { border-color:var(--auth-cyan); box-shadow:0 0 0 .22rem rgba(0,167,225,.16); }
.auth-lang-switcher { position:fixed; top:1rem; right:1rem; z-index:20; }
.auth-lang-switcher .dropdown-toggle { display:inline-flex; min-height:44px; align-items:center; gap:.45rem; padding:.5rem .75rem; border:1px solid rgba(255,255,255,.35); color:#fff; background:rgba(8,37,71,.75); box-shadow:0 6px 18px rgba(0,0,0,.18); backdrop-filter:blur(8px); }
.auth-lang-switcher .dropdown-toggle:hover,.auth-lang-switcher .dropdown-toggle:focus { color:#fff; background:rgba(6,53,111,.95); }
.auth-lang-switcher .dropdown-item { display:flex; align-items:center; gap:.6rem; }
.auth-lang-switcher .flag { display:inline-block; width:1.65rem; height:1.05rem; border-radius:2px; box-shadow:0 0 0 1px rgba(0,0,0,.16); }
.auth-lang-switcher .flag-hu { background:linear-gradient(to bottom,#ce2939 0 33%,#fff 33% 66%,#477050 66% 100%); }
.auth-lang-switcher .flag-en { background-color:#012169; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='16' viewBox='0 0 24 16'><rect width='24' height='16' fill='%23012169'/><path d='M0 0 L24 16 M24 0 L0 16' stroke='%23ffffff' stroke-width='4'/><path d='M0 0 L24 16 M24 0 L0 16' stroke='%23c8102e' stroke-width='2'/><rect x='10' width='4' height='16' fill='%23ffffff'/><rect y='6' width='24' height='4' fill='%23ffffff'/><rect x='11' width='2' height='16' fill='%23c8102e'/><rect y='7' width='24' height='2' fill='%23c8102e'/></svg>"); background-size:cover; }
@media (max-width:575.98px) { .olm-auth-shell{align-items:start;padding:5rem .75rem 1rem}.olm-auth-card-header{min-height:82px;padding:.85rem 1rem}.olm-auth-logo{width:44px;height:44px}.olm-auth-title{font-size:1.15rem}.olm-auth-card-body{padding:1.25rem 1rem}.olm-auth-links{grid-template-columns:1fr}.olm-auth-link + .olm-auth-link{border-top:1px solid var(--auth-border);border-left:0} }
