.login-shell[hidden]{display:none!important}
.login-shell{min-height:650px;margin:4vh auto 0;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr);max-width:1080px;border:1px solid #d7ae5f55;border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 30px 80px #001b1745}
.login-intro{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:center;padding:64px;color:#fff;background:radial-gradient(circle at 90% 12%,#237065 0,transparent 35%),linear-gradient(145deg,#062e2a 0%,#0a453e 100%);overflow:hidden}
.login-intro::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(115deg,transparent 55%,#d7ae5f12 55.2%,transparent 55.5%),repeating-radial-gradient(ellipse at 0 110%,transparent 0 48px,#ffffff08 49px 51px);pointer-events:none}
.login-intro::after{content:"";order:-1;width:132px;height:132px;margin:0 0 25px;border:1px solid #d7ae5f99;border-radius:28px;background:#f7f3e9 url("assets/hanstholm-net-logo.png") center/88px auto no-repeat;box-shadow:0 14px 30px #001d1a55,inset 0 0 0 5px #ffffff55}
.login-kicker{color:#e4bd6d;font-size:.72rem;font-weight:900;letter-spacing:.22em}
.login-intro h2{max-width:480px;margin:0 0 14px;font:700 clamp(2.7rem,4vw,4.25rem)/.98 Georgia,serif;letter-spacing:-.035em}
.login-intro>p{max-width:470px;margin:0;color:#d5e5df;font-size:1.06rem;line-height:1.65}
.login-status{display:flex;align-items:center;gap:13px;margin-top:38px;padding-top:25px;border-top:1px solid #ffffff20}
.login-status>i{width:13px;height:13px;border-radius:50%;background:#64db91;box-shadow:0 0 0 6px #64db9118,0 0 22px #64db9188}
.login-status span{display:grid;gap:3px}.login-status strong{font-size:.9rem}.login-status small{color:#a8c5bc;font-size:.72rem}
.login-wave{position:absolute;right:-50px;bottom:-85px;width:330px;height:170px;border:2px solid #d7ae5f26;border-radius:50%;transform:rotate(-9deg)}
.login-wave::before,.login-wave::after{content:"";position:absolute;inset:18px;border:inherit;border-radius:inherit}.login-wave::after{inset:36px}
.login-card{display:flex;flex-direction:column;justify-content:center;padding:62px 58px;background:linear-gradient(160deg,#fff 0%,#f4f6f2 100%)}
.login-card h2{margin:.5rem 0 .55rem;font:700 2.35rem/1 Georgia,serif;color:#082f2b}.login-help{margin-bottom:30px;color:#667771;line-height:1.5}
.login-card form{display:grid;gap:19px;margin:0}.login-card label{gap:9px;color:#17322d;font-size:.8rem;letter-spacing:.015em}
.login-input{display:flex;align-items:center;gap:10px;padding:0 15px;border:1px solid #c7d4cd;border-radius:12px;background:#fff;transition:border-color .2s,box-shadow .2s,transform .2s}
.login-input:focus-within{border-color:#b68b3c;box-shadow:0 0 0 4px #d7ae5f20;transform:translateY(-1px)}
.login-input i{display:grid;place-items:center;width:22px;color:#8b9a94;font-style:normal;font-size:.78rem}.login-input input{width:100%;min-width:0;padding:14px 0;border:0;outline:0;background:transparent;font-size:.95rem}
.login-card button{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:5px;padding:15px 19px;border-radius:12px;background:linear-gradient(100deg,#08685c,#064a43);box-shadow:0 10px 24px #075e5430;transition:transform .2s,box-shadow .2s}
.login-card button:hover{transform:translateY(-2px);box-shadow:0 14px 28px #075e5440}.login-card button span{font-size:1.15rem}
.login-card .login-link{display:block;margin:-8px 0 0;padding:4px;border:0;background:none;box-shadow:none;color:#08685c;text-align:center;text-decoration:underline;font-size:.82rem}.login-card .login-link:hover{transform:none;box-shadow:none;color:#064a43}
.password-reset-dialog{width:min(92vw,480px);padding:0;border:0;border-radius:20px;box-shadow:0 28px 80px #001b1766}.password-reset-dialog::backdrop{background:#001d1a99;backdrop-filter:blur(4px)}.password-reset-dialog form{position:relative;display:grid;gap:18px;padding:38px}.password-reset-dialog h2{margin:0;color:#082f2b;font:700 1.8rem/1.1 Georgia,serif}.password-reset-dialog p{margin:0;color:#526762;line-height:1.5}.password-reset-dialog label{display:grid;gap:8px;font-weight:700}.password-reset-dialog input{padding:13px 15px;border:1px solid #c7d4cd;border-radius:10px;font:inherit}.password-reset-dialog button[type="submit"]{padding:14px;border-radius:10px;background:#08685c;color:#fff}.password-reset-dialog .dialog-close{position:absolute;top:14px;right:14px;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:#edf2ef;color:#17322d;font-size:1.4rem}.password-reset-dialog #password-reset-status{min-height:1.4em;color:#08685c;font-weight:700}
.login-card form.is-loading .login-input{background:#edf2ef;opacity:.72}.login-card form.is-loading button{justify-content:center;gap:12px;cursor:wait;transform:none}.login-card form.is-loading button span{font-size:.9rem}.login-spinner{width:18px;height:18px;border:2px solid #ffffff70;border-top-color:#fff;border-radius:50%;animation:login-spin .8s linear infinite}.login-progress{margin:-6px 0 0;color:#526762;font-size:.82rem;text-align:center}.login-progress[hidden]{display:none}@keyframes login-spin{to{transform:rotate(360deg)}}
.login-card .error{min-height:1.2em;margin:0}.login-footnote{margin-top:34px;color:#85938e;font-size:.62rem;font-weight:800;letter-spacing:.13em;text-align:center}
body:has(#login:not([hidden])){background:linear-gradient(135deg,#eef2ed 0%,#e3ebe5 100%)}body:has(#login:not([hidden])) header{display:none}.login-intro .login-kicker{margin-bottom:34px}
@media(max-width:820px){.login-shell{grid-template-columns:1fr;margin-top:15px;min-height:0}.login-intro{padding:38px}.login-intro h2{font-size:2.7rem}.login-status{margin-top:26px}.login-card{padding:42px 38px}}
@media(max-width:520px){body:has(#login:not([hidden])) main{padding:18px}.login-shell{border-radius:20px}.login-intro{padding:30px 26px}.login-intro::after{width:106px;height:106px;margin-bottom:20px;border-radius:23px;background-size:70px auto}.login-intro h2{font-size:2.25rem}.login-intro>p{font-size:.92rem}.login-card{padding:34px 26px}.login-card h2{font-size:2rem}}
