.sso_root,
.sso_root body{
  min-height:100%;
  margin:0;
}

.sso_page{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px 18px;
  background:var(--nl-color-eef3f7);
  color:var(--nl-color-17324d);
  box-sizing:border-box;
}

.sso_login_panel{
  width:100%;
  max-width:420px;
  padding:28px;
  background:var(--nl-color-white);
  border:1px solid var(--nl-color-border-muted);
  box-shadow:0 18px 44px var(--nl-color-rgba-23-50-77-0-14);
  box-sizing:border-box;
}

.sso_brand_row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:24px;
}

.sso_logo{
  max-width:170px;
  height:auto;
}

.sso_audience_badge{
  padding:5px 9px;
  border:1px solid var(--nl-color-border-muted);
  background:var(--nl-color-surface-soft);
  color:var(--nl-color-text-muted);
  font-size:12px;
  line-height:1;
  font-weight:700;
}

.sso_login_panel h1{
  margin:0 0 20px 0;
  color:var(--nl-color-17324d);
  font-size:24px;
  line-height:1.2;
  font-weight:700;
}

.sso_notice{
  margin:0 0 18px 0;
  padding:11px 12px;
  border:1px solid var(--nl-color-danger-border);
  background:var(--nl-color-danger-bg);
  color:var(--nl-color-danger-text);
  font-size:14px;
  line-height:1.4;
}

.sso_login_form{
  display:grid;
  gap:10px;
}

.sso_login_form label{
  color:var(--nl-color-text-secondary);
  font-size:13px;
  font-weight:700;
}

.sso_login_form input{
  width:100%;
  min-height:43px;
  padding:9px 10px;
  border:1px solid var(--nl-color-border-muted);
  background:var(--nl-color-white);
  color:var(--nl-color-17324d);
  font-size:16px;
  box-sizing:border-box;
}

.sso_login_form input:focus{
  outline:2px solid var(--nl-color-9cb6c8);
  outline-offset:1px;
}

.sso_login_form button{
  min-height:44px;
  margin-top:8px;
  border:0;
  background:var(--nl-color-brand-green);
  color:var(--nl-color-white);
  font-size:15px;
  font-weight:700;
  cursor:pointer;
}

.sso_login_form button:hover,
.sso_login_form button:focus{
  background:var(--nl-color-brand-green-end);
}

.sso_link_row{
  margin-top:18px;
  text-align:center;
}

.sso_form_link{
  color:var(--nl-color-brand-green);
  font-size:14px;
  font-weight:700;
  text-decoration:underline;
}

.sso_button_link{
  display:inline-block;
  min-height:44px;
  padding:12px 18px;
  background:var(--nl-color-brand-green);
  color:var(--nl-color-white);
  font-size:15px;
  font-weight:700;
  text-decoration:none;
  box-sizing:border-box;
}

.sso_button_link:hover,
.sso_button_link:focus{
  background:var(--nl-color-brand-green-end);
  color:var(--nl-color-white);
}

.sso_notice_info{
  border-color:var(--nl-color-border-muted);
  background:var(--nl-color-surface-soft);
  color:var(--nl-color-17324d);
}

@media (max-width: 520px){
  .sso_page{
    align-items:flex-start;
    padding:18px;
  }

  .sso_login_panel{
    padding:22px;
  }
}
