@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
.ecosystem-portal{min-height:100vh;background:radial-gradient(circle at 90% 0,#e9e1ff 0,transparent 27%),#f6f5fa;color:#17152b;font-family:Manrope,system-ui,sans-serif;padding:34px clamp(22px,5vw,76px) 70px}
.ecosystem-topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.ecosystem-brand{display:flex;align-items:center;gap:14px}.ecosystem-brand img{width:70px;height:70px;object-fit:contain;background:#17152b;border-radius:20px;padding:5px}.ecosystem-brand small,.ecosystem-kicker{font-size:.7rem;font-weight:800;letter-spacing:.14em;color:#827d94}.ecosystem-brand h1{font-size:clamp(1.65rem,3vw,2.5rem);letter-spacing:-.05em;margin:3px 0}.ecosystem-actions{display:flex;gap:8px;align-items:center}.ecosystem-role{background:#fff;border:1px solid #e8e5f0;border-radius:12px;padding:10px 13px;font-size:.75rem;font-weight:800}
.ecosystem-hero{position:relative;overflow:hidden;min-height:300px;background:linear-gradient(125deg,#4f2ce6,#8b5bf3);border-radius:30px;padding:42px clamp(28px,5vw,62px);color:#fff;box-shadow:0 28px 70px #5b36f230}.ecosystem-hero h2{font-size:clamp(2rem,4vw,3.45rem);line-height:1.04;letter-spacing:-.06em;margin:17px 0 13px;max-width:780px}.ecosystem-hero h2 strong{color:#c8ff45}.ecosystem-hero p{color:#e6e0ff;max-width:650px;font-size:1rem}.ecosystem-live{font-size:.68rem;letter-spacing:.14em;font-weight:800}.ecosystem-live:before{content:"";display:inline-block;width:8px;height:8px;background:#c8ff45;border-radius:50%;margin-right:8px;box-shadow:0 0 0 6px #c8ff4522}
.ecosystem-section-head{display:flex;justify-content:space-between;align-items:end;margin:34px 0 15px}.ecosystem-section-head h2{font-size:1.7rem;letter-spacing:-.04em;margin:4px 0}.ecosystem-section-head p{margin:0;color:#716e84}.ecosystem-modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.ecosystem-module{position:relative;overflow:hidden;border:1px solid #e8e5f0;background:#fff;border-radius:24px;padding:22px;text-align:left;min-height:270px;display:flex;flex-direction:column;cursor:pointer;transition:.25s;color:#17152b;font:inherit}.ecosystem-module:hover{transform:translateY(-6px);box-shadow:0 22px 65px #3627661f}.ecosystem-module-logo{flex:0 0 92px;width:92px;height:92px;border-radius:22px;display:grid;place-items:center;overflow:hidden}.ecosystem-module-logo img{display:block;width:82px!important;height:82px!important;max-width:82px!important;max-height:82px!important;object-fit:contain!important}.ecosystem-module.torneos .ecosystem-module-logo{background:#efffc7}.ecosystem-module.canchas .ecosystem-module-logo{background:#17152b}.ecosystem-module.escuelas .ecosystem-module-logo{background:#ffe7e1}.ecosystem-module h3{font-size:1.45rem;letter-spacing:-.04em;margin:22px 0 6px;position:relative;z-index:1}.ecosystem-module p{margin:0;color:#716e84;font-size:.88rem}.ecosystem-module b{margin-top:auto;padding-top:20px;font-size:.8rem}.ecosystem-module.locked{opacity:.48;cursor:not-allowed}.ecosystem-module.locked:hover{transform:none;box-shadow:none}.ecosystem-module-status{position:absolute;top:24px;right:22px;margin:0;background:#f2eff9;border-radius:999px;padding:6px 9px;font-size:.63rem;font-weight:800;letter-spacing:.06em}
.ecosystem-module-screen{min-height:100vh;background:#f6f5fa;padding:35px clamp(22px,5vw,75px);font-family:Manrope,system-ui,sans-serif}.ecosystem-module-screen header{display:flex;justify-content:space-between;align-items:center}.ecosystem-module-screen .module-intro{margin-top:45px;background:#fff;border:1px solid #e8e5f0;border-radius:28px;padding:36px;display:grid;grid-template-columns:auto 1fr;gap:25px;align-items:center}.ecosystem-module-screen .module-intro img{width:140px;height:140px;object-fit:contain;border-radius:28px;background:#17152b;padding:8px}.ecosystem-module-screen h1{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.06em;margin:0}.ecosystem-module-screen p{color:#716e84}.portal-return-button{position:fixed;z-index:999;left:18px;bottom:18px;border:0;border-radius:999px;background:#5b36f2;color:#fff;padding:12px 17px;font:800 .78rem Manrope;box-shadow:0 12px 28px #5b36f24d;cursor:pointer}
@media(max-width:850px){.ecosystem-modules{grid-template-columns:1fr 1fr}.ecosystem-topbar{align-items:flex-start;flex-direction:column}.ecosystem-actions{width:100%;flex-wrap:wrap}.ecosystem-hero{min-height:360px}.ecosystem-module-screen .module-intro{grid-template-columns:1fr}.ecosystem-module-screen .module-intro img{width:105px;height:105px}}
@media(max-width:570px){.ecosystem-portal{padding:20px 15px 95px}.ecosystem-modules{grid-template-columns:1fr}.ecosystem-hero{padding:30px 24px}.ecosystem-brand img{width:54px;height:54px}.ecosystem-section-head{align-items:flex-start;flex-direction:column}.portal-return-button{bottom:82px}}

/* Acceso real con la línea visual aprobada */
.public-auth-screen{min-height:100vh;background:radial-gradient(circle at 12% 18%,#7558ff 0,transparent 32%),linear-gradient(135deg,#17152b 0%,#2a1d62 54%,#5b36f2 100%);font-family:Manrope,system-ui,sans-serif;color:#fff}.public-auth-screen .public-topbar{background:transparent;border:0;color:#fff}.public-auth-screen .public-brand img{background:#17152b;border-radius:16px;padding:4px}.public-auth-screen .public-brand strong,.public-auth-screen .public-brand small{color:#fff}.public-auth-screen .auth-layout{align-items:center;gap:clamp(30px,6vw,90px)}.public-auth-screen .auth-intro{color:#fff}.public-auth-screen .auth-intro .auth-logo{width:min(280px,55%);max-height:210px;object-fit:contain}.public-auth-screen .auth-intro .eyebrow{color:#c8ff45}.public-auth-screen .auth-intro h1{font-size:clamp(2.3rem,5vw,4.6rem);line-height:1.02;letter-spacing:-.065em;color:#fff}.public-auth-screen .auth-intro h1 strong{color:#c8ff45}.public-auth-screen .auth-intro>p{color:#e1dbff;font-size:1rem}.public-auth-screen .feature-card{background:#ffffff10;border-color:#ffffff22;color:#fff}.public-auth-screen .feature-card small{color:#cbc4e8}.public-auth-screen .auth-card{border:0;border-radius:28px;box-shadow:0 35px 90px #08061666}.public-auth-screen .auth-card-head img{background:#17152b;border-radius:15px;padding:4px}.public-auth-screen .button.primary{background:#5b36f2;color:#fff}.public-auth-screen .mode-switch button.active{background:#5b36f2;color:#fff}

/* Límites estrictos para teléfonos y PWA instalada */
@media(max-width:570px){
  .ecosystem-brand{max-width:100%;min-width:0}.ecosystem-brand img{box-sizing:border-box;flex:0 0 54px;width:54px!important;height:54px!important;max-width:54px!important;max-height:54px!important;object-fit:contain!important;overflow:hidden}.ecosystem-brand>div{min-width:0}.ecosystem-brand h1{font-size:1.55rem;overflow-wrap:anywhere}
  .ecosystem-module{min-height:250px;padding:18px;overflow:hidden}.ecosystem-module-logo{box-sizing:border-box;flex:0 0 78px;width:78px!important;height:78px!important;max-width:78px!important;max-height:78px!important}.ecosystem-module-logo img{display:block;width:68px!important;height:68px!important;max-width:68px!important;max-height:68px!important;object-fit:contain!important}.ecosystem-module-status{top:18px;right:18px}.ecosystem-module h3{clear:both;margin:18px 0 6px;font-size:1.35rem}
  .ecosystem-module-screen .module-intro{padding:24px;overflow:hidden}.ecosystem-module-screen .module-intro img{box-sizing:border-box;width:88px!important;height:88px!important;max-width:88px!important;max-height:88px!important;object-fit:contain!important}
  .public-auth-screen .public-brand{min-width:0}.public-auth-screen .public-brand img{box-sizing:border-box;width:auto!important;height:44px!important;max-width:150px!important;max-height:44px!important;object-fit:contain!important}
  .public-auth-screen .auth-intro{overflow:hidden}.public-auth-screen .auth-intro .auth-logo{display:block;box-sizing:border-box;width:170px!important;height:170px!important;max-width:170px!important;max-height:170px!important;object-fit:contain!important;margin-left:auto;margin-right:auto}.public-auth-screen .auth-card-head img{box-sizing:border-box;width:50px!important;height:50px!important;max-width:50px!important;max-height:50px!important;object-fit:contain!important}
}

/* Inicio de sesión: contraste y escala estable en web y PWA */
.public-auth-screen .auth-layout{background:transparent!important;overflow:hidden}
.public-auth-screen .auth-intro{box-sizing:border-box;overflow:hidden!important;background:linear-gradient(145deg,#17152b 0%,#2b2062 58%,#4f2ce6 100%)!important;border:1px solid #ffffff20!important;color:#fff!important}
.public-auth-screen .auth-intro .auth-logo{display:block!important;box-sizing:border-box!important;width:min(260px,62%)!important;height:auto!important;max-width:260px!important;max-height:260px!important;object-fit:contain!important;margin:0 0 24px!important}
.public-auth-screen .auth-intro h1{color:#fff!important;text-shadow:0 2px 22px #08061655}.public-auth-screen .auth-intro h1 strong{color:#c8ff45!important}.public-auth-screen .auth-intro>p{color:#e4dfff!important}
.public-auth-screen .auth-intro .feature-card{background:#ffffff12!important;border-color:#ffffff24!important;color:#fff!important}.public-auth-screen .auth-intro .feature-card strong{color:#fff!important}.public-auth-screen .auth-intro .feature-card small{color:#d7d1ee!important}
.public-auth-screen .public-brand img{box-sizing:border-box!important;width:auto!important;height:54px!important;max-width:190px!important;max-height:54px!important;object-fit:contain!important;background:#fff!important;border:1px solid #ffffff66!important;border-radius:14px!important;padding:6px!important}

@media(max-width:570px){
  .public-auth-screen .public-topbar{padding:12px!important}.public-auth-screen .public-brand img{height:42px!important;max-width:138px!important;max-height:42px!important;padding:5px!important}.public-auth-screen .public-brand div{display:none!important}
  .public-auth-screen .auth-layout{box-sizing:border-box!important;width:100%!important;max-width:100vw!important;padding:12px!important;gap:12px!important;overflow-x:hidden!important}
  .public-auth-screen .auth-intro{width:100%!important;max-width:100%!important;padding:24px 20px!important;border-radius:22px!important}
  .public-auth-screen .auth-intro .auth-logo{width:140px!important;height:140px!important;max-width:140px!important;max-height:140px!important;margin:0 auto 18px!important;object-fit:contain!important}
  .public-auth-screen .auth-intro h1{font-size:2rem!important;line-height:1.03!important;overflow-wrap:anywhere}.public-auth-screen .auth-intro>p{font-size:.9rem!important;line-height:1.5!important}.public-auth-screen .auth-feature-grid{grid-template-columns:1fr!important;gap:8px!important;margin-top:18px!important}
  .public-auth-screen .auth-card{box-sizing:border-box!important;width:100%!important;max-width:100%!important;padding:22px 18px!important;margin:0!important;overflow:hidden!important}.public-auth-screen .auth-card-head img{width:48px!important;height:48px!important;max-width:48px!important;max-height:48px!important;object-fit:contain!important}
}
