html,body{min-height:100%;}
body.is-phone{background:#eef1f4;overflow-x:hidden}

.ruv-login-page{position:relative;min-height:100dvh;display:flex;flex-direction:column;overflow:hidden;background-color:#eef1f4;background-image:linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(247,249,251,.68) 58%,rgba(241,244,247,.78) 100%),url('../images/auth_wave_background.png');background-size:cover;background-position:center;background-repeat:no-repeat}
.ruv-login-backdrop{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 82% 8%,rgba(255,255,255,.34) 0 9rem,transparent 9.1rem),radial-gradient(circle at 8% 88%,rgba(0,0,0,.05) 0 15rem,transparent 15.1rem),linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.22));opacity:.95}
.ruv-mobile-header,.ruv-login-main,.ruv-login-footer{position:relative;z-index:1}
.ruv-mobile-header{padding-top:max(1rem,env(safe-area-inset-top))!important}
.ruv-header-icon{font-size:1.55rem;color:var(--ruv-wine)}

.ruv-login-main{display:flex;align-items:center;flex:1;padding-top:1.2rem}
.ruv-login-card{width:100%;max-width:30rem;background:rgba(255,255,255,.97);border:1px solid rgba(255,255,255,.92);border-radius:1.55rem;box-shadow:0 1.1rem 2.6rem rgba(34,38,53,.17);overflow:hidden;position:relative}
.ruv-login-card-accent{height:.34rem;background:linear-gradient(90deg,var(--ruv-wine-dark),var(--ruv-wine),#a43452)}
.ruv-login-badge{display:inline-flex;align-items:center;padding:.42rem .78rem;border-radius:999px;background:var(--ruv-wine-soft);color:var(--ruv-wine);font-size:.78rem;font-weight:800;letter-spacing:.025em}
.ruv-login-title{font-size:clamp(1.85rem,8vw,2.35rem);line-height:1.04;font-weight:850;letter-spacing:-.035em;color:#222b36}
.ruv-login-subtitle{font-size:.98rem;color:var(--ruv-muted)}
.ruv-form-label{font-weight:760;font-size:.92rem;margin-bottom:.45rem;color:#323c48}
.ruv-input-group{border-radius:1rem;box-shadow:0 .15rem .4rem rgba(18,32,48,.035)}
.ruv-input-group .input-group-text{width:3.2rem;justify-content:center;background:#f7f8fa;border-color:#d7dde4;color:var(--ruv-wine);border-radius:1rem 0 0 1rem}
.ruv-input-group .form-control{min-height:3.55rem;border-color:#d7dde4;font-size:1rem}
.ruv-input-group .form-control:focus{border-color:#a94d66;box-shadow:0 0 0 .2rem rgba(122,23,48,.12)}
.ruv-input-group:focus-within .input-group-text{border-color:#a94d66;background:#fbf5f7}
.ruv-password-toggle{border:1px solid #d7dde4;border-left:0;background:#f7f8fa;color:#5e6875;border-radius:0 1rem 1rem 0;min-width:3.25rem}
.ruv-password-toggle:active,.ruv-password-toggle:hover{background:#eef0f3;color:var(--ruv-wine)}
.ruv-login-btn{min-height:3.75rem;border-radius:1rem;border:0;background:linear-gradient(135deg,var(--ruv-wine) 0%,#9b2747 100%);color:#fff;font-weight:800;font-size:1.06rem;box-shadow:0 .65rem 1.25rem rgba(122,23,48,.25)}
.ruv-login-btn:hover,.ruv-login-btn:focus{color:#fff;background:linear-gradient(135deg,var(--ruv-wine-dark) 0%,var(--ruv-wine) 100%)}
.ruv-login-btn:disabled{opacity:.78}
.ruv-login-help{background:#faf7f8;border-top:1px solid #eee3e6;color:#616b77;font-size:.84rem;text-align:center}
.ruv-login-help i{color:var(--ruv-wine)}
.ruv-login-footer{padding-bottom:max(1rem,env(safe-area-inset-bottom))!important}
.ruv-footer-logo{display:block;max-width:240px;max-height:48px;width:auto;height:auto;margin:0 auto;object-fit:contain;filter:drop-shadow(0 .1rem .12rem rgba(0,0,0,.08))}
.ruv-footer-text{font-size:.72rem;color:#7d8792;font-weight:650;letter-spacing:.02em}

.alert{border-radius:.9rem;font-size:.88rem}
::placeholder{color:#a1a9b2!important;font-style:normal}

.ruv-desktop-blocked{background-color:#eef1f4;background-image:linear-gradient(180deg,rgba(255,255,255,.58) 0%,rgba(244,247,249,.76) 100%),url('../images/auth_wave_background.png');background-size:cover;background-position:center;background-repeat:no-repeat}
.ruv-device-card{width:min(100%,44rem);background:rgba(255,255,255,.96);border:1px solid #e3e6eb;border-radius:1.6rem;padding:2.4rem;box-shadow:0 1rem 2.8rem rgba(29,36,50,.14)}
.ruv-device-logo{width:92px;height:92px;object-fit:contain}
.ruv-device-icon{width:4.2rem;height:4.2rem;border-radius:50%;display:grid;place-items:center;background:var(--ruv-wine-soft);color:var(--ruv-wine);font-size:2rem}
.ruv-device-card h1{font-size:2rem;font-weight:850;color:#232c36}
.ruv-device-card p{font-size:1.08rem;color:var(--ruv-muted);max-width:34rem;margin:1rem auto}
.ruv-device-notice{display:inline-block;margin-top:.5rem;padding:.8rem 1rem;background:#fff4e6;color:#805200;border-radius:.9rem;font-weight:700}

@media (max-height:700px){
  .ruv-login-main{padding-top:.7rem}
  .ruv-login-card .pt-4{padding-top:1.1rem!important}
  .ruv-login-card .pb-4{padding-bottom:1rem!important}
  .ruv-login-title{font-size:1.75rem}
  .ruv-header-logo{width:54px;height:54px}
  .ruv-footer-logo{max-height:38px}
}

.ruv-device-qr-wrap{max-width:23rem;margin-left:auto;margin-right:auto;padding-top:.15rem}
.ruv-device-qr-label{display:inline-flex;align-items:center;justify-content:center;margin-bottom:.8rem;color:var(--ruv-wine);font-weight:800;font-size:1rem}
.ruv-device-qr-box{width:174px;height:174px;display:flex;align-items:center;justify-content:center;padding:.55rem;background:#fff;border:1px solid #e1e5e9;border-radius:1rem;box-shadow:0 .45rem 1.25rem rgba(30,38,52,.12)}
.ruv-device-qr{display:block;width:100%;height:100%;object-fit:contain}
.ruv-device-qr-help{margin-top:.85rem!important;color:#5d6874!important;font-size:.95rem!important}
.ruv-device-url{font-size:.83rem;font-weight:750;color:#8a334a;letter-spacing:.01em}

@media (max-height:760px) and (min-width:768px){
  .ruv-device-card{padding:1.6rem 2.1rem}
  .ruv-device-logo{width:72px;height:72px;margin-bottom:.65rem!important}
  .ruv-device-icon{width:3.4rem;height:3.4rem;font-size:1.6rem;margin-bottom:.65rem!important}
  .ruv-device-card h1{font-size:1.65rem}
  .ruv-device-card p{margin:.55rem auto;font-size:1rem}
  .ruv-device-notice{padding:.65rem .9rem}
  .ruv-device-qr-wrap{margin-top:1rem!important}
  .ruv-device-qr-box{width:145px;height:145px}
}

/* Política de uso de tecnologías - autenticación */
.ruv-policy-check{font-size:.88rem;line-height:1.35;color:#4f5965;text-align:left}
.ruv-policy-check .form-check-input{margin-top:.18rem}
.ruv-policy-check a{color:#c40000;font-weight:800;text-decoration:underline;text-underline-offset:2px}
.ruv-policy-check a:hover,.ruv-policy-check a:focus{color:#8f0000}
