@font-face{
  font-family:'Salesforce Sans';
  src:url('/fonts/SalesforceSans-Light.ttf') format('truetype');
  font-weight:300;
  font-style:normal;
  font-display:swap;
}

@font-face{
  font-family:'Salesforce Sans';
  src:url('/fonts/SalesforceSans-Regular.ttf') format('truetype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

@font-face{
  font-family:'Salesforce Sans';
  src:url('/fonts/SalesforceSans-Italic.ttf') format('truetype');
  font-weight:400;
  font-style:italic;
  font-display:swap;
}

@font-face{
  font-family:'Salesforce Sans';
  src:url('/fonts/SalesforceSans-Bold.ttf') format('truetype');
  font-weight:700 900;
  font-style:normal;
  font-display:swap;
}

@font-face{
  font-family:'Salesforce Sans';
  src:url('/fonts/SalesforceSans-BoldItalic.ttf') format('truetype');
  font-weight:700 900;
  font-style:italic;
  font-display:swap;
}
:root{
  --brand:#fa8a0d;
  --brand-dark:#d96f00;
  --navy:#001e37;
  --bg:#ffffff;
  --text:#001e37;
  --muted:#5a6f86;
  --line:#d7e0ea;
  --error:#ef1b2d;
}

*{
  box-sizing:border-box;
}

html,
body{
  height:100%;
  width:100%;
  margin:0;
  padding:0;
  overflow:hidden;
  touch-action:manipulation;
  overscroll-behavior:none;
  font-family:"Salesforce Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-weight:700;
  color:var(--text);
  background:#fff;
}

body{
  display:flex;
  align-items:center;
  justify-content:center;
}

.wrap{
  width:100%;
  max-width:390px;
  padding:24px;
}

.card{
  position:relative;
  width:100%;
  background:transparent;
  border:0;
  border-radius:0;
  padding:0;
  box-shadow:none;
  will-change:transform;
}

@keyframes shake{
  0%,100% { transform:translateX(0); }
  15% { transform:translateX(-8px); }
  30% { transform:translateX(8px); }
  45% { transform:translateX(-6px); }
  60% { transform:translateX(6px); }
  75% { transform:translateX(-4px); }
  90% { transform:translateX(4px); }
}

.card.shake{
  animation:shake .45s cubic-bezier(.36,.07,.19,.97) 1;
}

.header{
  margin-bottom:25px;
}

.header h1{
  margin:0 0 8px;
  font-size:35px;
  line-height:1.05;
  font-family:"Montserrat",sans-serif;
  font-weight:500;
  letter-spacing:-.055em;
  color:var(--navy);
  position:relative;
  display:inline-block;
  overflow:visible;
  padding-right:8px;
}

.header h1::after{
  content:"Cronos OS";
  position:absolute;
  inset:0;
  color:transparent;
  background:linear-gradient(
    90deg,
    transparent 0%,
    transparent 35%,
    rgba(250,138,13,.16) 43%,
    #fa8a0d 50%,
    rgba(250,138,13,.16) 57%,
    transparent 65%,
    transparent 100%
  );
  background-size:420% 100%;
  background-position:320% 0;
  -webkit-background-clip:text;
  background-clip:text;
  animation:cronosSweep 10s linear infinite;
  pointer-events:none;
}

@keyframes cronosSweep{
  from{
    background-position:320% 0;
  }
  to{
    background-position:-320% 0;
  }
}

.header small{
  display:block;
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
  font-weight:350;
  padding-left: 3px;
}

form{
  width:100%;
}

label{
  display:none;
}

input{
  width:100%;
  height:48px;
  box-sizing:border-box;
  padding:10px 0 9px;
  border:0;
  border-bottom:2px solid var(--line);
  background:transparent;
  border-radius:0;
  font-size:18px;
  letter-spacing:0.3em;
  font-weight:400;
  color:var(--navy);
  outline:none;
  box-shadow:none;
  font-family:"Fira Code", monospace;
  transition:border-color .18s ease, color .18s ease;
  text-align:center;
}

input::placeholder{
  color:#8fa2b5;
  opacity:1;
}

input:focus{
  border-bottom-color:var(--brand);
  background:transparent;
  box-shadow:none;
}

input:disabled{
  opacity:.55;
}

#usuario{
  text-transform:uppercase;
  margin-bottom:20px;
}

#password{
  font-family:"Fira Code", monospace;
  letter-spacing:0.18em;
  text-align:center;
  line-height:48px;
  padding-top:0;
  padding-bottom:0;
}

@supports (-webkit-text-security: '*') {
  #password{
    -webkit-text-security:'*';
    text-security:'*';
  }
}

#password.reveal{
  -webkit-text-security:none !important;
  text-security:none !important;
  letter-spacing:0.18em;
}

.pwd-wrap{
  position:relative;
}

.pwd-wrap input{
  padding-right:46px;
  padding-left:46px;
}

.pwd-wrap button{
  position:absolute;
  inset:0 0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:48px;
  background:transparent !important;
  border:0;
  margin:0;
  padding:0;
  cursor:pointer;
  color:var(--navy);
  line-height:0;
  -webkit-appearance:none;
  appearance:none;
  -webkit-tap-highlight-color:transparent;
  outline:none;
  box-shadow:none;
}

.pwd-wrap button:hover,
.pwd-wrap button:focus,
.pwd-wrap button:active{
  color:var(--brand);
  background:transparent !important;
  outline:none;
  box-shadow:none;
}

.pwd-wrap button:disabled{
  opacity:.35;
  cursor:not-allowed;
  color:#8aa2b8;
}

.pwd-wrap svg{
  width:20px;
  height:20px;
  display:none;
  fill:currentColor;
}

#eyeOpen{
  display:none;
}

#eyeClosed{
  display:inline;
}

button[type="submit"]{
  width:100%;
  margin-top:30px;
  padding:10px 0;
  border:0;
  background:transparent;
  color:var(--brand);
  font-weight:500;
  font-size:16px;
  text-align:center;
  cursor:pointer;
  font-family:"Salesforce Sans",system-ui,sans-serif;
  transition:opacity .15s ease,color .15s ease;
}

button[type="submit"]:hover{
  background:transparent;
  color:var(--brand-dark);
  transform:none;
}

button[type="submit"]:disabled{
  opacity:.28;
  cursor:not-allowed;
  box-shadow:none;
  transform:none;
  color:var(--navy);
}

/* TOASTS SIN FONDO */
.toast-global{
  position:fixed;
  top:72px;
  left:50%;
  transform:translateX(-50%) translateY(-8px);
  min-width:0;
  max-width:min(92vw, 580px);
  border-radius:0;
  padding:0;
  font-size:14px;
  line-height:1.45;
  font-weight:600;
  box-shadow:none;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index:999;
  overflow:visible;
  text-align:center;
  word-break:break-word;
  border:0;
  background:transparent;
}

.toast-global.show{
  opacity:1;
  visibility:visible;
  transform:translateX(-50%) translateY(0);
}

.toast-global.error{
  background:transparent;
  color:#cb3a33;
  border-color:transparent;
}

.toast-global.info{
  background:transparent;
  color:var(--navy);
  border-color:transparent;
}

.toast-global.warning{
  background:transparent;
  color:#fa8a0d;
  border-color:transparent;
}

.toast-global.success{
  background:transparent;
  color:#2f8f55;
  border-color:transparent;
}

.toast-global .toast-content{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
}

.toast-global .toast-icon{
  flex:0 0 auto;
  width:18px;
  height:18px;
  margin-top:0;
  color:currentColor;
}

.toast-global .toast-message{
  flex:0 1 auto;
  min-width:0;
  color:currentColor;
}

.login-overlay{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease, visibility .2s ease;
  z-index:20;
}

.login-overlay.show{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.login-overlay-box{
  width:calc(100% - 40px);
  max-width:300px;
  border:1px solid rgba(216,225,234,.85);
  border-radius:18px;
  background:#fff;
  box-shadow:0 18px 42px rgba(0,30,55,.14);
  padding:18px 16px;
  text-align:left;
}

.login-overlay-head{
  display:flex;
  align-items:flex-start;
  gap:12px;
}

.login-overlay-spinner{
  width:20px;
  height:20px;
  object-fit:contain;
  flex:0 0 auto;
  margin-top:1px;
}

.login-overlay-title{
  margin:0 0 4px;
  font-size:14px;
  font-weight:900;
  color:var(--navy);
  line-height:1.3;
}

.login-overlay-text{
  margin:0;
  font-size:13px;
  line-height:1.45;
  color:#4b5b78;
  font-weight:700;
}

.form-busy{
  opacity:.72;
}

@media (max-width:480px){
  .wrap{
    max-width:100%;
    padding:24px;
  }

  .header{
    margin-bottom:30px;
  }

  .header h1{
    font-size:32px;
  }

  .header small{
    font-size:13px;
  }

  input{
    font-size:15px;
    height:46px;
  }

  .pwd-wrap input{
    padding-right:42px;
    padding-left:42px;
  }

  .pwd-wrap button{
    width:30px;
    height:46px;
  }

  .pwd-wrap svg{
    width:18px;
    height:18px;
  }

  button[type="submit"]{
    font-size:15px;
    margin-top:28px;
  }

  .toast-global{
    top:12px;
    min-width:0;
    max-width:94vw;
    padding:0;
    font-size:12px;
    line-height:1.35;
    white-space:nowrap;
    overflow:visible;
    text-overflow:ellipsis;
    background:transparent;
    box-shadow:none;
    border:0;
  }

  .toast-global .toast-content{
    gap:7px;
    align-items:center;
    justify-content:center;
    flex-wrap:nowrap;
  }

  .toast-global .toast-icon{
    width:15px;
    height:15px;
    flex:0 0 15px;
    margin-top:0;
  }

  .toast-global .toast-message{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    word-break:normal;
  }
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active{
  -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
  box-shadow:0 0 0 1000px #ffffff inset !important;
  -webkit-text-fill-color:#001e37 !important;
  caret-color:#001e37 !important;
  transition:background-color 99999s ease-in-out 0s;
}

input:-moz-autofill{
  box-shadow:0 0 0 1000px #ffffff inset !important;
  -moz-text-fill-color:#001e37 !important;
}