/* home-nest v20: premium inlogervaring. Beheer-modal styling blijft in auth-v17.css. */
body.auth-locked{background:#f5f7f3}
body.auth-locked #auth-root{min-height:100dvh}
.login-layout{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(440px,.88fr);align-items:stretch;justify-items:stretch;gap:0;padding:0;background:#f8faf6}
.login-visual{position:relative;min-height:100vh;min-height:100dvh;background-image:linear-gradient(180deg,rgba(15,38,32,.34) 0%,rgba(13,40,35,.04) 36%,rgba(12,38,31,.72) 100%),url('/event-images/camping.webp');background-size:cover;background-position:center center;overflow:hidden;isolation:isolate}
.login-visual::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(12,39,30,.20),transparent 78%);pointer-events:none}
.login-visual::after{content:"";position:absolute;inset:0;box-shadow:inset -24px 0 100px rgba(12,35,29,.12);pointer-events:none}
.login-visual-content{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;min-height:100dvh;padding:clamp(30px,4.5vw,68px)}
.login-brand{font-family:Manrope,'DM Sans',sans-serif;letter-spacing:-1.7px;font-size:29px;font-weight:800;display:flex;align-items:center;gap:14px;margin:0;line-height:1.02}
.login-brand-photo{color:#fff;text-shadow:0 2px 14px rgba(0,27,23,.25)}
.login-brand-icon{width:52px;height:52px;border-radius:17px;display:grid;place-items:center;background:rgba(255,255,255,.17);border:1px solid rgba(255,255,255,.28);color:#fff;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.login-brand-icon svg{width:28px;height:28px}
.login-brand small{display:block;font-family:'DM Sans',sans-serif;font-size:10px;letter-spacing:3px;font-weight:800;margin-top:9px;color:rgba(255,255,255,.8)}
.login-brand-dot{color:#f0c3a8}
.login-visual-story{max-width:570px;color:#fff;padding-bottom:15px;text-shadow:0 2px 20px rgba(11,27,25,.24)}
.login-story-kicker{display:flex;align-items:center;gap:11px;color:rgba(255,255,255,.86);letter-spacing:2.5px;font-size:10px;font-weight:800;margin-bottom:24px}
.login-story-dot{display:block;flex-shrink:0;width:7px;height:7px;background:#d7efb5;border-radius:50%;box-shadow:0 0 0 5px rgba(220,245,180,.16)}
.login-visual-story h2{font-family:Manrope,'DM Sans',sans-serif;color:#fff;line-height:1.1;font-size:clamp(36px,4vw,62px);letter-spacing:-.065em;margin:0 0 18px;font-weight:800}
.login-visual-story p{font-size:clamp(13px,1.2vw,16px);line-height:1.6;color:rgba(255,255,255,.86);margin:0}
.login-pane{display:grid;place-items:center;padding:35px clamp(28px,6vw,100px);background:linear-gradient(140deg,#fbfcfa 0%,#f3f6f0 100%)}
.login-card{width:min(100%,440px);padding:0;border:none;border-radius:0;box-shadow:none;background:transparent}
.login-mobile-brand{display:none}
.login-overline{display:inline-flex;align-items:center;gap:9px;font-size:10px;line-height:1.3;letter-spacing:2.5px;font-weight:800;color:#668575;margin-bottom:18px}
.login-overline::before{content:"";display:inline-block;width:24px;height:1.5px;background:#89a993}
.login-card h1{font-family:Manrope,'DM Sans',sans-serif;font-size:clamp(34px,3.5vw,47px);letter-spacing:-.067em;line-height:1.12;margin:0 0 13px;color:#263d32}
.login-intro{font-size:14px;line-height:1.75;color:#7e8f84;margin:0 0 36px;max-width:36ch}
.login-field{display:grid;gap:9px;margin:0 0 21px;min-width:0}
.login-field > span:first-child{font-size:12px;letter-spacing:.01em;font-weight:800;color:#465f50}
.login-input-wrap{position:relative;display:flex;align-items:center;min-width:0}
.login-field .login-input-wrap input{background:#fff;box-shadow:0 4px 15px rgba(44,74,56,.025);border:1px solid #e3e9e1;border-radius:17px;width:100%;height:62px;padding:0 19px 0 53px;font-size:15px;color:#273f32;outline:none;transition:box-shadow .2s,border-color .2s;-webkit-appearance:none;appearance:none}
.login-field .login-input-wrap input::placeholder{color:#a1ada3}
.login-field .login-input-wrap input:focus{border-color:#8db09a;box-shadow:0 0 0 4px rgba(100,157,119,.11)}
.login-field .login-input-wrap input[readonly]{background:#f1f5ef;color:#526f5a}
.login-field-icon{position:absolute;left:18px;display:grid;place-items:center;width:20px;height:20px;color:#7c9b85;z-index:1;pointer-events:none}
.login-field-icon svg{width:20px;height:20px}
.login-field .login-input-wrap input[name=password]{padding-right:98px}
.login-password-toggle{position:absolute;right:9px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:6px;padding:12px 10px;background:transparent;color:#6b8777;border-radius:10px;font-size:11px;font-weight:800}
.login-password-toggle svg{width:17px;height:17px}
.login-password-toggle:hover{background:#eff5ee}
.login-password-toggle:focus-visible{outline:2px solid #8db09a;outline-offset:0}
.login-help{color:#819187;font-size:11px;line-height:1.65;margin:-7px 0 19px}
.login-help code{font-size:11px;padding:2px 4px;border-radius:4px;background:#e9eee6}
.login-error{font-size:12px;color:#a3443a;background:#fff0ec;border:1px solid #f3d2cd;border-radius:12px;padding:12px 13px;margin:8px 0 0;line-height:1.5}
.login-error[hidden]{display:none}
.login-submit{margin:28px 0 0;width:100%;border:0;border-radius:17px;background:linear-gradient(105deg,#365d4a 0%,#517f67 100%);box-shadow:0 11px 25px rgba(42,92,61,.21);color:#fff;min-height:62px;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:7px 8px 7px 24px;gap:12px;font-size:15px;font-weight:800;transition:transform .15s,box-shadow .15s}
.login-submit:hover{box-shadow:0 15px 30px rgba(42,92,61,.25);transform:translateY(-1px)}
.login-submit:active{transform:translateY(0)}
.login-submit:disabled{opacity:.65;transform:none;cursor:wait}
.login-submit-arrow{display:grid;place-items:center;border-radius:13px;width:47px;height:47px;background:rgba(255,255,255,.16)}
.login-submit-arrow svg{width:21px;height:21px}
.login-foot{display:flex;gap:10px;align-items:flex-start;color:#89988b;font-size:11px;line-height:1.65;border:0;padding:0;margin:25px 0 0}
.login-foot-icon{flex:none;width:28px;height:28px;display:grid;place-items:center;background:#eaf0e7;color:#789784;border-radius:10px}
.login-foot-icon svg{width:15px;height:15px}
/* iPad portrait and small laptops */
@media(max-width:960px){
 .login-layout{grid-template-columns:minmax(0,.9fr) minmax(390px,1.1fr)}
 .login-visual-content{padding:34px}
 .login-pane{padding:30px}
}
/* Mobile: cover across the upper portion, form overlaps with large rounded top corners. */
@media(max-width:700px){
 body.auth-locked{background:#f8faf6}
 .login-layout{display:flex;flex-direction:column;min-height:100dvh;min-width:0;background:#f8faf6}
 .login-visual{height:252px;min-height:252px;flex:none;background-position:57% 42%;background-image:linear-gradient(180deg,rgba(13,45,35,.53) 0%,rgba(12,47,38,.19) 41%,rgba(13,42,33,.74) 100%),url('/event-images/camping.webp')}
 .login-visual-content{min-height:252px;height:252px;padding:27px 27px 64px}
 .login-brand{font-size:25px;gap:10px}
 .login-brand-icon{height:43px;width:43px;border-radius:14px}
 .login-brand-icon svg{height:24px;width:24px}
 .login-brand small{font-size:8px;letter-spacing:2.7px;margin-top:7px}
 .login-visual-story{padding:0}
 .login-story-kicker{font-size:8px;letter-spacing:1.9px;margin-bottom:12px;gap:8px}
 .login-story-dot{width:6px;height:6px;box-shadow:0 0 0 4px rgba(220,245,180,.14)}
 .login-visual-story h2{font-size:31px;letter-spacing:-.06em;line-height:1.06;margin:0}
 .login-visual-story p{display:none}
 .login-pane{position:relative;z-index:1;display:block;flex:1;margin-top:-41px;padding:27px 26px calc(36px + env(safe-area-inset-bottom));background:linear-gradient(160deg,rgba(252,253,250,1) 0%,#f5f8f3 100%);border-radius:32px 32px 0 0;box-shadow:0 -17px 32px rgba(18,43,36,.09)}
 .login-card{width:100%;max-width:470px;margin:0 auto}
 .login-overline{font-size:9px;letter-spacing:2.15px;margin-bottom:10px}
 .login-overline::before{width:17px}
 .login-card h1{font-size:clamp(31px,8.1vw,40px);line-height:1.13;margin-bottom:7px}
 .login-intro{font-size:12px;line-height:1.6;margin:0 0 22px;max-width:43ch}
 .login-field{gap:7px;margin-bottom:15px}
 .login-field .login-input-wrap input{height:55px;border-radius:15px;font-size:14px}
 .login-field > span:first-child{font-size:11px}
 .login-submit{min-height:56px;border-radius:15px;margin-top:21px;font-size:14px;padding:6px 6px 6px 20px}
 .login-submit-arrow{width:44px;height:44px;border-radius:11px}
 .login-foot{font-size:10px;margin-top:20px}
}
@media(max-width:370px){
 .login-visual{height:222px;min-height:222px}
 .login-visual-content{height:222px;min-height:222px;padding:23px 21px 53px}
 .login-visual-story h2{font-size:28px}
 .login-pane{padding:23px 21px calc(25px + env(safe-area-inset-bottom))}
 .login-field{margin-bottom:13px}
}
@media(prefers-reduced-motion:reduce){.login-submit,.login-field .login-input-wrap input{transition:none}}
