:root{
  --ip-gate-ink:#173247;
  --ip-gate-muted:#647987;
  --ip-gate-blue:#159dcc;
  --ip-gate-deep:#147eae;
  --ip-gate-orange:#ef7b3b;
}

html.ip-access-locked,
html.ip-access-locked body{
  min-height:100%;
  overflow:hidden!important;
}

html.ip-access-locked body > *:not(.ip-access-gate){
  visibility:hidden!important;
}

.ip-access-gate{
  position:fixed;
  inset:0;
  z-index:2147483647;
  display:grid;
  place-items:center;
  overflow:auto;
  padding:24px 16px;
  color:var(--ip-gate-ink);
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:
    linear-gradient(90deg,rgba(21,157,204,.035) 1px,transparent 1px),
    linear-gradient(rgba(21,157,204,.035) 1px,transparent 1px),
    #edf4f5;
  background-size:28px 28px;
  visibility:visible!important;
}

.ip-access-panel{
  position:relative;
  width:min(430px,100%);
  padding:28px 26px 24px;
  overflow:hidden;
  border:1px solid rgba(23,50,71,.1);
  border-radius:8px;
  background:rgba(255,255,255,.96);
  box-shadow:0 22px 54px rgba(30,67,86,.14);
}

.ip-access-panel::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:5px;
  background:linear-gradient(90deg,var(--ip-gate-blue) 0 68%,var(--ip-gate-orange) 68% 100%);
}

.ip-access-brand{
  display:flex;
  align-items:center;
  gap:11px;
  margin-bottom:27px;
}

.ip-access-logo{
  width:42px;
  height:42px;
  flex:0 0 42px;
  padding:7px;
  border-radius:8px;
  background:#eef9fc;
}

.ip-access-logo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

.ip-access-brand strong{
  display:block;
  font-size:15px;
  line-height:1.2;
  letter-spacing:0;
}

.ip-access-brand span{
  display:block;
  margin-top:4px;
  color:#7a8d98;
  font-size:10px;
  font-weight:800;
  letter-spacing:1.4px;
}

.ip-access-eyebrow{
  margin-bottom:8px;
  color:var(--ip-gate-orange);
  font-size:11px;
  font-weight:900;
  letter-spacing:1.3px;
}

.ip-access-title{
  margin:0;
  color:var(--ip-gate-ink);
  font-family:"Songti SC","SimSun",serif;
  font-size:34px;
  font-weight:900;
  line-height:1.08;
  letter-spacing:0;
}

.ip-access-copy{
  margin:13px 0 21px;
  color:var(--ip-gate-muted);
  font-size:14px;
  font-weight:600;
  line-height:1.75;
}

.ip-access-label{
  display:block;
  margin-bottom:7px;
  color:var(--ip-gate-ink);
  font-size:12px;
  font-weight:850;
}

.ip-access-input{
  display:block;
  width:100%;
  height:48px;
  padding:0 13px;
  border:1px solid #cbd9df;
  border-radius:6px;
  outline:none;
  color:var(--ip-gate-ink);
  background:#fff;
  font-family:inherit;
  font-size:16px;
  font-weight:700;
  line-height:1;
  letter-spacing:0;
  transition:border-color .18s ease,box-shadow .18s ease;
}

.ip-access-input:focus{
  border-color:var(--ip-gate-blue);
  box-shadow:0 0 0 3px rgba(21,157,204,.12);
}

.ip-access-submit{
  width:100%;
  height:46px;
  margin-top:12px;
  border:0;
  border-radius:6px;
  color:#fff;
  background:linear-gradient(135deg,var(--ip-gate-blue),var(--ip-gate-deep));
  box-shadow:0 10px 22px rgba(20,126,174,.2);
  font-family:inherit;
  font-size:15px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
}

.ip-access-submit:active{transform:translateY(1px)}
.ip-access-submit:disabled{opacity:.65;cursor:wait}

.ip-access-error{
  min-height:20px;
  margin:8px 0 0;
  color:#b94d45;
  font-size:12px;
  font-weight:750;
  line-height:1.5;
}

.ip-access-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid #e7edef;
  color:#81919a;
  font-size:11px;
  line-height:1.5;
}

.ip-access-foot a{
  flex:0 0 auto;
  color:var(--ip-gate-deep);
  font-weight:850;
  text-decoration:none;
}

@media (max-width:420px){
  .ip-access-gate{padding:16px 12px}
  .ip-access-panel{padding:25px 20px 20px}
  .ip-access-title{font-size:30px}
  .ip-access-copy{font-size:13px}
  .ip-access-foot{align-items:flex-start;flex-direction:column}
}
