/*
  PestOS — Login V13 (namespaced)
  Basado en el diseño "pestos-login-final-v13". Este archivo solo se
  carga en servicios/login.html, por lo que no colisiona con app.css
  ni con el resto del sistema de diseño de PestOS.
*/
.pos-login{box-sizing:border-box}
.pos-login *{box-sizing:border-box}
.pos-login,.pos-login button,.pos-login input{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
html.pos-login-html,body.pos-login-body{margin:0;min-height:100%;background:#07100d;color:#ecf3ef;overflow:hidden;overscroll-behavior:none}
html.pos-login-html:has(body.pos-login-has-errors),body.pos-login-has-errors{overflow-y:auto;overscroll-behavior-y:auto}
.pos-login button,.pos-login input{font:inherit}
.pos-login .layout{min-height:100svh;display:grid;grid-template-columns:1.16fr .84fr;padding:12px;gap:0;background:#050b08}
.pos-login .experience{position:relative;min-height:calc(100svh - 24px);overflow:hidden;border-radius:24px 0 0 24px;padding:34px 42px;display:flex;flex-direction:column}
.pos-login .photo{position:absolute;inset:-4%;background:var(--pos-img-photo) 44% center/cover no-repeat;animation:pos-cinema 18s ease-in-out infinite alternate}
.pos-login .veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,12,8,.84),rgba(3,12,8,.4) 56%,rgba(3,12,8,.7)),linear-gradient(0deg,rgba(3,12,8,.86),transparent 58%)}
.pos-login .experience header,.pos-login .story,.pos-login .experience footer{position:relative;z-index:5}
.pos-login .experience header,.pos-login .mobile-top{display:flex;justify-content:space-between;align-items:center}
.pos-login .brand{display:flex;align-items:center;gap:11px;color:white;text-decoration:none}
.pos-login .brand>i{width:39px;height:39px;border:1px solid rgba(104,221,160,.32);background:rgba(15,53,35,.68);border-radius:10px;display:grid;place-items:center}
.pos-login .brand svg{width:24px;fill:none;stroke:#70e1a7;stroke-width:3}
.pos-login .brand .wordmark{display:block;font-size:20px;line-height:1;font-weight:800;letter-spacing:-.3px;text-shadow:0 2px 16px rgba(0,0,0,.28)}
.pos-login .brand .wordmark .pest{color:#f5faf7}
.pos-login .brand .wordmark .os{color:#68df91}
.pos-login .brand .wordmark small{display:block;margin-top:6px;color:#a2b3aa;font-size:6.5px;font-weight:800;line-height:1;letter-spacing:1.6px}
.pos-login .online{font-size:8px;font-weight:700;letter-spacing:1.1px;padding:9px 11px;border:1px solid rgba(105,219,159,.25);border-radius:99px;background:rgba(6,25,16,.62);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#a4e9c6}
.pos-login .online i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#62df9d;margin-right:7px;box-shadow:0 0 0 4px rgba(98,223,157,.1)}
.pos-login .story{margin:auto 0;max-width:590px}
.pos-login .step{position:absolute;left:0;top:50%;transform:translateY(-46%);opacity:0;filter:blur(7px);transition:opacity .7s,transform .8s,filter .7s;pointer-events:none}
.pos-login .step.active{position:relative;top:auto;transform:none;opacity:1;filter:none;pointer-events:auto}
.pos-login .index{font-size:9px;color:#75dfa8;letter-spacing:2.2px;font-weight:800}
.pos-login .step h2{font-size:clamp(48px,5.4vw,76px);line-height:.98;letter-spacing:-4.3px;margin:21px 0 25px}
.pos-login .step p{max-width:470px;color:#b0c0b8;font-size:13px;line-height:1.75}
.pos-login .story nav{margin-top:35px;display:flex;gap:8px}
.pos-login .story nav button{width:30px;height:2px;border:0;padding:0;background:rgba(255,255,255,.2);cursor:pointer;transition:.4s}
.pos-login .story nav button.active{width:58px;background:#67dfa2}
.pos-login .experience footer{display:flex;justify-content:space-between;font-size:7px;color:#71857b;letter-spacing:1.25px}
.pos-login .report{position:absolute;z-index:4;right:5%;bottom:11%;width:280px;background:rgba(248,251,249,.96);color:#102219;border-radius:13px;padding:16px;box-shadow:0 30px 80px rgba(0,0,0,.38);transform:perspective(900px) rotateY(-7deg) translateY(20px);opacity:0;transition:opacity .8s,transform 1s}
.pos-login .experience.report-mode .report{opacity:1;transform:perspective(900px) rotateY(-3deg) translateY(0)}
.pos-login .report-head{display:flex;align-items:center;gap:9px;padding-bottom:12px;border-bottom:1px solid #dfe7e2}
.pos-login .report-logo{width:27px;height:27px;border-radius:7px;background:#153a28;color:#6de1a4;display:grid;place-items:center;font-weight:800}
.pos-login .report-head b{font-size:7px;letter-spacing:.7px;display:block}
.pos-login .report-head small{font-size:6px;color:#819087}
.pos-login .report-head em{margin-left:auto;color:#248356;background:#def4e8;border-radius:20px;padding:5px 6px;font-size:5px;font-style:normal;font-weight:800}
.pos-login .report-client{padding:12px 0}
.pos-login .report-client small,.pos-login .report-grid small{font-size:5px;color:#849088;letter-spacing:.8px;display:block}
.pos-login .report-client b{font-size:9px;display:block;margin:3px 0}
.pos-login .report-client span{font-size:6px;color:#7d8b83}
.pos-login .report-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pos-login .report-grid>div{background:#edf2ef;border-radius:6px;padding:8px}
.pos-login .line{display:block;height:3px;border-radius:4px;background:#ccd9d2;margin-top:6px;transform-origin:left;animation:pos-lines 5s infinite}
.pos-login .l1{width:92%}
.pos-login .l2{width:68%;animation-delay:.12s}
.pos-login .l3{width:86%;animation-delay:.24s}
.pos-login .l4{width:55%;animation-delay:.36s}
.pos-login .report-evidence{display:flex;gap:5px;margin-top:9px}
.pos-login .report-evidence>span{width:35px;height:28px;border-radius:5px;background:linear-gradient(145deg,#214934,#7aa089)}
.pos-login .report-evidence>span:nth-child(2){background:linear-gradient(145deg,#23392e,#4f745e)}
.pos-login .report-evidence>span:nth-child(3){background:linear-gradient(145deg,#365b46,#a5b9ad)}
.pos-login .report-evidence b{margin-left:auto;font-size:6px;align-self:center;color:#267b51}
.pos-login .report-evidence b i{font-style:normal;background:#d9f1e4;border-radius:50%;padding:3px}
.pos-login .signature{margin-top:11px;border-top:1px solid #dfe7e2;padding-top:8px}
.pos-login .signature i{display:block;width:70px;border-top:1px solid #314b3d;transform:rotate(-3deg)}
.pos-login .signature span{font-size:5px;color:#8a968f}
.pos-login .field-card{position:absolute;z-index:4;right:5%;bottom:12%;width:235px;padding:15px;background:rgba(5,21,13,.74);border:1px solid rgba(103,222,161,.22);border-radius:12px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:.7s}
.pos-login .experience.report-mode .field-card{opacity:0;transform:translateY(20px)}
.pos-login .field-card span{font-size:6px;letter-spacing:1.2px;color:#75a58d}
.pos-login .field-card b{display:block;font-size:10px;margin:8px 0 5px}
.pos-login .field-card b i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#64dfa0;margin-right:7px}
.pos-login .field-card small{font-size:7px;color:#6e8579}
.pos-login .access{position:relative;overflow:hidden;min-height:calc(100svh - 24px);background:#07100d;color:#f3f8f5;border-radius:0 24px 24px 0;display:flex;flex-direction:column;padding:34px 11%}
.pos-login .access-photo{position:absolute;inset:-3%;background:var(--pos-img-access) 47% center/cover no-repeat;filter:saturate(.92) contrast(1.07) brightness(.72);animation:pos-cinemaAccess 20s ease-in-out infinite alternate;transform:scale(1.025)}
.pos-login .access-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,12,8,.28),rgba(3,12,8,.76)),linear-gradient(90deg,rgba(3,12,8,.68),rgba(3,12,8,.22));-webkit-backdrop-filter:saturate(.9);backdrop-filter:saturate(.9)}
.pos-login .access:before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:1;background:radial-gradient(circle at 78% 18%,rgba(78,226,151,.16),transparent 31%),linear-gradient(0deg,rgba(3,12,8,.28),transparent 45%)}
.pos-login .mobile-top{display:none;z-index:3}
.pos-login .mobile-top .online{color:#a9eccb}
.pos-login .mobile-top .brand small{color:#8ca398}
.pos-login .form-wrap{position:relative;z-index:3;width:100%;max-width:420px;margin:auto;padding:29px 28px 25px;border:1px solid rgba(186,245,214,.16);border-radius:22px;background:linear-gradient(145deg,rgba(7,25,16,.7),rgba(5,17,11,.49));box-shadow:0 30px 80px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.06);backdrop-filter:blur(20px) saturate(1.18);-webkit-backdrop-filter:blur(20px) saturate(1.18)}
.pos-login .overline{color:#73e0a8;font-size:9px;font-weight:800;letter-spacing:2px}
.pos-login .form-wrap h3{color:#f6fbf8;text-shadow:0 2px 22px rgba(0,0,0,.25);font-size:42px;letter-spacing:-2.2px;margin:12px 0 7px}
.pos-login .form-wrap>p{color:#afc1b7;font-size:13px;margin:0 0 30px}
.pos-login .form-wrap label{display:block;color:#e6f0eb;font-size:11px;font-weight:700;margin-bottom:19px}
.pos-login .form-wrap label>span{display:flex;justify-content:space-between;align-items:center;gap:16px}
.pos-login .form-wrap a{font-size:9px;color:#7be1ac}
.pos-login .form-wrap label>span>a{display:inline-flex;align-items:center;justify-content:flex-end;min-height:32px;padding:7px 0 7px 10px;color:#79e8ad;font-size:10.5px;font-weight:750;line-height:1.2;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;white-space:nowrap;transition:.2s}
.pos-login .form-wrap label>span>a:hover,.pos-login .form-wrap label>span>a:focus-visible{color:#a5f4c8;text-shadow:0 0 16px rgba(112,225,167,.34)}
.pos-login .form-wrap label>span>a:focus-visible{outline:2px solid rgba(121,232,173,.62);outline-offset:3px;border-radius:5px}
.pos-login .control{height:58px;margin-top:8px;background:rgba(235,251,242,.09);border:1px solid rgba(211,245,226,.18);box-shadow:inset 0 1px rgba(255,255,255,.05),0 12px 30px rgba(0,0,0,.12);border-radius:12px;display:flex;align-items:center;transition:.25s}
.pos-login .control:focus-within{background:rgba(235,251,242,.14);border-color:#6cdaa1;box-shadow:0 0 0 4px rgba(87,218,153,.12),0 15px 35px rgba(0,0,0,.2);transform:translateY(-1px)}
.pos-login .control>svg{width:19px;margin:0 15px;fill:none;stroke:#9ab8aa;stroke-width:1.6}
.pos-login .control input{min-width:0;flex:1;height:100%;border:0;outline:0;background:none;color:#f4faf7;padding-right:10px;font-size:13px}
.pos-login .control input::placeholder{color:#9db0a6}
.pos-login .control button{border:0;background:none;padding:12px;cursor:pointer}
.pos-login .control button svg{width:19px;fill:none;stroke:#9ab8aa;stroke-width:1.6}
.pos-login .remember{display:flex;align-items:center;gap:8px;font-weight:400!important;color:#b1c2b9;font-size:10px!important;margin-top:-2px}
.pos-login .remember input{accent-color:#2fae6d}
.pos-login .enter{width:100%;height:58px;border:0;border-radius:12px;background:linear-gradient(110deg,#48d28c,#77e5ae);color:#072015;display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-weight:700;font-size:12px;cursor:pointer;box-shadow:0 16px 38px rgba(39,195,119,.25);position:relative;overflow:hidden}
.pos-login .enter:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 25%,rgba(102,224,162,.2),transparent 72%);transform:translateX(-120%);animation:pos-sheen 5s infinite}
.pos-login .enter span,.pos-login .enter svg{position:relative}
.pos-login .enter svg{width:18px;fill:none;stroke:#092919;stroke-width:2}
.pos-login .enter[disabled]{opacity:.75;cursor:progress}
.pos-login .message{min-height:18px;text-align:center;color:#8ce6b7;font-size:9px;padding-top:8px}
.pos-login .alerts{margin-bottom:18px;display:flex;flex-direction:column;gap:8px}
.pos-login .alert{border-radius:12px;padding:11px 13px;font-size:11.5px;line-height:1.5;display:flex;gap:8px;align-items:flex-start;border:1px solid transparent}
.pos-login .alert svg{width:16px;height:16px;flex-shrink:0;margin-top:1px}
.pos-login .alert-error{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.35);color:#fecaca}
.pos-login .alert-warning{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.35);color:#fde68a}
.pos-login .alert-success{background:rgba(74,222,128,.12);border-color:rgba(74,222,128,.35);color:#bbf7d0}
.pos-login .trust{border-top:1px solid rgba(219,243,230,.12);margin-top:25px;padding-top:18px;display:flex;justify-content:center;align-items:center;gap:11px;color:#91a79b;font-size:7px;letter-spacing:.8px}
.pos-login .trust i{width:2px;height:2px;background:#92a098;border-radius:50%}
.pos-login .access>footer{position:relative;z-index:3;display:flex;justify-content:center;gap:18px;color:#81968b;font-size:7px;letter-spacing:.9px}
.pos-login .access>footer a{color:inherit;text-decoration:none}
.pos-login .access>footer a:hover{text-decoration:underline}
.pos-login .prelude{position:fixed;z-index:100;inset:0;background:#050c08;overflow:hidden;animation:pos-preludeOut .8s 2.65s forwards}
.pos-login .prelude-image{position:absolute;inset:-6%;background:var(--pos-img-prelude-desktop) 48% center/cover;filter:brightness(.45);animation:pos-preludeZoom 3.3s ease-out}
.pos-login .prelude-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,8,5,.82),rgba(2,8,5,.15)),linear-gradient(0deg,#050c08,transparent 50%)}
.pos-login .prelude-copy{position:absolute;left:8%;top:50%;transform:translateY(-50%);overflow:hidden}
.pos-login .prelude-copy span{font-size:9px;letter-spacing:4px;color:#70dda5}
.pos-login .prelude-copy h1{font-size:clamp(48px,8vw,110px);line-height:.92;letter-spacing:-6px;margin:18px 0;transform:translateY(120%);animation:pos-copyUp .9s .35s cubic-bezier(.16,1,.3,1) forwards}
.pos-login .prelude-copy p{font-size:10px;letter-spacing:3px;color:#98ada2;opacity:0;animation:pos-fade .6s 1.1s forwards}
.pos-login .prelude-progress{position:absolute;left:8%;bottom:8%;width:84%;height:1px;background:rgba(255,255,255,.16)}
.pos-login .prelude-progress i{display:block;height:1px;background:#70dda5;animation:pos-progress 2.5s ease forwards}
@keyframes pos-cinema{to{transform:scale(1.045) translate3d(-.8%,.4%,0)}}
@keyframes pos-cinemaAccess{to{transform:scale(1.06) translate3d(-.7%,.3%,0)}}
@keyframes pos-lines{0%,20%{transform:scaleX(0)}45%,100%{transform:scaleX(1)}}
@keyframes pos-sheen{0%,50%{transform:translateX(-120%)}75%,100%{transform:translateX(120%)}}
@keyframes pos-preludeZoom{from{transform:scale(1.13)}to{transform:scale(1)}}
@keyframes pos-copyUp{to{transform:none}}
@keyframes pos-fade{to{opacity:1}}
@keyframes pos-progress{from{width:0}to{width:100%}}
@keyframes pos-preludeOut{to{opacity:0;visibility:hidden;pointer-events:none}}

@media(min-width:881px){
  .pos-login .layout{grid-template-columns:minmax(0,1.22fr) minmax(430px,.78fr)}
  .pos-login .experience{padding:34px 46px;width:100%}
  .pos-login .veil{background:linear-gradient(90deg,rgba(2,10,7,.88),rgba(2,10,7,.55) 43%,rgba(2,10,7,.22) 68%,rgba(2,10,7,.64)),linear-gradient(0deg,rgba(2,10,7,.9),transparent 58%)}
  .pos-login .access-shade{background:linear-gradient(180deg,rgba(3,12,8,.28),rgba(3,12,8,.76)),linear-gradient(90deg,rgba(3,12,8,.68),rgba(3,12,8,.22))}
  .pos-login .field-card{right:4.5%;bottom:7.5%;width:310px;padding:20px 21px;z-index:8;border-radius:17px;background:linear-gradient(145deg,rgba(5,25,15,.92),rgba(4,15,10,.78));border:1px solid rgba(109,231,168,.42);box-shadow:0 24px 65px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.08)}
  .pos-login .field-card span{font-size:8px}
  .pos-login .field-card b{font-size:14px}
  .pos-login .field-card small{font-size:9px}
  .pos-login .report{right:3.8%;bottom:5%;width:370px;padding:22px;z-index:9;border-radius:18px;box-shadow:0 38px 95px rgba(0,0,0,.62),0 0 0 1px rgba(255,255,255,.28)}
  .pos-login .report-logo{width:36px;height:36px}
  .pos-login .report-head b{font-size:9px}
  .pos-login .report-head small{font-size:8px}
  .pos-login .report-head em{font-size:7px}
  .pos-login .report-client b{font-size:12px}
  .pos-login .report-client span{font-size:8px}
  .pos-login .report-client small,.pos-login .report-grid small{font-size:7px}
  .pos-login .report-evidence>span{width:48px;height:39px}
  .pos-login .report-evidence b{font-size:8px}
  .pos-login .signature span{font-size:7px}
  /* Evita que la tarjeta "report" flotante se sobreponga al titular de texto */
  .pos-login .experience.report-mode .story{max-width:440px}
  .pos-login .experience.report-mode .step.active h2{font-size:clamp(34px,3.6vw,50px);letter-spacing:-2.6px}
}

@media(max-width:880px){
  .pos-login .layout{display:block;padding:0}
  .pos-login .experience{display:none}
  .pos-login .access{min-height:100svh;border-radius:0;padding:max(20px,env(safe-area-inset-top)) 18px max(17px,env(safe-area-inset-bottom));display:flex}
  body.pos-login-has-errors .pos-login .access{overflow-y:auto;min-height:auto}
  body.pos-login-has-errors .pos-login .form-wrap{margin:auto 0 4vh}
  .pos-login .access-photo{inset:0;background-position:24% center;animation-duration:16s;filter:saturate(.88) contrast(1.06) brightness(.78);transform:none}
  .pos-login .access-shade{background:linear-gradient(180deg,rgba(3,11,7,.20) 0%,rgba(3,11,7,.48) 30%,rgba(3,11,7,.86) 100%),linear-gradient(90deg,rgba(3,11,7,.30),rgba(3,11,7,.12))}
  .pos-login .mobile-top{display:flex;position:relative;padding:0 2px}
  .pos-login .mobile-top .brand>i{background:rgba(7,30,19,.66);box-shadow:0 8px 25px rgba(0,0,0,.25)}
  .pos-login .form-wrap{margin:auto 0 3.5vh;padding:23px 20px 20px;max-width:none;border-radius:20px;background:linear-gradient(145deg,rgba(8,28,18,.69),rgba(4,15,10,.57));backdrop-filter:blur(17px) saturate(1.2);-webkit-backdrop-filter:blur(17px) saturate(1.2)}
  .pos-login .form-wrap h3{font-size:34px;letter-spacing:0px;margin-top:9px}
  .pos-login .form-wrap>p{margin-bottom:22px}
  .pos-login .control{height:56px}
  .pos-login .form-wrap label{margin-bottom:16px}
  .pos-login .enter{height:56px}
  .pos-login .trust{margin-top:20px}
  .pos-login .access>footer{margin-top:0}
  .pos-login .prelude-image{inset:-2%;background-image:var(--pos-img-prelude-mobile);background-position:center;background-size:cover}
  .pos-login .prelude-copy{left:8%;right:8%;top:auto;bottom:22%;transform:none}
  .pos-login .prelude-copy h1{font-size:clamp(44px,12vw,61px);line-height:1.02;letter-spacing:-1.6px}
  .pos-login .prelude-progress{bottom:7%}
  .pos-login .mobile-top .online{display:none}
}

@media(max-width:390px){
  .pos-login .form-wrap{padding:20px 17px 17px}
  .pos-login .form-wrap h3{font-size:31px;letter-spacing:0px}
  .pos-login .mobile-top .online{font-size:7px;padding:8px}
  .pos-login .brand b{font-size:15px}
  .pos-login .control{height:53px}
  .pos-login .enter{height:53px}
  .pos-login .trust{font-size:6px}
  .pos-login .form-wrap label:nth-of-type(2){display:flex;flex-direction:column}
  .pos-login .form-wrap label:nth-of-type(2)>span{display:contents}
  .pos-login .form-wrap label:nth-of-type(2)>.control{order:2}
  .pos-login .form-wrap label:nth-of-type(2)>span>a{order:3;align-self:flex-end;margin-top:4px;padding:7px 0 3px 12px;font-size:10px}
}

@media(prefers-reduced-motion:reduce){
  .pos-login *{animation-duration:.01ms!important;animation-iteration-count:1!important}
  .pos-login .prelude{display:none}
}
