:root{--ink:#101419;--muted:#626a73;--line:#dfe4ea;--orange:#ff6700;--blue:#087cff;--purple:#7d58c9;--green:#0aa35f;--shadow:0 14px 40px rgba(27,34,43,.12)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:#f7f8fa}body{min-height:100vh;overflow-x:hidden}a{text-decoration:none;color:inherit}button,input{font:inherit}
.login-page{position:relative;min-height:100vh;background:radial-gradient(circle at 20% 0%,#fff 0,#f8f9fb 46%,#eef1f5 100%);display:flex;justify-content:center;align-items:center;padding:28px}.login-page:before,.eco-content:before{content:"";position:absolute;inset:0;background:url('waves.svg') center 48%/cover no-repeat;pointer-events:none}.login-page:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(255,255,255,0) 30%,rgba(255,255,255,.5) 72%,rgba(238,241,245,.7) 100%);pointer-events:none}.login-wrap{position:relative;z-index:2;width:min(100%,1120px);min-height:860px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:14px}.metal-brand{width:min(650px,76vw);height:auto;max-width:100%;object-fit:contain;display:block;overflow:visible;filter:drop-shadow(0 10px 18px rgba(32,40,50,.11));margin-bottom:2px}.login-card{width:min(430px,92vw);margin-top:6px;background:rgba(255,255,255,.92);border:1px solid rgba(210,215,222,.8);border-radius:18px;box-shadow:0 14px 34px rgba(25,31,38,.12);padding:28px 38px 30px;backdrop-filter:blur(10px)}.login-card h1{font-size:27px;margin:0;text-align:center;letter-spacing:-.6px}.login-card .sub{text-align:center;color:#58606a;margin:8px 0 9px;font-size:14px}.rainbow-rule{width:60px;height:2px;margin:0 auto 24px;border-radius:9px;background:linear-gradient(90deg,#ff9e2b,#35c986,#1595ff,#8b46e9)}.login-card .intro{text-align:center;color:#5f6770;font-size:14px;line-height:1.45;margin:0 0 25px}.field{margin:0 0 16px}.field label{display:block;font-size:13px;font-weight:650;margin-bottom:7px}.inputbox{position:relative}.inputbox input{width:100%;height:46px;padding:0 44px 0 42px;border:1px solid #d8dde4;border-radius:8px;background:#fff;color:#20252b;outline:none;transition:.2s;box-shadow:0 1px 2px rgba(20,25,30,.02)}.inputbox input:focus{border-color:#8ca0b7;box-shadow:0 0 0 3px rgba(88,118,154,.1)}.inputbox .ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:18px;color:#69727d}.eye{position:absolute;right:11px;top:50%;transform:translateY(-50%);border:0;background:none;padding:5px;cursor:pointer;color:#4f5964}.login-options{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12.5px;margin:2px 0 20px}.login-options a{color:#6d46bf}.remember{display:flex;align-items:center;gap:7px}.remember input{accent-color:#171c21}.primary{width:100%;height:46px;border:0;border-radius:6px;background:linear-gradient(135deg,#11161b,#252c33);color:#fff;font-weight:750;cursor:pointer;box-shadow:0 8px 18px rgba(15,20,25,.12)}.sep{display:flex;align-items:center;gap:12px;color:#7c838b;font-size:12px;margin:21px 0}.sep:before,.sep:after{content:"";height:1px;background:#e2e6eb;flex:1}.secondary{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:43px;border:1px solid #dce1e6;border-radius:7px;background:#fff;font-weight:700;font-size:13px}.secure{display:flex;justify-content:center;gap:10px;align-items:center;color:#6f7780;font-size:12.5px;margin-top:23px}.login-error{min-height:18px;text-align:center;font-size:12px;color:#bc3030;margin-top:8px}
.eco-page{min-height:100vh;display:grid;grid-template-columns:245px 1fr;background:#f8f9fb}.sidebar{position:relative;z-index:3;min-height:100vh;border-right:1px solid #e1e5ea;background:rgba(255,255,255,.94);padding:18px 13px 24px;display:flex;flex-direction:column}.side-brand{height:76px;display:flex;align-items:center;padding:0 17px 16px;border-bottom:1px solid #edf0f3;margin:0 -13px 18px}.side-brand img{width:180px;max-height:62px;object-fit:contain;object-position:left center}.nav{display:flex;flex-direction:column;gap:10px}.nav a{height:56px;padding:0 22px;border-radius:11px;display:flex;align-items:center;gap:16px;font-size:15px}.nav a.active{background:linear-gradient(90deg,#eeeafb,#f5f4fa)}.nav .navico{font-size:22px;width:22px;text-align:center}.side-logout{margin-top:auto;border-top:1px solid #e2e6eb;padding:23px 20px 0;display:flex;align-items:center;gap:14px;font-size:15px}.eco-content{position:relative;min-width:0;min-height:100vh;background:radial-gradient(circle at 45% 0%,#fff 0,#fbfbfc 55%,#f1f4f7 100%);overflow:hidden}.eco-top{position:relative;z-index:2;height:78px;display:flex;justify-content:flex-end;align-items:center;padding:0 38px}.userpill{display:flex;align-items:center;gap:12px}.avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#7950c7,#a285dc);display:grid;place-items:center;color:white;font-size:21px}.authorized{font-size:15px}.eco-main{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:0 42px 52px}.eco-brand{text-align:center;margin-top:-5px;overflow:visible}.eco-brand .metal-brand{width:min(525px,62vw);margin:0 auto -8px;overflow:visible}.welcome{margin:0 0 45px}.welcome h1{font-size:34px;letter-spacing:-1.2px;margin:0 0 7px}.welcome p{font-size:17px;color:#555e68;margin:0}.apps-title{font-size:23px;margin:0 0 22px}.products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;max-width:810px}.product{position:relative;background:rgba(255,255,255,.94);border:1px solid #dde2e7;border-radius:17px;min-height:275px;padding:27px 32px;box-shadow:0 11px 26px rgba(27,34,42,.09);transition:transform .18s,box-shadow .18s}.product:hover{transform:translateY(-3px);box-shadow:0 17px 35px rgba(27,34,42,.12)}.product:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:0 4px 4px 0}.product.rem:before{background:#ff8c2a}.product.conta:before{background:#5ab4ff}.product-icon{width:66px;height:66px;border:2px solid;border-radius:10px;display:grid;place-items:center;font-size:40px;font-weight:700;margin-bottom:18px}.rem .product-icon{color:#ff6500}.conta .product-icon{color:#087cff}.product h2{font-size:24px;margin:0 0 9px}.product p{font-size:16px;line-height:1.45;color:#4d5660;margin:0 0 24px;max-width:330px}.enter{font-size:16px;font-weight:650}.rem .enter{color:#ff6500}.conta .enter{color:#087cff}.status{margin-top:32px;background:rgba(255,255,255,.9);border:1px solid #dde2e7;border-radius:16px;box-shadow:0 10px 28px rgba(28,34,42,.08);display:grid;grid-template-columns:repeat(4,1fr);padding:26px 20px;gap:0}.metric{display:grid;grid-template-columns:54px 1fr;gap:13px;padding:0 22px;border-right:1px solid #e5e8ec}.metric:last-child{border-right:0}.bubble{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;font-size:24px}.metric:nth-child(1) .bubble,.metric:nth-child(4) .bubble{background:#e8f7f1;color:#0a7f58}.metric:nth-child(2) .bubble{background:#eee9fb;color:#5e37b2}.metric:nth-child(3) .bubble{background:#fff2e3;color:#c27118}.metric label{font-size:14px;color:#59616a}.metric strong{display:block;font-size:25px;margin-top:8px}.metric small{display:inline-block;margin-top:8px;padding:4px 9px;border-radius:12px;background:#f0f2f4;font-size:11px}.metric:first-child strong,.metric:last-child strong{color:#0b9b57}.mobile-brand{display:none}
@media(max-width:900px){.eco-page{grid-template-columns:1fr}.sidebar{display:none}.eco-top{padding:0 20px}.eco-main{padding:0 22px 36px}.products{grid-template-columns:1fr;max-width:none}.status{grid-template-columns:1fr 1fr;row-gap:22px}.metric{border-right:0}.welcome{margin-bottom:30px}.eco-brand .metal-brand{width:min(520px,85vw)}.mobile-brand{display:block}.authorized{display:none}}
@media(max-width:560px){.login-page{padding:12px}.login-wrap{min-height:auto;padding-top:0}.metal-brand{width:94vw;margin:0 0 4px}.login-card{padding:24px 22px}.eco-main{padding:0 16px 28px}.welcome h1{font-size:28px}.status{grid-template-columns:1fr}.metric{padding:0 8px}.products{gap:18px}.product{padding:24px}.eco-brand .metal-brand{width:96vw}.userpill{font-size:13px}.avatar{width:40px;height:40px}}
/* v0.2.2: logo SORIA sobre transparencia real; sin rectángulo gris */
.metal-brand{background:transparent!important;mix-blend-mode:normal;object-fit:contain!important;object-position:center!important;clip-path:none!important}
.eco-brand{background:transparent!important;padding:6px 18px 8px}
.login-wrap>.metal-brand{padding:4px 12px}

/* v0.2.3: logo metalico con alfa real y margen de seguridad */
.metal-brand{background:none!important;box-shadow:none!important;object-fit:contain!important;object-position:center!important;clip-path:none!important;}
.eco-brand,.login-wrap{overflow:visible!important;}

/* v0.2.4 REAL: asset transparente nuevo, sin fondo raster y sin recorte */
.metal-brand{background:transparent!important;object-fit:contain!important;object-position:center!important;overflow:visible!important;clip-path:none!important;filter:none!important}
.login-brand,.eco-brand{background:transparent!important;overflow:visible!important}

/* v0.2.6 — logo metálico completo desde maqueta aprobada. Sólo encuadre; sin sombra CSS. */
.metal-brand{
  display:block!important;
  width:min(650px,76vw)!important;
  height:auto!important;
  max-width:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  overflow:visible!important;
  filter:none!important;
  box-shadow:none!important;
  clip-path:none!important;
  background:transparent!important;
  padding:0!important;
}
.login-wrap>.metal-brand{margin:0 auto 10px!important;}
.eco-brand{overflow:visible!important;padding:0 24px 12px!important;}
.eco-brand .metal-brand{width:min(560px,64vw)!important;margin:0 auto!important;}

/* v0.2.6.4 — ondas reales por Canvas: ancladas, sólo cambia la curvatura */
.login-page:before,.eco-content:before{background:none!important;content:none!important}
.soria-waves-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;display:block}
.login-wrap,.eco-top,.eco-main{position:relative;z-index:2}
/* v1.0.0 seguridad: forms POST sin cambiar la estética */
.logout-form{margin-top:auto;border-top:1px solid #e2e6eb;padding-top:0}
.side-logout-btn{width:100%;border:0;background:transparent;cursor:pointer;text-align:left}
.launch-form{padding:0;overflow:hidden}
.product-button{appearance:none;border:0;background:transparent;width:100%;height:100%;text-align:left;padding:27px 32px;color:inherit;cursor:pointer;font:inherit}
.launch-form.product{padding:0}
.metric-denom{font-size:16px}
/* v1.0.1 — recuperación segura de contraseña */
.link-button{display:flex;align-items:center;justify-content:center;text-decoration:none}
.login-success{min-height:18px;text-align:center;font-size:12px;color:#087a4d;margin-top:8px}
