/*
 * Syntrix Foundation — autenticação e instalação oficial v3.2.3
 * Folha isolada para impedir que estilos do dashboard ou de bibliotecas
 * externas alterem os ecrãs de login, registo, MFA e recuperação.
 */
html,
body.sf-auth-page{min-height:100%;}

body.sf-auth-page{
  margin:0;
  overflow:hidden;
  background:var(--sf-card);
  color:var(--sf-text);
}

body.sf-auth-page .sf-auth-shell{
  min-height:100vh;
  min-height:100dvh;
  height:100vh;
  height:100dvh;
  display:grid;
  grid-template-columns:minmax(520px,46%) minmax(0,54%);
  grid-template-areas:"panel art";
  overflow:hidden;
  background:var(--sf-card);
}

body.sf-auth-page.sf-auth-wide .sf-auth-shell{
  grid-template-columns:minmax(650px,54%) minmax(420px,46%);
}

body.sf-auth-page .sf-auth-panel{
  grid-area:panel;
  min-width:0;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  background:var(--sf-card);
  color:var(--sf-text);
  scrollbar-width:thin;
  scrollbar-color:var(--sf-border) transparent;
}

body.sf-auth-page .sf-auth-panel-inner{
  width:100%;
  max-width:760px;
  min-height:100%;
  margin:0 auto;
  padding:26px clamp(30px,5vw,78px) 24px;
  display:grid;
  grid-template-rows:auto 1fr auto;
}

body.sf-auth-page.sf-auth-wide .sf-auth-panel-inner{max-width:900px;}

body.sf-auth-page .sf-auth-toolbar{
  min-height:42px;
  display:flex;
  justify-content:flex-end;
  align-items:center;
}

body.sf-auth-page .sf-auth-theme{
  position:static;
  inset:auto;
  min-width:138px;
  height:40px;
  margin:0;
  padding:0 13px;
  border:1px solid var(--sf-border);
  border-radius:11px;
  background:var(--sf-card-alt);
  color:var(--sf-muted);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:11px;
  font-weight:750;
  cursor:pointer;
  box-shadow:none;
}

body.sf-auth-page .sf-auth-theme:hover,
body.sf-auth-page .sf-auth-theme:focus-visible{
  color:var(--sf-primary);
  border-color:color-mix(in srgb,var(--sf-primary) 42%,var(--sf-border));
  outline:0;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--sf-primary) 12%,transparent);
}

body.sf-auth-page .sf-auth-theme svg{width:16px;height:16px;}

body.sf-auth-page .sf-auth-stage{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px 0 22px;
}

body.sf-auth-page .sf-auth-card{
  width:100%;
  max-width:540px;
  margin:0 auto;
}

body.sf-auth-page.sf-auth-wide .sf-auth-card{max-width:720px;}

body.sf-auth-page .sf-auth-logo{
  width:max-content;
  max-width:100%;
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  margin:0 0 32px;
  line-height:1;
}

body.sf-auth-page .sf-auth-logo img{
  display:block;
  width:205px;
  max-width:68vw;
  height:auto;
  margin:0;
  object-fit:contain;
}

body.sf-auth-page .sf-auth-logo .logo-light{display:block!important;}
body.sf-auth-page .sf-auth-logo .logo-dark{display:none!important;}
html[data-theme="dark"] body.sf-auth-page .sf-auth-logo .logo-light{display:none!important;}
html[data-theme="dark"] body.sf-auth-page .sf-auth-logo .logo-dark{display:block!important;}

body.sf-auth-page .sf-auth-logo small{
  display:block;
  margin:7px 0 0 1px;
  color:var(--sf-primary);
  font-size:8px;
  font-weight:850;
  letter-spacing:3.7px;
}

body.sf-auth-page .sf-auth-heading{margin:0 0 24px;}
body.sf-auth-page .sf-auth-heading>span{
  display:block;
  color:var(--sf-primary);
  font-size:9px;
  font-weight:900;
  letter-spacing:2.8px;
}
body.sf-auth-page .sf-auth-heading h1{
  margin:8px 0 6px;
  color:var(--sf-text);
  font-size:clamp(28px,3vw,35px);
  line-height:1.16;
  letter-spacing:-.5px;
}
body.sf-auth-page .sf-auth-heading p{
  max-width:620px;
  margin:0;
  color:var(--sf-muted);
  font-size:13px;
  line-height:1.65;
}

body.sf-auth-page form{margin:0;}
body.sf-auth-page .sf-wizard-form{display:block;}

body.sf-auth-page .sf-field{display:block;margin:0 0 16px;}
body.sf-auth-page .sf-field>span{
  display:block;
  margin:0 0 7px;
  color:var(--sf-text);
  font-size:11px;
  font-weight:800;
}
body.sf-auth-page .sf-field>div{
  width:100%;
  min-height:48px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 13px;
  border:1px solid var(--sf-border);
  border-radius:11px;
  background:var(--sf-card-alt);
  transition:border-color .18s,box-shadow .18s,background .18s;
}
body.sf-auth-page .sf-field>div:focus-within{
  border-color:var(--sf-primary);
  background:var(--sf-card);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--sf-primary) 12%,transparent);
}
body.sf-auth-page .sf-field input,
body.sf-auth-page .sf-field select,
body.sf-auth-page .sf-field textarea{
  width:100%;
  min-width:0;
  min-height:44px;
  flex:1;
  margin:0;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  color:var(--sf-text);
  box-shadow:none;
}
body.sf-auth-page .sf-field input::placeholder,
body.sf-auth-page .sf-field textarea::placeholder{color:color-mix(in srgb,var(--sf-muted) 82%,transparent);}
body.sf-auth-page .sf-field svg{width:17px;height:17px;flex:none;color:#8f9bb1;}
body.sf-auth-page .sf-field button{
  width:34px;
  height:34px;
  flex:none;
  display:grid;
  place-items:center;
  margin:0 -4px 0 0;
  padding:0;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--sf-muted);
}
body.sf-auth-page .sf-field button:hover{background:var(--sf-bg);color:var(--sf-primary);}
body.sf-auth-page .sf-field small.error,
body.sf-auth-page .sf-form-error{display:block;margin:6px 0 0;color:var(--sf-danger);font-size:10px;}

body.sf-auth-page .sf-form-grid{display:grid;gap:0 15px;}
body.sf-auth-page .sf-form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));}
body.sf-auth-page .sf-form-grid .full{grid-column:1/-1;}

body.sf-auth-page .sf-auth-options{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:-2px 0 20px;
  font-size:11px;
}
body.sf-auth-page .sf-auth-options.end{justify-content:flex-end;}
body.sf-auth-page .sf-auth-options a,
body.sf-auth-page .sf-auth-register a{color:var(--sf-primary);font-weight:800;}
body.sf-auth-page .sf-auth-options a:hover,
body.sf-auth-page .sf-auth-register a:hover{text-decoration:underline;}

body.sf-auth-page .sf-btn{
  min-height:44px;
  border-radius:10px;
  font-size:12px;
  font-weight:850;
}
body.sf-auth-page .sf-btn.wide{width:100%;}

body.sf-auth-page .sf-auth-divider{
  display:flex;
  align-items:center;
  gap:12px;
  margin:22px 0 12px;
  color:var(--sf-muted);
  font-size:10px;
}
body.sf-auth-page .sf-auth-divider:before,
body.sf-auth-page .sf-auth-divider:after{content:"";height:1px;flex:1;background:var(--sf-border);}
body.sf-auth-page .sf-auth-register{margin:0;text-align:center;color:var(--sf-muted);font-size:12px;}
body.sf-auth-page .sf-security-note{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:20px 0 0;
  color:var(--sf-muted);
  font-size:10px;
}
body.sf-auth-page .sf-security-note svg{width:16px;height:16px;color:var(--sf-success);}

body.sf-auth-page .sf-alert{margin:0 0 18px;}
body.sf-auth-page .sf-info-box{margin:2px 0 18px;}

body.sf-auth-page .sf-stepper{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin:0 0 25px;
}
body.sf-auth-page .sf-stepper>div{
  min-width:0;
  position:relative;
  padding-top:38px;
  color:var(--sf-muted);
  font-size:9px;
  line-height:1.3;
}
body.sf-auth-page .sf-stepper b{
  position:absolute;
  top:0;
  left:0;
  z-index:1;
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border:1px solid var(--sf-border);
  border-radius:9px;
  background:var(--sf-card);
  color:var(--sf-muted);
}
body.sf-auth-page .sf-stepper>div:after{
  content:"";
  position:absolute;
  top:14px;
  left:35px;
  right:4px;
  height:1px;
  background:var(--sf-border);
}
body.sf-auth-page .sf-stepper>div:last-child:after{display:none;}
body.sf-auth-page .sf-stepper .active,
body.sf-auth-page .sf-stepper .done{color:var(--sf-primary);font-weight:800;}
body.sf-auth-page .sf-stepper .active b,
body.sf-auth-page .sf-stepper .done b{border-color:var(--sf-primary);background:var(--sf-primary);color:#fff;}

body.sf-auth-page .sf-wizard-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid var(--sf-border);
}
body.sf-auth-page .sf-wizard-actions .sf-btn{min-width:130px;}

body.sf-auth-page .sf-choice-group{margin:2px 0 16px;}
body.sf-auth-page .sf-check{margin:5px 0 0;}
body.sf-auth-page .sf-password-rules{margin:-3px 0 18px;}
body.sf-auth-page .sf-review{margin-top:3px;}
body.sf-auth-page .sf-recovery-grid{margin:18px 0;}

body.sf-auth-page .sf-auth-footer{
  padding:12px 0 0;
  color:var(--sf-muted);
  font-size:10px;
  text-align:left;
}

body.sf-auth-page .sf-auth-art{
  grid-area:art;
  min-width:0;
  min-height:100vh;
  min-height:100dvh;
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  padding:clamp(54px,6vw,104px);
  background:
    radial-gradient(circle at 74% 24%,rgba(26,195,224,.34),transparent 21%),
    radial-gradient(circle at 20% 16%,rgba(73,105,238,.52),transparent 28%),
    linear-gradient(145deg,#173678 0%,#101d3e 45%,#070d1c 100%);
  color:#fff;
}

body.sf-auth-page .sf-auth-art:before{
  content:"S";
  position:absolute;
  right:-9vw;
  top:-5vh;
  color:rgba(255,255,255,.035);
  font-size:min(62vw,850px);
  font-weight:950;
  line-height:.8;
  pointer-events:none;
}

body.sf-auth-page .sf-auth-grid{
  position:absolute;
  inset:0;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:linear-gradient(to top,#000,transparent 86%);
  mask-image:linear-gradient(to top,#000,transparent 86%);
  pointer-events:none;
}

body.sf-auth-page .sf-auth-orb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(.2px);}
body.sf-auth-page .sf-auth-orb.one{width:250px;height:250px;top:13%;left:12%;background:rgba(67,97,238,.16);box-shadow:0 0 95px rgba(67,97,238,.44);}
body.sf-auth-page .sf-auth-orb.two{width:170px;height:170px;right:13%;bottom:17%;background:rgba(0,184,217,.16);box-shadow:0 0 85px rgba(0,184,217,.38);}

body.sf-auth-page .sf-auth-message{
  position:relative;
  z-index:2;
  width:100%;
  max-width:610px;
}
body.sf-auth-page .sf-auth-art-logo{
  display:block;
  width:min(255px,62%);
  height:auto;
  margin:0 0 46px;
  object-fit:contain;
}
body.sf-auth-page .sf-auth-message>span{
  display:block;
  color:#83baff;
  font-size:10px;
  font-weight:850;
  letter-spacing:4px;
}
body.sf-auth-page .sf-auth-message h2{
  max-width:590px;
  margin:14px 0 15px;
  color:#fff;
  font-size:clamp(38px,4vw,60px);
  font-weight:500;
  line-height:1.03;
  letter-spacing:-1.2px;
}
body.sf-auth-page .sf-auth-message p{
  max-width:560px;
  margin:0;
  color:#b6c4df;
  font-size:15px;
  line-height:1.7;
}
body.sf-auth-page .sf-auth-progress{
  width:min(520px,100%);
  height:6px;
  margin:27px 0 0;
  overflow:hidden;
  border-radius:99px;
  background:rgba(255,255,255,.12);
}
body.sf-auth-page .sf-auth-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5d7fff,#2ec8e5);}
body.sf-auth-page .sf-auth-message small{display:block;margin-top:8px;color:#98acd0;}

@media(max-width:1180px){
  body.sf-auth-page .sf-auth-shell,
  body.sf-auth-page.sf-auth-wide .sf-auth-shell{grid-template-columns:minmax(540px,56%) minmax(380px,44%);}
  body.sf-auth-page .sf-auth-art{padding:55px;}
  body.sf-auth-page .sf-auth-message h2{font-size:44px;}
}

@media(max-width:930px){
  body.sf-auth-page{overflow:auto;}
  body.sf-auth-page .sf-auth-shell,
  body.sf-auth-page.sf-auth-wide .sf-auth-shell{
    min-height:100vh;
    min-height:100dvh;
    height:auto;
    display:block;
    overflow:visible;
  }
  body.sf-auth-page .sf-auth-panel{min-height:100vh;min-height:100dvh;overflow:visible;}
  body.sf-auth-page .sf-auth-panel-inner{min-height:100vh;min-height:100dvh;max-width:760px;padding:22px 30px 22px;}
  body.sf-auth-page .sf-auth-art{display:none;}
}

@media(max-width:680px){
  body.sf-auth-page .sf-auth-panel-inner{padding:18px 20px 20px;}
  body.sf-auth-page .sf-auth-toolbar{min-height:42px;}
  body.sf-auth-page .sf-auth-theme{min-width:44px;padding:0 11px;}
  body.sf-auth-page .sf-auth-theme span{display:none;}
  body.sf-auth-page .sf-auth-stage{align-items:flex-start;padding:20px 0 18px;}
  body.sf-auth-page .sf-auth-logo{margin-bottom:27px;}
  body.sf-auth-page .sf-auth-logo img{width:180px;}
  body.sf-auth-page .sf-auth-heading{margin-bottom:21px;}
  body.sf-auth-page .sf-auth-heading h1{font-size:28px;}
  body.sf-auth-page .sf-form-grid.two{grid-template-columns:1fr;}
  body.sf-auth-page .sf-form-grid .full{grid-column:auto;}
  body.sf-auth-page .sf-stepper span{display:none;}
  body.sf-auth-page .sf-stepper>div{padding-top:31px;}
  body.sf-auth-page .sf-wizard-actions{position:static;margin-top:18px;}
  body.sf-auth-page .sf-wizard-actions .sf-btn{min-width:0;flex:1;padding-left:10px;padding-right:10px;}
  body.sf-auth-page .sf-auth-footer{text-align:center;}
}

@media(max-width:390px){
  body.sf-auth-page .sf-auth-panel-inner{padding-left:16px;padding-right:16px;}
  body.sf-auth-page .sf-auth-heading h1{font-size:26px;}
  body.sf-auth-page .sf-wizard-actions{flex-direction:column-reverse;}
  body.sf-auth-page .sf-wizard-actions .sf-btn{width:100%;}
}

@media(max-height:720px) and (min-width:931px){
  body.sf-auth-page .sf-auth-panel-inner{padding-top:18px;padding-bottom:18px;}
  body.sf-auth-page .sf-auth-stage{align-items:flex-start;padding-top:18px;}
  body.sf-auth-page .sf-auth-logo{margin-bottom:24px;}
  body.sf-auth-page .sf-auth-art{padding-top:46px;padding-bottom:46px;}
  body.sf-auth-page .sf-auth-art-logo{margin-bottom:30px;}
}

/* Syntrix Foundation 3.2.3 — instalador interno */
body.sf-auth-page .sf-stepper.sf-stepper-six{grid-template-columns:repeat(6,minmax(0,1fr));}
body.sf-auth-page .sf-install-checks{display:grid;gap:10px;margin-bottom:18px;}
body.sf-auth-page .sf-install-check{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--sf-border);border-radius:11px;background:var(--sf-card-alt);}
body.sf-auth-page .sf-install-check svg{width:19px;height:19px;flex:none;}
body.sf-auth-page .sf-install-check.ok svg{color:var(--sf-success);}
body.sf-auth-page .sf-install-check.warning svg{color:#d89219;}
body.sf-auth-page .sf-install-check.error{border-color:color-mix(in srgb,var(--sf-danger) 45%,var(--sf-border));}
body.sf-auth-page .sf-install-check.error svg{color:var(--sf-danger);}
body.sf-auth-page .sf-install-check b,body.sf-auth-page .sf-install-check small{display:block;}
body.sf-auth-page .sf-install-check b{font-size:11px;color:var(--sf-text);}
body.sf-auth-page .sf-install-check small{margin-top:2px;font-size:9px;color:var(--sf-muted);}
body.sf-auth-page .sf-install-section{padding:14px 15px 1px;margin-bottom:13px;border:1px solid var(--sf-border);border-radius:12px;background:var(--sf-card-alt);}
body.sf-auth-page .sf-install-section .sf-check{margin:0 0 14px;font-weight:800;color:var(--sf-text);}
@media(max-width:680px){body.sf-auth-page .sf-stepper.sf-stepper-six span{display:none;}body.sf-auth-page .sf-stepper.sf-stepper-six{gap:5px;}}
