/* Public worktime entry surface. Intentionally independent of legacy form CSS. */
:root { color-scheme:light; font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:#202b3b; background:#f5f6f8; }
* { box-sizing:border-box; }
body { margin:0; }
button,input { font:inherit; }
a { color:inherit; }
[hidden] { display:none !important; }
:focus-visible { outline:3px solid #208f9d; outline-offset:4px; }
.login-layout { min-height:100vh; min-height:100dvh; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.login-intro { display:flex; flex-direction:column; justify-content:space-between; padding:clamp(32px,5vw,80px); background:#142132; color:#fff; }
.login-brand { display:inline-flex; align-items:center; align-self:flex-start; gap:14px; text-decoration:none; font-size:34px; font-weight:700; letter-spacing:-1.5px; line-height:1; }
.login-brand-mark { display:grid; place-items:center; width:48px; height:48px; border-radius:13px; background:#d7ed91; color:#243719; letter-spacing:-2px; padding-bottom:4px; }
.login-brand-caption { display:block; margin-top:9px; font-size:8px; letter-spacing:2.3px; color:#91a1b4; }
.login-intro-copy { padding:70px 0; }
.login-eyebrow { margin:0 0 22px; font-size:11px; font-weight:700; letter-spacing:1.8px; color:#52677a; }
.login-intro .login-eyebrow { color:#b4c1d0; }
.login-intro h1 { margin:0; font-size:clamp(36px,4.1vw,65px); font-weight:600; letter-spacing:-2.6px; line-height:1.13; }
.login-intro h1 span { color:#d7ed91; }
.login-intro-copy > p:last-child { max-width:390px; margin:28px 0 0; font-size:16px; line-height:1.8; color:#b6c3d3; }
.login-sections { display:flex; flex-wrap:wrap; gap:18px 28px; border-top:1px solid #354354; padding-top:24px; font-size:12px; color:#d7e0ea; }
.login-sections small { margin-right:8px; color:#879bae; font-size:10px; }
.login-entry { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:50px; padding:60px 36px 30px; }
.login-card { width:100%; max-width:390px; }
.login-card .login-eyebrow { color:#526e62; margin-bottom:14px; }
.login-card h2 { margin:0; font-size:32px; font-weight:650; letter-spacing:-1.1px; line-height:1.2; }
.login-description { margin:14px 0 32px; color:#677888; font-size:14px; line-height:1.6; }
#login-form { display:flex; flex-direction:column; gap:22px; }
.login-field { display:flex; flex-direction:column; gap:9px; font-size:13px; font-weight:600; color:#344b60; min-width:0; }
.login-field input { width:100%; min-width:0; min-height:50px; border:1px solid #cbd7df; border-radius:8px; padding:12px 14px; background:#fff; color:#202b3b; font-size:16px; font-weight:400; }
.login-field input:focus { border-color:#195bdb; }
.login-password { position:relative; }
.login-password input { padding-right:78px; }
.login-password button { position:absolute; right:6px; top:4px; bottom:4px; padding:0 10px; border:0; background:transparent; color:#37526c; cursor:pointer; font-size:12px; font-weight:600; border-radius:5px; }
.login-remember { display:flex; align-items:center; gap:10px; font-size:13px; color:#52677a; cursor:pointer; }
.login-remember input { width:19px; height:19px; margin:0; accent-color:#195bdb; }
#login-submit { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:52px; padding:14px 18px; border:1px solid #195bdb; border-radius:8px; background:#195bdb; color:#fff; font-weight:600; font-size:15px; cursor:pointer; }
#login-submit:hover { background:#1448ad; }
#login-submit:disabled { opacity:.7; cursor:wait; }
.login-status { margin:0; padding:12px 14px; border-radius:8px; background:#e8eef5; color:#344b60; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.login-status[data-error="true"] { background:#fff0eb; color:#a53626; }
#login-activation { font-size:13px; color:#195bdb; }
.login-verification { margin-top:32px; padding-top:25px; border-top:1px solid #dce4ea; }
.login-verification p { margin:0 0 10px; font-size:12px; color:#718191; }
.login-verification a { font-size:13px; font-weight:600; text-decoration:none; color:#365775; }
.login-verification a:hover { text-decoration:underline; }
.login-footer { margin:0; text-align:center; font-size:11px; line-height:1.6; color:#718191; }
@media(min-width:1600px) { .login-intro-copy { align-self:center; } }
@media(max-width:850px) {
 .login-layout { grid-template-columns:1fr; }
 .login-intro { padding:24px 28px; gap:26px; }
 .login-brand { font-size:29px; }
 .login-brand-mark { width:43px; height:43px; }
 .login-intro-copy { padding:0; }
 .login-intro .login-eyebrow,.login-intro-copy > p:last-child,.login-sections { display:none; }
 .login-intro h1 { font-size:29px; letter-spacing:-1px; line-height:1.25; }
 .login-intro h1 br { display:none; }
 .login-intro h1 span::before { content:' '; }
 .login-entry { padding:36px 24px 24px; gap:32px; }
 .login-card h2 { font-size:28px; }
}
@media(prefers-reduced-motion:no-preference) { #login-submit { transition:background .15s; } }
