.login-page{margin:0;background:#fff;color:#173e3b}
.login-layout{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr)}
.login-picture{display:none}
.login-panel{display:flex;align-items:center;justify-content:center;min-width:0;padding:32px 28px}
.login-form-wrap{width:100%;max-width:430px}
.login-home{display:inline-flex;gap:6px;align-items:center;color:#516b65;text-decoration:none;font-size:12px;margin-bottom:30px}
.login-home:hover{color:#12594f;text-decoration:underline}
.login-home:focus-visible,.login-form button:focus-visible{outline:3px solid #b39146;outline-offset:4px}
.login-brand{margin-bottom:28px}
.login-logo{display:block;width:104px;height:88px;object-fit:contain;object-position:left center;margin-bottom:18px}
.login-commission{font-size:14px;font-weight:700;line-height:1.6;text-transform:uppercase;letter-spacing:.4px;margin:0;max-width:410px}
.login-commission-en{font-size:11px;line-height:1.6;color:#647771;margin:7px 0 0}
.login-area{font-size:10px;letter-spacing:1.8px;text-transform:uppercase;font-weight:700;color:#947435;margin:0 0 10px}
.login-intro h1{font-size:34px;letter-spacing:-1px;font-weight:650;line-height:1.15;margin:0 0 12px}
.login-intro h1 span{display:block;font-size:17px;letter-spacing:0;font-weight:400;color:#73857e;margin-top:6px}
.login-intro>p:last-child{font-size:13px;line-height:1.75;color:#5e726c;margin:0}
.login-form{margin-top:26px}
.login-recovery{margin:10px 0 0;text-align:right;font-size:13px}
.login-recovery a{color:#175d51;text-decoration:underline;text-underline-offset:3px}
.login-recovery a:hover{color:#114c43}
.login-recovery a:focus-visible{outline:3px solid #b39146;outline-offset:4px}
.login-form label{display:block;font-size:13px;font-weight:600;margin:18px 0 8px}
.login-form label span{color:#73857e;font-weight:400}
.login-form input:not([type=hidden]){display:block;width:100%;box-sizing:border-box;height:50px;border:1px solid #cad6d0;border-radius:8px;padding:12px 14px;font:inherit;background:#fcfdfb;color:#173e3b}
.login-form input:focus{outline:3px solid #d9e8e0;outline-offset:1px;border-color:#39766a}
.login-form button{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:50px;margin:26px 0 0;padding:12px 18px;background:#175d51;border:1px solid #175d51;border-radius:8px;color:#fff;font:inherit;font-size:14px;box-shadow:0 4px 12px #175d5114;cursor:pointer}
.login-form button>span:last-child{margin-left:auto;font-size:21px}
.login-form button:hover{background:#114c43}
.login-errors.validation-summary-valid{display:none}
.login-errors.validation-summary-errors{background:#fff3f2;border:1px solid #e9bdb9;padding:12px 16px;border-radius:8px;font-size:13px;line-height:1.5}
.login-errors ul{margin:0;padding-left:18px}
.login-footer{border-top:1px solid #e6ece7;margin-top:32px;padding-top:20px;color:#73857e}
.login-footer p{font-size:10px;line-height:1.65;margin:0 0 4px}
@media(min-width:1024px){
    .login-layout{grid-template-columns:minmax(0,1fr) minmax(480px,1fr)}
    .login-picture{display:flex;flex-direction:column;justify-content:space-between;position:relative;min-height:100dvh;background:linear-gradient(180deg,#092b3555 0%,#092b350a 35%,#092e35dc 100%),url('/images/login-legal.png') center center/cover;color:#fff;padding:42px 48px;box-sizing:border-box}
    .login-picture-top{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:2px}
    .login-monogram{font-weight:700;font-size:20px;letter-spacing:2px}.login-monogram span{font-size:12px;font-weight:400;letter-spacing:1px}
    .login-picture-caption{padding-top:240px;padding-bottom:16px}
    .login-rule{display:block;width:44px;height:3px;background:#dbc186;margin-bottom:24px}
    .login-picture-caption h2{font-family:Georgia,serif;font-size:clamp(36px,4vw,58px);font-weight:400;letter-spacing:-1px;line-height:1.13;margin:0 0 22px;color:#fff}
    .login-picture-caption p{font-size:12px;letter-spacing:.5px;color:#e0e9e6;margin:0}
    .login-panel{padding:32px 52px}
}
@media(max-width:480px){.login-panel{padding:24px}.login-home{margin-bottom:22px}.login-brand{margin-bottom:24px}.login-logo{width:88px;height:76px}.login-intro h1{font-size:30px}.login-form input:not([type=hidden]){font-size:16px}}
.login-captcha{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:12px;margin-top:20px;padding:14px;background:#f7f9f6;border:1px solid #e1e8de;border-radius:12px}
.login-captcha .captcha-image{display:block;width:100%;max-width:300px;height:auto;border:1px solid #dee7dd;border-radius:7px}
.login-page .login-captcha .floating-field{margin:0}
.login-page .login-captcha input:not([type=hidden]){height:56px;min-height:56px;border:1px solid #cedbd3;border-radius:10px;font-size:14px;background:#fff;color:#173e3b}
.login-captcha #captcha-help{grid-column:1 / -1;font-size:10px;line-height:1.6;color:#62756c;margin:0}
@media(max-width:600px){.login-page .login-captcha input:not([type=hidden]){font-size:16px}}
@media(max-width:380px){.login-captcha{grid-template-columns:minmax(0,1fr)}.login-captcha .captcha-image{width:240px;max-width:100%;justify-self:center}}

.login-form button .action-icon { display: block; width: 1.25rem; height: 1.25rem; margin: 0; }


/* Keep the full motto readable within the image panel. */
.login-picture-caption h2{font-size:clamp(28px,3vw,46px);line-height:1.2;overflow-wrap:break-word}
.login-picture-caption p{line-height:1.6}

/* Language selection is available before authentication. */
.login-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}
.login-toolbar .login-home{margin:0}
.login-language{position:relative;font-size:13px;color:#35584c}
.login-language summary{display:flex;align-items:center;gap:9px;list-style:none;cursor:pointer;padding:9px 12px;border:1px solid #dce5df;border-radius:9px;background:#f8faf7;min-height:40px;box-sizing:border-box}
.login-language summary::-webkit-details-marker{display:none}
.login-language img{object-fit:cover;border-radius:2px}
.login-language-options{position:absolute;right:0;top:calc(100% + 7px);min-width:165px;padding:6px;background:white;border:1px solid #dce5df;border-radius:10px;box-shadow:0 8px 24px #173e3b18;z-index:10}
.login-language-options button{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:6px;background:white;color:#35584c;padding:11px;font:inherit;cursor:pointer;text-align:left}
.login-language-options button:hover,.login-language-options button[aria-pressed=true]{background:#edf4ef}
.login-language summary:focus-visible,.login-language button:focus-visible{outline:2px solid #39766a;outline-offset:3px}
.login-intro h1>[data-sw]{display:inline;font:inherit;color:inherit;letter-spacing:inherit;margin:0}
.login-brand .login-commission{grid-row:1 / 3}
.login-picture-caption h2>[data-sw]{font:inherit;color:inherit}
.login-motto>span{display:block;white-space:nowrap}

/* Shared login branding dimensions and alignment across both applications. */
.login-page .login-brand{display:flex;flex-direction:column;align-items:center;gap:0;text-align:center;padding-bottom:22px;margin-bottom:24px}
.login-page .login-logo{width:150px;height:128px;max-width:100%;object-fit:contain;object-position:center;margin:0 auto 18px;opacity:1}
.login-page .login-commission{width:100%;max-width:430px;margin:0 auto;font-size:14px;font-weight:650;line-height:1.6;letter-spacing:.4px;text-align:center}
.login-page .login-commission-en{text-align:center}
.login-page .login-intro{text-align:center}
.login-form .login-recovery{display:flex;justify-content:flex-end;width:100%;margin:2px 0 12px;padding:0;border:0;background:transparent;text-align:right}
.login-recovery a{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:3px 8px;border-radius:7px;color:#a45454;font-size:13px;font-weight:600;line-height:1.5;text-decoration:none;transition:background-color .15s,color .15s}
.login-recovery a:hover{color:#883f3f;background:#fbefef;text-decoration:underline;text-underline-offset:3px}
.login-recovery a:focus-visible{outline:3px solid #b39146;outline-offset:3px}
.login-recovery svg{flex-shrink:0;width:16px;height:16px}

