/* Pantalla de acceso: clon visual del Portal Comercial (vía Portal de Proyectos). Generado por un script; no editar a mano. */
:root{--background:#f6f8fa;--surface:#fff;--surface-hover:#eaeff4;--foreground:#0f1f2e;--foreground-muted:#5a6b7c;--foreground-subtle:#8496a6;--border:#dfe6ed;--border-strong:#c6d2dd;
--primary:#102a3f;--primary-foreground:#fff;--primary-hover:#1d3a57;--ring:#3a648c;--load-over:#c8354a;--emerald-300:#66d29e;
--font-sans:"Source Sans 3","Source Sans Pro",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-display:"Montserrat",var(--font-sans);color-scheme:light}
@media (prefers-color-scheme:dark){:root{--background:#0a1420;--surface:#0f1f2e;--surface-hover:#1d3448;--foreground:#e8eef4;--foreground-muted:#9bafc2;--foreground-subtle:#6d8296;
--border:#1f3549;--border-strong:#2c4760;--primary:#5b83a6;--primary-foreground:#06101a;--primary-hover:#7ba0bf;--ring:#5b83a6;--load-over:#e05066;color-scheme:dark}
.logo-movil{filter:brightness(0) invert(1)}}
*{box-sizing:border-box}html,body{margin:0}body{background:var(--background);color:var(--foreground);font:15px/1.5 var(--font-sans);-webkit-font-smoothing:antialiased}
svg{width:14px;height:14px;flex-shrink:0}
main{display:grid;min-height:100dvh}
@media (min-width:1024px){main{grid-template-columns:1.05fr 1fr}}
/* ---- Panel de marca (idéntico a columna.module.css) ---- */
.panel{position:relative;overflow:hidden;display:none;background:radial-gradient(118% 78% at 50% 24%,#1a3d55 0%,#14324a 34%,#102a3f 62%,#0b1e2e 100%)}
@media (min-width:1024px){.panel{display:block}}
.panel::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(96% 70% at 50% 44%,rgba(0,0,0,0) 46%,rgba(0,0,0,.3) 100%)}
.panel::after{content:"";position:absolute;inset:0;z-index:7;pointer-events:none;opacity:.05;background-size:160px 160px;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='r'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23r)'/%3E%3C/svg%3E")}
.escena{position:absolute;inset:0;z-index:1;-webkit-mask-image:radial-gradient(ellipse 185px 68px at 50% 38%,transparent 58%,#000 100%);mask-image:radial-gradient(ellipse 185px 68px at 50% 38%,transparent 58%,#000 100%);--base:16.4dvh;--paso:8.7dvh}
.logo-panel{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);z-index:5;width:210px;height:auto;filter:brightness(0) invert(1)}
.punto{position:absolute;left:50%;top:38%;width:var(--s);height:var(--s);margin:calc(var(--s)/-2) 0 0 calc(var(--s)/-2);border-radius:50%;background:rgba(232,240,248,.92);opacity:0;
animation-duration:12s;animation-iteration-count:infinite;animation-delay:var(--del);animation-timing-function:cubic-bezier(.55,.02,.2,1);will-change:transform,opacity}
.sobra{animation-name:acomodarYApagar}
@keyframes acomodarYApagar{0%{transform:translate(var(--x),var(--y)) scale(.6);opacity:0}7%{opacity:var(--op)}38%,46%{transform:translate(0,var(--ty)) scale(1);opacity:var(--op)}55%,100%{transform:translate(0,var(--ty)) scale(.55);opacity:0}}
.etapa{animation-name:acomodarYQuedarse}
@keyframes acomodarYQuedarse{0%{transform:translate(var(--x),var(--y)) scale(.6);opacity:0}7%{opacity:.5}38%{transform:translate(0,var(--ty)) scale(1);opacity:.5}55%{transform:translate(0,var(--ty)) scale(1.35);opacity:1}62%,90%{transform:translate(0,var(--ty)) scale(1);opacity:1}100%{transform:translate(0,var(--ty)) scale(1);opacity:0}}
.linea{position:absolute;left:50%;top:38%;width:1.5px;height:calc(4*var(--paso));margin-left:-.75px;transform-origin:top center;opacity:0;
background:linear-gradient(to bottom,rgba(220,232,242,0) 0%,rgba(220,232,242,.44) 18%,rgba(220,232,242,.44) 82%,rgba(220,232,242,0) 100%);animation:trazar 12s cubic-bezier(.42,.02,.28,1) infinite;animation-delay:var(--del)}
@keyframes trazar{0%,56%{transform:translateY(var(--base)) scaleY(0);opacity:0}58%{opacity:1}78%,92%{transform:translateY(var(--base)) scaleY(1);opacity:1}100%{transform:translateY(var(--base)) scaleY(1);opacity:0}}
.halo,.nucleo{position:absolute;left:50%;top:38%;border-radius:50%;opacity:0;animation:recorrer 12s cubic-bezier(.4,0,.3,1) infinite;animation-delay:var(--del);will-change:transform,opacity}
.halo{width:16px;height:16px;margin:-8px 0 0 -8px;background:#3dbd82;filter:blur(5px)}.nucleo{width:4px;height:4px;margin:-2px 0 0 -2px;background:#d8f5e6}
@keyframes recorrer{0%,78%{transform:translateY(var(--base));opacity:0}81%{opacity:1}95%{transform:translateY(calc(var(--base) + 4*var(--paso)));opacity:1}99%,100%{transform:translateY(calc(var(--base) + 4*var(--paso)));opacity:0}}
@media (prefers-reduced-motion:reduce){.sobra{animation:none;opacity:0}.etapa{animation:none;opacity:1;transform:translate(0,var(--ty))}.linea{animation:none;opacity:1;transform:translateY(var(--base)) scaleY(1)}.halo,.nucleo{animation:none;opacity:0}}
.sitio{position:absolute;bottom:32px;left:40px;z-index:8;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:500;color:rgba(255,255,255,.4);text-decoration:none;transition:color .15s}
.sitio:hover{color:var(--emerald-300)}.sitio svg{transition:transform .15s}.sitio:hover svg{transform:translate(1px,-1px)}
/* ---- Columna del formulario ---- */
.col{display:flex;align-items:center;justify-content:center;padding:48px 20px}@media (min-width:640px){.col{padding:48px 40px}}
.caja{width:100%;max-width:372px}
.solo-movil{display:block}@media (min-width:1024px){.solo-movil{display:none}}
.logo-movil{height:44px;width:auto;display:block}
.marca{margin:32px 0 28px;display:flex;flex-direction:column;gap:6px}.solo-movil+.marca{margin-top:32px}
@media (min-width:1024px){.marca{margin-top:0}}
.sobre{margin:0;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:var(--foreground-subtle)}
h1{margin:0;font-family:var(--font-display);font-size:30px;font-weight:700;line-height:1.05;letter-spacing:-.03em}
.lema{margin:0;font-size:13.5px;color:var(--foreground-subtle)}
form{display:flex;flex-direction:column;gap:16px}
.campo{display:flex;flex-direction:column;gap:6px}label{font-size:13px;font-weight:500;color:var(--foreground)}label .req{margin-left:2px;color:var(--load-over)}
input{height:44px;width:100%;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--foreground);padding:0 12px;font:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}
input::placeholder{color:var(--foreground-subtle)}input:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 25%,transparent)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;width:100%;padding:0 24px;border-radius:8px;font:inherit;font-size:16px;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s;border:0}
.btn svg{width:16px;height:16px}.btn:disabled{opacity:.5;pointer-events:none}
.primario{background:var(--primary);color:var(--primary-foreground);box-shadow:0 1px 2px rgba(0,0,0,.05)}.primario:hover{background:var(--primary-hover)}
.contorno{background:var(--surface);color:var(--foreground);border:1px solid var(--border-strong)}.contorno:hover{background:var(--surface-hover)}
.giro{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:g .7s linear infinite;display:none}.cargando .giro{display:inline-block}
@keyframes g{to{transform:rotate(360deg)}}
.error{display:none;align-items:flex-start;gap:8px;border-radius:8px;border:1px solid color-mix(in srgb,var(--load-over) 30%,transparent);background:color-mix(in srgb,var(--load-over) 8%,transparent);padding:10px 12px;font-size:13px;color:var(--load-over)}
.error.visible{display:flex}.error svg{width:16px;height:16px;margin-top:1px}
.ayuda{margin:0;text-align:center;font-size:12px;color:var(--foreground-subtle)}
.o{position:relative;padding:4px 0;text-align:center}.o span{position:relative;z-index:1;background:var(--background);padding:0 12px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--foreground-subtle)}
.o::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--border)}
.pie{margin-top:32px;display:flex;align-items:center;gap:8px;border-top:1px solid var(--border);padding-top:20px;font-size:11px;color:var(--foreground-subtle)}.pie p{margin:0}
.sitio-movil{margin-top:16px;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:500;color:var(--foreground-muted);text-decoration:none}.sitio-movil:hover{color:var(--primary)}
.e1{--x:-17.62vw;--y:-14.59dvh;--ty:18.55dvh;--s:3.5px;--op:0.6;--del:-2.40s}
.e2{--x:18.95vw;--y:-10.32dvh;--ty:20.73dvh;--s:3px;--op:0.42;--del:-2.36s}
.e3{--x:-20.50vw;--y:23.13dvh;--ty:22.91dvh;--s:3px;--op:0.42;--del:-2.32s}
.e4{--x:22.05vw;--y:27.05dvh;--ty:27.27dvh;--s:3.5px;--op:0.6;--del:-2.28s}
.e5{--x:-13.41vw;--y:51.25dvh;--ty:29.45dvh;--s:3px;--op:0.42;--del:-2.24s}
.e6{--x:17.18vw;--y:48.40dvh;--ty:31.63dvh;--s:3px;--op:0.42;--del:-2.20s}
.e7{--x:-8.53vw;--y:-21.71dvh;--ty:35.99dvh;--s:3.5px;--op:0.6;--del:-2.16s}
.e8{--x:9.64vw;--y:-19.57dvh;--ty:38.17dvh;--s:3px;--op:0.42;--del:-2.12s}
.e9{--x:-22.72vw;--y:3.91dvh;--ty:40.35dvh;--s:3px;--op:0.42;--del:-2.08s}
.e10{--x:23.83vw;--y:7.12dvh;--ty:44.71dvh;--s:3.5px;--op:0.6;--del:-2.04s}
.e11{--x:-3.88vw;--y:-24.91dvh;--ty:46.89dvh;--s:3px;--op:0.42;--del:-2.00s}
.e12{--x:4.10vw;--y:-25.98dvh;--ty:49.07dvh;--s:3px;--op:0.42;--del:-1.96s}
.e13{--x:-15.63vw;--y:37.37dvh;--ty:16.37dvh;--s:6px;--op:1;--del:-2.40s}
.e14{--x:16.29vw;--y:35.94dvh;--ty:25.09dvh;--s:6px;--op:1;--del:-2.35s}
.e15{--x:-10.08vw;--y:-2.49dvh;--ty:33.81dvh;--s:6px;--op:1;--del:-2.30s}
.e16{--x:12.08vw;--y:-0.71dvh;--ty:42.53dvh;--s:6px;--op:1;--del:-2.25s}
.e17{--x:0.00vw;--y:-27.40dvh;--ty:51.25dvh;--s:6px;--op:1;--del:-2.20s}
.e18{--del:-2.4s}
.e19{--del:-2.4s}
.e20{--del:-2.4s}
