
:root{
  --auth-ink:#102b57;
  --auth-blue:#116bb4;
  --auth-blue2:#5199d7;
  --auth-gold:#cf9629;
  --auth-gold2:#e5b64b;
  --auth-line:#dce5eb;
  --auth-page:#f3f5f6;
  --auth-sans:"Montserrat","Helvetica Neue",Arial,sans-serif;
}
.auth-page{
  min-height:calc(100dvh - 84px);
  background:linear-gradient(120deg,#fff 0,#fff 64%,#fffaf1 100%);
}
.auth-shell{
  width:min(1240px,calc(100vw - 48px));
  min-height:calc(100dvh - 84px);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(390px,.72fr);
  gap:54px;
  align-items:center;
  padding:42px 0;
}
.auth-intro{padding:12px 0}
.auth-kicker{
  margin:0 0 14px;
  color:#c69231;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.auth-intro h1{
  max-width:690px;
  margin:0;
  color:var(--auth-ink);
  font-size:clamp(52px,5vw,78px);
  line-height:.97;
  letter-spacing:-.048em;
}
.auth-intro h1 span{color:var(--auth-blue2)}
.auth-lead{
  max-width:650px;
  margin:22px 0 0;
  color:#40546d;
  font-size:14px;
  line-height:1.72;
}
.auth-separation{
  max-width:650px;
  margin-top:28px;
  padding:16px 18px;
  border-left:3px solid var(--auth-gold);
  background:#fffaf1;
  color:#65758a;
  font-size:11px;
  line-height:1.65;
}
.auth-card{
  width:100%;
  padding:30px;
  border:1px solid var(--auth-line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 22px 58px rgba(22,52,82,.10);
}
.auth-card h2{
  margin:0;
  color:var(--auth-ink);
  font-size:28px;
  letter-spacing:-.035em;
}
.auth-card-sub{
  margin:8px 0 22px;
  color:#718297;
  font-size:11px;
  line-height:1.55;
}
.auth-field{
  display:grid;
  gap:7px;
  margin-top:14px;
}
.auth-field label{
  color:#3f536b;
  font-size:9px;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.auth-field input{
  width:100%;
  height:48px;
  padding:0 14px;
  border:1px solid #d8e2e9;
  border-radius:10px;
  outline:none;
  color:var(--auth-ink);
  background:#fbfdfe;
  font:500 13px var(--auth-sans);
}
.auth-field input:focus{
  border-color:#78add4;
  box-shadow:0 0 0 3px rgba(63,139,196,.10);
}
.auth-primary,
.auth-secondary{
  width:100%;
  min-height:46px;
  margin-top:18px;
  border-radius:8px;
  font:700 11px var(--auth-sans);
  cursor:pointer;
}
.auth-primary{
  border:0;
  background:linear-gradient(135deg,var(--auth-blue),var(--auth-blue2));
  color:#fff;
}
.auth-secondary{
  border:1px solid #d7e1e8;
  background:#fff;
  color:var(--auth-ink);
}
.auth-status{
  min-height:18px;
  margin:13px 0 0;
  color:#6f8092;
  font-size:10px;
  line-height:1.5;
}
.auth-status.error{color:#b2584a}
.auth-status.ok{color:#34775f}
.auth-hidden{display:none !important}

.portal-shell{
  width:min(1280px,calc(100vw - 48px));
  min-height:calc(100dvh - 84px);
  margin:0 auto;
  padding:44px 0 54px;
}
.portal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:30px;
  padding-bottom:28px;
  border-bottom:1px solid #dfe6eb;
}
.portal-head h1{
  margin:0;
  color:var(--auth-ink);
  font-size:44px;
  letter-spacing:-.04em;
}
.portal-user{
  margin-top:8px;
  color:#6c7e91;
  font-size:11px;
}
.portal-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:24px;
}
.portal-card{
  min-height:170px;
  padding:22px;
  border:1px solid #dce5eb;
  border-radius:18px;
  background:#fff;
}
.portal-card strong{
  display:block;
  color:var(--auth-ink);
  font-size:15px;
}
.portal-card p{
  margin:9px 0 0;
  color:#6b7c90;
  font-size:11px;
  line-height:1.62;
}
.portal-card.pending{
  background:linear-gradient(135deg,#fff,#fffaf1);
}
.portal-logout{
  min-width:130px;
  min-height:40px;
  padding:0 16px;
  border:1px solid #d8e2e9;
  border-radius:7px;
  background:#fff;
  color:#17365d;
  font:700 10px var(--auth-sans);
  cursor:pointer;
}
@media(max-width:900px){
  .auth-page{min-height:calc(100dvh - 72px)}
  .auth-shell{
    width:calc(100vw - 28px);
    min-height:0;
    grid-template-columns:1fr;
    gap:28px;
    padding:28px 0 44px;
  }
  .auth-intro h1{font-size:clamp(42px,11vw,60px)}
  .auth-card{padding:24px 20px}
  .portal-shell{
    width:calc(100vw - 28px);
    min-height:calc(100dvh - 72px);
    padding-top:28px;
  }
  .portal-head{flex-direction:column}
  .portal-grid{grid-template-columns:1fr}
}
