.controlpyme-login{--login-blue:#2563eb;--login-green:#12b76a;--login-ink:#0f1f35;--login-muted:#536b8d;--login-line:#cbd5e1;margin:0;min-height:100vh;background:#f7f9fc;color:var(--login-ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.controlpyme-login *{box-sizing:border-box}.controlpyme-login .login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,44.5fr) minmax(420px,55.5fr);overflow:hidden;background:#fff}.controlpyme-login .identity-panel,.controlpyme-login .access-panel{position:relative;min-width:0;min-height:100vh;display:grid;place-items:center}.controlpyme-login .identity-panel{overflow:hidden;background:#fff;box-shadow:8px 0 30px rgba(15,23,42,.045);z-index:1}.controlpyme-login .identity-content{position:relative;z-index:2;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transform:translateY(-2.5vh)}.controlpyme-login .official-logo{width:100%;min-height:0;display:grid;place-items:center}.controlpyme-login .official-logo img{display:block;width:min(420px,78%);max-width:78%;max-height:420px;height:auto;object-fit:contain;animation:login-logo-in .9s cubic-bezier(.2,.75,.25,1) both}.controlpyme-login .logo-fallback{font-size:clamp(42px,5vw,70px);letter-spacing:-3px}.controlpyme-login .logo-fallback span,.controlpyme-login .brand-tagline span{color:var(--login-green)}.controlpyme-login .brand-tagline{margin:24px 0 0;color:var(--login-ink);font-size:clamp(17px,1.5vw,22px);font-weight:500;line-height:1.35;text-align:center;animation:login-tagline-in .4s ease-out .65s both}.controlpyme-login .brand-tagline strong{font-weight:750}.controlpyme-login .brand-waves{position:absolute;z-index:1;left:-5%;right:-4%;bottom:-2px;height:36%;pointer-events:none;opacity:.36}.controlpyme-login .brand-waves svg{display:block;width:100%;height:100%;fill:none;stroke:url(#none);color:var(--login-blue)}.controlpyme-login .brand-waves path{fill:none;stroke:#6ca7f7;stroke-width:1}.controlpyme-login .brand-waves path:nth-child(n+4){stroke:#70d6b0}.controlpyme-login .brand-waves::after{content:"";position:absolute;inset:55% -20% -40%;background:radial-gradient(ellipse at 20% 70%,rgba(37,99,235,.08),transparent 57%),radial-gradient(ellipse at 62% 90%,rgba(18,183,106,.075),transparent 52%)}
.controlpyme-login .access-panel{padding:40px;background:radial-gradient(circle at 85% 14%,rgba(37,99,235,.035),transparent 28%),radial-gradient(circle at 13% 88%,rgba(18,183,106,.035),transparent 30%),#f8fafc}.controlpyme-login .login-card{width:min(520px,calc(100% - 48px));padding:42px;border:1px solid rgba(226,232,240,.85);border-radius:20px;background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.1)}.controlpyme-login .login-heading{margin:0 0 38px;display:flex;align-items:center;gap:20px}.controlpyme-login .login-heading>div:last-child{min-width:0}.controlpyme-login .access-icon{width:48px;height:48px;min-width:48px;display:grid;place-items:center;border:1px solid #e5eaf1;border-radius:12px;background:#fff;color:var(--login-blue);box-shadow:0 5px 14px rgba(15,23,42,.08)}.controlpyme-login .access-icon svg{display:block;width:25px;height:25px;fill:currentColor}.controlpyme-login .login-heading h1{margin:0;font-size:31px;line-height:1.15;letter-spacing:-.7px}.controlpyme-login .login-heading p{margin:8px 0 0;color:var(--login-muted);font-size:15px}.controlpyme-login .login-card form{display:grid}.controlpyme-login .sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.controlpyme-login .field-shell{position:relative;margin-bottom:20px;color:#8090a7}.controlpyme-login .field-shell>svg{position:absolute;z-index:1;left:17px;top:50%;display:block;width:21px;height:21px;fill:currentColor;transform:translateY(-50%);pointer-events:none}.controlpyme-login .field-shell:first-of-type{color:var(--login-blue)}.controlpyme-login .field-shell.password-field>svg{color:var(--login-green)}.controlpyme-login .field-shell input{display:block;width:100%;height:56px;padding:0 50px 0 52px;border:1px solid var(--login-line);border-radius:11px;background:#fff;color:var(--login-ink);font:inherit;font-size:15px;outline:none;transition:border-color .16s ease,box-shadow .16s ease}.controlpyme-login .field-shell input::placeholder{color:#7a879b;opacity:1}.controlpyme-login .field-shell input:focus{border-color:var(--login-blue);box-shadow:0 2px 0 var(--login-blue),0 0 0 3px rgba(37,99,235,.06)}.controlpyme-login .password-toggle{position:absolute;z-index:2;right:8px;top:8px;width:40px;height:40px;padding:9px;border:0;border-radius:8px;background:transparent;color:#53647b;cursor:pointer}.controlpyme-login .password-toggle:hover,.controlpyme-login .password-toggle:focus-visible{background:#f1f5f9;color:var(--login-blue);outline:2px solid rgba(37,99,235,.16)}.controlpyme-login .password-toggle svg{display:block;width:21px;height:21px;fill:currentColor}.controlpyme-login .login-options{margin:2px 0 26px;display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:13px}.controlpyme-login .remember{display:flex;align-items:center;gap:8px;color:var(--login-ink);cursor:pointer}.controlpyme-login .remember input{width:18px;height:18px;margin:0;accent-color:var(--login-blue)}.controlpyme-login .forgot-link{padding:4px;border:0;background:transparent;color:#075eea;font:inherit;font-weight:500;cursor:pointer}.controlpyme-login .forgot-link:hover{text-decoration:underline}.controlpyme-login .forgot-link:focus-visible{outline:2px solid rgba(37,99,235,.25);outline-offset:3px;border-radius:3px}.controlpyme-login .login-submit{position:relative;width:100%;height:56px;margin:0;padding:0 48px;border:0;border-radius:11px;background:linear-gradient(90deg,#2563eb 0%,#12b76a 100%);color:#fff;font-size:15px;font-weight:750;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:9px;box-shadow:0 9px 18px rgba(37,99,235,.2);transition:transform .12s ease,filter .16s ease,box-shadow .16s ease}.controlpyme-login .login-submit>svg{position:absolute;right:18px;display:block;width:21px;height:21px;fill:currentColor}.controlpyme-login .login-submit:hover{filter:saturate(1.06) brightness(1.02);box-shadow:0 12px 24px rgba(37,99,235,.23)}.controlpyme-login .login-submit:active{transform:translateY(1px)}.controlpyme-login .login-submit:focus-visible{outline:3px solid rgba(37,99,235,.22);outline-offset:3px}.controlpyme-login .login-submit:disabled{cursor:wait;opacity:.84}.controlpyme-login .login-submit:disabled>svg{display:none}.controlpyme-login .login-spinner{width:16px;height:16px;border:2px solid #ffffff70;border-top-color:#fff;border-radius:50%;animation:login-spin .7s linear infinite}
.controlpyme-login .login-error,.controlpyme-login .login-message{position:relative;min-height:42px;margin:-18px 0 17px;padding:10px 34px 10px 38px;border-radius:9px;font-size:12px;line-height:1.45}.controlpyme-login .login-error{display:flex;align-items:center;border:1px solid #fecdd3;background:#fff4f5;color:#a92338}.controlpyme-login .login-error>svg{position:absolute;left:13px;display:block;width:17px;height:17px;fill:currentColor}.controlpyme-login .login-error button,.controlpyme-login .login-message button{position:absolute;right:8px;top:7px;width:27px;height:27px;border:0;background:transparent;color:inherit;font-size:18px;cursor:pointer}.controlpyme-login .login-message.error{border:1px solid #fecdd3;background:#fff4f5;color:#a92338}.controlpyme-login .login-message.warning{border:1px solid #fed7aa;background:#fff7ed;color:#9a3412}.controlpyme-login .login-message.success{border:1px solid #bbf7d0;background:#f0fdf4;color:#166534}.controlpyme-login .security-note{margin-top:30px;padding-top:22px;border-top:1px solid #dfe6ee;text-align:center;color:#425c7c}.controlpyme-login .security-note p{margin:0;display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px}.controlpyme-login .security-note svg{display:block;width:20px;height:20px;fill:currentColor;color:#089b58}.controlpyme-login .security-note small{display:block;margin-top:14px;font-size:11px;color:#7d8ba0}
.controlpyme-login .recovery-modal{width:min(410px,calc(100% - 32px));padding:0;border:0;border-radius:18px;box-shadow:0 25px 70px rgba(15,23,42,.22)}.controlpyme-login .recovery-modal::backdrop{background:rgba(15,23,42,.38);backdrop-filter:blur(2px)}.controlpyme-login .recovery-modal form{position:relative;padding:32px;text-align:center}.controlpyme-login .modal-close{position:absolute;right:13px;top:10px;border:0;background:transparent;font-size:24px;color:#667085;cursor:pointer}.controlpyme-login .modal-icon{width:43px;height:43px;margin:0 auto 15px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,rgba(37,99,235,.12),rgba(18,183,106,.14));color:var(--login-blue);font-weight:800}.controlpyme-login .recovery-modal h2{margin:0;font-size:20px}.controlpyme-login .recovery-modal p{margin:11px 0 22px;color:#667085;font-size:13px;line-height:1.6}.controlpyme-login .modal-action{height:40px;padding:0 24px;border:0;border-radius:9px;background:var(--login-blue);color:#fff;font-weight:700;cursor:pointer}
@keyframes login-logo-in{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(6px)}100%{opacity:1;clip-path:inset(0);transform:none}}@keyframes login-tagline-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes login-spin{to{transform:rotate(360deg)}}
@media(max-width:980px){.controlpyme-login .login-layout{grid-template-columns:minmax(0,1fr) minmax(420px,1.1fr)}.controlpyme-login .access-panel{padding:26px}.controlpyme-login .login-card{width:min(490px,calc(100% - 24px));padding:34px}.controlpyme-login .official-logo img{width:min(340px,76%)}.controlpyme-login .login-heading{margin-bottom:30px}}
@media(max-width:720px){.controlpyme-login .login-layout{display:block;min-height:100vh;overflow-x:hidden;background:#f8fafc}.controlpyme-login .identity-panel{min-height:235px;height:auto;padding:22px 18px}.controlpyme-login .identity-content{transform:none}.controlpyme-login .official-logo img{width:min(270px,72%);max-height:175px}.controlpyme-login .brand-tagline{margin-top:8px;font-size:15px}.controlpyme-login .brand-waves{height:25%;opacity:.22}.controlpyme-login .access-panel{display:block;min-height:0;padding:18px 14px 30px}.controlpyme-login .login-card{width:min(520px,100%);margin:auto;padding:28px 22px;border-radius:17px}.controlpyme-login .login-heading{margin-bottom:26px;justify-content:center}.controlpyme-login .login-heading h1{font-size:25px}.controlpyme-login .login-heading p{font-size:13px}.controlpyme-login .access-icon{width:42px;height:42px;min-width:42px}.controlpyme-login .field-shell input{height:52px}.controlpyme-login .login-submit{height:53px}}
@media(max-width:420px){.controlpyme-login .identity-panel{min-height:205px}.controlpyme-login .official-logo img{width:min(235px,70%)}.controlpyme-login .login-options{align-items:flex-start;flex-direction:column;margin-bottom:22px}.controlpyme-login .login-card{padding-inline:18px}.controlpyme-login .security-note p{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){.controlpyme-login *,.controlpyme-login *::before,.controlpyme-login *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}

/* Ajuste final de identidad conforme a la referencia aprobada. */
.controlpyme-login .identity-content{position:absolute;top:39%;left:0;z-index:2;width:100%;transform:translateY(-50%)}
.controlpyme-login .official-logo img{width:min(430px,80%);max-width:80%;max-height:430px;margin:0 auto}
.controlpyme-login .brand-tagline{margin-top:20px;font-size:clamp(20px,1.45vw,24px);font-weight:600}
.controlpyme-login .brand-waves{inset:auto -3% 0 -3%;height:38%;overflow:hidden;opacity:.62;animation:login-waves-in 1s ease-out both}
.controlpyme-login .brand-waves svg{width:100%;height:100%;fill:none;stroke:none}
.controlpyme-login .brand-waves .wave-ribbons{opacity:.16}
.controlpyme-login .brand-waves .wave-ribbons path{stroke:none}
.controlpyme-login .brand-waves .wave-ribbons path:nth-child(1){fill:url(#waveBlue)}
.controlpyme-login .brand-waves .wave-ribbons path:nth-child(2){fill:url(#waveAqua)}
.controlpyme-login .brand-waves .wave-ribbons path:nth-child(3){fill:url(#waveGreen)}
.controlpyme-login .brand-waves .wave-lines{fill:none;stroke:#60a5fa;stroke-width:1;opacity:.42}
.controlpyme-login .brand-waves .wave-lines path{fill:none;stroke:inherit;stroke-width:inherit}
.controlpyme-login .brand-waves .wave-lines path:nth-child(n+6){stroke:#45cfa1}
.controlpyme-login .brand-waves::after{inset:40% -12% -20%;background:radial-gradient(ellipse at 18% 78%,rgba(37,99,235,.1),transparent 58%),radial-gradient(ellipse at 72% 88%,rgba(18,183,106,.1),transparent 56%)}
.controlpyme-login .access-icon{width:50px;height:50px;min-width:50px;color:inherit}
.controlpyme-login .access-icon svg{width:29px;height:29px;fill:none}
@keyframes login-waves-in{from{opacity:0;transform:translateY(12px)}to{opacity:.62;transform:none}}
@media(max-width:980px){.controlpyme-login .official-logo img{width:min(350px,78%)}.controlpyme-login .brand-tagline{font-size:19px}}
@media(max-width:720px){.controlpyme-login .identity-content{top:43%;transform:translateY(-50%)}.controlpyme-login .official-logo img{width:min(270px,72%);max-height:175px}.controlpyme-login .brand-tagline{margin-top:8px;font-size:15px}.controlpyme-login .brand-waves{height:22%;opacity:.38}}
@media(max-width:420px){.controlpyme-login .official-logo img{width:min(235px,70%)}}
@media(prefers-reduced-motion:reduce){.controlpyme-login .brand-waves{animation:none}}

.controlpyme-login .selection-layout{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 15% 15%,rgba(37,99,235,.07),transparent 32%),radial-gradient(circle at 86% 84%,rgba(18,183,106,.07),transparent 30%),#f8fafc}
.controlpyme-login .selection-layout .access-panel{display:block;min-height:0;padding:24px;background:transparent}
.controlpyme-login .company-selection-card{width:min(560px,calc(100vw - 32px));padding:40px}
.controlpyme-login .company-selection-form{gap:22px}
.controlpyme-login .company-selection-list{display:grid;gap:12px}
.controlpyme-login .company-selection-option{width:100%;display:flex;align-items:center;gap:14px;padding:17px 16px;border:1px solid #dbe4ef;border-radius:13px;background:#fff;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .12s ease}
.controlpyme-login .company-selection-option:hover,.controlpyme-login .company-selection-option:has(input:focus-visible){border-color:#7aa6ef;box-shadow:0 5px 16px rgba(37,99,235,.1)}
.controlpyme-login .company-selection-option:has(input:checked){border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.controlpyme-login .company-selection-option input{width:18px;height:18px;margin:0;accent-color:#2563eb}
.controlpyme-login .company-selection-option .company-selection-content{min-width:0;display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:4px}
.controlpyme-login .company-selection-option .company-selection-content strong{display:block;font-size:15px;color:#10213b}
.controlpyme-login .company-selection-option .company-selection-content small{display:block;color:#667a98;font-size:12px}
.controlpyme-login .company-selection-card .login-heading{align-items:flex-start;margin-bottom:28px}
.controlpyme-login .company-selection-card .login-heading h1{font-size:clamp(24px,3vw,31px);line-height:1.18}
.controlpyme-login .company-selection-card .login-heading p{margin-top:10px}
.controlpyme-login .company-selection-card .security-note p{display:block}
@media(max-width:720px){.controlpyme-login .company-selection-card{padding:28px 22px}.controlpyme-login .selection-layout .access-panel{padding:16px 14px 28px}}
