/*
 PCE Portal compatibility layer.
 The Website theme CSS is loaded first; these portal-specific selectors preserve
 the approved split-screen Portal layout without duplicating the Website assets.
*/


:root{
  --pce-bg:#08091c;
  --pce-panel:#101226;
  --pce-panel-2:#15182f;
  --pce-text:#ffffff;
  --pce-muted:#a8adbd;
  --pce-accent:#ffe34f;
  --pce-border:rgba(255,255,255,.12);
}

*{box-sizing:border-box}
html,body{min-height:100%;}
body.pce-auth{
  margin:0;
  color:var(--pce-text);
  background:var(--pce-bg);
  font-family:'Montserrat',sans-serif;
  overflow-x:hidden;
}

.pce-shell{
  min-height:100vh;
  background-color:#08091c !important;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(390px,.65fr);
  background:
    radial-gradient(circle at 18% 22%,rgba(34,53,129,.45),transparent 32%),
    radial-gradient(circle at 75% 75%,rgba(27,94,107,.18),transparent 28%),
    linear-gradient(135deg,#08091c 0%,#0b0d24 58%,#08091c 100%);
}

.pce-visual{
  position:relative;
  background:
    radial-gradient(circle at 18% 22%,rgba(43,70,168,.48),transparent 33%),
    radial-gradient(circle at 78% 72%,rgba(15,117,128,.19),transparent 29%),
    linear-gradient(135deg,#0a0d2b 0%,#10194a 48%,#071526 100%) !important;
  min-height:100vh;
  padding:54px 64px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-right:1px solid var(--pce-border);
}

.pce-visual::before,
.pce-visual::after{
  content:"";
  position:absolute;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
}
.pce-visual::before{width:520px;height:520px;left:-165px;bottom:-170px}
.pce-visual::after{width:340px;height:340px;right:8%;top:11%}

.pce-grid{
  position:absolute;inset:0;opacity:.30;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(to bottom,black,transparent 85%);
}

.pce-node{position:absolute;width:10px;height:10px;border-radius:50%;background:#0f7580;border:2px solid #07121f;box-shadow:0 0 0 1px rgba(255,255,255,.08)}
.pce-node.n1{left:14%;top:24%}.pce-node.n2{left:36%;top:17%}.pce-node.n3{left:59%;top:31%}.pce-node.n4{left:77%;top:19%}.pce-node.n5{left:84%;top:55%}.pce-node.n6{left:44%;top:68%}

.pce-brand{position:relative;z-index:2;display:flex;align-items:center;gap:18px;text-decoration:none}
.pce-brand img{width:143px;max-width:45vw;height:auto;display:block;opacity:1;visibility:visible;filter:none !important}
.pce-brand-line{height:26px;width:1px;background:var(--pce-border)}
.pce-brand-label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--pce-muted)}

.pce-hero{position:relative;z-index:2;margin:auto 0;max-width:760px;padding:72px 0}
.pce-kicker{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--pce-accent);margin-bottom:28px}
.pce-kicker::before{content:"";width:42px;height:2px;background:var(--pce-accent)}
.pce-hero h1{font-family:'Montserrat',sans-serif;font-size:clamp(44px,5vw,78px);line-height:1.04;letter-spacing:-.045em;font-weight:300;margin:0 0 26px}
.pce-hero h1 strong{font-weight:700}
.pce-hero p{max-width:660px;font-family:'Montserrat',sans-serif;font-size:17px;line-height:1.9;color:#c5c9d5;margin:0 0 42px}

.pce-proof{display:flex;gap:34px;flex-wrap:wrap}
.pce-proof-item{display:flex;align-items:center;gap:12px;color:#d6d9e2;font-size:13px;font-weight:600}
.pce-proof-icon{width:38px;height:38px;border:1px solid rgba(255,227,79,.4);border-radius:50%;display:grid;place-items:center;color:var(--pce-accent);font-weight:800}

.pce-note{position:relative;z-index:2;border-top:1px solid var(--pce-border);padding-top:24px;max-width:760px;color:var(--pce-muted);font-size:13px;line-height:1.7}

.pce-login-panel{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:48px;
  background:rgba(9,10,29,.80);
  backdrop-filter:blur(14px);
}

.pce-login-card{width:100%;max-width:460px}
.pce-mobile-logo{display:none;margin-bottom:42px}
.pce-mobile-logo img{width:143px;max-width:70vw;height:auto;display:block;opacity:1;visibility:visible;filter:none !important}

.pce-login-card h2{font-size:36px;font-weight:500;letter-spacing:-.03em;margin:0 0 12px;color:#fff}
.pce-login-card .lead{color:var(--pce-muted);font-size:14px;line-height:1.7;margin-bottom:38px}

.pce-login-card .form-label{display:block;color:#e8e9ef;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px}
.pce-login-card .form-control{
  height:58px;
  width:100%;
  border:1px solid var(--pce-border);
  border-radius:0;
  background:rgba(255,255,255,.045);
  color:#fff;
  font-size:15px;
  padding:0 18px;
  box-shadow:none;
  transition:.2s ease;
}
.pce-login-card .form-control::placeholder{color:#777e91}
.pce-login-card .form-control:focus{border-color:var(--pce-accent);background:rgba(255,255,255,.065);box-shadow:0 0 0 3px rgba(255,227,79,.08)}
.pce-login-card .mb-3{margin-bottom:24px!important}
.pce-login-card .forgot-link{color:#bfc3cf;font-size:12px;text-decoration:none;transition:.2s}
.pce-login-card .forgot-link:hover{color:var(--pce-accent)}

.pce-login-card .btn-primary{
  height:58px;
  border:0;
  border-radius:0;
  background:var(--pce-accent);
  color:#07091b;
  font-weight:800;
  font-size:13px;
  letter-spacing:.11em;
  text-transform:uppercase;
  box-shadow:none;
  transition:.2s ease;
}
.pce-login-card .btn-primary:hover{background:#fff;color:#07091b;transform:translateY(-1px)}

.pce-signup{text-align:center;margin-top:30px;color:var(--pce-muted);font-size:13px}
.pce-signup a{color:var(--pce-accent);font-weight:700;text-decoration:none}
.pce-copyright{text-align:center;margin-top:52px;color:#777d8f;font-size:11px;letter-spacing:.04em}

@media (max-width:1100px){
  .pce-shell{grid-template-columns:1fr 430px}
  .pce-visual{padding:46px 44px}
}
@media (max-width:860px){
  .pce-shell{display:block}
  .pce-visual{display:none}
  .pce-login-panel{min-height:100vh;padding:42px 24px;background:
    radial-gradient(circle at 10% 5%,rgba(35,58,145,.34),transparent 35%),
    var(--pce-bg)}
  .pce-mobile-logo{display:block}
  .pce-login-card{max-width:520px}
}
@media (max-width:520px){
  .pce-login-panel{padding:32px 20px}
  .pce-login-card h2{font-size:30px}
}


/* Website theme compatibility: style.css gives every section a white background.
   These final rules intentionally override that global rule for the private portal. */
body.pce-auth .pce-shell{
  background:
    radial-gradient(circle at 18% 22%,rgba(34,53,129,.45),transparent 32%),
    radial-gradient(circle at 75% 75%,rgba(27,94,107,.18),transparent 28%),
    linear-gradient(135deg,#08091c 0%,#0b0d24 58%,#08091c 100%) !important;
}
body.pce-auth section.pce-visual{
  background:
    radial-gradient(circle at 22% 25%,rgba(61,86,185,.48),transparent 34%),
    radial-gradient(circle at 82% 72%,rgba(15,117,128,.20),transparent 28%),
    linear-gradient(135deg,#090d2c 0%,#111b4c 49%,#071526 100%) !important;
}
body.pce-auth main.pce-login-panel{
  background:linear-gradient(180deg,rgba(7,8,28,.98),rgba(8,10,32,.98)) !important;
}
body.pce-auth .pce-hero h1,
body.pce-auth .pce-hero h1 strong{color:#fff !important;}
body.pce-auth .pce-brand-label,
body.pce-auth .pce-note{color:#aeb7cf !important;}
body.pce-auth .pce-hero p{color:#c8cede !important;}
body.pce-auth .pce-proof-item{color:#e0e5f1 !important;}


/* Registration page */
.pce-register-shell{
  grid-template-columns:minmax(0,1fr) minmax(560px,.92fr);
}
.pce-register-panel{
  align-items:flex-start;
  overflow-y:auto;
  padding:42px 48px;
}
.pce-register-card{
  max-width:720px;
  margin:auto 0;
  padding:18px 0;
}
.pce-register-card h2{
  font-size:34px;
}
.pce-register-card .lead{
  margin-bottom:28px;
}
.pce-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:19px 18px;
}
.pce-field{
  min-width:0;
}
.pce-field-full{
  grid-column:1 / -1;
}
.pce-register-card .form-label{
  margin-bottom:8px;
}
.pce-register-card .form-control,
.pce-register-card .form-select{
  height:52px;
  width:100%;
  border:1px solid var(--pce-border);
  border-radius:0;
  background:rgba(255,255,255,.045);
  color:#fff;
  font-family:'Montserrat',sans-serif;
  font-size:14px;
  padding:0 16px;
  box-shadow:none;
  transition:.2s ease;
}
.pce-register-card .form-select{
  appearance:auto;
}
.pce-register-card .form-control::placeholder{
  color:#777e91;
}
.pce-register-card .form-control:focus,
.pce-register-card .form-select:focus{
  border-color:var(--pce-accent);
  background:rgba(255,255,255,.065);
  color:#fff;
  box-shadow:0 0 0 3px rgba(255,227,79,.08);
}
.pce-register-card .form-select option{
  color:#08091c;
  background:#fff;
}
.pce-register-card .btn-primary{
  height:56px;
}
.pce-register-card .pce-signup{
  margin-top:24px;
}
.pce-register-card .pce-copyright{
  margin-top:34px;
  padding-bottom:8px;
}
.registerLoader{
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(8,9,28,.82);
}
.registerLoader img{
  position:absolute;
  left:50%;
  top:50%;
  width:72px;
  height:72px;
  transform:translate(-50%,-50%);
}
@media (max-width:1180px){
  .pce-register-shell{
    grid-template-columns:minmax(0,.8fr) minmax(540px,1fr);
  }
  .pce-register-shell .pce-visual{
    padding-left:42px;
    padding-right:42px;
  }
}
@media (max-width:860px){
  .pce-register-panel{
    padding:38px 24px;
  }
  .pce-register-card{
    max-width:680px;
  }
}
@media (max-width:620px){
  .pce-form-grid{
    grid-template-columns:1fr;
    gap:18px;
  }
  .pce-field-full{
    grid-column:auto;
  }
  .pce-register-panel{
    padding:30px 20px;
  }
}


/* Registration page v6: simplified centred composition */
.pce-register-page{
  min-height:100vh;
  overflow:auto;
  background:#10163f;
}
.pce-register-stage{
  position:relative;
  min-height:100vh;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 18%, rgba(66,83,178,.2), transparent 34%),
    linear-gradient(135deg,#111948 0%,#18245d 50%,#0c1737 100%);
}
.pce-register-backdrop{
  position:fixed;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}
.pce-register-backdrop::before,
.pce-register-backdrop::after{
  content:"";
  position:absolute;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
}
.pce-register-backdrop::before{
  width:620px;
  height:620px;
  left:-190px;
  top:110px;
}
.pce-register-backdrop::after{
  width:760px;
  height:760px;
  right:-270px;
  top:140px;
}
.pce-register-wrap{
  position:relative;
  z-index:2;
  width:min(760px,calc(100% - 36px));
  margin:0 auto;
  padding:36px 0 54px;
}
.pce-register-brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin:0 auto 22px;
  text-decoration:none;
}
.pce-register-brand img{
  display:block;
  width:154px;
  max-width:42vw;
  height:auto;
  filter:none !important;
  opacity:1 !important;
}
.pce-register-brand .pce-brand-line{
  width:132px;
  margin:11px auto 10px;
}
.pce-register-brand .pce-brand-label{
  font-size:10px;
  letter-spacing:3px;
}
.pce-register-card-shell{
  width:100%;
}
.pce-register-card{
  width:100%;
  max-width:none;
  margin:0;
  padding:42px 46px 36px;
  background:rgba(6,8,29,.94);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 28px 80px rgba(0,0,0,.38);
}
.pce-register-card h2{
  margin-top:0;
}
.pce-register-card .pce-copyright{
  margin-top:28px;
}
@media (max-width:620px){
  .pce-register-wrap{
    width:min(100% - 22px,760px);
    padding-top:22px;
  }
  .pce-register-card{
    padding:30px 22px 28px;
  }
  .pce-register-brand{
    margin-bottom:16px;
  }
  .pce-register-brand img{
    width:132px;
  }
}


/* Registration page v7 refinements */
.pce-register-wrap{
  width:min(710px,calc(100% - 36px));
}
.pce-register-brand{
  margin-bottom:18px;
}
.pce-register-brand .pce-brand-line{
  display:block;
  width:118px;
  height:1px;
  min-height:1px;
  margin:10px auto 8px;
  padding:0;
  border:0;
  background:#ffe34f;
  box-shadow:none;
}
.pce-register-brand .pce-brand-label{
  margin:0;
}
.pce-register-card{
  padding-top:48px;
}
@media (max-width:620px){
  .pce-register-wrap{
    width:min(100% - 22px,710px);
  }
}


/* Auto-size centred auth buttons */
.pce-register-card .d-grid,
.pce-forgot-card .d-grid{
 display:flex!important;
 justify-content:center!important;
}
.pce-register-card .btn-primary,
.pce-forgot-card .btn-primary{
 width:auto!important;
 min-width:0!important;
 padding:0 34px!important;
 display:inline-flex!important;
 align-items:center;
 justify-content:center;
}

/* reduce welcome only */
.pce-hero h1{font-size:clamp(33px,3.75vw,58px)!important;}
