/* Shared public login shell. Brand tokens remain in brand.css; this entry
   surface uses the approved display face for both copy and controls. */
body.nia-login{font-family:var(--font);background:var(--bg-subtle);color:var(--text);min-height:100vh;min-height:100svh;height:auto;overflow:auto;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;padding:0}
button,input,select,textarea{font-family:inherit}body.nia-login main{flex:1;display:grid;place-items:center;width:100%;padding:40px 20px; padding-top:max(40px,env(safe-area-inset-top));padding-bottom:max(30px,env(safe-area-inset-bottom))}
.wrap{width:100%;max-width:460px}.login-card{--card-inset:36px;padding:34px var(--card-inset) 28px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 40px color-mix(in srgb,var(--text) 1%,transparent);text-align:center}
.brand{display:flex;justify-content:center;align-items:center;min-height:56px}.brand img{width:auto;max-width:220px;max-height:56px;object-fit:contain}.brand img.square{max-width:64px;max-height:64px}.brand:has(img.square){flex-direction:column;gap:8px}#brand-name{font-family:var(--font-display);font-size:28px;font-weight:600;letter-spacing:-.5px;overflow-wrap:anywhere}
.rule{height:1px;background:var(--border-strong);margin:25px calc(-1 * var(--card-inset)) 26px}
.portal-picker{position:relative;width:240px;max-width:100%;margin:auto;text-align:center}#picker-trigger{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:12px 35px;border:1px solid var(--border-strong);border-radius:var(--btn-radius);background:var(--surface);color:var(--text);font-size:14px;font-weight:500;cursor:pointer}#picker-trigger>svg{position:absolute;right:14px}#picker-trigger[aria-expanded=true]{border-bottom:2px solid var(--text)}#picker-trigger:focus-visible{outline:none;border-bottom:2px solid var(--text)}
#picker-options{position:absolute;z-index:5;top:calc(100% + 7px);left:0;right:0;padding:5px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 12px 28px color-mix(in srgb,var(--text) 5%,transparent)}#picker-options button{position:relative;width:100%;min-height:44px;display:flex;align-items:center;justify-content:center;padding:12px 30px;border:0;background:transparent;color:var(--text-subtle);font-size:13px;border-radius:4px;cursor:pointer}#picker-options button>span{position:absolute;right:12px}#picker-options button:hover,#picker-options button:focus-visible{background:var(--surface-hover);color:var(--text)}#picker-options button[aria-selected=true]{color:var(--text);font-weight:500;background:var(--bg-subtle)}
h1{font-family:var(--font-display);font-size:26px;letter-spacing:-.65px;font-weight:600;line-height:1.2;margin:28px 0 8px}.intro{font-size:13px;line-height:1.6;color:var(--text-subtle)}form{margin-top:24px}.field{margin-top:17px}.field label{display:block;font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;color:var(--text-subtle)}body.nia-login .login-input{width:100%;height:46px;margin:0;border:1px solid var(--border-strong);border-radius:6px;padding:12px;font-size:14px;background:var(--surface);color:var(--text);text-align:center;box-sizing:border-box}input::placeholder{color:var(--text-muted)}body.nia-login .login-input:focus,body.nia-login .login-input:focus-visible{outline:none;box-shadow:none;border-color:var(--border-strong);border-bottom:2px solid var(--text)}
.password{position:relative}body.nia-login .password input{padding-left:48px;padding-right:48px}.show{position:absolute;top:2px;right:3px;min-width:44px;min-height:44px;display:grid;place-items:center;background:none;border:0;color:var(--text-subtle);cursor:pointer}.eye-slash{display:none}.show[aria-pressed=true] .eye-slash{display:block}
body.nia-login .btn-login{width:100%;min-height:46px;display:flex;justify-content:center;align-items:center;gap:12px;margin-top:20px;font-size:13px;border-radius:var(--btn-radius)}.btn-login:disabled:before{content:'';width:15px;height:15px;border:1.5px solid transparent;border-top-color:currentColor;border-radius:50%;animation:login-spin .7s linear infinite;flex:none}
.login-error,.msg{display:none;color:var(--danger);background:var(--danger-soft);padding:10px 12px;margin-top:14px;font-size:12px;line-height:1.5;border-radius:4px}.msg.err{display:block}.assist{font-size:11px;line-height:1.6;color:var(--text-subtle);margin-top:18px}.credit{display:flex;flex-direction:column;align-items:center;gap:5px;margin-top:20px;font-size:10px;line-height:1.2;color:var(--text-muted)}.credit img{width:60px;height:auto}
[hidden]{display:none!important}#arrival{position:fixed;inset:0;z-index:50;background:var(--bg-subtle);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:19px;pointer-events:none;animation:arrival-out .35s ease .75s forwards}#arrival img{object-fit:contain;animation:mark-in .55s var(--nia-ease) both}.arrival-line{width:54px;height:1px;background:var(--border);overflow:hidden}.arrival-line:after{content:'';display:block;width:100%;height:100%;background:var(--text);transform-origin:left;animation:load-line .8s var(--nia-ease) both}.entering .wrap{animation:card-in .55s var(--nia-ease) .65s both}
@keyframes login-spin{to{transform:rotate(360deg)}}@keyframes load-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes mark-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes arrival-out{to{opacity:0;visibility:hidden}}@keyframes card-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(max-width:520px){body.nia-login main{padding:35px 16px 30px;padding-top:max(35px,env(safe-area-inset-top));padding-bottom:max(30px,env(safe-area-inset-bottom))}.login-card{--card-inset:24px;padding-top:27px;padding-bottom:23px}.brand img{max-width:210px;max-height:48px}h1{font-size:25px}.rule{margin-top:22px;margin-bottom:22px}body.nia-login .login-input{height:48px;font-size:16px}body.nia-login .btn-login{min-height:48px}.show{top:2px}}
@media(max-width:350px){.login-card{--card-inset:19px}}
@media(prefers-reduced-motion:reduce){#arrival{display:none!important}.entering .wrap{animation:none}.btn-login:disabled:before{animation:none}}
